C 大作业课程设计报告-简单个人电话号码查询系统设计_第1页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、 15 -高级语言程序设计大作业设计报告专 业 测控技术与仪器 班 级 测控09-1 学 号 姓 名 指导教师 完成时间 成 绩 一、设计题目简单个人电话号码查询系统。二、设计目的人们在日常生活中经常需要查找某个人或某个单位的电话号码,本实验将实现一个简单的个人电话号码查询系统,根据用户输入的信息(例如姓名等)进行快速查询。三、设计要求 在外存上,用文件保存电话号码信息; 在内存中,设计数据结构存储电话号码信息; 提供查询功能:根据姓名实现快速查询; 提供其他维护功能:例如插入、删除、修改等。四、设计思想与系统结构说明由于需要管理的电话号码信息较多,而且要在程序运行结束后仍然保存电话号码信息,

2、所以电话号码信息采用文件的形式存放到外存中。在系统运行时,需要将电话号码信息从文件调入内存来进行查找等操作,为了接收文件中的内容,要有一个数据结构与之对应,可以设计如下结构类型的数组来接收数据:const int max=10; struct TeleNumberstring name; /姓名string phoneNumber; /固定电话号码string mobileNumber; /移动电话号码string email; /电子邮箱 Telemax;为了实现对电话号码的快速查询,可以将上述结构数组排序,以便应用折半查找,但是,在数组中实现插入和删除操作的代价较高。如果记录需频繁进行插入

3、或删除操作,可以考虑采用二叉排序树组织电话号码信息,则查找和维护都能获得较高的时间性能。更复杂地,需要考虑该二叉排序树是否平衡,如何使之达到平衡。五、程序清单#include#include#includeusing namespace std;int x=0;char a;int j=1;struct TeleNumber /数据类char name10; /姓名 int phoneNumber; /固定电话号码 int mobileNumber; /移动电话号码 char email10; /电子邮箱int s; TeleNumber * Next;void ReadFile(istrea

4、m & in);void input();void display(); ;void TeleNumber:ReadFile(istream & in) /从文件把数据读入到程序innamephoneNumbermobileNumberemail;void TeleNumber:input() /信息输入 cout请输入姓名name;cout请输入固定电话号码phoneNumber;cout请输入移动电话号码mobileNumber;cout请输入电子邮箱email;s=j+;void TeleNumber:display() /信息输出cout姓名:namet固定号码:phoneNumber

5、t 移动电话号码:mobileNumbert电子邮箱:emailNext=new TeleNumber;End=Head-Next;in.open(TeleNumber.text); /打开外存文件,看是否有数据存在if(!in)cout电话系统中没有任何号码ReadFile(in);if(End-name0=0)break;End-Next=new TeleNumber;End=End-Next;in.close();cout读取电话号码系统成功!endl;cout输入任意字母继续a; TeleMessage:TeleMessage() /释放单链表TeleNumber * temp;whi

6、le(Head-Next!=End)temp=Head-Next;Head=Head-Next;delete temp; delete Head,End; /删除头尾指针void TeleMessage:Save() /保存文件 out.open(TeleNumber.txt); /建立外存文件TeleNumber.txt for(TeleNumber *p=Head-Next;p!=End;p=p-Next)outnametphoneNumbertmobileNumbertemailendl; /将数据存到外存文件里out.close();cout保存成功!name,p1-name);str

7、cpy(temp-email,p1-email);temp-mobileNumber=p1-mobileNumber;temp-phoneNumber=p1-phoneNumber;temp-s=p1-s;strcpy(p1-name,p2-name);strcpy(p1-email,p2-email);p1-mobileNumber=p2-mobileNumber;p1-phoneNumber=p2-phoneNumber;p1-s=p2-s;strcpy(p2-name,temp-name);strcpy(p2-email,temp-email);p2-mobileNumber=temp-

8、mobileNumber;p2-phoneNumber=temp-phoneNumber;p2-s=temp-s;void TeleMessage:Sort() /起泡排序TeleNumber *p=NULL,*q=NULL;int exchange=j-1;int bound;int i;while(exchange)bound=exchange; exchange=0;for(p=Head-Next,i=1;iNext)if(p-mobileNumberp-Next-mobileNumber)Swap(p,p-Next); /调用交换函数exchange=p-s;Show();void T

9、eleMessage:Insert() /插入End-input(); /从单链表尾部插入End-Next=new TeleNumber;End=End-Next;coutendl插入成功endl;void TeleMessage:Remove() /删除char name20;TeleNumber * p=new TeleNumber,*temp=NULL; cout请输入要删除人的姓名:name;p-Next=Search(name); /先进行查找,找到所要删除的结点if(Search(name) temp=p-Next;p-Next=p-Next-Next; /摘链delete tem

10、p;couttt删除成功!endl;elsecouttt没有找到!Next;p!=End;p=p-Next)if(!strcmp(p-name,name) if(x=4)p-display();return p;elsereturn p;if(x=4)cout查无此人endl;return 0;void TeleMessage:Change() /修改信息char name20;coutname;if(Search(name)couttt已找到个人的信息,请输入新的信息!input();cout修改成功!endl; else couttt没有找到!Next;p!=End;p=p-Next)p-

11、display(); int main()bool flag=true;TeleMessage tele;char name20;while(flag)system(cls);cout 简单个人电话号码查询系统endl;cout1.增加电话号码endl;cout2.显示电话号码endl;cout3.排序个人电话endl;cout4.查找个人电话endl;cout5.删除个人信息endl;cout6.修改个人信息endl;cout7.保存个人信息*endl;cout0.退出系统*endl;coutx;switch(x)case 0:flag=false;break;case 1:tele.Ins

12、ert();break;case 2:tele.Show();break;case 3:tele.Sort();break;case 4:cout请输入欲查找认得姓名name;tele.Search(name);break;case 5:tele.Remove();break;case 6:tele.Change();break;case 7:tele.Save();break;cout输入任意字母返回a;return 0;六、运行结果1、开始运行,主菜单:输入任何字符键,按回车建,运行结果:选择“1”,运行结果:选择“2”,运行结果:多次选择“1”,增加多几组电话号码,接着选择“3”,运行结果:5、选择 “4”,运行结果:选择“5”,运行结果:选择“6”,运行结果:8、选择“0”,退出程序。七、体会 经过这次的课程设计,切实感受到自己动手设计程序趣味和困难,花了差不多一周时间,不断地尝试,不同的语句有不同的结果,使用某些语句

温馨提示

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

评论

0/150

提交评论