中原工学院C++课设报告.docx
- 文档编号:13788950
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:39
- 大小:335.65KB
中原工学院C++课设报告.docx
《中原工学院C++课设报告.docx》由会员分享,可在线阅读,更多相关《中原工学院C++课设报告.docx(39页珍藏版)》请在冰点文库上搜索。
中原工学院C++课设报告
一、课程设计目的及要求
课程设计的内容
1。
采用C++过程化程序设计方法,设计一个简单的旅店管理系统;
2。
采用C++面向对象程序设计方法,封装一个旅店类,并完善相关操作。
课程设计的目的
1.提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡.
2.培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势.
3.学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。
课程设计要求:
宾馆客房管理系统
宾馆的客房信息包括客房号、客房类型、客房价格、空闲情况、客人姓名、客人身份证号、入住时间、退房时间,预付费用等信息。
试设计一宾馆客房管理系统统,系统以菜单方式工作,使之能提供以下功能:
●客房信息的录入功能
●客人入住登记
●客人退房结算
●客房信息浏览功能,浏览全部客房的信息
●客房信息查询:
查询空房间情况、按姓名或房间号查询
●客房信息的删除、修改功能
二、课程设计的具体实现
课程设计内容:
一【旅店管理系统】
(1)总体设计:
本程序的设计主要分为2个。
h文件和7个.cpp文件来做,其中头文件用一个结构体来实现客房数据类型的定义,另一个做extern外部声明,使每一个。
cpp文件都能调用头文件中的数据.各个模块的实现过程相对独立,使得操作更加方便,7个.cpp的作用分别为:
①主程序②客房数据录入③客人入住登记④客人退房结算⑤客房信息浏览⑥客房信息查询⑦客房信息修改
(2)总体设计图:
(3)
旅店管理系统总流程图
(4)详细设计:
1、登陆模块:
主要完成的功能为,当用户开始使用本系统时,进入登陆模块,屏幕显示菜单提示,用户可以根据提示选择需要的功能。
具体如下:
(1)客房信息录入
(2)客人入住登记(3)客人退房结算(4)客房信息浏览(5)客房信息查询(6)客房信息修改(0)退出系统
◆主要使用技术:
函数的递归调用和switch…。
case语句
◆关键代码:
intm;
cin>>m;//选择进入某个选项
switch(m)
{
case0:
save();
cout<〈"欢迎下次光临客房系统!
版权所有,XX。
.."〈〈endl;break;
case1:
input();break;//信息录入
case2:
dengji();break;//旅客登记
case3:
jiezhang();break;//客人退房结账
case4:
output();break;//客房信息浏览
case5:
chaxun();break;//客房信息查询
case6:
xuanze();
default:
//输入有误
cout〈〈”-—!
您的输入有错,&&&&&&”<〈endl;
cout〈〈”请重新输入&&&&&&”〈〈endl;
slect();
◆运行截图:
2、客房信息录入模块:
主要完成的功能为,当用户使用改模块时,实现数据的录入和数据的保存,即将数据写入磁盘。
◆主要使用技术:
for循环和I/O流
◆流程图:
◆关键代码:
system("cls”);
cout<<"~~~~~~~~~~请选择你的操作:
~~~~~~~~~~~~~~"〈 cout<〈"~~1。 确定录入~~"〈〈endl; cout〈<”~~0。 返回菜单~~”< cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~”〈 intl; cin>〉l; if(l==1) { FILE*fp; fp=fopen(”room.txt”,”w”); cout〈<”&&&&&&&&&&&&&&&&请输入房间信息,您预设的房间有()个: ”〈 cin〉〉f; fwrite(&f,sizeof(int),1,fp); for(inti=0;i { cout〈<”请输入房间号码: "; cin>>a[i].num; cout〈<"请输入房间的种类: "; cin>〉a[i].kind; cout〈〈”请输入房间的价格: "; cin>〉a[i].price; cout〈<”请输入房间是否空闲: "; cin〉>a[i].kongxian; fwrite(&a[i],sizeof(room),1,fp); } fclose(fp); cout〈<"*******************恭喜! 您已经成功录入了”〈 cout〈〈""〈 cout〈〈"*******************请按1返回主菜单*******"〈 ◆运行截图: 3、客人入住登记模块: 主要完成的功能为,当有客人入住时,实现对客人相关信息的登记和对磁盘数据的更新。 ◆主要使用技术: 函数的自身调用和I/O流 ◆关键代码: FILE*fp; fp=fopen(”room.txt”,”wb+"); fread(&f,sizeof(int),1,fp); intj; system(”cls”); cout<〈”************请输入将要入住的房间号: *************”〈〈endl; cin>>j; for(inti=0;i〈f;i++)//查找所查询的房间号码 { if(a[i]。 num==j)break; } //cout〈〈a[i].kongxian; save(); cout<〈"*********是否要入住? 确认入住1*********"〈〈endl;//选择是否入住 cout〈<"*********否0*********”<〈endl; intc; cin〉>c; if(c==1)//选择入住 { cout〈〈"请输入客人的信息: ”〈 cout〈〈”请输入客人姓名: "; cin〉〉a[i]。 name; cout〈 cout〈〈"请输入客人身份证号码: "; cin>〉a[i].zhengjian; cout〈〈endl; cout<〈”请输入客人入住时间: "; cin〉〉a[i]。 rztime; cout< cout<<”请输入客人将要入住几天: ”; cin>〉a[i]。 time; cout〈 cout〈<"请输入预付款额: "; cin>〉a[i]。 yufu; strcpy(a[i].kongxian,"已住宿”); fwrite(&a[i],sizeof(room),1,fp); fclose(fp); cout〈〈”*********继续填写0*********"〈〈endl; cout<<”*********返回主菜单1*********”<〈endl;//选择是继续填写入住信息还是回到主菜单 save(); intn; cin>>n; if(n==1) { print();//返回主菜单 slect(); } else dengji();//继续填写入住信息 } else//选择不入住因为已经有人 { cout〈〈"*********返回主菜单1*********"〈 cout〈<”*********重新选择入住0*********”< intc; cin〉〉c; if(c==1) { print();//返回主菜单 slect(); } else dengji();//继续选择房间 } ◆运行截图: 4、客人退房结算模块: 主要完成的功能为,当客人退房时,实现对客房信息的更新和并将更新后数据写入磁盘。 ◆主要使用技术: I/O流和函数的调用以及拷贝技术 ◆关键代码: cout<〈”请选择将要结账的房间号码: ”〈 intc; cin>>c; for(inti=0;i { if(a[i].num==c)break; } cout〈〈”房间”〈 num〈 cout< price〈〈"元/天”〈〈””< ”〈 name<<”客人证件: ”〈〈a[i]。 zhengjian<<"入住时间: ”<〈a[i]。 rztime<〈a[i].time〈<"预付款为: "〈 intS; S=a[i]。 price*a[i].time—a[i].yufu; cout<<”您所需付款为: ”〈 strcpy(a[i]。 kongxian,”空"); strcpy(a[i]。 name,"”); strcpy(a[i]。 zhengjian,""); strcpy(a[i]。 rztime,””); a[i]。 time=0; a[i]。 yufu=0; fwrite(&a[i],sizeof(room),1,fp); fclose(fp); save(); cout〈<”欢迎下次光临! "〈〈endl; cout〈<”请选择是否继续结账********继续请按0**********"〈〈endl; cout<<”********返回主菜单请按1**********"〈 fanhui(); ◆运行截图: 5、客房信息浏览模块: 主要完成的功能为,实现对旅店内全部信息的浏览。 ◆主要使用技术: I/O流for循环语句 ◆关键代码: FILE*fp; fp=fopen("room。 txt",”r"); fread(&f,sizeof(int),1,fp); for(inti=0;i〈f;i++) { fread(&a[i],sizeof(room),1,fp); } for(i=0;i〈f;i++) { cout〈<"房间"< num<〈endl;//输出房间的信息 cout〈 kind<〈a[i]。 price〈<"元/天”〈<”"〈 "<〈a[i].name〈〈”客人证件: ”〈 zhengjian<<"入住时间: "<〈a[i].rztime〈〈a[i].time〈〈”预付款为: ”〈〈a[i]。 yufu<<"元"〈 cout〈〈endl; } ◆运行截图: 6、客房信息修改模块: 主要完成的功能为,对房间信息的改、房间信息的删除和密码的修改并且将修改后的数据写入磁盘 ◆主要使用技术: switch……case语句while循环for循环I/O流以及数组下标的提取 ◆关键代码: voidjian() { cout<〈”~~~您确定要进行删除房间信息操作吗? ~~~~”< cout<<”~~1.确定~~"〈 cout<<”~~0.返回~~”< cout〈〈”~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<〈endl; intk; cin>>k; if(k==1) { cout<〈”请输入您所要删除的房间号码: ”< intc; cin>>c; FILE*fp; fp=fopen(”room。 txt","r+"); fread(&f,sizeof(int),1,fp); for(inti=0;i { if(a[i].num==c)break; } cout<<"房间"< cout< kind<〈a[i].price<〈"元/天"<〈””〈〈a[i]。 kongxian〈〈”客人名字: "〈 "〈 ”< time〈〈"预付款为: "〈〈a[i].yufu〈〈”元”< strcpy(a[i]。 kongxian,"空”); strcpy(a[i].name,”"); strcpy(a[i].zhengjian,""); strcpy(a[i]。 rztime,””); a[i].time=0; a[i].yufu=0; fwrite(&a[i],sizeof(room),1,fp); fclose(fp); } elseif(k==0) { print();//返回 slect(); } else { cout<<”您的输入有错...。 ”〈 save(); jian(); } } 运行截图: 7、客房信息查询模块: 主要完成的功能为,对客房信息的查询. ◆主要使用技术: for循环I/O流 ◆关键代码: 此函数实现空房间的查询 FILE*fp; inti; fp=fopen("room.txt",”r"); fread(&f,sizeof(int),1,fp); cout<<”您想要查询的房间号码: "; intc; cin>>c; for(i=0;i〈f;i++) fread(&a[i],sizeof(room),1,fp); for(i=0;i〈f;i++)//查找所查询的房间号码 if(a[i]。 num==c) { cout<<"房间"<〈a[i]。 num〈 cout<〈a[i].kind〈〈a[i].price<〈"元/天”〈〈””〈〈a[i].kongxian〈<”客人名字: "<〈a[i].name〈〈”客人证件:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中原 工学院 C+ 报告