同学录管理系统课程设计报告_第1页
同学录管理系统课程设计报告_第2页
同学录管理系统课程设计报告_第3页
同学录管理系统课程设计报告_第4页
同学录管理系统课程设计报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程课程设计 1 计算机系计算机系 软件工程软件工程课程设计报告课程设计报告题目:题目: 同学录管理系统同学录管理系统 班级:班级: 学号:学号: 姓名:姓名: 指导老师:指导老师: 年月日 软件工程课程设计 2 【 实实 验验 一一列车时刻查询系统注释 】 #include /标准库函数#include/是包含输入输出流的头文件 #include/是对字符串操作的头文件 #include/是包含 I/O 流控制头文件 #include /是出时间和日期处理函数的头文件#include/它包含了其他 Windows 头文件 using namespace std;/该指令涵盖了 C+标准程

2、序库的任何标识符 class train_infor/定义了一个 train 类private:/以下定义的为私有的函数 static int train_No; /静态数据成员 char start20;/定义了起始站这个变量 char end20;/定义了终点站这个变量 int train_order; /定义车次这个函数 int Hour_start,Minute_start;/开车的时间 float GoHour;/行车时间 public:/ 以下为共有的函数train_infor();train_infor();train_infor *next;void input();/输入函数

3、 void input(ifstream & is);/将输入的信息放入到文件中 void output();/输出函数 void output(ofstream & os);/将输出的信息放入到文件中 void GetTime_start();/行车起始站函数 bool GetTime();/判断当前车次状况函数,值为 true 时输出 1,值为false 时输出 0. int Get_train_order() return train_order; /返回班次号 string Get_end()const;/返回行车的终点站的字符串 ;int train_infor:train_No=1

