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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C通讯录课程设计报告资料.docx

1、C 通讯录课程设计报告资料 淮 海 工 学 院 计算机工程学院课程设计报告设计名称: C+程序设计课程设计 姓 名: 学 号: 专业班级: 系 (院): 计算机工程学院 设计时间: 2014.6.92014.6.20 设计地点: 计算机网络技术室 成绩:指导教师评语: 签名: 年 月 日1课程设计目的本课程设计是网络工程专业重要的实践性环节之一,是在学生学习完C+程序设计课程后进行的一次全面的综合练习。本课程设计的目的和任务:(1)巩固和加深学生对C+课程的基本知识的理解和掌握;(2)掌握C+编程和程序调试的基本技能;(3)利用C+进行简单软件设计的基本思路和方法;(4)提高运用C+解决实际问

2、题的能力;(5)掌握书写程序设计说明文档的能力。2课程设计任务与要求:每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。以本班同学的具体数据为背景,设计一个本班同学通讯录。实现功能:1) 通讯录编辑(添加、删除)。2) 按不同的项进行查找。3) 对已存在的通讯录按不同的项排序。4) 将通讯录写入文件5) 从文件读入通讯录备注:通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。3课程设计说明书(1)需求分析(功能设计) 本通讯录包括编辑、查找、排序、录入文件、读取文件和格式化六项总功能。其中编辑通讯录又包括添加联系人、修改联系人和删除联系人三项功能;查

3、找联系人包括“按学号查找”和“按姓名查找”两项功能;排列联系人也包括“按姓名查找”和“按学号查找”两项功能。 联系人的具体信息包括:学号、姓名、地址、电话、邮编、邮箱。 每执行完一项功能,按相应的提示键返回主界面。 具体功能模块图介绍:图(1)图(2)系统流程图:RT图(3)(2)详细设计(各模块流程图)(1)主函数:是通过一个多分支语句switch(select)实现的,其中有的分支语句中,又包含有一个多分支语句switch(select i)i=1,2,3,每一个分支语句结束通过输入T/t回到界面底部,或输入R/r回到主界面。1123212312456图(4)(2)添加联系人:additi

4、on()函数 利用for循环,和strcmp函数进行学号的比较,当学号不为0时,开始录入信息;当,当学号为0结束否是否是图(5)(3)删除联系人:del函数() For循环,strcmp比较,定义一个变量x,并赋值为1,如果输入的姓名与通讯录中的相同,然后就将学生的所有基本信息都赋予0,如果输入的姓名不相同,就将变量的值赋为0,再用if()判断,如果变量值为0,就输出输入姓名有错这一信息。 否 是否是(4)修改联系人:correct()函数 图(6) For循环,strcmp比较,定义一个变量,如果输入的姓名与通讯录中已有的相同,就将改序号赋给变量,输出一个修改的内容界面,然后用switch(

5、)语句,输入相应的选项,分别修改学生的基本信息。12456图(7)(5)查找联系人:find()函数按学号进行查找,定义三个变量x,y,x,y,z分别赋值为1,字符串比较函数,如果输入的学号与通讯录的相同,将学生数组的序号赋给变量x,z赋值为0,如果相等,将y的值赋为0,如果z的值为0,break语句,跳出整个for循环,然后执行下面的语句,输出那个序号学生的信息,如果学号不相同,说明没有此人,则输入的学号找不到。同理按姓名查找也是这样。图(8)(6)按序排列:list()函数若按姓名排序,通过冒泡排序法,n个数从小到大排序,总共要比较n-1趟,每趟比较要比较n-1次,通过一个中间变量将两个字

6、符串调换位置,进行排序。现将姓名排序,然后再将对应学生的基本信息分别排序。否是否是图(9)(3)代码设计(函数主要代码及注释)(1)/头文件#include#include#include#include#include(2)/结构体和类的定义struct student char num12; char name30; char address100; char tel12; char post7; char email30;class interprivate: student st35;public: void addition(char num12,char name30,char a

