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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

简单的通讯录实验报告.docx

1、简单的通讯录实验报告 课程设计说明书本科毕业设计(题 目:简单通讯录程序学生姓名:李天罡学 院:工学院专 业:数字媒体技术班 级:2011级指导教师:王金祥二一二 年 十 月 引言 在计算机和电子通信技术迅速发展的今天,人们之间的交流也越来越频繁,世界变的越来越小,手工记录他人联系方式的方法显得更加麻烦,而且还不易维护。因此,本系统开发出电子版的通讯录管理系统,方便用户对他人记录信息的查找和保存。本系统的开发主要分为4个部分,包括C+程序设计、需求分析、系统设计和测试。通过开发过程的深入,不断加深对系统的理解,完善系统的功能,此外大量的测试工作,也保证了系统的稳定性和安全性。本通讯录管理系统采

2、用了单链表的数据结构,很方便的实现对记录进行插入、删除、排序,使物理位置上不连续的存储单元,在逻辑上的次序是固定的,这样不但节省空间,也避免了排序时大量的移动数据,十分灵活,能够较好地完成记录的添加、删除、修改、显示和保存等功能。总之,本通讯录管理系统不仅和手工同学录管理系统相比有很大优势,同时按关系显示功能,一定程度上实现了对记录的分类;按姓名查找和按电话号码查找(自动识别是固定电话号码还是移动电话号码)功能的设计,也确实给人们日常生活带来了方便,这样使本系统和其他电子通讯录相比也有自己特有的优势,是一个功能较为完善的通讯录管理系统。 第一章 需求与分析软件需求分析就是把软件计划期间建立的软

3、件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。1.1开发环境1.1.1软件环境Window 7操作系统1.1.2硬件环境计算机硬件:Intel 酷睿i5 2G内存1.1.3开发平台通讯录管理系统在Microsoft Visual C+ 6.0上实现,开发工具是面向对象语言。1.2功能需求1.2.1数据字段姓名、电话号码、学号1.2.2主要功能(1)对记录的录入、删除、显示、查询、修改和排序;(2)与数据库连接,实现通讯录记录信息的保存于读取;(3)退出系统时保

4、存信息,以便下次打开系统时进入目前的工作状态。 第二章 总体设计 2.1流程图1. 添加联系人2修改联系人 t=02.2主要模块功能介绍2.2.1选择模块选择功能 该功能的设计,不仅可以在拨出电话前,实现查找某人信息的功能;同时,如果收到某个未接电话,知道该电话的号码却却不知道该电话是谁打来的,则可通过电话查询功能,查找拨打该电话的人的信息。2.2.2增添删减模块添加或者删减或修改联系人,改模块,可以分别实现对记录姓名、固定电话、移动电话、住址、email地址和与操作者关系的修改,修改的同时,保证修改后的信息符合记录信息的约束限制。2.2.3查询模块查询联系人其中按姓名查询,是根据输入待查记录

5、的姓名,查询该记录的信息。而电话查询,则是根据输入的电话号码,查询该记录的信息,系统将自动识别是输入的固定电话号码还是移动电话号码。2.2.4排序模块联系人的排序整理其中按姓名查询,是根据输入待查记录的姓名,查询该记录的信息。第三章 详细设计详细设计阶段的根本任务是确定应该怎样具体地实现所要求的系统,也就是说,通过对软件结构进行细化,得到每个模块详细的数据结构和算法。详细设计阶段的任务是要设计出程序的“蓝图”,此设计阶段的结果基本上决定了最终的程序代码的质量。因此衡量程序的质量,不仅要看它的逻辑是否正确、性能是否满足要求,更主要的是要看它是否容易阅读和理解。结构化程序设计技术是实现上述目标的关

6、键技术,是详细设计的逻辑基础。3.1源代码#include#include#include#includeusing namespace std;class student public:char num20;char name20;char address40;char tel_num12;char post_code7;char e_mail40;class function:public studentpublic: void add(); void del(); void find_num(); void find_name(); void list_num(); void list_

7、name(); void correct(); void format(); void show();/主函数int main() function a; char select1; coutendl; int m=0; do cout-学生通讯录-endl;cout*endl;cout*1.通讯录编辑 2.查询联系人 3.按序排列 4.格式化 5.显示通讯录 6.清屏 7.退出*endl;cout*endl;coutselect1;cout-endl;switch(select1)case1:cout1.添加 2.删除 3.修改 4.返回主菜单endl; char select2; cout

8、请选择:select2; switch(select2) case 1:a.add(); break; case2:a.del(); break; case3:a.correct(); break; case4:break; default:cout输入错误!endl; break; case2:cout1.姓名查找 2.学号查找 3.返回主菜单endl; char select3; coutselect3; switch(select3) case1:a.find_name(); break; case2:a.find_num(); break; case3:break; default:c

9、out输入错误!endl; break; case3:cout1.按学号排序 2.按姓名排序 3.返回主菜单endl; coutselect4; switch(select4) case1:a.list_num(); break; case2:a.list_name(); break; case3:break; default:cout输入错误!endl; break; case4:coutselect5; if(select5=Y|select5=y) a.format(); break; case5:a.show();break; case6:system(cls);break;/清屏函数

10、 case7:m=1;cout谢谢使用!endl;break; default:cout输入错误!endl; while(m!=1); return 0;/添加联系人void function:add()int i;couti;student stud140=0;ofstream outfile(学生通讯录.dat,ios:app|ios:binary);if (! outfile) cerr打开错误,程序将退出!; abort();for(int j=0;ji;j+) coutstud1j.num; coutstud1j.name; coutstud1j.address; coutstud1

11、j.tel_num; coutstud1j.post_code; coutstud1j.e_mail; outfile.write(char*)&stud1j,sizeof(stud1j);outfile.close (); /删除联系人void function:del() student stud240=0; char name20=0; coutname; ifstream infile(学生通讯录.dat,ios:binary); if (!infile) cerr打开错误,程序将退出!; abort(); int k=0; while(1) infile.read(char*)&st

12、ud2k,sizeof(stud2k); if(infile.eof()break; k+; infile.close(); remove(学生通讯录.dat); ofstream outfile(学生通讯录.dat,ios:binary); if (!outfile) cerrk-1)break;/每删除一项就会减少一组数据,所以是k-1 if(!strcmp(stud2i.name,name) i=i+1; if(ik-1)break; outfile.write(char*)&stud2i,sizeof(stud2i); i+; outfile.close(); if(k-1=0) re

13、move(学生通讯录.dat);/修改联系人void function:correct() student stud340=0; ifstream infile(学生通讯录.dat,ios:binary); int k=0; while(1) if(infile.eof()break; infile.read(char*)&stud3k,sizeof(stud3k); k+; infile.close(); char name20=0; coutname; int x; for(int i=0;ik;i+) if(!strcmp(stud3i.name,name) x=i; char sele

14、ct; cout1.修改姓名 2.修改学号 3.修改地址 4.修改邮编 5.修改电话号码 6.修改E_MAILendl; coutselect; char name120=0; char num120=0; char address140=0; char post_code17=0; char tel_num120=0; char e_mail140=0; switch(select) case1:coutname1; strcpy(stud3x.name,name1); cout修改成功endl; break; case2:coutnum1; strcpy(stud3x.num,num1);

15、 cout修改成功endl; break; case3:coutaddress1; strcpy(stud3x.address,address1); cout修改成功endl; break; case4:coutpost_code1; strcpy(stud3x.post_code,post_code1); cout修改成功endl; break; case5:couttel_num1; strcpy(stud3x.tel_num,tel_num1); break; case6:coute_mail1; strcpy(stud3x.e_mail,e_mail1); cout修改成功endl;

16、break; default:coutk-2)break; outfile.write(char*)&stud3l,sizeof(stud3l); l+; outfile.close();/按学号查询void function:find_num() student stud440=0; ifstream infile(学生通讯录.dat,ios:binary); if(infile.peek()=EOF) /发现如果不判断文件是否为空,本程序格式化过后查找出现未知数据。 cout文件为空endl; return; coutnum; cout-endl; int i=0; while(1) in

17、file.read(char*)&stud4i,sizeof(stud4i); if(!strcmp(stud4i.num,num)|infile.eof() break; i+; if(!infile.eof() cout学号:stud4i.numendl; cout姓名:stud4i.nameendl; cout地址:stud4i.addressendl; cout电话号码:stud4i.tel_numendl; cout邮编:stud4i.post_codeendl; coutE-MAIL:stud4i.e_mailendl; else cout输入的学号查不到endl; infile.

18、close(); /按姓名查找void function:find_name() student stud540=0; ifstream infile(学生通讯录.dat,ios:binary); if(infile.peek()=EOF) cout文件为空endl; return; coutname; cout-endl; for(int i=0;i40;i+) infile.read(char*)&stud5i,sizeof(stud5i); if(!strcmp(stud5i.name,name)|infile.eof() break; if(!infile.eof() cout学号:s

19、tud5i.numendl; cout姓名:stud5i.nameendl; cout地址:stud5i.addressendl; cout电话号码:stud5i.tel_numendl; cout邮编:stud5i.post_codeendl; coutE-MAIL:stud5i.e_mailendl; else cout输入的姓名查不到endl; infile.close(); /按学号排序void function:list_num() student stud640=0; ifstream infile(学生通讯录.dat,ios:binary); int k=0; while(1)

20、if(infile.eof()break; infile.read(char*)&stud6k,sizeof(stud6k); k+; char num20=0; char name20=0; char address40=0; char tel_num12=0; char post_code7=0; char e_mail40=0; for(int i=0;ik-1;i+) for(int j=0;j0) strcpy(num,stud6j.num); strcpy(stud6j.num,stud6j+1.num); strcpy(stud6j+1.num,num); strcpy(name

21、,stud6j.name); strcpy(stud6j.name,stud6j+1.name); strcpy(stud6j+1.name,name); strcpy(address,stud6j.address); strcpy(stud6j.address,stud6j+1.address); strcpy(stud6j+1.address,address); strcpy(tel_num,stud6j.tel_num); strcpy(stud6j.tel_num,stud6j+1.tel_num); strcpy(stud6j+1.tel_num,tel_num); strcpy(p

22、ost_code,stud6j.post_code); strcpy(stud6j.post_code,stud6j+1.post_code); strcpy(stud6j+1.post_code,post_code); strcpy(e_mail,stud6j.e_mail); strcpy(stud6j.e_mail,stud6j+1.e_mail); strcpy(stud6j+1.e_mail,e_mail); infile.close(); remove(学生通讯录.dat); ofstream outfile(学生通讯录.dat,ios:binary); int l=0; while(1) if(lk-2)break; outfile.write(char*)&stud6l+2,sizeof(stud6l+2); l+; outfile.close();/按姓名排序void function:list_name() student stud740=0; char num20=0; char name20=0; char address40=0; char tel_num20=0; char post_code7=0; char e_m

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

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