ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:243.34KB ,
资源ID:28451864      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28451864.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c集中上机报告学生通信录.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c集中上机报告学生通信录.docx

1、c集中上机报告学生通信录c集中上机报告学生通信录 指导教师: 甘玲 姓 名: 何波 学 号: 2018211995 班 级: 0421002 时 间: 2018-11-18 第1章 需求分析 31.1咨询题描述 3 1.2 功能要求 3 1.3 咨询题的解决方案 3第2章 系统设计 4 2.1 数据设计 4 2.1.1 类设计 4 2.1.2 类之间的关系 5 2.1.3 函数设计 5 2.2 结构设计 6 2.2.1 模块设计 6 2.2.2 模块功能星系描述 62.2.3 系统流程图 8第3章 系统实现 9 3.1 类实现 9 3.2 函数实现 11 3.3 主函数实现 27第4章 系统测

2、试 28 4.1 模块测试 28 4.2 课程设计过程中遇到的咨询题 33总结 34第1章 需求分析1.1 咨询题描述用C+开发一个学生通信录系统。要求:分析学生通信录的类及层次图;实现简单的通信录治理,能够输入通信录卡片(实现增、删、改等功能),能够分组,并能够实现按名字(或其他方式)查询功能;实现界面:能够是DOS界面,功能按提示方式输入实现;能够是Windows界面,功能用菜单形式,输入界面用对话框形式。1.2 功能要求本程序的功能是为用户提供简单的通讯录进行治理,通过该程序储备联系人信息,提供按类不查找功能,能够对数据进行修改、删除、添加等操作。综合考虑,作为一个学生通讯录系统,系统应

