C通信录管理系统(课程设计)(DOC毕设论文).doc_第1页
C通信录管理系统(课程设计)(DOC毕设论文).doc_第2页
C通信录管理系统(课程设计)(DOC毕设论文).doc_第3页
C通信录管理系统(课程设计)(DOC毕设论文).doc_第4页
C通信录管理系统(课程设计)(DOC毕设论文).doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

程序设计报告(2011/2012学年 第一学期)题 目: 通信录管理系统 专 业 生物医学工程 学 生 姓 名 宋银涛 班 级 学 号 B10090418 指 导 教 师 杨立君 指 导 单 位 地理与生物信息学院 日 期 2011年10月21日 评 分 细 则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简 短 评 语教师签名: 2011 年 10 月 26 日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格目 录一、课题内容和要求21课题内容:22课题要求:2二、需求分析32.1系统概述:32.2问题分析:32.3功能需求描述:3三、概要设计5四、源程序代码8五、测试数据及其结果分析24六、调试过程中的问题及其改进28七、课程设计总结29通信录管理系统一、 课题内容和要求1. 课题内容 用C/C+设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。(1) 查看功能:选择此功能时,列出下列三类选择。A:办公类 B:个人类 C:商务类当选中某类时,显示出此类所有数据中的姓名和电话号码(2) 添加数据功能:能录入新数据,每个结点包括:姓名、电话号码、分类(可能选项有:A为办公类 B为个人类 C为商务类)、电子邮件。例如:杨春商务类 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。a) 拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。b) 修改功能:选中某个人的姓名时,可对此人的相应数据进行修改删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 2.课题要求:(1) 首先自己设计好数据结构及算法; (2) 界面友好,可操作性强,设置管理员用户登录界面,需要输入用户名和口令才能登录管理界面。二、需求分析 通信录管理系统主要对通信录的信息进行添加、修改、删除操作,以及对通信录中的信息实现查询、拨号等功能。并对登录、管理操作界面进行优化,实现人机友好交流。需求分析主要是对该系统的需求、功能以及系统在软硬件环境下运行的状况。2.1系统概述 本系统主要保存的信息有登录用户名、登录密码、注册校验密码、通信录中的姓名、电话、类型、电子邮箱这些数据。所包含的功能有通信录新信息的添加、以保存信息的修改及删除、号码信息的拨号、显示所有信息、显示属于同一类型通讯者的信息、退出。2.2问题分析 首先自己设计好数据结构及算法,界面友好,可操作性强,设置管理员用户登录界面,需要输入用户名和口令才能登录管理界面。2.3功能需求描述1).输入输出的要求 程序运行后,给出3个菜单项的内容和输入提示: 1.登录 2.注册 0.退出 注意:如果登录时重新返回此界面,则密码或用户名不正确! 选择:使用数字0-2来选择菜单项,其他输入则不起作用。当登录成功时,进入通信录管理界面。给出7个菜单项的内容和输入提示: 1.添加新联系人 2.删除联系人 3.修改信息 4.拨号 5.查看联系人 6.关闭通信录 7.显示所有人 选择:使用数字1-7来选择菜单项,其他输入则不起作用。2) .登录功能当选择该菜单时,运行此功能。登录成功后,则进入通信录管理系统,否则不可进入。3) .注册功能运行此功能时,首先进行注册权限的认证输入认证密码(本系统的认证权限密码为“admin”)。注册时密码输入两次,如果一致则注册成功,否则失败重新注册。4) .退出功能 退出运行系统。5) .添加新联系人功能 此功能向系统输入新的联系人信息,并保存在文件pbook.txt中。也可通过修改此文件添加新联系人。6) .删除功能 删除用户所指定的联系人信息。7) .修改功能 通过本功能可以修改通信录中的任何信息。并显示修改前后的信息。8) .拨号功能 向系统中输入想要拨号人的姓名或号码,系统搜索后显示此人信息并拨号发出声音。9) .显示所有人的信息功能在菜单中,选取此功能后屏幕中显示所有人的信息。三、概要设计 1).通信录系统总设计图 程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能。通信录管理系统登录退出注册修改联系人删除联系人拨号联系人显示所有人显示同类人退出系统添加联系人2) .模块流程图a. 添加联系人流程图输入添加联系人信息调用savenew()函数 返回系统菜单b.修改联系人输入修改的联系人姓名或号码读入pbook.txt文件信息输入与读入是否相等 N y文件不存在输入修改后的信息保存文件 返回系统菜单c.注册登录用户名输入注册权限密码与admin是否相等 N Y输入user,code1,codecode!=code n y重新返回登录菜单d.搜索模块(即显示所有人,显示同类人,拨号功能)输入要搜索的信息读出文件pbook.txt中的记录比较输入和读出的记录 n y输出记录没有此信息重新返回系统菜单e以上模块的数据以及函数在类中的声明如下:class bookpublic:book();/默认构造函数char intface();/通讯录管理首页void addperson();/添加联系人void delperson();/删除联系人void alter();/修改信息void press();/拨号void showall();/显示所有信息void savenew();/保存通讯录文件 void show();/显示查询的类型void showA();/显示类型Avoid showB();/显示类型Bvoid showC();/显示类型Cprivate:string name;/姓名string number;/电话string type;/类型string email;/电子信箱;struct recordbook object;/双向链表中的数据域是是一个记录类record *prior;/指向前躯record *next;/指向后继;f.密码模块数据声明: string user;/用户名 string code;/密码 string code1;/注册校对密码函数声明:char intface1(void);/密码登录首页int check(void);/校对登录密码void creat(void);/创建注册密码四、源程序代码 密码登录模块:(password.h)password.h文件定义#ifndef PASSWORD_H#define PASSWORD_Hchar intface1(void);/密码登录首页int check(void);/校对登录密码void creat(void);/创建注册密码#endifpassword.cpp文件定义#include#include#include#include#include#include#includeusing namespace std; string user;/用户名string code;/密码 string code1;/注册校对密码int check(void)/登录密码检测 ifstream infile(code.txt,ios:in);/以读出方式打开文件 if (!infile)/检测文件是否打开 cout endl 对不起!文件找不到! endl; system(pause); return 1; string sign;/定义用户名字符串string sign2;/定义密码字符串 cout endl sign; fflush(stdin); cout endl sign2; fflush(stdin);/消除缓存 int flag=1;/标志string str; while (infile user code)/读出文件中的每条记录 getline(infile, str); if (user=sign)&(code=sign2)/比较密码、用户名是否正确 cout endl ttt登陆成功! endl endl;flag=0; system(pause);/停止比处理,并显示信息return flag; void creat(void)/用户注册system(cls);cout请输入管理员注册权限密码:str1;if(str1=str)cout通过认证!endlendl;coutuser;fflush(stdin);coutcode;fflush(stdin);coutcode1;fflush(stdin);while(code!=code1)/比较两次输入密码cout创建失败!endlcode1;cout创建新用户成功!endl;ofstream outfile(code.txt, ios:app);/追加写得方式打开文件 if (!outfile) cout endl 打开文件失败! endl endl; system(pause); return; outfile setiosflags(ios:left) setw(17) user /写入文件 setw(18) codeendl; outfile.close();/关闭文件coutendl恭喜,新用户以保存好!endl;system(pause);elsecoutendl对不起,您没有注册权限!endl如想注册请联系管理员:943599891endl;system(pause);char intface1(void)/密码登录界面system(cls);/清除屏幕couttt endl tt endl tt endl tt 。 。 通 endl tt 。 。 信 endl tt 。 。 录 endl tt 。 。 系 endl tt | !| 统 endl tt 涛莹精品软件_! endl tt endl;couttttendl ttt 欢迎进入通信录登录系统 endlttt endlttt 1.登录 2.注册 endlttt endlttt 0.退出 endltttendlttt注意:如果登录时重新返回此界面,endlttt则密码或用户名不正确! endlchoose1;fflush(stdin);return choose1;通信录管理系统_B10090418.cpp文件定义#include#include#includepassword.h#include#include#include#include#includeusing namespace std;class bookpublic:book();/默认构造函数char intface();/通讯录管理首页void addperson();/添加联系人void delperson();/删除联系人void alter();/修改信息void press();/拨号void showall();/显示所有信息void savenew();/保存通讯录文件 void show();/显示查询的类型void showA();/显示类型Avoid showB();/显示类型Bvoid showC();/显示类型Cprivate:string name;/姓名string number;/电话string type;/类型string email;/电子信箱;struct recordbook object;/双向链表中的数据域是是一个记录类record *prior;/指向前躯record *next;/指向后继;book:book()/构造函数name=0;number=0;type=0;email=0; char book:intface()/通信录管理界面system(cls);coutendl;couttttendl ttt 通 讯 录 管 理 系 统 endlttt endlttt 1.添加新联系人 2.删除联系人 endlttt endlttt 3.修改信息 4.拨号 endlttt endlttt 5.查看联系人 6.关闭通信录 endlttt endlttt 7.显示所有联系人 endlttt endltttendlchoose;fflush(stdin);return choose;/返回choosevoid book:addperson()/添加新联系人coutendl根据下面提示输入新联系人endlendlname;fflush(stdin);coutnumber;fflush(stdin);couttype;fflush(stdin);coutemail;fflush(stdin);savenew();/保存进文件coutendlendl新联系人以保存好!endlendl;system(pause);void book:delperson()/删除文件里的联系人信息ofstream outfile(temp.txt,ios:out);/以写入打开文件ifstream infile(pbook.txt,ios:in);/以读出打开文件if(!outfile|!infile)coutendl文件不存在!endl;system(pause);return ;string sign;coutendlsign;bool flag=true;string str;while(infilenamenumber)/读入信息记录循环getline(infile,str);/读入信息if(sign=name)|(sign=number)coutendl你想删除的联系人:endlendl;coutsetiosflags(ios:left)setw(17)name numberstrendl;flag=false;break;outfilesetiosflags(ios:left)setw(17)name numberstrendl;if(flag)coutendl对不起!没有你要找的人!endlendl;elsewhile(getline(infile,str)outfilestrendl;outfile.close();infile.close();ofstream out(pbook.txt,ios:out);ifstream in(temp.txt,ios:in);if(!out|!in)coutendl对不起不能打开文件!endlendl;system(pause);return ;while(getline(in,str)outstrendl;out.close();in.close();coutendl这个人的通讯信息已删除!endlendl;system(pause);void book:alter()/修改信息记录 ifstream infile(pbook.txt, ios:in); if (!infile) cout endl 对不起不能打开文件! endl endl; system(pause); return; string sign; cout endl sign; fflush(stdin); string str1; getline(infile, str1); record *H = new record;/记录链表 record *p = H; record *q = H; bool flag = true; while (infile p-object.number p-object.type/读出文件所有记录循环 p-object.email) p-next = new record; p = p-next; p-prior = q; q-next = p; q = p; p-next = NULL; infile.close(); p = H; while (p) if (=sign) | (p-object.number=sign) if (flag) cout endl 你想修改你联系人的信息如下: endl endl; cout setiosflags(ios:left) setw(17) setw(16) object.number setw(10) object.type setw(18) object.email endl; flag = false; cout endl 请根据下面提示修改信息 : endl; cout ; fflush(stdin); cout p-object.number; fflush(stdin); cout p-object.type; fflush(stdin); cout p-object.email; fflush(stdin); break; p = p-next; if (flag) cout endl 你的通迅录中没有你找的联系人! endl endl; system(pause); return; else ofstream out(pbook.txt,ios:out); if (!out) cout endl 对不起!不能打开文件! endl; system(pause); return; out str1 next; while (p) out setiosflags(ios:left) setw(17) setw(16) object.number setw(10) object.type setw(18) object.email next; out.close(); cout endl 信息已经修改完成! endl endl; system(pause); void book:press()/拨号功能 ifstream infile(pbook.txt,ios:in);if(!infile)coutendl文件不存在!endl;system(pause);return ;string sign;coutendlsign;fflush(stdin);bool flag=true;string str;while(infilename)getline(infile,str);if(sign=name)coutendl你想拨号的联系人:endlendl;coutsetiosflags(ios:left)setw(17)name strendl;coutendlendl拨号中.endl;for(int i=0;i=11;i+)couta;flag=false;break;system(pause);void book:showall()/显示所有人信息 ifstream infile(pbook.txt,ios:in); if (!infile) cout endl 对不起!文件找不到! endl; system(pause); return; string record; bool flag = true; while (getline(infile, record) if (flag) cout endl 所有人信息如下: endl endl; coutrecordendl;flag=false;if(flag)coutendl通信录里没有联系人!endlendl;elsecoutendl所有人已全部显示出来!endl;system(pause);void book:showA()/显示类型A ifstream infile(pbook.txt,ios:in); if (!infile) cout endl 对不起!文件找不到! endl; system(pause); return; string sign; cout endl sign; fflush(stdin); string str1; bool flag = true; string str; while (infilenamenumbertypeemail) getline(infile, str); if (type=sign) coutstr1endl; cout setiosflags(ios:left) setw(17) name setw(16) number setw(10) type setw(18) emailstr endl; flag = false; system(pause);void book:showB()/显示类型Bifstream infile(pbook.txt,ios:in); if (!infile) cout endl 对不起!文件找不到! endl; system(pause); return; string sign; cout endl sign; fflush(stdin);string str1; bool flag = true; string str; while (infilenamenumbertypeemail) getline(infile, str); if (type=sign) cout endl endl endl; coutstr1endl; cout setiosflags(ios:left) setw(17) name setw(16) number setw(10) type setw(18) emailstr endl; flag = false; break; system(pause);void book:showC()/显示类型C ifstream infile(pbook.txt,ios:in); if (!infile) cout endl 对不起!文件找不到! endl; system(pause); return; string sign; cout endl sign; fflush(stdin); string str1; bool flag = true; string str; while (infilenamenumbertypeemail) getline(infile, str); if (type=sign) cout endl endl endl;coutstr1endl; cout setiosflags(ios:left) setw(17) name setw(16) number setw(10) type setw(18) emailstr endl; flag = false; break; system(pause);void book:show()/显示同一类函数char ch1;cout你想输出哪一类信息:endl;coutA:办公类 B:个人类 C:商务类 endl;cout请选择:ch1;switch(ch1)case A:showA(); break;case B:showB(); break;case C:showC(); break;default:coutERROR!endl;void book:savenew()/保存入录的信息 ofstream outfile(pbook.txt, ios:app); if (!outfile) cout endl 打开文件失败! endl endl; system(pause); return; outfile setiosflags(ios:left) setw(17) name setw(16) number setw(10) type setw(18) emailendl; outfile.close();/关闭文件enum powerADD = 1, DEL = 2, Alter= 3, PRESS= 4, /通信系统菜单选项定义Search = 5, END = 6,SHOWALL=7;enum power1LOG=1,CRE=2,QUIT=0;/登录系统菜单选项定义int main()/主函数 system(color 27);char choose1; char choose; book abj; while (choose1= intface1() switch (choose1) case LOG:system(cls);while(check()=0)while (choose = face()switch (choose)case

温馨提示

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

评论

0/150

提交评论