C++课程设计报告简单的通讯录.doc
《C++课程设计报告简单的通讯录.doc》由会员分享,可在线阅读,更多相关《C++课程设计报告简单的通讯录.doc(16页珍藏版)》请在三一办公上搜索。
1、南京航空航天大学C+课程设计报告学号:姓名: 一、程序简介二、程序功能介绍三、源程序四、编程心得及其展望*一、 程序简介:*简单的通讯录*1、 Add recrd;2、 Delete Record;3、 Display All record;4、 Query by Name;5、 Modify Record;6、 Add from a Text File;7、 Write to a Text File;8、 Sort;9、 Quit;请选择(19):* 此程序是对一个简单的通讯记录进行管理。用户根据以上的各个选项卡进行想要的数据操作,每一个选项都有相关的提示输入输出,简单明了,甚是清晰。根据程
2、序可以对一个有序链表进行如下操作:1、 增加一个有序的通讯记录;2、 删除通讯记录上的一个记录;3、 显示通讯录上所有的记录;4、 按姓名查找有关的记录;5、 输入要修改的姓名查找到后对其进行修改;6、 从写好的一个正文文件中批量增加记录并排序;7、 把通讯录上所有记录写入到一个文件内进行保存;8、 修改当前的排序关键字;9、 退出程序并把本次所有记录写入到二进制文件中。下面是对改程序进行相关介绍。二、程序功能简介: 此程序为一个简单的通讯录。通讯录是一个简单的数据库,每一个记录包含一个人的所有信息(本程序中信息包含:姓名、办公室电话、家庭电话、手机号码、EMail地址)。用于管理一个小群体的
3、通讯记录。程序的执行过程为:显示主菜单,用户通过在Choice:处输入选项(本程序为19的数字选项),按回车后接入相关程序段进行执行!下面对本程序的19个选项进行简单的说明:1、 Add Record(增加记录):程序执行时,有相关的提示输入。每次输入一个人的相关数据信息,新记录加入后通讯录按指定的排序顺序排序。本程序中,最初默认按“姓名“进行排序,但是后面的8 Sort选项可以进行相应的排列顺序修改(如改为按“办公室电话“进行排序)。2、 Delete Record(删除记录): 如果要对已建通讯录中的某个人的信息进行删除操作,则选2. 输入待删除记录的姓名,显示该姓名的所有信息,让用户确认
4、是否要删除。3、 DisplayAll Record(显示所有的记录):执行时程序按设定的排列顺序对通讯录中的所有记录进行显示,每显示10条记录,暂停,用户按键继续。4、 Query By Name(按姓名进行查询并显示该记录):用户根据执行程序时的相关提示,输入要查询记录的姓名,系统根据输入的姓名在已建立的通讯录中查找该记录并且显示在屏幕上。5、 Modify Record(按姓名查找并进行修改):用户根据执行程序时的提示信息输入要修改的记录的姓名,系统根据输入的信息在已建立的通讯记录中查找相关的记录。本程序段是查找到要修改的记录后显示出来,然后提示用户重新输入该记录的信息(所有信息)。然后
5、重新插入到原有通讯录中重新排序。6、 Add From A Text File(从正文文件中批量添加记录到通讯表中): 此程序段是提供给用户事先在建立好的一个文本文件中输入相关的记录,然后通过此选项卡插入到通讯表中。 程序执行是需要用户输入正文文件名。输入程序从相关的文件中追加记录。7、 Write To A Text File(将通讯表中的数据写入到正文文件中): 通过该选项用户可以把通讯表中的记录逐一写入到文本文件中保存起来。用户需要输入一个文本文件的名字即可,系统将通讯表中的所有记录写入该文件中。8、 Sort(重新设置排序格式): 首先显示当前的排序关键字,然后提示是否需要修改,用户根
6、据需要回答是否需要修改。 程序中有两种吧、排序格式,一种按姓名牌关键字为“1“,第二种为按办公室电话排序,关键字为”2“。改变排序方式的意义是在两种排序方式间的变换。9、 Quit (退出系统): 退出系统是,系统根据程序自动把所有数据写入到二进制文件中,在下一次执行时,系统会由主函数自动把该二进制文件中的记录读入到通讯表中来。下面为程序的主页面:三、源程序:1、以下为程序段:每个函数都有相关的说明解释。# include # include # include # include # include class Node char Name10; int OfficePhone; int H
7、omePhone; char MobilePhone15; char Email20; Node *Next;public: Node(char *name= ,int op=0,int hp=0,char *mp= ,char *email= ,Node *next=NULL); void Show() coutsetw(10)Namesetw(11)OfficePhonesetw(11)HomePhone setw(15)MobilePhonesetw(20)EmailNext=NULL;else TailPtr-Next=p; TailPtr=p; p-Next=NULL;void Ad
8、drList:AddSort(Node *p) /将p指向的结点按Tag指定的顺序插入到链表中 Node *p1,*p2;if(Tag=1)if(HeadPtr=NULL)HeadPtr=p;TailPtr=p;p-Next=NULL;return;if( strcmp(p-Name,HeadPtr-Name)Next=HeadPtr;HeadPtr=p;return;p1=p2=HeadPtr;while(strcmp(p-Name,p2-Name)0 & p2-Next!=NULL)p1=p2;p2=p2-Next;if(strcmp(p-Name,p2-Name)0) p2-Next=p
9、;p-Next=NULL;TailPtr=p;elsep-Next=p2;p1-Next=p;return;else if(Tag=2)if(HeadPtr=NULL)HeadPtr=p;TailPtr=p; p-Next=NULL;return;if( (p-OfficePhone)OfficePhone) )p-Next=HeadPtr;HeadPtr=p;return;p1=p2=HeadPtr;while(p-OfficePhone)(p2-OfficePhone) & (p2-Next!=NULL)p1=p2;p2=p2-Next;if(p-OfficePhone)(p2-Offic
10、ePhone) p2-Next=p;p-Next=NULL; TailPtr=p; else p-Next=p2; p1-Next=p; return;Node * AddrList:LookUp(char *name) /按姓名查找结点,返回该结点指针 Node *p; p=HeadPtr; while(p!=NULL) if( strcmp( p-Name,name )=0 ) return p; p=p-Next; return NULL;void AddrList:Delete(char *name) /删除指定姓名的结点 Node *p1,*p2; if( HeadPtr=NULL
11、) cout链表为空,无记录可删除!Name,name)=0 ) p1=HeadPtr; HeadPtr=HeadPtr-Next; delete p1; cout已删除相关信息!Next; while(strcmp(p2-Name,name)!=0 & p2-Next !=NULL ) p1=p2; p2=p2-Next; if( strcmp( p2-Name,name )=0 & p2) p1-Next=p2-Next; delete p2; cout已删除了相关信息!endl; else cout链表上没有找到要删除的结点!Next; AddSort(p1); p1=p2; TailP
12、tr-Next=NULL;void AddrList:ShowAll() /显示全部结点,每10个显示一屏 system(cls); if(HeadPtr=NULL) cout链表为空,没有记录可显示!endl; else Node *p; int n=0; coutsetw(10)姓名setw(11)办公室电话setw(11) 家庭电话setw(15)手机号码setw(20)E-Mail地址Show(); p=p-Next; n+; if(n%10=0) system(pause); system(cls); coutsetw(10)姓名setw(11)办公室电话setw(11) 家庭电话s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 报告 简单 通讯录
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2384439.html