程序设计综合课程设计报告通讯录系统_第1页
程序设计综合课程设计报告通讯录系统_第2页
程序设计综合课程设计报告通讯录系统_第3页
程序设计综合课程设计报告通讯录系统_第4页
程序设计综合课程设计报告通讯录系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、 华科学院信息管理与信息系统专业程序设计综合课程设计报告 (2011/2012学年 第一学期)学生姓名: 学生班级: 信管102201h学生学号: 指导教师: 2011年12月30日目 录一 课程设计目的 1二 课程设计任务和内容 1三 系统设计方案 2 3.1系统详细描述23.2功能模块划分2四 系统实现与测试 34.1 流程图 34.2 数据结构表 44.3 使用说明与调试结果 44.3.1 使用说明 44.3.2 调试结果 5五 优缺点分析 8六 参考文献 8七 附录 9一、课程设计的目的1) 学习综合运用c高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的能力,进一步巩固、加

2、深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。2) 全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3) 掌握程序设计中的常用算法和c语言的编程技巧和上机调试程序的方法。4) 在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。二、课程设计任务和内容按照如下要求,运用c+语言,编写一套可用的较为完善的通讯录管理系统软件1)增加通讯录基本信息。2)删除指定的学生的基本信息。3)修改指定的通讯录基本

3、信息。4)查询指定的学生信息。5)储存与载入基本信息。6)预览比较详细的信息。7)删除已载入的所有的信息。8)统计男女的人数,以及总人数。三、系统设计方案3.1系统详细描述3.1.1系统设计背景随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。3.1.2系统设计详细信息 能够准确地记录职工的相关信息。 系统界面友好、操作简单易行,查询灵活方便,数据储存安全可靠。 系统维护安全、方便、可靠,并且能够实现实用性,先进性的要求。

4、除了前面所述,我们所开发的系统还应该具有以下功能: 原始数据修改简单方便; 方便的数据查询; 删除数据方便简单,稳定性好; 数据计算自动完成,尽量减少人工干预;3.2功能模块划分3.2.1功能模块描述模块一:增加人员函数add();增加通讯录基本信息。模块二:删除人员函数delete();删除指定的学生的基本信息。模块三:修改人员函数modify();修改指定的通讯录基本信息。模块四:查询人员信息函数query();查询指定的学生信息。模块五:数据存盘,载入函数save()以及load();储存与载入基本信息。模块六:预览数据void look();预览比较详细的信息。模块七:删除通讯录voi

5、d destory();删除已载入的所有的信息。模块八:基础数据设置函数void tj();;统计男女的人数,以及总人数。本通讯录采用了面向对象的程序设计方法。所有的方法均以类为基础。所涉及到的类包括:class person 基本员工类;该类是一个基类,设置了属于保护类的职工基本属性,以及构造函数person(char id,char *name,int duty)。可以给职工类型继承。class manage 管理类;该类定义了管理函数,即前文所述八个模块功能的实现方法,链表的使用也包括其中。此类的作能在于将所有功能模块集成并定义本系统使用的主要方法。四、系统实现与测试4.1流程图开始定义

6、变量数据处理调用输出函数yn输入c的值c=1&cnext,指向第二个结点;下图示范了删除第一个节点之后的显示结果:如果删除的是第i个(0 i n)就把下一个结点地址赋给前一个结点地址;如果找不到对应的id,则不会删除任何一个记录,并输出“未找到!”。指令“3修改人员”代表调用修改人员函数modify(),体统根据操作者输入的id找到对应的记录,将新输入的数据对应地赋给要修改的各成员。指令“5保存数据”表示调用存盘函数save(),输入“y”或者“n”以进一步操作。指令“8统计”,调用tj();函数,按照男、女统计人数:指令“7清除通讯录”,调用destory()清除已存数据:五、优缺点分析优点

7、: 系统中包含了输入、输出、保存、删除、查询、修改等多种功能,系统操作灵活性较强,功能较强大; 可以随意地选择不同的指令进行操作; 排版效果清晰明了,美观; 操作简单方便。缺点: 由于该系统对数据采用文本保存方式,所以安全性不可靠。 采用链表结构操作,不能支持超大量的数据,否则运行缓慢。六、参考文献1谭浩强,c+程序设计,清华大学出版社, 2011。2郑莉,c+程序设计(第三版),清华大学出版社, 2005。 3钱能,c+程序设计教程,清华大学出版社, 2004。4武俊亮,visual c+课程设计与系统开发案例,清华出版社。5黄维通,visual c+程序设计教程,清华大学出版社, 2005

8、。七、附录:通讯录系统源码#include#include#include#include#include/#includeusing namespace std;string 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);

9、 strcpy(this-sex,sex);this-tel=tel;this-no=id; this-age=age;friend class manage;class manageprivate: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(); /

10、添加加信息 void delete(); /删除信息 void modify(string id); /修改信息void query(); /查询信息 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(

11、)system(cls);person *p,*p2; /新结点指针 string no,age,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;cou

12、tendl;coutage;coutendl;couttel;coutnext=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

13、;string no; coutn* 删除信息 *n; coutno; coutno=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*删除成功

14、*n;cout是否继续删除(y/n) c;if(toupper(c)=y)delete();return ;elsereturn ; else /未找到结点 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;

15、break;case 3: cinp1-age; break;case 4: cinp1-tel; break;default: break;while(c!=5);system(cls);coutt *修改成功*nendl;cout是否继续修改(y/n): c;if(toupper(c)=y)coutid;coutendl;modify(id);return ;elsereturn ; else /未找到结点 cout未找到该学生!n; getch();/暂停 void manage:save() /数据写入到文件 ofstream fperson(person.txt,ios:out);

16、char c; coutc; if(toupper(c)!=y)return; person *p=person; while(p) fpersonno name sex age telnext; fperson.close(); coutnonamesexagetel;while(fperson.good() 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; /

17、连接 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 的同

18、学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输入有误

19、请重新输入!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

20、 count=0;char c;p1=person;while(p1) coutid: not姓名: namenext; if(count!=0)coutntt预览成功! nendl;coutc;if(toupper(c)=y)query();return;elsereturn ;elsecout尚未创建通讯录,是否创建(y/n)c;if(toupper(c)=y)add();return;elsereturn ;void manage:destory()/设置字体为红色setconsoletextattribute(getstdhandle(std_output_handle),foregr

21、ound_intensity | foreground_red);char c;system(cls);coutnttt* 清除信息 *n;cout警告:n 清除通讯录信息会导致您保存的信息完全消失!nendl;cout是否决定清除通讯录信息(y/n): c;if(toupper(c)!=y)return;cout请再次确认(y/n)c;if(toupper(c)!=y)return;elseperson *p; p=person; while(p) p=p-next; delete person; person=p; person=0;/ofstream fperson(person.txt);/fperson.close();system(pause);void manage:tj()person *p1;int count=0,boy=0,girl=0;p1=person;while(p1) count+;if(strcmp(p1-sex,男)=0)boy+;if(strcmp(p1-sex,女)=0)girl+;p1=p1-next; coutn总共有 count份通讯录nendl;cout男生: boyt 女生: gi

温馨提示

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

评论

0/150

提交评论