3、该具备以下功能:1.新增联系人信息; 2.修改联系人信息;3.删除联系人信息;4.按不同的项进行查找某个联系人的信息;5.从文件读入通讯录。6.将通讯录写入文件;7.清除文件中的所有信息。1.3 咨询题的解决方案依照系统功能要求,能够将咨询题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)依照咨询题描述,设计系统的类层次; (3)完成类层次中各个类的描述; (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告。 第2章 系统设计2.1 数据设计2.1.1 类设计一共设计了2个类,分不是差不多信息类b

4、asiciInfo,学生类Student。 basiciInfo# Name:char # No:string # classNum :string # Age:string # Sex:char # Tel:string; # address:char # next:basiciInfo *+ basiciInfo(char *,string ,string ,string ,char * ,string ,char * )+ friend class StudentStudent- ptb:basiciInfo *+ Student()+ Student()+ Search(char):v

5、oid+ Search(string):void+ Insert():void+ Delete():void+ Modify():void+ Query():void+ Count():void+ Save():void+ ReadFile():void+ ShowAll():void+ DesTory():void+ Output(basiciInfo *):void2.1.2 类之间的关系本程序中定义了差不多信息类basiciInfo,包含了表示学生差不多信息的数据成员,包括姓名、学号、班级年龄、性不、电话和地址; 学生类Student中则定义了各种操作,包括添加、删除、修改联系人的信息等

6、等。程序中学生类Student定义为差不多信息类basiciInfo的友元类,如此学生类中的各个函数便能够访咨询差不多信息类中的各个差不多信息了。2.1.3 函数设计定义了如下函数,其功能分不如下: void Search(char Name20); /按姓名查找联系人 void Search(string No); /按学号查找联系人 void Insert(); /添加联系人信息 void Delete(); /删除联系人信息 void Modify(); /修改联系人信息 void Query(); /查询联系人信息 void Count(); /统计联系人信息 void Save();

7、 /储存数据 void ReadFile(); /读入数据 void ShowAll(); /查看所有联系人信息 void DesTory(); /清除文件信息 void Output(basiciInfo *p); /输出某一结点的信息2.2 结构设计2.2.1 模块设计系统功能模块图本次程序设计要紧设计了八个模块。分不是:1.新增联系人模块:用函数void Insert()实现 2.删除联系人模块:用函数void Delete()实现 3.修改联系人模块:用函数void Modify()实现 4.查询模块:用函数void Query()实现 5.储存数据模块:用函数void Save()实

8、现 6.查看全部信息模块:用函数void ShowAll ()实现 7.清除通讯录模块:用函数void DesTory()实现 8.统计模块:用函数void Count()实现 2.2.2 各模块功能详细描述1.进入主函数进入主函数的主菜单,这是一个无限循环的菜单。当进入主菜单后,用户能够选择以下选项:1. 新增联系人 2. 删除联系人 3.修改联系人 4. 查询详细信息 5.储存数据 6. 查看全部信息7.清除通讯录 8. 统计 0.退出系统2.新增联系人 (1)按照提示依次输入学生信息:学号,姓名,班级,年龄,性不,电话和地址。假如输入的学号差不多存在的话就提示是否修改该学生的信息。这是能

9、够选择Y修改,执行“修改联系人”那个函数;或者选择N回到主菜单。3.删除联系人依照提示输入要删除的联系人的学号,假如找到了该学生,则询咨询是否删除,否则返回主菜单。4.修改联系人 (1)依照提示输入要修改的联系人的学号,假如没有找到该学生,则返回主菜单;否则显示所要修改的联系人的所有信息,并提示用户选择要修改的信息,并输入新的信息,完成修改。(2)用户完成修改后能够输入Y连续修改,也能够输入N回到主菜单。5.查询详细信息用户能够选择按学号、名字、电话号码查找联系人的详细信息。用户选择按某一项功能查找后,系统提示用户输入相应的学号、名字或者电话号码,假如查找成功,则显示该联系人的详细信息,并提示

10、用户是否连续查询;否则返回主菜单。6.储存数据 当用户选择储存数据时,系统将会向文件写入学生通讯录信息,把链表中的结点都储存到文件中。7.查看全部信息从头结点开始输出链表的每一个结点的信息,并按照一定格式进行显示。8.清除通讯录将外部文件中的所有联系人的信息全部删除。建立一个输出流文件用来连接储备信息的文本,将数据储备到文本。9.统计 用户能够通过两种方式系统通讯录中联系人的数目。一是按性不统计,而是按班级统计。假如用户选择按性不统计,系统统计后则输出男生、女生的人数;假如用户选择按班级统计,则会提示用户输入班级号,系统统计后则输出人数。10.退出系统 退出系统前提示用户是否储存所有操作,用户

11、输入Y后系统储存用户的所有操作并退出,用户输入N后直截了当退出系统。2.2.3 系统流程图第3章 系统实现3.1 类实现差不多信息类basiciInfoclass basiciInfo /差不多信息类public: basiciInfo(char *Name,string No,string classNum,string Age,char *Sex,string Tel,char *address); /差不多信息类的构造函数 friend class Student; /友元类 protected: char Name20; /姓名 string No; /学号 string classN

12、um; /班级 string Age; /年龄 char Sex10; /性不 string Tel; /电话 char address50; /地址 basiciInfo *next; /指向下一结点;学生类Studentclass Student /学生类public: Student(); /学生类的构造函数 Student(); /学生类的析构函数 void Search(char Name20); /按姓名查找联系人 void Search(string No); /按学号查找联系人 void Insert(); /添加联系人信息 void Delete(); /删除联系人信息 vo

13、id Modify(); /修改联系人信息 void Query(); /查询联系人信息 void Count(); /统计联系人信息 void Save(); /储存数据 void ReadFile(); /读入数据 void ShowAll(); /查看所有联系人信息 void DesTory(); /清除文件信息 void Output(basiciInfo *p); /输出某一结点的信息private: basiciInfo *ptb; /指向差不多信息类的指针;3.2 函数实现以下是本程序中所有函数的实现:basiciInfo:basiciInfo(char *Name,string

14、 No,string classNum,string Age,char *Sex,string Tel,char *address) /差不多信息类的构造函数的实现 strcpy(this-Name,Name); strcpy(this-Sex,Sex); strcpy(this-address,address); this-No=No; this-classNum=classNum; this-Age=Age; this-Tel=Tel;Student:Student() /学生类的构造函数的实现 ptb=0; ReadFile();Student:Student() /学生类的析构函数的实

15、现 basiciInfo *p; p=ptb; while(p) p=p-next; delete ptb; ptb=p; ptb=0; void Student:Output(basiciInfo *p) /输出某一结点的信息 coutt姓名: Nameendl; coutt学号: Noendl; coutt班级: classNumendl; coutt年龄: Ageendl; coutt性不: Sexendl; coutt电话: Telendl; coutt地址: addressendl; void Student:Insert() basiciInfo *p,*p2; /新结点指针 st

16、ring No,Age,Tel,classNum; char Name20,Sex10,address50; char c; coutnt=新增学生通讯录=n; /输入学生信息 coutNo; basiciInfo *p1; p1=ptb; while(p1) if(p1-No=No) break; else p1=p1-next; if(p1!=NULL) coutc; if(toupper(c)=Y) coutt该学生信息为:endl; Search(No); coutendl; Modify(); return ; else return ; coutName; coutclassNum

17、; coutAge; coutSex; coutTel; coutaddress; p=new basiciInfo(Name,No,classNum,Age,Sex,Tel,address); p-next=0; /学生结点加入链表,插入到尾部 if(ptb) /若差不多存在结点 p2=ptb; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; else /若不存在结点,即为表空 ptb=p; coutnt=添加成功=nendl; coutc; if(toupper(c)=Y) Insert(); return ; else return ;void

18、Student:Delete() /删除联系人信息 char c; string No; coutnt=删除信息=n; coutNo; coutNo=No) break; else p2=p1; p1=p1-next; if(p1!=NULL) /若找到结点,则删除 coutt所要删除的学生的信息如下:nendl; Output(p1); coutc; if(toupper(c)!=Y) return; ptb=p1-next; delete p1; else /若要删除的结点是后续结点 p2-next=p1-next; delete p1; coutt=删除成功=n; coutt是否连续删除

