C语言课程设计报告客房管理系统.docx

上传人:b****5 文档编号:8571241 上传时间:2023-01-31 格式:DOCX 页数:20 大小:71.21KB
下载 相关 举报
C语言课程设计报告客房管理系统.docx_第1页
第1页 / 共20页
C语言课程设计报告客房管理系统.docx_第2页
第2页 / 共20页
C语言课程设计报告客房管理系统.docx_第3页
第3页 / 共20页
C语言课程设计报告客房管理系统.docx_第4页
第4页 / 共20页
C语言课程设计报告客房管理系统.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告客房管理系统.docx

《C语言课程设计报告客房管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告客房管理系统.docx(20页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告客房管理系统.docx

C语言课程设计报告客房管理系统

报告正文

一、题目要求

客户信息包括身份证号、姓名、性别、年龄、房间号。

试设计一客房管理系统,使之能提供以下功能:

(1)系统以菜单方式工作

(2)客户信息录入功能(客户信息用文件保存)

(3)客户信息统计功能

(4)客户信息查询功能,查询方式

(5)客户信息修改功能(可选项)

[提示]

建立客户信息结构体,结构体成员包括身份证号、姓名、性别、年龄、房间号

二、需求分析

根据题目要求,要求对客户信息进行输入、输出等操作;在程序中需要浏览客户的信息,应提供显示、统计、查询、修改等操作;另外还应提供键盘式选择菜单实现功能选择。

三、总体设计

根据需求分析,可以对这个系统的设计分为以下几个模块:

系统功能模块图

 

四、详细设计

1、主函数部分:

主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

[流程图]:

 

显示各功能选项

主函数流程图

 

main()/**主函数**/

{

printf("\n\n\n\t\t~~~~~~~~~~~~~~~~酒店管理系统~~~~~~~~~~~~~~~~~");

printf("\n\n\n\t\t\tPressanykeytocontinue.....");

printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t---By黄李\n");

getch();

menu();

}

voidregist()/**注册函数**/

{

intn,m,i,j;

printf("\tHowmanynewcustoms?

\t");scanf("%d",&n);

printf("\tHowmanyroomstheywant?

");scanf("%d",&m);

for(i=r;i

{

{puts("\n\tRoom_ID:

\t");scanf("%d",&room[i].room_ID);

puts("\n\tTel:

\t");scanf("%s",room[i].tel);

puts("\n\tPrice:

\t");scanf("%d",&room[i].price);

room[i].sign=1;

}

for(j=p;j

{

puts("\n\tName:

\t");scanf("%s",room[i].client_list[j].name);

puts("\n\tSex(1formen||0forwomen):

\t");scanf("%d",&room[i].client_list[j].sex);

puts("\n\tAge:

\t");scanf("%d",&room[i].client_list[j].age);

puts("\n\tID_card:

\t");scanf("%s",room[i].client_list[j].ID_card);

puts("\n\tYear:

\t");scanf("%d",&room[i].client_list[j].year);

puts("\n\tMonth:

\t");scanf("%d",&room[i].client_list[j].month);

puts("\n\tDate:

\t");scanf("%d",&room[i].client_list[j].date);

}

}

r=r+m;

p=p+n;

save();

menu();

}

 

voidmenu()/*****菜单函数*****/

{intn,w;

do

{

puts("\n\n\n\t***************************MENU*****************************\n\n");

puts("\t\t\t||

(1).Regist||\n");

puts("\t\t\t||

(2).Statistics||\n");

puts("\t\t\t||(3).Search||\n");

puts("\t\t\t||(4).Modify||\n");

puts("\t\t\t||(5).Exit||\n");

puts("\n\t***********************************************************\n");

printf("\t\tPleasechoiceyounumber(1-5)");

scanf("%d",&n);

if(n<1||n>5)w=1,getchar();

elsew=0;

}while(w==1);

switch(n)

{

case1:

regist();break;

case2:

stat();break;

case3:

search();break;

case4:

modify();break;

case5:

exit(0);

}

}

注:

menu函数能提供菜单方式选择功能,可以根据用户需要进入到所想要的操作模块中,此外把menu函数独立出来,可以方便随时对它进行调用,容易返回到系统界面。

并用结构体来存放客户信息:

structclient

{

charname[20];

intsex;

intage;

charID_card[20];/*居民身份证*/

intyear;

intmonth;

intdate;/*住店时间*/

};

structhotel

{

introom_ID;/*房间号*/

chartel[15];

intprice;/*住房单价*/

intsign;

structclientclient_list[M];/*实现两个结构体的嵌套*/

}room[N];

intr=0;p=0;/*r,p为全局变量*/

voidmenu();

voidsearch_one();

voidsearch_day();

voidmodify();

voidmodify_one();

voidload_room();

voidmodify_day();

voidmodify_s(intj,inti);

voidsave();

voidsearch();

voidstat_u();

voidstat_o();

voidregist();

voidstat();

2、各功能模块函数部分:

(1)输入模块

[需求分析]对信息进行输入。

[流程图]:

输入模块流程图

程序

voidregist()/**注册函数**/

{

intn,m,i,j;

printf("\tHowmanynewcustoms?

\t");scanf("%d",&n);

printf("\tHowmanyroomstheywant?

");scanf("%d",&m);

for(i=r;i

{

{puts("\n\tRoom_ID:

\t");scanf("%d",&room[i].room_ID);

puts("\n\tTel:

\t");scanf("%s",room[i].tel);

puts("\n\tPrice:

\t");scanf("%d",&room[i].price);

room[i].sign=1;

}

for(j=p;j

{

puts("\n\tName:

\t");scanf("%s",room[i].client_list[j].name);

puts("\n\tSex(1formen||0forwomen):

\t");scanf("%d",&room[i].client_list[j].sex);

puts("\n\tAge:

\t");scanf("%d",&room[i].client_list[j].age);

puts("\n\tID_card:

\t");scanf("%s",room[i].client_list[j].ID_card);

puts("\n\tYear:

\t");scanf("%d",&room[i].client_list[j].year);

puts("\n\tMonth:

\t");scanf("%d",&room[i].client_list[j].month);

puts("\n\tDate:

\t");scanf("%d",&room[i].client_list[j].date);

}

}

r=r+m;

p=p+n;

save();

menu();

}

(2)统计模块

[需求分析]该模块的功能是显示所有客户记录信息。

显示客户记录(10个一屏)

 

按任意键显示下一屏

 

按任意键返回主菜单

统计模块流程图

 

程序

voidstat()/***统计函数***/

{

intn,m;

do

{

puts("\t\t*********************MENU************************\n");

puts("\t\t\t\t1).Statisticsonemonth\n");

puts("\t\t\t\t2).Statisticsusingroom\n");

puts("\t\t\t\t3).MENU()");

puts("\t\t**************************************************\n");

printf("\t\tPleasechoiceyournumber(1-3):

[]\b\b");

scanf("%d",&n);

if(n<1&&n>3)

{m=1;

getchar();

}

elsem=0;

}while(m==1);

switch(n)

{case1:

stat_o();break;

case2:

stat_u();break;

case3:

menu();

}

}

voidstat_o()/*******统计人数******/

{

intj,i,n,l;

ints=0;

puts("Pleaseinputthemonthyouwanttostatistics:

");scanf("%d",&n);

load_room();

for(i=0;i

for(j=0;j

if(room[i].client_list[j].month==n)s=s+1;

printf("Thereare%dcustomerthismonth",s);

puts("\n\nWhatyouwanttodo?

\n");

puts("1).Statisticsagain\t2).back\n");

scanf("%d",&l);

switch(l)

{case1:

stat_o();break;

case2:

stat();

}

}

voidstat_u()/******统计使用中的房间*****/

{intj,l,s=0;

load_room();

for(j=0;j

{if(room[j].sign==1)s+=1;}

printf("Thereare%droomsinuse",s);

puts("\n\nWhatyouwanttodo?

\n");

puts("1).Statisticsagain\t2).back\n");

scanf("%d",&l);

switch(l)

{case1:

stat_u();break;

case2:

stat();

}

}

printf_p(inti,intj)/******显示个人信息******/

{

printf("name:

");puts(room[i].client_list[j].name);

printf("\nsex:

%d\n",room[i].client_list[j].sex);

printf("\nage:

%d\n",room[i].client_list[j].age);

puts("\nID_card:

");printf("%s",room[i].client_list[j].ID_card);

printf("\nyear:

%d\n",room[i].client_list[j].year);

printf("\nmonth:

%d\n",room[i].client_list[j].month);

printf("\ndate:

%d\n",room[i].client_list[j].date);

printf("\nRoom_ID:

%d\n",room[i].room_ID);

printf("\nTel:

%s\n",room[i].tel);

printf("\nPrice:

%d\n",room[i].price);

}

(3)查找模块

查找模块流程图

程序:

voidsearch()/********查找函数********/

{

intn,m;

do

{

puts("\n\n\t\t*********************MENU************************\n");

puts("\t\t1).Searchsomeonehaderevlivedhere\n");

puts("\t\t2).Searchsomeday\n");

puts("\t\t3).MENU()");

puts("\t\t************************************************\n");

printf("\t\tPleasechoiceyournumber(1-3):

[]\b\b");

scanf("%d",&n);

if(n<1&&n>3)

{m=1;

getchar();

}

elsem=0;

}while(m==1);

switch(n)

{case1:

search_one();break;

case2:

search_day();break;

case3:

menu();

}

}

voidsearch_one()/*****查找个人*****/

{inti,j,w=0,l,m,n;

chars[20];

printf("Pleaseinputthename\n");

scanf("%s",s);

load_room();

for(i=0;i

for(j=0;j

if(strcmp(room[i].client_list[j].name,s)==0)w=1,m=i,n=j;

if(w==1)

printf_p(m,n);

elseprintf("\nThereisnorecordhere\n");

puts("Whatdoyouwanttodo?

\n");

puts("1).searchagain\t2).back\n");

scanf("%d",&l);

switch(l)

{case1:

search_one();break;

case2:

search();

}

}

voidsearch_day()/*******查询某日的使用情况*******/

{

inti,j,l,m,n,a,b,c,w=0;

printf("\nPleaseinputthedayyouwanttosearch");

printf("\nYear:

");scanf("%d",&a);

printf("\nMonth:

");scanf("%d",&b);

printf("\nDate:

");scanf("%d",&c);

load_room();

for(i=0;i

for(j=0;j

if((room[i].client_list[j].date==c)&&(room[i].client_list[j].month==b)&&(room[i].client_list[j].year==a))w=1,m=i,n=j,printf_p(m,n);

if(w==0)

printf("NOrecordthisday\n");

puts("Whatyouwanttodo?

\n");

puts("1).searchagain\t2).back\n");

scanf("%d",&l);

switch(l)

{case1:

search_day();break;

case2:

search();

}

}

(4)修改模块

[需求分析]该模块的功能是插入客户记录信息并且不能覆盖原有客户信息。

[流程图]

插入模块

调用加载函数

让用户输入要插入的客户信息个数

调用整条信息输入函数

用户作出选择,输入1or2

 

1还是2

 

2返回主菜单

1浏览全部

修改模块流程图

程序:

voidmodify()/*****修改函数******/

{

intn,m;

do

{

puts("\t\t*********************MENU************************\n");

puts("\t\t\t\t1).modifyonepeople\n");

puts("\t\t\t\t2).modifyoneday\n");

puts("\t\t\t\t3).MENU()");

puts("\t\t**************************************************\n");

printf("\t\tPleasechoiceyournumber(1-3):

[]\b\b");

scanf("%d",&n);

if(n<1&&n>3)

{m=1;

getchar();

}

elsem=0;

}while(m==1);

switch(n)

{case1:

modify_one();break;

case2:

modify_day();break;

case3:

menu();

}

}

voidmodify_one()/*****修改个人信息*****/

{

inti,j,m,n,w=0,l;

chars[20];

puts("\t\tPleaseinputthename");

scanf("%s",s);

load_room();

for(i=0;i

for(j=0;j

if(strcmp(room[i].client_list[j].name,s)==0)w=1,m=i,n=j;

if(w==1)

printf_p(m,n);

elseprintf("\nThereisnorecordhere\n");

modify_s(m,n);

save();

puts("Whatyouwanttodo?

\n");

puts("1).Modifyagain\t2).back\n");

scanf("%d",&l);

switch(l)

{case1:

modify_one();break;

case2:

modify();

}

}

voidmodify_s(inti,intj)/*********修改执行项*********/

{

inta,q;

chars[20],b[15];

printf("\nChoicethetitleyouwanttomodify\n");

puts("1).Name2).sex3).age4)ID_card5).year6).month7).date8).room_ID9)tel10).price\11).modifynone\n");

printf("Pleasechoiceyournumber(1-10):

[]\b\b");

scanf("%d",&q);

switch(q)

{

case1:

printf("Pleaseinputnewname\n");scanf("%s",s);

strcpy(room[i].client_list[j].name,s);break;

case2:

printf("Pleaseinputnewsex\n");

scanf("%d",&a);room[i].client_list[j].sex=a;break;

case3:

printf("Pleaseinputthenewage\n");

scanf("%d",&a);room[i].client_list[j].age=a;break;

case4:

printf("PleaseinputnewID_card\n");

scanf("%s",s);strcpy(room[i].client_list[j].ID_card,s);break;

case5:

printf("Pleaseinputnewyear\n");

scanf("%d",&a);room[i].client_list[j].year=a;break;

case6:

printf("Pleaseinputthenewmonth\n");scanf("%d",&a);room[i].client_list[j].month=a;break;

case7:

printf("Pleaseinputthenewdate\n");

scanf("%d",&a);room[i].client_list[j].date=a;break;

case8:

printf("Pleaseinputthenewroom_ID\n");

scanf("%d",&a);room[i].room_ID=a;break;

case9:

printf("Pleaseinputthenewtel\n");scanf("%s",b);strcpy(room[i].tel,b);break;

case10:

printf("Pleaseinputthenewprice\n");

scanf("%d",&a);room[i].price=a;break;

case11:

modify();

}

}

voidmodify_day()/*******修改某日信息******/

{

inti,j,l,a,b,c,w

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

当前位置:首页 > 初中教育

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

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