4、;/车辆数变量train_infor:train_infor()/车辆数增加软件工程课程设计 3 train_No+; /车辆数自加 1 train_infor:train_infor() / 车辆数减少 train_No-; / 车辆数自减 1void train_infor:input() / 车次信息输入函数 coutttt 按提示输入:endl;couttrain_order;/调用班次函数if (cin.fail()/判断输入的数据类型是否有错 cout n 班次输入错误,请重新输入:;/在界面上提示“班次输入错误,请重新输入”cin.clear(); / 消除输入流缓冲区 cin.

5、get(); / 输入字符串,并不从输入流中去掉终结符号 else break;GetTime_start();/行车时间函数coutGoHour;if (cin.fail()/如果输入失败时 cout n 行车时间输入错误,请重新输入:;cin.clear();/ 消除输入流缓冲区 cin.get(); / 输入字符串,并不从输入流中去掉终结符号else break;coutstart;cinend;软件工程课程设计 4 void train_infor:input(ifstream & is) / 创建一个输入的文件类型的引用 istrain_orderHour_startMinute_s

6、tartstartendGoHour;/将车次、发车时间写入到文件中这里的操作符是重载过的,是写入的功能。is.get(); / 获取文件指针 void train_infor:output()/车次信息输出函数cout train_ordert;if(Minute_start=0) coutHour_start: Minute_start0t;/elsecoutHour_start: Minute_startt;/coutstarttend tGoHour; if(!GetTime()coutt 此班列车已出发endl;elsecoutt 此班列车未出发endl;void train_inf

7、or:output(ofstream & os) / 创建一个输出的文件类型的引用 ossetw(6)train_order/设置输出班次的宽度 setw(15)Hour_start / 设置输出开车时间/小时的宽度setw(15)Minute_start / 设置 输出开车时间/分钟的宽度setw(15)start /设置输出起始站的宽度setw(6)end /设置输出终点站的宽度setw(15)GoHour / 设置输出运行时间的宽度endl; /setw()设置输出宽度void train_infor:GetTime_start()/ 类外定义成员函数 GetTime_start()co

8、utHour_startMinute_start;if (cin.fail()/判断输入的数据类型是否有错 软件工程课程设计 5 cout n 时间输入错误,请重新输入:;cin.clear();cin.get();else if(Hour_start24|Minute_start60)/判断时间格式是否出错,小时不能小于 0 大于 24,分钟不能小于 0 大于 60couttm_hourtm_hour=Hour_start & local-tm_minnext=NULL;key=0;/带参数的构造函数train_link()delete head; / 析构函数 void input();/

9、 录入列车信息 void mend();/ 修改列车信息 void del();/删除列车信息 int find(train_infor *p,int num,char *pn); / 查找列车信息 void found();/查询列车信息 void show();/ 显示列车信息 void save();/ 保存列车信息 软件工程课程设计 6 void begin();/ 初始化列车信息 void clear();/ 清除函数 void about();/ 关于列车信息 char mainmenu();/ 主菜单函数 void setkey(int k) key=k; /设置系统修改标志 i

10、nt getkey() return key;/ 返回系统修改标志 private: train_infor *head; /链表指针 int key;/系统修改标志 int password;/管理员登陆标志 ; void train_link:input() / 列车信息输入功能菜单控制 if(password=1)/判断是否为管理员train_infor *p,*p2=NULL;p=head; int n=1; /int n;while(p-next)p=p-next;while(n)p2=new train_infor;p2-input();/P2 指针指向 input()p-next

11、=p2;p2-next=NULL;p=p-next; / P2 指针后移 train_link:setkey(1);coutn;if(!cin)throw string(数据输入错误);elsecoutntt 对不起,游客不能录入车票信息endl;void train_link:show() / 浏览列车信息 cout列车基本信息如下:endl |班次 发车时间 起点站 终点站 行车时间 当前状况 |next)(p-next)-output();p=p-next;void train_link:found() / 查询列车信息的控制 train_infor *p;int num,n;char

12、name20;docoutn;if(!cin)throw string(数据输入错误);while(n2);/设置输入只能为 1 或者 2if(n=1)coutnum;if(!cin)/ 判断输入不为 1 或者 2 时throw string(数据输入错误);if(n=2)coutname;if(!find(&p,num,name)couttt 找不到你要查找的车次,请确定输入信息是否正确!next)(*p1)=p;if( (p-next)-Get_train_order()=num| (p-next)-Get_end()=pn )/cout列车基本信息如下:endl |班次 发车时间 起点站

13、 终点站 行车时间 当前状况 |next)-output(); t=1;p=p-next;return t;void train_link:del() / 列车信息删除 if(password=1)/判断是否为管理员train_infor *p,*p2;int num;char name20;coutnum;if(!cin)throw string(数据输入错误);if( !find(&p,num,name) )couttt 对不起!找不到你要删除的内容,请确定输入信息是否正确!endl;return;couta;if(a=y|a=Y) p2=p-next;p-next=p2-next;del

14、ete p2;train_link:setkey(1);coutnttt 信息已删除!;else软件工程课程设计 9 coutnttt 取消删除!;elsecoutntt 对不起,游客不能删除车票信息endl;void train_link:mend() / 列车信息修改 if(password=1)/判断是否为管理员train_infor *p;int num;char name20;coutnum;if(!cin)throw string(数据输入错误);if( !find(&p,num,name) )couttt 对不起!找不到你要修改的内容,请确认输入信息是否正确!next)-inpu

15、t();train_link:setkey(1);elsecoutntt 对不起,游客不能修改车票信息next)(p-next)-output(os);p=p-next;软件工程课程设计 10 coutttt 文件已保存! endl;train_link:setkey(0);elsecoutntt 对不起,游客无法保存车票信息endl;void train_link:about() / 列车时刻查询系统说明 coutendl关于列车时刻查询系统endlendl;cout使用说明:endlt1.请按照操作提示输入正确的格式,以保证系统正常运行;endlt2.当使用管理员登陆时,需输入密码,可进行