19、(Y/N) c; if(toupper(c)=Y) Delete(); return ; else return ; else /未找到结点 coutt未找到该学生!n; getch();void Student:Modify() /修改联系人信息 basiciInfo *p1; char c; string n; /临时学号 p1=ptb; coutn; while(p1) if(p1-No=n) break; else p1=p1-next; if(p1!=NULL) /若找到结点 coutnt所要修改的学生的信息如下:nendl; Output(p1); do coutn= 修改信息 =

20、endl; coutn1. 修改姓名 2.修改学号 3.修改班级 4. 修改年龄 n5. 修改性不 6. 修改联系方式 7.修改地址 8. 退出修改 nendl; coutc; if(c!=8) coutp1-Name; break; case 2: cinp1-No; break; case 3: cinp1-classNum; break; case 4: cinp1-Age; break; case 5: cinp1-Sex; break; case 6: cinp1-Tel; break; case 7: cinp1-address; break; default: break; if

21、(c!=8) coutc; if(toupper(c)=Y) Modify(); return ; else break; while(c!=8); else coutt未找到该学生!n; system(pause); void Student:Save() /储存联系人信息,写入到文件 ofstream fbasiciInfo(Person.txt,ios:out); char c; coutc; if(toupper(c)!=Y) return; basiciInfo *p=ptb; while(p) fbasiciInfoName No classNum Age Sex Tel addr

22、essnext; fbasiciInfo.close(); coutNameNoclassNumAgeSexTeladdress; while(fbasiciInfo.good() p=new basiciInfo(Name,No,classNum,Age,Sex,Tel,address); p-next=0; if(ptb) /若差不多存在结点 /插入到尾部 basiciInfo *p2; p2=ptb; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; else /若不存在结点 ptb=p; fbasiciInfoNameNoclassNumAgeS

23、exTeladdress; fbasiciInfo.close(); void Student:Search(string No) /按string 类型查找 basiciInfo *p1; p1=ptb; while(p1) if(p1-No=No) break; else p1=p1-next; if(p1!=NULL) Output(p1); else coutt未找到该学生Name,Name)=0) count+; Output(p1); p1=p1-next; if(count) coutt查询成功!endl; coutnt共找到 count 个名字为 Name 的同学nendl; else coutnt未找到该学生!nendl; system(pause); void Student:Query() /查

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1