班级通讯录课程设计报告.doc

上传人:文库蛋蛋多 文档编号:2610487 上传时间:2023-02-20 格式:DOC 页数:18 大小:470KB
返回 下载 相关 举报
班级通讯录课程设计报告.doc_第1页
第1页 / 共18页
班级通讯录课程设计报告.doc_第2页
第2页 / 共18页
班级通讯录课程设计报告.doc_第3页
第3页 / 共18页
班级通讯录课程设计报告.doc_第4页
第4页 / 共18页
班级通讯录课程设计报告.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《班级通讯录课程设计报告.doc》由会员分享,可在线阅读,更多相关《班级通讯录课程设计报告.doc(18页珍藏版)》请在三一办公上搜索。

1、C+程序设计课程设计报告题 目: 班级通讯录 学 院: 计算机科学与工程 专 业: 计算机科学与技术 学生姓名: 潘国伟 学 号: 1100310220 指导教师: 刘少兵 2012年 6 月 27 日目 录5. 班级通讯录II1.前言 12.需求分析13.概要设计 14.详细设计15.测试16.总结2附录21. 前言 这是一个班级通讯录系统,能实现查询,修改,编辑等基本功能2. 需求分析实现以下功能: (1) 通讯录编辑(添加、删除、修改); (2) 按不同的项进行查找(按姓名,按学号); (3)格式化(4)显示通讯录(5)退出系统做这个系统,要需要解决信息的录入和保存,保存录入信息这个问题

2、要求程序能把用户输入的信息写入文档中,或者是保存,下次启动程序时,能调出已输入的信息,并显示。这个程序中有classmate,function两个对象,function共有继承了classmate.而function中包含了classmate中所有数据的操作,classmate只是一个“数据站”。这个系统会是学生来用,他们可能不懂程序,所以这个程序要有良好的用户提示界面。3. 概要设计 class classmate /同学类public:char num20;/学号char name20; /名字char banji20; /班别char address40; /地址char tel_num

3、12; /电话号码char mobile_phone20; /手机号码char post_code7; /邮政编码char e_mail40; /电子邮件;class function:public classmate /功能类public:void add();/成员函数,添加联系人void del();/成员函数,删除联系人void find_num();/成员函数,按学号查找void find_name();/成员函数,按名字查找void correct();/成员函数,联系人的修改void format();/成员函数,通讯录的格式化void show();/成员函数,显示通讯录;4.

4、 详细设计#include#include#include#includeusing namespace std;class classmatepublic:char num20;char name20;char banji20;char address40;char tel_num12;char mobile_phone20;char post_code7;char e_mail40;class function:public classmatepublic:void add();void del();void find_num();void find_name();void correct

5、();void format();void show();int main() system(color 2F);/窗口颜色的改变 system(title 三院小p);/窗口标题function a;/定义功能类对象achar choose1;coutendl;int m=0;docouttt 三院1100310220 endltt endltt endltt 通 迅 录 endl tt endltt 1. 通讯录编辑. 4. 清屏. endl tt endltt 2. 查询联系人. 5. 格式化. endltt endltt 3. 显示通讯录. 6. 退出. endl tt endltt

6、endltt endlendl choose1;cout-endl;switch(choose1)case1:cout1.添加 2.删除 3.修改 4.返回主菜单endl;char choose2;cout请选择:choose2;switch(choose2)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 choose3;coutchoose3;swit

7、ch(choose3)case1:a.find_name();break;case2:a.find_num();break;case3:break;default:cout输入错误!endl;break;case3:a.show();break;case4:system(cls);break;/清屏函数case5:coutchoose4;if(choose4=Y|choose4=y)coutchoose5; if(choose5=Y|choose5=y)a.format();cout格式化成功!;break;case6:m=1;cout感谢使用本通讯录endl;break;default:co

8、ut输入错误!endl;while(m!=1);return 0;/添加联系人void function:add()int i;couti;classmate stud140=0;ofstream outfile(学生通讯录.dat,ios:app|ios:binary);if (! outfile)cerr打开错误,程序将退出!;abort();for(int j=0;ji;j+)coutstud1j.num;coutstud1j.name;coutstud1j.banji;coutstud1j.address;coutstud1j.tel_num;coutstud1j.mobile_pho

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

