您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > c++课程设计学生通讯录
齐鲁工业大学信息学院课程设计报告课程名称:程序设计实践题目名称:学生通讯录学生姓名:仅作参考专业班级:指导教师:目录1.课程设计目的与任务……………………………………………………12.课程设计内容……………………………………………………………12.1设计题目的主要内容………………………………………………12.1.1目的与要求………………………………………………12.1.2具体功能…………………………………………………12.1.3模块划分…………………………………………………12.2设计思想与程序构架……………………………………………22.2.1程序基本架构……………………………………………22.2.2核心子架构………………………………………………22.2.3主程序设计基本思路……………………………………42.3软件使用说明书……………………………………………………52.3.1主要功能…………………………………………………52.3.2使用方法…………………………………………………52.3.3软件优点…………………………………………………52.3.4使用对象及服务…………………………………………52.4程序测试及分析……………………………………………………52.4.1程序测试…………………………………………………52.4.2程序分……………………………………………………62.5设计总结……………………………………………………………63.附录…………………………………………………………………………73.1主要函数……………………………………………………………73.2数据对象……………………………………………………………74.主要参考资料………………………………………………………………7一、课程设计目的与任务课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,通过接近实际项目的训练,锻炼的分析解决实际问题的能力。在设计中,利用学到的编程知识,逐步学习面向对象程序设计中,类的设计,程序的编写,以及调试排错、测试等内容。从实践中掌握程序设计的方法,提高学生面向应用的实践编程的能力。二、课程设计内容1设计题目的主要内容(1)目的与要求设计一个学生通讯录程序,具有增加数据、修改数据、删除数据、保存数据、查询数据以及简单预览功能。这些功能通过函数实现,通过菜单选择调用函数来实现相应的功能。数据成员包括学号、姓名、年龄、联系方式。(2)具体功能学生通讯录要求设计实现的功能包括增加数据、修改数据、删除数据、保存数据、查询数据以及简单预览功能。增加数据:添加新记录。修改数据:通过学号检索出数据,通过菜单选择修改姓名、修改年龄、修改联系方式。删除数据:通过学号检索出数据,删除该学号学生的相关信息。保存数据:将添加的数据保存到文件,以便下次使用。查询数据:菜单选择通过学号、通过姓名、通过联系方式查询数据详细信息简单预览功能:预览所有学生的简单信息,比如学生的学号、姓名。退出:通过菜单选择结束程序。(3)模块划分学生通讯录要求的设计实现主要通过七个主模块。模块一:增加人员函数Add();增加通讯录基本信息。模块二:删除人员函数Delete();删除指定的学生的基本信息。模块三:修改人员函数Modify();修改指定的通讯录基本信息。模块四:查询人员信息函数Query();查询指定的学生的详细信息。模块五:数据存盘,载入函数Save()以及Load();储存与载入基本信息。模块六:预览数据voidLook();预览比较简略的信息。模块七:删除通讯录voidDesTory();删除已载入的所有的信息。2输入C=12设计思想与程序构架(1)程序基本架构NY(2)核心子架构○1添加新记录函数YNNYNY设计思路:增加记录函数的实现首先输入学号,判断该学号是否存在,如果存在,询问是否修改,调用修改信息函数实现;如果不存在,则继续输入学生的其他相关信息;然后,询问是否继续添加新记录,如果“是”调用此函数;如果“否”则返回主菜单。删除单条记录保存记录删除所有记录修改记录运行程序预览查询详细记录调用输出语句显示主菜单输入变量c值C=0&&C=7主菜单调用增加记录函数判断学号是否存在录入学生其他信息输入学号是否继续添加记录询问是否修改信息调用修改信息函数添加新记录退出程序3○2修改记录NYYNYN设计思路:首先根据学号检索出学生信息并输出到显示屏显示出来,然后建立一个子菜单选择要修改的内容(比如年龄),输入新内容。询问是否修改该学号学生的其他信息,如果“是”则返回子菜单选择修改该学号学生的其他内容(比如姓名);如果“否”则询问是否修改其他学号学生信息,选择“是”修改其他学号学生信息,选择“否”返回主菜单。主菜单调用修改信息函数C=3判断是否存在该学号输入学号是否继续修改该学生信息选择修改方式(0-4)是否继续修改输入修改的信息修改姓名修改性别修改年龄修改联系方式退出4○3查询详细记录NY设计思路:第一步,建立一个查询子菜单,第二步,建立查询方式,包括按学号、按姓名、按联系方式。第三步,将检索出的信息输出到显示屏。第四步,询问是否继续查找,如果“是”返回子菜单;如果“否”返回主菜单。(3)主程序设计基本思路1、根据题目要求分析要使用的数据成员以及要实现的具体功能,将程序分为几个模块。2、对每一个模块具体分析,考虑要添加的变量,要使用到的函数以及具体的实现功能的方法。3、考虑各个函数的互相调用的方法及实现的功能。从全局出发,对每个函数细致修改,使其不冲突,实现多个函数相互调用。4、对界面进行层次化分析,主要是主菜单与子菜单的转换,使其转换方便,整个程序无退出失败现象。5、对程序进行优化,在关键点进行设置,比如完成某项任务提示“操作成功”操作不当提示该如何操作;退出、删除提示“是否继续”等。6、操作界面优化,对在显示器显示的数据进行修改,比如操作界面排版、输出数据格式、系统提示格式等。主菜单是否继续查找调用查询信息函数按姓名输出相关信息C=4选择查询方式(0-3)90按学号按联系方式退出53软件使用说明书(1)主要功能通过本软件可建立通讯录,实现添加、修改、预览、删除、保存通讯信息等功能。是您生活中的好帮手。(2)使用方法○1增加通讯录选择“1”键;○5保存通讯录数据设置选择“5”键;○2删除通讯录选择“2”键;○6预览通讯录选择“6”键;○3修改通讯录选择“3”键;○7清除通讯录选择“7”键;○4查询详细通讯录选择“4”键;○8退出请选择“0”键(3)软件优点简约、方便、实用、可重复安装使用。(4)使用对象及服务使用对象:适合联系对象较多的人群软件服务:自购买之日三月内免费安装、免费调试。4程序测试及分析1、程序测试(1)运行程序,进入主界面6(2)选择功能“4”,进入查询功能,显示子菜单(3)选择功能“6”,预览简略信息,查询详细信息选择“y”(4)选择功能“5”,保存信息,保存完成后返回主菜单。(5)选择功能“7”删除所有信息,删除后返回主菜单。2、程序分析(1)、系统中包含了输入、输出、保存、删除、查询、修改等多种功能,系统操作灵活性较强,功能比较全面;(2)、由于该系统对数据采用文本保存方式,所以安全性不可靠。(3)、采用链表结构操作,不能支持超大量的数据,否则运行缓慢。5设计总结通过本次实验,让我对c++有了更系统的认识。编写过程中,更加清楚了结构化、模块化的益处。系统分析和设计的部分花了比较多的时间,遇到到许多难点,但经过思考和参考资料都顺利解决了。对整个程序而言,怎样把自己的分析转化为实际的程序代码,是我编写这个程序最困难之处。这次C++课程设计,提升了我分析问题的能力,对编写程序也有了一个较深刻的认识,更明白了一个道理:好的程序不是写出来的,而是改出来的。相信这次实验,将对我以后的学习起到指导作用。7三、附录(1)主要函数voidFind(charName[20]);//按姓名查找voidFind(stringID);//按编号查找voidAdd();//添加信息voidDelete();//按id删除人员voidModify(stringID);//修改信息voidQuery();//查询信息voidTJ();//删除文件信息voidSave();//保存数据voidLoad();//读入数据voidLook();//预览voidOutput(Person*p)//输出数据(2)数据对象四、主要参考资料[1]谭浩强.c++面向对象程序设计[M].第一版.北京:清华大学出版社,2006.[2]游洪跃,伍良富,王景熙.C++面向对象程序设计实验和课程设计教程[M].第一版.北京:清华大学出版社,2009.源代码#includeiostream#includefstream#includestring#includeconio.husingnamespacestd;stringID;classPerson{成员名数据类型长度字段含义Nostring学号Namechar20姓名Agestring年龄Telstring联系方式8protected:stringNo;//学号stringAge;charName[20];//姓名charSex[10];//性别stringTel;//联系方式Person*next;public:Person(stringID,char*Name,char*Sex,stringAge,stringTel){strcpy(this-Name,Name);strcpy(this-Sex,Sex);this-Tel=Tel;this-No=ID;this-Age=Age;}friendclassManage;};classManage{private:Person*person;public:Manage(){person=0;Load();}~Manage(){Person*p;p=person;while(p){p=p-next;deleteperson;person=p;}person=0;}voidFind(charName[20]);//按姓名查找voidFind(stringID);//按编号查找voidAdd();//添加信息9voidDelete();//按id删除人员voidModify(stringID);//修改信息voidQuery();//查询信息voidTJ();//删除文件信息voidSave();//保存数据voidLoad();//读入数据voidLook();//预览voidDesTory();voidOutput(Person*p){cout\t\t学号:p-Noendl;cout\t\t姓名:p-Nameendl;cout\t\t性别:p-Sexendl;cout\t\t年龄:p-Ageendl;cout\t\t联系电话:p-Telendl;coutendl;}};voidManage::Add()//添加信息{system(cls);Person*p,*p2;//新结点指针stringNo,Age,Tel;charName[20],Sex[10];charc;cout\n*===新增学生通讯录===*\n;//输入学生信息cout输入学号:\t;cinNo;Person*p1;p1=person;while(p1){if(p1-No==No){break;}else{p1=p1-next;}}if(p1!=NULL){cout该学号已存在,是否修改该学生信息(Y/N)endl;10cinc;if(toupper(c)=='Y'){cout该学生信息为:endl;Find(No);//按编号查找coutendl;Modify(No);//修改信息return;}elsereturn;}cout输入姓名
本文标题:c++课程设计学生通讯录
链接地址:https://www.777doc.com/doc-6108164 .html