16、对系统的所有操作;endlt3.当使用游客身份登陆时,无需输入密码,但只能浏览和查询列车时刻信息;endlt4.车票信息用文本文档格式,文件名为 train,保存在本程序文件夹目录下,可以直接打开查看.endlendl系统说明:endlt 本系统为课程设计作品,可以简易的进行列车时刻查询,欢迎提出意见和建议endl t t endlnum;软件工程课程设计 11 is.seekg(t);/移动到原来位置 if(numinput(is); / 输入 is 对象内容 p-next=p2;p2-next=NULL;p=p-next;void train_link:clear()/ 清除班次信息tra

17、in_infor *p,*p2;p=head-next;while( p )p2=p;p=p-next;delete p2;char train_link:mainmenu()/ 定义主菜单struct tm *local; char s1128;time_t t;t=time(NULL);local=localtime(&t);/获取当前系统时间strftime(s1,128,%Y-%m-%d %H:%M ,local);/按照指定的格式,把时间保存在 s1 字符串里面string s;coutnn endlendl;cout endl endl 1. 录入列车信息 2. 浏览列车信息 en

18、dl软件工程课程设计 12 3. 查询列车信息 4. 删除列车信息 endl 5. 修改列车信息 6. 保存列车信息 endl 7. 关于列车时刻查询系统 0. 退出系统 endl endl endlttttt s1endlendl;while(password=0) /身份验证选择管理员或者游客,游客只能查看无其他功能 coutn;if(!cin)throw string(数据输入错误);if(n=1)/判断为管理员时coutm;if(m=123456)/设置管理员登陆密码为 123456password=1;coutendl;break;elsecoutntt 密码输入不正确nendl;e

19、lsepassword=2;/为游客身份标志break;couts;if(s.length()!=1|s09) /s.length()返回字符串的长度,即字符个数 cout输入错误,请重新选择功能按钮: ;elsebreak;软件工程课程设计 13 return s0;int main()/定义主函数SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|BACKGROUND_BLUE); / 调用 windows 系统文件改变字体颜色和背景颜色 train_li

20、nk pp;int k=1;string s;pp.begin();/初始化try while(k=1) system(cls);/清屏 s=pp.mainmenu(); / 调用主菜单函数 switch(s0) case 1:pp.input(); break; /录入列车信息 case 2:pp.show(); break; /浏览列车信息 case 3:pp.found(); break; /查询列车信息 case 4:pp.del(); break; /删除列车信息 case 5:pp.mend(); break; /修改列车信息 case 6:pp.save(); break; /保

21、存列车信息 case 7:pp.about();break; /关于列车时刻查询系统 case 0:k=0;break; /退出系统 if(k=1) coutk; if(!cin)throw string(数据输入错误); if(k=0) if(pp.getkey()=1) coutk; if(!cin)throw string(数据输入错误);软件工程课程设计 14 if(k=1) pp.save(); pp.clear(); k=0; catch(string s)couts,为保护系统不崩溃,将自动退出系统!endl;system(pause); return 0; 【 实实 验验 二二

22、同学录管理系统 】软件工程课程设计 15 目目 录录一实验内容及目的:一实验内容及目的:.16二系统设计目标二系统设计目标.16三实验原理:三实验原理:.17四实验方案:四实验方案:.171.设计思想.172.设计原则.173.设计策略.18五实验过程:五实验过程:.181.系统分析.182 系统功能模块设计.183 系统流程图.19五编码设计五编码设计.22六试验结果与分析六试验结果与分析.22七软件测试:七软件测试:.26八实验中遇到的问题及解决方法:八实验中遇到的问题及解决方法:.26九实验总结:九实验总结:.26附录一:附录一:软件工程软件工程进度安排表进度安排表.26附录二:同学录程

23、序源代码附录二:同学录程序源代码.28软件工程课程设计 16 一实验内容及目的:一实验内容及目的:通过设计一个同学录管理系统,进一步熟悉 C+中类的概念、基本知识和技能,类的封装、继承的实现方式。掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对 C+的理解与 Visual C+环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。二系统设计目标二系统设计目标目标:方便毕业学生的联系,既方便通讯信息录入又方便通讯信息的管理1 1 从同学录信息录入者的观点

24、看,要求系统能够达到以下目标:从同学录信息录入者的观点看,要求系统能够达到以下目标:1) 对信息的收集和保存信息。例如:同学的基本信息,同学联系方式信息等。2)同学通讯信息的共享。对那些共享的数据要快速的传递,比较原先手写录入同学的通讯信息更为方便快捷。3)提供准确的信息。要求比手工作业提供的更加准确和细致的数据,例如同学的电话等联系方式信息。2 2 从同学录信息管理者的观点看,要求系统能达到以下的目标:从同学录信息管理者的观点看,要求系统能达到以下的目标:1)通讯信息管理者管理方便,较原先手写通讯录笔记本方便保存管理,数据信息不易丢失。2)有较高的可靠性,学生通讯录信息的输入较原先手写比较不

