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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c++课程设计学生通讯录.docx

1、c+课程设计学生通讯录齐鲁工业大学信息学院课 程 设 计 报 告课程名称:程序设计实践 题目名称: 学生通讯录 学生姓名: 仅作参考 专业班级: 指导教师: 1.课程设计目的与任务 1 2.课程设计内容 1 2.1设计题目的主要内容1 2.1.1 目的与要求1 2.1.2具体功能1 2.1.3 模块划分1 2.2设计思想与程序构架 2 2.2.1程序基本架构 2 2.2.2核心子架构 2 2.2.3主程序设计基本思路 4 2.3软件使用说明书5 2.3.1主要功能 5 2.3.2使用方法 5 2.3.3软件优点 5 2.3.4使用对象及服务 5 2.4程序测试及分析 5 2.4.1 程序测试

2、5 2.4.2程序分 6 2.5设计总结 6 3.附录7 3.1主要函数7 3.2数据对象7 4.主要参考资料7 一、课程设计目的与任务课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,通过接近实际项目的训练,锻炼的分析解决实际问题的能力。在设计中,利用学到的编程知识,逐步学习面向对象程序设计中,类的设计,程序的编写,以及调试排错、测试等内容。 从实践中掌握程序设计的方法,提高学生面向应用的实践编程的能力。二、课程设计内容1设计题目的主要内容(1)目的与要求设计一个学生通讯录程序,具有增加数据、修改数据、删除数据、保存数据、查询数据以及简单预览功能。

3、这些功能通过函数实现,通过菜单选择调用函数来实现相应的功能。数据成员包括学号、姓名、年龄、联系方式。(2)具体功能学生通讯录要求设计实现的功能包括增加数据、修改数据、删除数据、保存数据、查询数据以及简单预览功能。增加数据:添加新记录。修改数据:通过学号检索出数据,通过菜单选择修改姓名、修改年龄、修改联系方式。删除数据:通过学号检索出数据,删除该学号学生的相关信息。保存数据:将添加的数据保存到文件,以便下次使用。查询数据:菜单选择通过学号、通过姓名、通过联系方式查询数据详细信息简单预览功能:预览所有学生的简单信息,比如学生的学号、姓名。退出:通过菜单选择结束程序。(3)模块划分学生通讯录要求的设

4、计实现主要通过七个主模块。 模块一:增加人员函数Add();增加通讯录基本信息。模块二:删除人员函数Delete();删除指定的学生的基本信息。 模块三:修改人员函数Modify();修改指定的通讯录基本信息。模块四:查询人员信息函数Query();查询指定的学生的详细信息。模块五:数据存盘,载入函数Save()以及Load();储存与载入基本信息。模块六:预览数据void Look();预览比较简略的信息。模块七:删除通讯录void DesTory();删除已载入的所有的信息。 2设计思想与程序构架(1)程序基本架构 N Y (2)核心子架构 添加新记录函数 Y N N Y N Y 设计思路

5、:增加记录函数的实现首先输入学号,判断该学号是否存在,如果存 在,询问是否修改,调用修改信息函数实现;如果不存在,则继续输入学生的其他 相关信息;然后,询问是否继续添加新记录,如果“是”调用此函数;如果“否” 则返回主菜单。 修改记录 N Y Y N Y N 设计思路:首先根据学号检索出学生信息并输出到显示屏显示出来,然后建立一个子 菜单选择要修改的内容(比如年龄),输入新内容。询问是否修改该学号学 生 的其 他信息,如果“是”则返回子菜单选择修改该学号学生的其他内容(比如姓名) ;如果“否”则询问是否修改其他学号学生信息 ,选择“是”修改其他学号学生信息,选择“否”返回主菜单。 查询详细记录

6、 N Y 设计思路: 第一步,建立一个查询子菜单,第二步,建立查询方式,包括按学号、按姓名、 按联系方式。第三步,将检索出的信息输出到显示屏。第四步,询问是否继续查找, 如果“是”返回子菜单;如果“否”返回主菜单。 (3)主程序设计基本思路 1、根据题目要求分析要使用的数据成员以及要实现的具体功能,将程序分 为几个模块。 2、对每一个模块具体分析,考虑要添加的变量,要使用到的函数以及具体的实 现功能的方法。 3、考虑各个函数的互相调用的方法及实现的功能。从全局出发,对每个函数细 致修改,使其不冲突,实现多个函数相互调用。 4、对界面进行层次化分析,主要是主菜单与子菜单的转换,使其转换方便,整

7、个程序无退出失败现象。 5、对程序进行优化,在关键点进行设置,比如完成某项任务提示“操作成功” 操作不当提示该如何操作;退出、删除提示“是否继续”等。 6、操作界面优化,对在显示器显示的数据进行修改,比如操作界面排版、输出 数据格式、系统提示格式等。 3软件使用说明书 (1)主要功能 通过本软件可建立通讯录,实现添加、修改、预览、删除、保存通讯信息 等功能。是您生活中的好帮手。 (2)使用方法 增加通讯录选择“1”键; 保存通讯录数据设置选择“5”键; 删除通讯录选择“2”键; 预览通讯录选择“6”键; 修改通讯录选择“3”键; 清除通讯录选择“7”键; 查询详细通讯录选择“4”键; 退出请选

