版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计
设计题目:
住宿结帐管理系统
专业计算机科学与技术、软件工程
班级计053、软件051、软件052
学生
指导教师
2005-2006年2学期
-0-
设计任务:
试设计一个住宿结帐管理系统,住宿结帐管理信息包
括:顾客姓名、入住时间、住宿房间、顾客数量、每日价格、住
宿天数、折扣率、实收金额。系统包括以下功能:住宿信息的录
入、修改、删除功能;住宿信息的排序、浏览功能;按住宿天数
查询、按住宿房间号码查询;住宿信息的统计:总人数、总收入、
空房数。
建议:一人负责信息的录入、修改、删除;一人负责文件的
读取与写入操作;一人负责排序、查询。
教师评语:
-1-
目录
1、试验目的及内容…......................3
2、系统总体模块图…......................3
3、小组任务分工….........................4
4、子系统设计方案…......................4
(1)信息的录入、修改、删除;….........4
(2)文件的读取与写入、统计、主函数;……4
(3)信息的排序、浏览、查询;….........4
5、子系统主要程序流程图…...............4
(1)信息读取模块流程图…...............5
(2)信息修改模块流程图…...............6
(3)信息修改模块流程图.................7
(4)按住宿时间查询模块流程图….........8
(5)按房间号码查询模块流程图….........9
6、个人设计小结与心得体会…............10
7、小组设计总结….........................11
8、系统源代码…...........................12
-2-
小组任务分工
(1)由郭凌瑞负责住宿信息的录入、修改、删除功能;
(2)由张亮负责文件的读取与写入操作,统计及主函数;
(3)由方宇负责排序、浏览、查询功能;
子系统设计方案:
(1)信息的录入、修改、删除;
信息的录入、修改与删除通过对信息的标志的判
断与修改,执行信息录入的地址、修改的目标及删除
功能的实现。
(2)文件的读取与写入、统计、主函数;
文件的读取与写入可用已知的库函数来完成,统计
工作可由已有信息通过计算获得,主函数可由swith
语句来达到菜单选折功能的目的。
(3)信息的排序、浏览、查询;
排序功能可通过冒泡法来实现,浏览实现排序然后
显示即可,查询时:根据来达到找到匹配信息的
目的。
子系统主要程序流程图
N为所有房间数,NN为非空房间数
-4-
信息读取模块流程图
-5-
信息修改模块流程图
-6-
信息删除模块流程图
-7-
按住宿时间查询模块
-8-
按房间号码查询模块
-9-
个人设计小结及心得体会:
(1)在我设计的子系统部分,包含很多细节问题,如果稍有
不慎,往往导致模块无法运行,在设计中,我尝试了很多方
法,对思维能力有了很大锻炼,提高了解决复杂问题的能力,
同时,也很大程度上锻炼了耐心,做到不急不弃是系统最终
成功的保证。
计053郭凌瑞
(2)我的工作比较简单,但在书写代码时,发现了自己的问题:
文件无法顺利操作!文件是很重要的一个知识点,很兴庆在这次
实践中我及时弥补了以前的缺憾,为以后的继续学习和面对复杂
问题打下了坚实的基础,问题在实践中才能被更好地发现和解决,
在今后的学习中要更加重视实践的作用!
软051张亮
(3)在我设计的模块中,主要是对己有信息的处理,对排
序算法有了一个新的认识,从深层次理解了排序函数的思
想,突破了以前是似而非的局限。查询模块的书写,注意了
很多细节,使模块在整体上有了很大优化,给了用户一个人
性化的界面。
软052方宇
-10-
小组设计总结:
本次课程设计,我们做了一个简单管理系统,系统的功能
较以前的小程序有了很大加强,对个人及团队的能力有了更大的
要求,事实上,在本次课设中的确出现了很多以前没有遇到的问
题,这是一次自我提高的过程,从中我们弥补了以前遗漏的很多
东西,使自己的知识结构更加完善和牢固;同时,这也是一次实
践的机会,是增加面对复杂问题处理经验的机会,对以后做一些
比较大的系统有一定的借鉴。在本次试验的整个过程中,组员之
间的合作起到了很大作用,共同解决了很多关键性难题,最终,
在我们的共同努力下,我们的第一个系统正常运行了,巨大成就
感促使我们有一种挑战更高目标的欲望!
-11-
#includc<stdio.h>
#include<string.h>
^defineN3〃总房间数
intNN=O;〃非空房间数
〃类定义区
structDate{〃入住时间
intyear;
intmonth;
intday;
};
structPayroll{//顾客信息列表
intflang;〃用来标志该顾客信息是否存在
charName[15];〃顾客姓名
Datedate;〃入住时间
intRome;〃房间号
intNumber;〃顾客数量
intPrice;〃每日价格
intDays;〃住宿天数
floatDiscountrate;//折扣率
floatMoney;〃实收金额
};
〃子函数声名区
voidImput(PayrollP[],FILE*fp);〃结帐信息的录入
voidRead(PayrollP[],FILE*fp);〃结账信息的读取
voidSave(PayrollP[],FILE*fp);〃信息保存为文件
voidReput(PayrollP[],FILE*fp):〃结账信息的修改
voidDelete(PayrollP[],FILE*fp)〃结账信息的删除
voidStat(PayrollP[],FILE*fp);〃信息统计
voidTimeread(PayrollP[],FILE*fp);〃按住宿天数浏览
voidRomenumber(Payrol1P[],FILE*fp)//按住宿房间浏览
voidTime(PayrollP[],FILE*fp);〃按住宿天数查询
voidRome(PayrollP[],FILE*fp);〃按住宿房间查询
voidDAY(PayrollP[],FILE*fp):〃按住宿天数排序
voidROME(PayrollP口,FILE*fp);〃按房间号码排序
〃以下为主函数
voidmain()
12-
FILE*fp;
structPayrollP[N];
fp=fopen("accout.dat","ab+”);
intselect;
Read(P,fp);〃从文件中读取结账信息
printf("*******************住宿结账管理系统***************\n\n");
printf(欢迎使用本系统!\n\ii),
printf(*===——======—^$
〃请选择:\n〃
〃1—添加新信息\n〃
“2一修改信息\n〃
“3一删除信息\n〃
〃4一统计信息\n〃
”5一按住宿天数浏览\n〃
“6一按住宿天数查询\n〃
〃7一按放房间号码浏览\n〃
”8一按房间号玛查询\n”
"9一退出\n〃);
scanf(“%d”,&selecl);
whilc(sclcct!=9)〃没有退出本系统时,循环提示操作
(
switch(select)
(
case1:1input(P.Tp);〃信息录入
break;
case2:Rcput(P.fp);〃修改信息
break;
case3:Delete(P,fp);〃删除信息
break;
case4;Slcil(P,fp);〃统计信息
break;
case5:Timeread(P,fp);〃设住宿天数浏览
break;
case6:Timc(P,fp);〃按住宿天数查询
break;
case7:Romenuniber(P,fp);〃接放房间号码浏览
break;
-13-
case8:Rome(P,fp);//按房间号码查询
break;
)
printfCW);
printf("请选择要进行的操作:〃每完成一次操作选折下一次操作
“1一添加新信息加〃
“2一修改信息\n"
"3一删除信息
”4一统计信息\n”
“5一按住宿天数浏览\n"
〃6—按住宿天数查询\n"
〃7一按放房间号码浏览\n〃
“8一按房间号玛查询\n”
〃9一退出\n〃);
scanf("*d”,&select);
}
Save(P,fp);〃将本次系统运行结果保存为文件
printf("谢谢使用,再见!\n〃);
}
〃子函数定义区
voidImput(PayrollP[],FILE*fp)〃结帐信息的录入
(
inti;
charch;
prinlf("姓名入住时间房间顾客数量每日价格住宿天数折扣率\n〃);
printf(,,========================================\n3;
for(i=0;i<N;i++)
(
flang!=l)〃避免覆盖已有信息
(
,/
scanf(%«%d%d%d%d%d%d%d%r,P[i].Name>date.yeai,
&P[i].date,month,&P[i].date,day,Rome,&P[i].Number,
&P[i].Price,&P[i].Days,Discountrate);
P[i].flang=l;〃标示已存信息
NN++;
P[i].Money=P[i].Days*P[i].Discountrate*P[i].Price;
if(i==N-l)
break;
-14-
printf("是否继续录入?(yorn)”);
getchar();
ch=getchai'();
if(ch!=n')
(
printf("姓名入住时间房间顾客数量每口价格住宿天数折扣率\n");
printf("======================================\n");
)
else
break;
)
)
if(i==N-l)
printf("抱歉,所有房间已满!\n\n");
)
voidSave(PayrollP[],FILE*fp)〃信息保存为文件
(
inti;
for(i=0:i<N;i++)
if(P[i].flang==l)
fwrite(&P[i],sizeof(structPayroll),1,fp);
fclose(fp);
)
voidRead(PayrollP[],FILE*fp)〃结账信息的读取
(
inti;
for(i=0;i<N;i++)
freadsizeof(structPayroll),1,fp);
}
voidReput(PayrollP[],FILE*fp)〃结账信息的修改
(
inti;
intn,j=NN;
charch;
printff姓名住宿时间房间顾客数量每日价格住宿天数折扣率实收金
额\n");
printf("=========================================================
==========\n/,);
-15-
for(i=0;i<N;i++)
if(P[i].flang==l)
printf("%8s%6d%3d%3d%10d%8d%8d%8d%8.2f%8.2f\n",P[i].Name,
P[i].date,year,P[i].date,month,P[i].date,day,P[i].Romo,P[i].Numbe
P[i].Price,P[i].Days,P[i].Discountrate,P[i].Money);
printf(〃请输入要修改的房间号(输入零结束修改!):\n〃);
scanf("机T,&n);
while(n!=0)
(
for(i=0;i<N;i++)
(
if(P[i].flang==l)
(
if(P[i].Rome==n)
(
printf("确认要修改吗?(yorn)”);
getchar();
ch=getchar();
if(ch==,y')
(
printf("请重新输入该信息:\n");
printf(〃姓名入住时间房间顾客数量每日价格
住宿天数折扣率\n");
printfC==================================
===================\n〃);
scanfC%s%d%d%d%d%d%d%d%f",P[i].Namet
&P[i].date,year,&P[i].date.month,date,day,
&P[i].Rome,&P[i].Number,&P[i].Price,
6,P[i].Days,&P[i].Discountrate);
P[i].Money=P[i].Days*P[i].Discountrate*P[i].Price;
)
else
continue;
)
else
-16-
else
continue;
)
if(j==O)
prinlf(〃没有找到要修改的内容!请确认后再输入!\n");
printf("请输入要修改的房间号(输入零结束修改!):\n");
scanf(缁d",&n);
)
)
voidDelete(PayrollP口,FILE*fp)〃住宿信息的删除
(
inti,n;
intk=NN,j=NN;
intNO=NN;
charch:
printfC姓名入住时间房间顾客数量每日价格住宿天数折
扣率实收金额\n〃);
pnn,L+if•\/〃=__=_=_=__=_=_=_=__=_=_=_=__=_=_=_=__=_=_=____________________________________
============\n*);
for(i=0;i<N;i++)
if(P[i].flang==l)
printfC%8s%6d%3d%3d%10d%6d%8d%8d%8.2f%8.2f\n〃,
P[i].Name,P[i].date.year,P[i].date.month,P[i].date,day,
P[i].Rome,P[i].Number,P[i].Pries,P[i].Days,
P[i].Discountrate,P[i].Money);
printf(〃请输入要删除的房间号(输入零结束删除!):\n〃);
scanf&n);
while(n!=0)
(
fui(i=0;i<N;i++)
(
if(P[i].flang==l)
(
if(P[i].Rome==n)
(
printf(〃确认要删除吗?(yorn);
getchar();
-17-
ch=gctchar();
if(ch='y)
(
if(k==l)〃此时删除所有住宿信息
for(i=0;i<N;i++)
P[i].flang=O;
NO—;
P[i].flang=0,//删除该项内容
k-;
)
else
continue;
}
else
)
if(k==O)
break;
printf(〃没有找到要删除的内容,请确认!\n");
printf(〃请输入要删除的房间号(输入零结束删除!):\n〃);
scanf("先d",&n);
}
NN=NO;
)
voidTimeread(PayrollP[],FILE*fp)〃按天数浏览
inti;
//Read(P,fp);
DAY(P,fp);
printf("姓名入住时间房间顾客数量每日价格
住宿天数折扣率实收金额\n");
printf("=============================
____\
======================;
for(i=0;i<N;i++)
-18-
if(P[i].flang==l)
printf(^s%6d%3d%3d%10d%6d%8d%8d%8.2f%8.2f\n〃,
P[i].Name,P[i].date.year,P[i].date,month,P[i].date,day,
P[i].Rome,P[i].Number,P[i].Pric3,P[i].Days,
P[i].Discountrate,P[i].Money);
printf("\n\n");
voidRomenumber(PayrollP[],FILE*fp)〃按住宿房间浏览
inti,j=NN;
ROME(P,fp);
printfC姓名入住时间房间顾客数量每日价格
住宿天数折扣率实收金额\n〃);
printf================================================
______________•
for(i=0;i<N;i++)
if(P[i].flang==l)
printf("%8s%6d%3d%3d%8d%6d%8d%8d%8.2f%8.2f\n”,
P[i].Name,P[i].date,year,P[i].date,month,P[i].date,day,
P[i].Rome,P[i].Number,P[i].Price,P[i].Days,
P〔i].Discountrate,P[i].Money);
printf("\n\n");
voidStat(PayrollP[],FILE*fp)〃信息统计
inti,n=N;
intSumperson=0;〃总人数
floatSum=0;〃总收入
structPayrollt;
//Read(P,fp);
for(i=0;i<N;i++)
if(P[i].flang==l)
-19-
Sumperson+=P[i].Number;
Sum+=P[i].Money;
n——;
}
)
printf("入住总人数:%d\n空房数:%d\n
总收入:%.2f\n\n\n,z,Sumperson,n,Sum);
)
voidTime(PayrollP[],FILE*fp)〃按住宿时间杳询
(
Datetime;
inti,j=NN;
//Read(P,fp);
printf("请输入要查询的日期(年、月、日)
scanf&time.year,&time.month,&time.day);
printfC姓名入住时间房间顾客数量每日价格
住宿天数折扣率实收金额\n");
printf("==========================================
========\n〃);
for(i=0;i<NN;i++)
(
if(P[i].flang=l)
(
if(P[i].date.year==time.year&&P[i].date.month==time.month
&&P[i].date.day==timc.day)
printfC%8s%6d%3d%3d%10d%6d%8d^8d%8.2f%8.2f\n”,
P[i].Name,P[i].date,year,P[i].date,month,P[i].date.day,
P[i].Rome,P[i].Number,P[i].Price,P[i].Days,
P[i].Discountrate,P[i].Money);
else
J—;
}
}
if(j==0)
printf(〃没有找到要查询的内容,请确认!\n");
}
voidRome(PayrollP口,FILE*fp)〃按住宿房间号码查询
-20-
intno,i;
int尸NN;
printf("请输入要查询的房间号码:\n〃);
scan「("%d〃,&no);
printfC姓名入住时间房间顾客数量每日价格
住宿天数折扣率实收金额\n");
piiutf(,f===================================
===============z/)•
for(i=0;i<NN;i++)
(
if(P[i].flang==l)
(
if(P[i].Rome=no)
printfC%8s%6d%3d%3d%10d%8d%10d%8d%8.2f%8.2f\n”,
P[i].Name,P[i].date,year,P[i].date,month,P[i].date,day,
P[i].Rome,P[i].Number,P[i].Price,P[i].Days,
P[i].Discountrate,P[i].Money);
else
J—;
)
)
if(j==O)
printf("没有找到要查询的内容,请确认!\n");
)
voidDAY(PayrollP[]:EILE*fp)〃按住宿天数排序
(
inti,j,k;〃采用冒泡法进行
structPayrol1t;
for(i=0;i<N-l;i4+)
(
if(P[i].flang==l)
(
k=i;
for(j=i+l;j<N;j++)
if(P[k].Days<P[j].Days)
k=j;
if(k!=j)
-21-
t=P[i];
P[i]=P[k];
P[k]=t;
(
}
)
voidROME(PayrollP口,FILE*fp)〃按住宿房间号码排序
(
inti,j,k;〃采用冒泡法进行
structPayrol1t;
for(i=0:i<hFl;i++)
(
if(P[i].flang==l)
(
k=i;
for(j=i+l;j<N;j++)
if(P[k].Rome<P[j].Rome)
k=j;
if(k!=j)
(
t=P[i];
P[i]=P[k];
P[k]=t;
)
)
}
)
目录
-、总论错误!未定义书签。
(-)项目概况错误!未定义书签。
-22-
(二)项目编制依据....错误!未定义书签。
(三)问题与建议......错误!未定义书签。
二、项目建设的背景和必要性.错误!未定义书签。
(一)政策背景分析....错误!未定义书签。
(二)项目区社会经济状况.错误!未定义书签。
(三)本行业及关联产业发展现状.错误!未定义书签。
(四)项目建设的必要性.错误!未定义书签。
三、承办单位概况.........错误!未定义书签。
(-)概况.............错误!未定义书签。
(二)研发能力........错误!未定义书签。
(三)财务状况........错误!未定义书签。
(四)法人代表基本情况.错误!未定义书签。
四、市场分析与销售方案..错误!未定义书签。
(一)市场分析........错误!未定义书签。
(二)市场竞争优势分析.错误!未定义书签。
(三)营销方案、模式及策略.错误!未定义书签。
五、项目选址与建设条件..错误!未定义书签。
-23-
(一)场址所在位置现状.............错误!未定义书签。
(二)场址建设条件.................错误!未定义书签。
六、建设方案...........................错误!未定义书签。
(一)建设规模与布局...............错误!未定义书签。
(二)建设目标与功能定位...........错误!未定义书签。
(三)产品质量标准.................错误!未定义书签。
(四)构建绿色有机农产品流通体系……错误!未定义书签。
(五)土建工程.....................错误!未定义书签。
(六)主要设备.....................错误!未定义书签。
七、总图、运输与公共辅助工程.........错误!未定义书签。
(-)总图布置.....................错误!未定义书签。
(二)公共辅助工程.................错误!未定义书签。
)\、节能减排措施......................错误!未定义书签。
(-)能耗及污染分析...............错误!未定义书签。
(二)单项与建筑节能工程...........错误!未定义书签。
(三)节能措施综述.................错误!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 神经内科护理个案答辩
- 心血管内科护理进修汇报
- 精神科护理临床观察技巧
- 药店调查感冒药
- 齐二药翻转课堂
- 笔记本电脑在大学生的使用情况分析调查报告
- 兰州装修设计公司:95%还原率是怎么做到的
- 陕西省宝鸡市清姜路中学2027届八年级数学第一学期期末调研试题含解析
- 《现代机械工程图学》
- 电子计算机与电子技术信息公司项目经理述职报告
- 建筑施工图设计审查要点、常见问题及规范解读课件
- 2026年上饶卫生健康职业学院单招职业技能测试题库附参考答案详解(综合题)
- 混凝土搅拌站风险分级管控清单
- 活塞泵培训课件
- 市政道路维修培训课件
- 心脏康复中心建设经验
- 2025北京市事业单位就业援藏专项招聘21人(公共基础知识)测试题附答案解析
- GB/T 9869.3-2025橡胶用硫化仪测定硫化特性第3部分:无转子硫化仪
- (正式版)DB65∕T 3952-2016 《反恐怖防范设置规范 学校》
- 检验科复检复查管理制度详解
- 德士古气化炉和主要设备煤炭气化工艺与操作51课件
评论
0/150
提交评论