25、会发生笔误等错误,并具有快速恢复的能力。3)具有较高的运行效率,比人工作业效率有所提高。4)实现学生通讯信息报表的自动生成。5)具有较强的可维护性和扩充性,同时更加方便查询所要查找的同学的通讯信息。三实验原理:三实验原理: C+中类的概念、基本知识和技能,类的封装、继承的实现方式。软件工程的基本设计概念。软件工程课程设计 17 四实验方案:四实验方案:1. 1.设计思想设计思想(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以

26、数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。2. 2.设计原则设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:(1)合法性原则:依据软件开发系统的工作规定以及要求,参照系统设计的工作情况,进行诸如数据录入、添加等工作。(2)实用性原则:适合通讯信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度不超限等)。(3)易操作原则:要求设计的系统功能齐全

27、,界面友好,操作方便,必要的地方进行提示。(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。(6)优化原则:为了达到优化的目的,自定义函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。3. 3.设计策略设计策略本系统的设计的结构是采用分模块化的思想,将学生通讯录管理系统分为信息录入者和信息管理者两个大的方面,再在各个方面设计功能模块,具体实施对系统功能的实现。对高层模块,将使用以事务为中心的设计策略,把一个的复杂的系统逐步分解成较小软件工程课程设计 18 的相对简单,易操作的简便功能模块;对低层模块,采用以多要求为

28、中心的设计策略即实现同一种功能可以采用不同的实现路径。此外,为了提高模块的可读性,对于部分功能代码注解和分块,从而既实现功能函数的独立性和程序的可读性,使系统具有很高的可修改性,得以系统能够更加的完善。五实验过程:五实验过程: 1. 1.系统分析系统分析 根据设计需求,系统包括的功能模块有主菜单模块,新增信息,删除信息,修改信息,查询信息,保存信息,预览信息,清空同学录,统计信息 八个模块。各模块的功能描述:1.主菜单模块,是用于控制整个系统的正常运行。2.新增信息是用于在程序开始的时候输入学生的基本信息。3.删除信息是为了方便用户删除无用信息。4.修改信息是对已录入信息进行修改。5.查询信息

29、是为了使用户方便的查询学生的各信息。6.保存信息是将新增的学生信息保存到同学录中,以方便其他功能的实现。 7.预览信息直观表述所有已输入信息。8.清空同学录是将所有已录入的学生信息删除。9.统计信息是将学生信息进行分类统计,方便用户查看。 2 2 系统功能模块设计系统功能模块设计系统的整体框图软件工程课程设计 19 主菜单新增信息删除信息预览信息保存信息查询信息 修改信息 按电话号按 ID 号按姓名清空同学录统计信息同学录管理系统同学录管理系统 3 系统流程图系统流程图1)系统总流程图 软件工程课程设计 20 开 始主菜单 选择 1 、选择 3选择 4选择 5选择 6选择 2增加信息修改信息查

30、询信息预览信息删除信息结束YYYYNNNN N N N Y 保存信息选择 7选择 8清空信息统计信息YYYNN软件工程课程设计 21 2)子模块流程图 修改模块选择1选择2 选择3 选择4 修改姓名修改性别修改年龄修改电话YYYYNNN输入被修改人 ID主菜单选择 3存在此人YN查询模块软件工程课程设计 22 选择1选择2 选择3 选择4 按 ID 号查询按姓名按电话号码退出YYYYNNN查询模块主菜单选择 4五编码设计五编码设计 编码见附录二六试验结果与分析六试验结果与分析 测试过程如下:测试过程如下:(1)主菜单软件工程课程设计 23 输入 1 进入新增信息模块(2)新增信息模块 选择 Y

31、,继续添加其他人员信息,然后进入预览模块查看信息(3)预览信息模块 预览信息正确,然后选择 5 保存信息。(4)保存信息模块软件工程课程设计 24 保存成功后选择 8 统计信息。(5)统计信息模块 (6)删除信息模块 (7)修改信息模块软件工程课程设计 25 (8)查询信息模块 (9)清空同学录模块 软件工程课程设计 26 七软件测试:七软件测试: 功能点数据 期望结果预期结果 备注增加信息学号 姓名 性别 年龄 电话号码 1 yqq 女 21 123451 yqq 女 21 12345相同删除信息学号 1 姓名 2 性别 3 年龄 4 电话号码 1 1 221 1 22相同预览学号 姓名 性