8、择“0”键 (3)软件优点 简约、方便、实用、可重复安装使用。 (4)使用对象及服务 使用对象:适合联系对象较多的人群 软件服务:自购买之日三月内免费安装、免费调试。 4程序测试及分析 1、程序测试 (1)运行程序,进入主界面 (2)选择功能“4”,进入查询功能,显示子菜单 (3)选择功能“6”,预览简略信息,查询详细信息选择“y” (4)选择功能“5”,保存信息,保存完成后返回主菜单。 (5)选择功能“7”删除所有信息,删除后返回主菜单。 2、程序分析 (1)、系统中包含了输入、输出、保存、删除、查询、修改等多种功能, 系统操作灵活性较强,功能比较全面; (2)、由于该系统对数据采用文本保存

9、方式,所以安全性不可靠。 (3)、采用链表结构操作,不能支持超大量的数据,否则运行缓慢。5设计总结 通过本次实验,让我对c+有了更系统的认识。编写过程中,更加清楚了结构 化、模块化的益处。系统分析和设计的部分花了比较多的时间,遇到到许多难点,但经过思考和参考资料都顺利解决了。对整个程序而言,怎样把自己的分析转化为 实际的程序代码,是我编写这个程序最困难之处。 这次C+课程设计,提升了我分析问题的能力,对编写程序也有了一个较深刻 的认识,更明白了一个道理:好的程序不是写出来的,而是改出来的。相信这次实 验,将对我以后的学习起到指导作用。三、附录 (1)主要函数 void Find(char Na

10、me20); /按姓名查找 void Find(string ID); /按编号查找 void Add(); /添加信息 void Delete(); /按id删除人员 void Modify(string ID); /修改信息 void Query(); /查询信息 void TJ(); /删除文件信息 void Save(); /保存数据 void Load(); /读入数据 void Look(); /预览 void Output(Person *p) /输出数据 (2)数据对象成员名数据类型长度字段含义Nostring学号Namechar20姓名Agestring年龄Telstring

11、联系方式四、主要参考资料 1谭浩强. c+面向对象程序设计M. 第一版. 北京:清华大学出版社, 2006. 2游洪跃, 伍良富, 王景熙. C+面向对象程序设计实验和课程设计教程M. 第 一版. 北京:清华大学出版社, 2009.源代码#include #include #include #include using namespace std; string ID;class Person protected: string No; /学号 string Age; char Name20; /姓名 char Sex10; /性别 string Tel; /联系方式 Person *next

12、; 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 Manage private: Person *person; public: Manage() person=0; Load(); Manage() Person *p; p=person; while(p) p=p-next

13、; delete person; person=p; person=0; void Find(char Name20);/按姓名查找 void Find(string ID); /按编号查找 void Add(); /添加信息 void Delete(); /按id删除人员 void Modify(string ID); /修改信息 void Query(); /查询信息 void TJ(); /删除文件信息 void Save(); /保存数据 void Load(); /读入数据 void Look(); /预览 void DesTory(); void Output(Person *p)

14、 couttt学号: Noendl; couttt姓名: Nameendl; couttt性别: Sexendl; couttt年龄: Ageendl; couttt联系电话: Telendl; coutendl; ; void Manage:Add() /添加信息 system(cls); Person *p,*p2; /新结点指针 string No,Age,Tel; char Name20,Sex10; char c; coutn*= 新增学生通讯录 =*n; /输入学生信息 coutNo; Person *p1; p1=person; while(p1) if(p1-No=No) br

15、eak; else p1=p1-next; if(p1!=NULL) cout该学号已存在,是否修改该学生信息(Y/N) c; if(toupper(c)=Y) cout该学生信息为:endl; Find(No); /按编号查找 coutendl; Modify(No); /修改信息 return; else return; coutName; coutSex; coutAge; coutTel; p=new Person(No,Name,Sex,Age,Tel); p-next=0; /学生结点加入链表 if(person) /若已经存在结点 p2=person; while(p2-next

16、) /查找尾结点 p2=p2-next; p2-next=p; /连接 else /若不存在结点(表空) person=p; /连接 system(cls); cout *=添加成功=*nendl; cout_endl; cout是否继续添加(Y/N) c; if(toupper(c)=Y) Add(); /添加信息 return; else return; void Manage:Delete() /按id删除人员 system(cls); char c; string No; coutn* 删除信息 *n; cout_endl; coutNo; coutNo=No) break; else

17、 p2=p1; p1=p1-next; /删除结点 if(p1!=NULL)/若找到结点,则删除 cout所要删除的学生的信息如下:nendl; Output(p1); cout_endl; 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_endl; cout是否继续删除(Y/N) c; if(toupp

18、er(c)=Y) Delete(); return; else return; else /未找到结点 coutNo=ID) break; else p1=p1-next; if(p1!=NULL)/若找到结点 system(cls); cout所要修改的学生的信息如下:nendl; cout_endl; Output(p1); do cout1. 修改姓名 endl; cout2. 修改性别 endl; cout3. 修改年龄 endl; cout4. 修改联系方式 endl; cout0. 退出修改 endl; cout_endl; cout请选择(0-4)要修改的信息nc; if(c!=

19、0) coutp1-Name; break; case 2: cinp1-Sex; break; case 3: cinp1-Age; break; case 4: cinp1-Tel; break; default: break; while(c!=0); system(cls); coutt *修改成功*nendl; cout_endl; cout是否继续修改(Y/N): c; if(toupper(c)=Y) coutID; coutendl; Modify(ID); return; else return; else /未找到结点 cout未找到该学生!n; getch(); void

20、 Manage:Save() /数据写入到文件 ofstream fPerson(Person.txt,ios:out); 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) /若已经存在结 Perso

21、n *p2; p2=person; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; /连接 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); else cout未找到该学生Name,Name)=0) count+; Output(p1); p1=

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

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