7、ddress100,char tel12,char post7,char email30); void del(char name30); void find1(char num12); void find2(char name30); void list1(); void list2(); int correct(char name30); void format(); void write(); void read(); void print(int i); int back(); ;(3)/添加联系人void inter:addition(char num12,char name30,c

8、har address100,char tel12,char post7,char email30) int x=1;/定义一个整型变量用于判断 for(int i=0;i35;i+) if(!strcmp(sti.num,0) strcpy(sti.num,num); strcpy(sti.name,name); strcpy(sti.address,address); strcpy(sti.tel,tel); strcpy(sti.post,post); strcpy(sti.email,email); x=0; if(x=0) break; (4)/删除联系人 void inter:de

9、l(char name30) bool temp=0;/定义一个布尔变量用于判断 for(int i=0;i35;i+) if(!strcmp(sti.name,name)/如果姓名相同 temp=1; strcpy(sti.address,0);/将0复制给数组 strcpy(sti.email,0); strcpy(sti.name,0); strcpy(sti.num,0); strcpy(sti.post,0); strcpy(sti.tel,0); cout*删除成功!*endl; if(!temp) cout*查无此人!*endl; (5)/修改联系人int inter:corre

10、ct(char name30) int x; for(int i=0;i35;i+) if(!strcmp(sti.name,name) x=i; cout *修改内容* endl; cout * endl; cout * (1)修改姓名: * endl; cout * (2)修改学号: * endl; cout * (3)修改地址: * endl; cout * (4)修改邮编: * endl; cout * (5)修改电话号码: * endl; cout * (6)修改email: * endl; cout * endl; coutselect; switch(select)/多分支语句

11、case 1: coutname1; strcpy(stx.name,name1); cout* 修改成功! *endl; return back(); break; case 2: coutnum1; strcpy(stx.num,num1); cout* 修改成功! *endl; return back(); break; case 3: coutaddress1; strcpy(stx.address,address1); cout* 修改成功! *endl; return back(); break; case 4: coutpost1; strcpy(stx.post,post1);

12、 cout* 修改成功! *endl; return back(); break; case 5: couttel1; strcpy(stx.tel,tel1); cout* 修改成功! *endl; return back(); break; case 6: coutemail1; strcpy(stx.email,email1); cout* 修改成功! *endl; return back(); break; return 0;(6)/按学号查找void inter:find1(char num12) bool temp=0; for(int i=0;i35;i+) if(!strcmp

13、(sti.num,num)/字符串比较如果学号相同 temp=1;print(i); /调用print()成员函数输出基本信息 if(!temp) cout*输入的学号查找不到!*endl; (7)/按学号排序void inter:list1() for(int i=0;i34;i+)/冒泡法排序 for(int j=0;j0)/比较两个字符串的大小 char num12; char name30; char address100; char tel12; char post7; char email30; strcpy(num,stj.num);/将学号信息交换 strcpy(stj.num

14、,stj+1.num); strcpy(stj+1.num,num); strcpy(name,stj.name);/将姓名信息交换 strcpy(stj.name,stj+1.name); strcpy(stj+1.name,name); strcpy(address,stj.address);/将地址信息交换 strcpy(stj.address,stj+1.address); strcpy(stj+1.address,address); strcpy(tel,stj.tel);/将号码信息交换 strcpy(stj.tel,stj+1.tel); strcpy(stj+1.tel,tel

15、); strcpy(post,stj.post);/将邮编信息交换 strcpy(stj.post,stj+1.post); strcpy(stj+1.post,post); strcpy(email,stj.email);/将邮箱信息交换 strcpy(stj.email,stj+1.email); strcpy(stj+1.email,email); for(int k=0;k35;k+) if(strcmp(stk.num,0) print(k); (8)/导入文件void inter:write() int i; ofstream outfile(通讯录.txt,ios:out);/打

16、开文件 if(!outfile)/打开文件 cerropen 通讯录.txt error!endl; exit(1); for(i=0;i35;i+)/导入文件 outfilesetiosflags(ios:left)setw(4)sti.num setw(6)sti.name setw(6)sti.address setw(12)sti.tel setw(7)sti.post setw(15)sti.emailendl; outfile.close();/关闭文件 coutendl; cout资料已保存endl;(9)/读取文件void inter:read() ifstream infil

17、e(通讯录.txt,ios:out);/打开文件 if(!infile)/打开文件 cerropen 通讯录.txt error!endl; exit(1); for(int i=0; i sti.num; infilesti.name; infilesti.address; infilesti.tel; infilesti.post; infilesti.email; print(i); (10)/删除全部文件void inter:format() for(int i=0;i35;i+) strcpy(sti.address,0); strcpy(sti.email,0); strcpy(s

18、ti.name,0); strcpy(sti.num,0); strcpy(sti.post,0); strcpy(sti.tel,0); (11)/输出联系人void inter:print(int i) coutsetw(4)sti.num setw(6)sti.name setw(6) sti.address setw(12)sti.tel setw(7)sti.post setw(15)sti.emailendl;(12)/返回int inter: back() cout *退出请按T,回到主菜单请按R(不计大小写):* back; if(back=R|back=r) return 1

19、; else return 0;(13)/输出菜单(自定义函数)void display() cout *通讯录¥*endl; cout*功能选择*:endl; cout *endl; cout * (1)通讯录编辑 *endl;/功能列表 cout * (2)查找联系人 *endl; cout * (3)排列联系人 *endl; cout * (4)录入文件 *endl; cout * (5)读取文件 *endl; cout * (6)格式化 *endl; cout * endl; coutselect1; switch(select1) case 1: cout *通讯录编辑* endl;

20、 cout * endl; cout * (1)添加: * endl; cout * (2)删除: * endl; cout * (3)修改: * endl; cout * endl; SetColor(2,0); coutselect2; switch(select2) case 1: cout*请输入要添加的资料:*endl; char num12; char name30; char address100; char tel12; char post7; char email30; coutnum; coutname; coutaddress; couttel; coutpost; co

21、utemail; a.addition(num,name,address,tel,post,email); cout添加成功!endl; cout *退出请按T,回到主菜单请按R(不计大小写):* back_addition; if(back_addition=R|back_addition=r) system(cls);SetColor(3,0);goto top; else goto bottom; break; case 2: cout*输入要删除人的姓名:*name2; a.del(name2); cout *退出请按T,回到主菜单请按R(不计大小写):* back_del; if(back_del=R|back_del=r) system(cls);SetColor(3,0);goto top; else cout*输入有误!*endl;goto bottom; break; c

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

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