32、别 年龄 电话号码 1 yqq 女 21 12345 1 wy 男 22 1111111 yqq 女 21 12345 1 wy 男 22 111111相同统计 男 女 男 1 女 1 男 1 女 1相同八实验中遇到的问题及解决方法:八实验中遇到的问题及解决方法:在课程设计的过程也碰到的一些问题。其中,不乏一些简单的基础性的错误,如经常输入错误的字母,使程序无法运行,F4 键的使用发挥不到最大功效。数据结构有些方面的知识没能彻底熟练掌握以至于有些功能难以实现。九实验总结:九实验总结:在这次软件工程课程设计中,通过上机操作,充分应用了所学的 C+语言,软件工程的知识,粗略设计出并成功的运行起该系

33、统。这次设计的完成,使我又进一步了解了面向对象,加深了对 C+的认识,充分的将软件工程课本知识进行梳理、整合、融会贯通之后应用到了实际的工作需要中。以实现学以致用,学有所用。同时也增加了我对 C+程序设计的兴趣,激起了学习的热情。当然,由于学艺不精,在课程设计的过程也碰到的一些问题。其中,不乏一些简单的基础性的错误,如经常输入错误的字母,使程序无法运行,但通过这次专业性的练习,相信在以后会有所减少。而关键性问题经常出现在一些函数的使用上,由于对一些函数调用的正确使用不够熟悉,往往也会造成程序无法运行,出现错误如。软件工程课程设计 27 书本知识固然重要,但我们更要学会将书本知识应用到实际的工作

34、中。实践中才会发现错误,也才能改进,才能达到学习的最终目的。这些就是我在这个设计中所得到的体会。附录一:附录一:软件工程软件工程进度安排表进度安排表时间(2011 年 12 月)主要工作内容备注第一阶段4 课时阅读并理解列车时刻查询系统的源程序实验一 第二阶段8 课时需求分析阶段:构思同学录系统该具有的功能,并编写需求分析说明书1.系统调研2.编写可行性报告3.需求分析4.编写需求分析说明书5.系统分析6. 编写系统分析报告实验二 第三阶段4 课时概要设计阶段:写出该系统应该具体的函数模块,定义具体的类,编写概要设计说明书1 概要设计2 编写概要设计说明书实验二第四阶段10 课时详细设计阶段:

35、完成各模块的细化工作,写入具体的函数,编写详细设计说明书1 详细设计2 编写详细设计说明书3 画功能结构图4 模块分析5. 画流程图6. 编写模块代码7. 编写功能代码实验二第五阶段 4 课时系统实施阶段:调试程序并改错,进一步完善各功能模块1 系统测试2 完善各个模块实验软件工程课程设计 28 3 编写测试分析报告4 系统实施5 系统使用说明书二第六阶段 2 课时运行维护阶段:系统完成,投入使用实验二附录二:同学录程序源代码附录二:同学录程序源代码#include#include#include#include#include/#includeusing namespace std;stri

36、ng ID;/具有唯一性class Personprotected: string No; /学号string Age;char Name20; /姓名char Sex10; /性别string Tel; /联系方式Person *next; public: Person(string ID,char *Name,char *Sex,string Age,string Tel) strcpy(this-Name,Name); strcpy(this-Sex,Sex);this-Tel=Tel;this-No=ID; this-Age=Age;friend class Manage;class

37、Manageprivate:软件工程课程设计 29 Person *person;public:Manage()person=0;Load();Manage() Person *p; p=person; while(p) p=p-next; delete person; person=p; person=0; void Find(char Name20);/按姓名查找 void Find(string ID);/按编号查找void Add(); /添加加信息 void Delete(); /删除信息 void Modify(string ID); /修改信息void Query(); /查询信

38、息 void TJ(); /统计信息void Save(); /保存数据 void Load(); /读入数据void Look();/预览void DesTory();/清除文件信息void Output(Person *p)couttt 学号: Noendl;couttt 姓名: Nameendl;couttt 性别: Sexendl;couttt 年龄: Ageendl;couttt 联系电话: Telendl;coutendl;void Manage:Add()system(cls);/清屏Person *p,*p2; /新结点指针 软件工程课程设计 30 string No,Age,