10、;if(infile.eof()break;k+;infile.close();remove(学生通讯录.dat);ofstream outfile(学生通讯录.dat,ios:binary);if (!outfile)cerrk-1)break;/每删除一项就会减少一组数据,所以是k-1if(!strcmp(stud2i.name,name)/如果名字一样,那么这一项的数据不再写入文档中,跳过i=i+1;if(ik-1)break;outfile.write(char*)&stud2i,sizeof(stud2i);i+;outfile.close();if(k-1=0)remove(学生通

11、讯录.dat);/修改联系人void function:correct()classmate 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 select;cout1.修改姓名 2.修改学号

12、3.修改地址 4.修改邮编 5.修改电话号码 6.修改手机号码 7.修改E_MAIL 8.修改班级endl;coutselect;char name120=0;char num120=0;char address140=0;char post_code17=0;char tel_num114=0;char mobile_phone120=0;char e_mail140=0;char banji120=0;switch(select)case1:coutname1;strcpy(stud3x.name,name1);cout修改成功endl;break;case2:coutnum1;strcp

13、y(stud3x.num,num1);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:coutmobile_phone1;strcpy(stud3x.mobile_phone,mobile_

14、phone1);break;case7:coute_mail1;strcpy(stud3x.e_mail,e_mail1);cout修改成功endl;break; case8:coutbanji1;strcpy(stud3x.banji,banji1);cout修改成功endl;break;default:coutk-2)break;outfile.write(char*)&stud3l,sizeof(stud3l);l+;outfile.close();/按学号查询void function:find_num()classmate stud440=0;ifstream infile(学生通讯

15、录.dat,ios:binary);if(infile.peek()=EOF) /发现如果不判断文件是否为空,本程序格式化过后查找出现未知数据。cout文件为空endl;return;coutnum;cout-endl;int i=0;while(1)infile.read(char*)&stud4i,sizeof(stud4i);if(!strcmp(stud4i.num,num)|infile.eof()break;i+;if(!infile.eof()cout姓名:stud4i.nameendl;cout班级:stud4i.banjiendl;cout学号:stud4i.numt地址:s

16、tud4i.addresst电话号码:stud4i.tel_numendl;cout邮编:stud4i.post_codetE-MAIL:stud4i.e_mailt手机号码:stud4i.mobile_phoneendl;elsecout输入的学号查不到endl;infile.close();/按姓名查找void function:find_name()classmate stud540=0;ifstream infile(学生通讯录.dat,ios:binary);if(infile.peek()=EOF)cout文件为空endl;return;coutname;cout-endl;for

17、(int i=0;i40;i+)infile.read(char*)&stud5i,sizeof(stud5i);if(!strcmp(stud5i.name,name)|infile.eof()break;if(!infile.eof()cout姓名:stud5i.nameendl; cout班级:stud5i.banjiendl;cout学号:stud5i.numt地址:stud5i.addresst电话号码:stud5i.tel_numendl;cout邮编:stud5i.post_codetE-MAIL:stud5i.e_mailt手机号码:stud5i.mobile_phoneend

18、l;elsecout输入的姓名查不到endl;infile.close();/格式化void function:format()remove(学生通讯录.dat);/显示通讯录void function:show()classmate stud640=0;ifstream infile(学生通讯录.dat,ios:in|ios:binary);infile.seekg(0,ios:beg);if(infile.peek()=EOF)cout文件是空的endl;return;int i=0;while(1)infile.read(char*)&stud6i,sizeof(stud6i);if(i

19、nfile.eof()break;elsecout姓名:stud6i.nameendl;cout班级:stud6i.banjiendl;cout学号:stud6i.numt地址:stud6i.addresst电话号码:stud6i.tel_numendl;cout邮编:stud6i.post_codetE-MAIL:stud6i.e_mailt手机号码:stud6i.mobile_phoneendl;i+;infile.close();5. 测试首页:选择通讯录编辑:显示通讯录:清屏后:6. 总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对

20、我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C+语言又是最常见,功能最强大的一种高级语言,因此做好C+语言课程设计是十分必要的。通过几天的课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。我做的是班级通讯录的课程设计,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。更加是第一次做课程设计,所以遇到了很多的问题,发现教材

21、上的知识运用到实际中根本不够,编译,调试,修改,不断重复,不断的查资料,上网看别人的心得,解决了一个又一个问题。体会到,做一次课设,能懂得很多的知识,锻炼了自己的能力开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。参考文献C+程序设计教程 罗建军 朱丹军 顾刚等 著 高等教育出版社C+面向对象程序设计 陈维兴 林小茶 编著 中国铁道出版社附录system(color 2F);/窗口颜色的改变 system(title 三院小p);/窗口标题int main() system(color 2F);/窗口颜色的改变 system(

22、title 三院小p);/窗口标题function a;/定义功能类对象achar choose1;coutendl;int m=0;docouttt 三院1100310220 endltt endltt endltt 通 迅 录 endl tt endltt 1. 通讯录编辑. 4. 清屏. endl tt endltt 2. 查询联系人. 5. 格式化. endltt endltt 3. 显示通讯录. 6. 退出. endl tt endltt endltt endlendl choose1;cout-endl;switch(choose1)case1:cout1.添加 2.删除 3.修改

23、 4.返回主菜单endl;char choose2;cout请选择:choose2;switch(choose2)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 choose3;coutchoose3;switch(choose3)case1:a.find_name();break;case2:a.find_num();break;case3:break;default:cout输入错误!endl;break;case3:a.show();break;case4:system(cls);break;/清屏函数case5:coutchoose4;if(choose4=Y|choose4=y)coutchoose5; if(choose5=Y|choose5=y)a.format();cout格式化成功!;break;case6:m=1;cout感谢使用本通讯录endl;break;default:cout输入错误!endl;while(m!=1);/ 与case6:m=1;构成退出系统的功能return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号