C++课程设计报告19501553.docx
- 文档编号:26978755
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:20
- 大小:18.92KB
C++课程设计报告19501553.docx
《C++课程设计报告19501553.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告19501553.docx(20页珍藏版)》请在冰豆网上搜索。
C++课程设计报告19501553
(此文档为word格式,下载后您可任意编辑修改!
)
通信与信息工程学院
面向对象技术课程设计
班级:
电子信息工程1304班
姓名:
贾鑫
学号:
指导教师:
刘晓佩黄健王静刘凌志
设计时间:
2014年12月21日星期四
成绩:
组员
郝晗康正伟
评语:
通信与信息工程学院
二〇一四年
一、课程设计目的
进一步加深、巩固学生所学专业课程的基本理论知识,理论联系实际,学会利用C++语言解决一般应用问题,在此过程中提高综合分析问题和解决问题的能力。
通过做课程设计实验,学生应能加深对讲授内容的理解,累积经验、学会独立上机调试程序;并且逐步达到综合运用封装、继承和多态等C++难点知识,通过本次课程设计进而得到全面的锻炼。
二、程序设计要求(画图要工整)
1、基本功能:
添加功能,查询功能,显示功能,编辑功能,删除功能,保存功能,读取功能。
2、程序主菜单:
★★★★★★★★★★★★★★★★★★★★★★★★★★
※※
※通迅录※
※※
※1.添加新联系人.4.修改信息.※
※※
※2.删除联系人.5.查询联系人.※
※※
※3.显示所有联系人.6.关闭通迅录.※
※※
★★★★★★★★★★★★★★★★★★★★★★★★★★
选择:
3、设计流程图:
画出本程序的总体设计流程图
4、标题为功能框图:
画出本程序的功能框图
三、程序功能设计
1、功能设计:
(1)添加功能:
程序能够添加通讯录信息,要求编号自动生成并唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:
可根据姓名、电话、邮箱地址等信息对已添加的信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
(3)显示功能:
可显示当前系统中所有通讯信息,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:
主要实现对已添加的通讯记录进行删除。
如果当前系统中没有相应的人员记录,则提示“记录为空!
”并返回操作。
(6)保存功能:
可将当前系统中通讯录记录存入文件中,存入方式任意。
(7)读取功能:
可将保存在文件中的信息读入到当前系统中,供用户进行使用。
2、组员分工:
我设计二个模块:
添加新联系人,显示所有联系人。
康正伟设计二个模块:
删除联系人,修改信息。
郝晗设计二个模块:
查询联系人,关闭通讯录。
四、程序数据结构
#include
#include
#include
#include
usingnamespacestd;
classbook创建book类,通讯类属性
{
public:
book();默认构造函数
charinter_face();首页,程序主菜单
voidadd_person();添加联系人
voiddel_person();删除联系人
voidshow_all();显示所有联系人
voidalter();修改信息
voidselect();查询联系人
voidsave_new();保存新增加的联系人
private:
intnum;编号
stringname;姓名
stringaddress;地址
stringnumber;电话号码
stringpost;邮编
stringqq;QQ号
五、程序函数设计
在此部分只需给出自己所编写程序里所用到所有函数的功能说明和设计思路。
若编写函数要调用其他组员所编写的函数,请也给出简要说明。
要求有注释!
(1)添加联系人:
voidbook:
:
add_person()
{
cout< <<"编号: "< <<"姓名: "; cin>>name;调用头文件 fflush(stdin);清除输入缓冲 cout<<"电话: "; cin>>number; fflush(stdin); cout<<"QQ: "; cin>>qq; fflush(stdin); cout<<"邮编: "; cin>>post; fflush(stdin); cout<<"地址: "; cin>>address; fflush(stdin); save_new();保存新增加的联系人 cout< ! ! ! ! "< system("pause");从程序里调用“pause”命令,而“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Pressanykeytoexit”的字,等待用户按一个键,然后返回。 } (2)显示所有联系人: voidbook: : show_all() { ifstreaminData("pbook.txt",ios: : in);调用头文件 打开pbook.txt文件,用于输入。 if(! inData) { cout< ! ! ! 没有找到文件! ! ! ! ! "< system("pause"); return; } boolflag=true;定义一个布尔型变量flag并初始化为真(true),bool是布尔值,它只有两个值,一个是true,一个是false. stringrecord;定义一个字符串 while(getline(inData,record))getline()函数用于输入流,读取字符到inData中 { if(flag) { cout< "< } cout<<"编号: "< flag=false; } if(flag) { cout< ! ! ! ! "< } else { cout< ! ! ! ! "< } system("pause"); } (3)删除联系人: (4)修改信息: (5)查询联系人: (6)关闭通讯录: 六、程序源代码(此部分可打印) #include #include #include #include usingnamespacestd; classbook创建book类,通讯类属性 { public: book();默认构造函数 charinter_face();首页 voidadd_person();添加联系人 voiddel_person();删除联系人 voidshow_all();显示所有联系人 voidalter();修改信息 voidselect();查询联系人 voidsave_new();保存新增加的联系人 private: intnum;编号 stringname;姓名 stringaddress;地址 stringnumber;电话号码 stringpost;邮编 stringqq;QQ号 staticintNumber; }; intbook: : Number=0; book: : book() { Number++; num=Number; name="\0";给字符串变量赋初值 address="\0"; number="\0"; post="\0"; qq="\0"; } 首页,程序主菜单 charbook: : inter_face() { system("cls");清屛函数,调用DOS下的清屏命令“cls” cout< cout<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"< <<"\t\t※※"< <<"\t\t※通迅录※"< <<"\t\t※※"< <<"\t\t※1.添加新联系人.4.修改信息.※"< <<"\t\t※※"< <<"\t\t※2.删除联系人.5.查询联系人.※"< <<"\t\t※※"< <<"\t\t※3.显示所有联系人.6.关闭通迅录.※"< <<"\t\t※※"< <<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"< <<"\t\t\t选择: "; charchoose; cin>>choose; fflush(stdin);清除输入缓冲 returnchoose; } 添加联系人 voidbook: : add_person() { cout< <<"编号: "< <<"姓名: "; cin>>name;调用头文件 fflush(stdin); cout<<"电话: "; cin>>number; fflush(stdin); cout<<"QQ: "; cin>>qq; fflush(stdin); cout<<"邮编: "; cin>>post; fflush(stdin); cout<<"地址: "; cin>>address; fflush(stdin); save_new(); cout< ! ! ! ! "< system("pause"); } 删除联系人 voidbook: : del_person() { ofstreamoutData("temp.txt",ios: : out);调用头文件 temp是一种运行文件的格式。 ios: : out是一个文件的输出流,主要意思是将数据从内存中输出到文件中…… ifstreaminData("pbook.txt",ios: : in);调用头文件 打开pbook.txt文件,用于输入。 if(! outData||! inData) { cout< ! ! ! 找不到文件! ! ! ! "< system("pause");从程序里调用“pause”命令,而“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Pressanykeytoexit”的字,等待用户按一个键,然后返回。 return; } stringsign; cout< "; cin>>sign; stringstr1; boolflag=true;定义一个布尔型变量flag并初始化为真(true),bool是布尔值,它只有两个值,一个是true,一个是false. stringstr; while(inData>>name>>number) { getline(inData,str);getline()函数用于输入流,读取字符到inData中 if((sign==name)||(sign==number)) { cout< "< cout< cout< : left)< : left)为左对齐输出。 setw(intn)用来控制输出间隔 <<""< flag=false; break; } outData< : left)< <<""< } if(flag) { cout< ! ! 联系人中没你找的人! ! ! ! "< } else { while(getline(inData,str)) { outData< } outData.close();关闭outData流对象,释放资源。 inData.close(); ofstreamout("pbook.txt",ios: : out); ifstreamin("temp.txt",ios: : in); if(! out||! in) { cout< ! ! "< system("pause"); return; } while(getline(in,str)) { out< } out.close(); in.close(); cout< ! ! "< } system("pause"); } 显示所有联系人 voidbook: : show_all() { ifstreaminData("pbook.txt",ios: : in); if(! inData) { cout< ! ! ! 没有找到文件! ! ! ! ! "< system("pause"); return; } boolflag=true; stringrecord; while(getline(inData,record)) { if(flag) { cout< "< } cout<<"编号: "< flag=false; } if(flag) { cout< ! ! ! ! "< } else { cout< ! ! ! ! "< } system("pause"); } 补充: 修改信息 voidbook: : alter() { ofstreamoutData("temp.txt",ios: : out); ifstreaminData("pbook.txt",ios: : in); if(! outData||! inData) { cout< ! ! ! 找不到文件! ! ! ! "< system("pause"); return; } stringsign; cout< "; cin>>sign; stringstr1; boolflag=true; stringstr; while(inData>>name>>number) { getline(inData,str); if((sign==name)||(sign==number)) { cout< "< cout< cout< : left)< <<""< cout< "< cout<<"姓名: "; cin>>name; fflush(stdin); cout<<"电话号: "; cin>>number; fflush(stdin); cout<<"QQ: "; cin>>qq; fflush(stdin); cout<<"邮编: "; cin>>post; fflush(stdin); cout<<"地址: "; cin>>address; fflush(stdin); save_new(); flag=false; break; } outData< : left)< <<""< } if(flag) { cout< ! ! 联系人中没你找的人! ! ! ! "< } else { while(getline(inData,str)) { outData< } outData.close(); inData.close(); ofstreamout("pbook.txt",ios: : out); ifstreamin("temp.txt",ios: : in); if(! out||! in) { cout< ! ! "< system("pause"); return; } while(getline(in,str)) { out< } out.close(); in.close(); cout< ! ! "< } system("pause"); } 查询联系人 voidbook: : select() { ifstreaminData("pbook.txt",ios: : in); if(! inData) { cout< ! ! ! 文件找不到! ! ! ! "< system("pause"); return; } stringsign; cout< "; cin>>sign; fflush(stdin); stringstr1; boolflag=true; stringstr; while(inData>>name>>number) { getline(inData,str); if((name==sign)||(number==sign)) { cout< "< cout< cout< : left)< < flag=false; system("pause"); break; } } } 保存新增加的联系人 voidbook: : save_new() { ofstreamoutData("pbook.txt",ios: : app);调用头文件 : app: 以追加的方式打开文件 if(! outData) { cout< ! ! 打开文件失败! ! ! ! "< system("pause"); return; } outData< : left)< <<""< < < < outData.close(); } enumpower{ADD='1',DEL='2',SHOW='3',Alter='4',Select='5',END='6'};枚举类 主函数 intmain() { charchoose; bookabj; while(choose=abj.inter_face()) { switch(choose) { caseADD: abj.add_person();添加联系人 break; caseDEL: abj.del_person();删除联系人 break; caseSHOW: abj.show_all();显示所有联系人 break; caseAlter: abj.alter();修改信息 break; caseSelect: abj.select();查询联系人 break; caseEND: cout< ! ! ! ! "< exit(0); break; default: break; } } return0; } 七、程序调试结果(此部分可打印) (1)程序主菜单: (2)添加联系人: (3)显示所有联系人: (4)查询联系人 (5)修改信息: (6)删除联系人: 八、设计总结及心得体会(此部分手写)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 报告 19501553