39、Tel;char Name20,Sex10; char c;coutn* 新增信息 *n; /输入学生信息 coutNo; coutNo=No) break; else p1=p1-next; if(p1!=NULL)cout该学号已存在,是否修改该学生信息(Y/N) c;if(toupper(c)=Y)cout该学生信息为:endl;Find(No);coutendl;Modify(No);return ;elsereturn ;coutName; coutendl;coutSex;coutendl;软件工程课程设计 31 coutAge;coutendl;coutTel;coutnext=

40、0;/学生结点加入链表 if(person) /若已经存在结点 p2=person; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; /连接 else /若不存在结点(表空) person=p; /连接 system(cls);coutttt *添加成功*nendl;cout是否继续添加(Y/N) c;if(toupper(c)=Y)Add();return ;elsereturn ;void Manage:Delete() /删除人员 system(cls);char c;string No; coutn* 删除信息 *n; coutNo; cout

41、No=No) break; else p2=p1; p1=p1-next; /删除结点 if(p1!=NULL)/若找到结点,则删除 cout所要删除的学生的信息如下:nendl;Output(p1);coutc;if(toupper(c)!=Y)return;/system(pause);if(p1=person) /若要删除的结点是第一个结点 person=p1-next; delete p1; else /若要删除的结点是后续结点 p2-next=p1-next; delete p1; couttt*删除成功*n;cout是否继续删除(Y/N) c;if(toupper(c)=Y)Del

42、ete();return ;elsereturn ; else /未找到结点 软件工程课程设计 33 coutNo=ID) break; else p1=p1-next; if(p1!=NULL) /若找到结点 system(cls);cout所要修改的学生的信息如下:nendl;Output(p1);docout1. 修改姓名 2. 修改性别 3. 修改年龄 4. 修改联系方式 5. 退出修改 nendl;cout请选择(1-5)要修改的信息nc;if(c!=5)coutp1-Name; break;case 2: cinp1-Sex; break;case 3: cinp1-Age; br

43、eak;case 4: cinp1-Tel; break;default: break;while(c!=5);system(cls);coutt *修改成功*nendl;cout是否继续修改(Y/N): c;if(toupper(c)=Y)软件工程课程设计 34 coutID;coutendl;Modify(ID);return ;elsereturn ; else /未找到结点 cout未找到该学生!n; getch();/暂停 void Manage:Save() /数据写入到文件 ofstream fPerson(Person.txt,ios:out); char c; coutc;

44、if(toupper(c)!=Y)return; Person *p=person; while(p) fPersonNo Name Sex Age Telnext; fPerson.close(); coutNoNameSexAgeTel;while(fPerson.good() 软件工程课程设计 35 p=new Person(No,Name,Sex,Age,Tel);p-next=0; /员工结点加入链表 if(person) /若已经存在结点 Person *p2; p2=person; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; /连接

45、else /若不存在结点(表空) person=p; /连接 fPersonNoNameSexAgeTel;fPerson.close(); void Manage:Find(string ID)Person *p1;p1=person;while(p1) if(p1-No=ID) break; else p1=p1-next; if(p1!=NULL)Output(p1);elsecout未找到该学生Name,Name)=0)count+;Output(p1);p1=p1-next; if(count)coutt 查询成功!endl;coutn 共找到 count 个名字为 Name 的同学

46、nendl;elsecoutntt 未找到该学生!nendl;void Manage:Query()char c;string ID,Tel;char Name20;docout1. 按学号查找 2. 按名字查找 3. 按电话号码查找 4.退出查找c;/system(cls);coutendl;switch(c)case 1: coutID;Find(ID); ; break;case 2: coutName;Find(Name); ; break;case 3: cout输入电话号码 TelTel;Find(Tel);break;case 4:break;default: cout输入有误

47、请重新输入!nendl;while(c!=1&c!=2&c!=3&c!=4);coutttt *查找成功*nendl;cout是否继续查找(Y/N) c;if(toupper(c)=Y)Query();return ;elsereturn ;system(pause);void Manage:Look()/设置字体颜色SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);system(cls);Person *p1;int count=0;char c;p1=person;while(p1) coutID: Not 姓名: Namenext; if(count!=0)coutntt 预览成功! nendl;coutc;if(toup

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论