C语言课程设计客房管理系统Word文件下载.docx

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

C语言课程设计客房管理系统Word文件下载.docx

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

C语言课程设计客房管理系统Word文件下载.docx

此次C语言课程设计我选择的是客房管理系统设计,系统设计采用c语言在microsoftvisualc++6.0下编译而成。

客房管理系统包括客户基本信息的录入、统计、查询、修改功能。

系统开发由分析、设计、实施、调试和测试等阶段组成,其中信息管理为开发的重点。

在程序设计中结构体的调用与文件的读写为编译的重点部分。

 

一、题目要求

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

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

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

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

(3)客户信息统计功能

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

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

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

二、需求分析

根据题目要求,要求对客户信息进行输入、输出等操作;

在程序中需要浏览客户的信息,应提供显示、统计、查询、修改等操作;

另外还应提供键盘式选择菜单实现功能选择。

三、总体设计

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

系统功能模块图

四、详细设计

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

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

并使用蓝色作为背景颜色。

[流程图]:

显示各功能选项

主函数流程图

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

{inti;

puts("

欢迎进入:

"

);

for(i=0;

i<

100;

i++)system("

color1f"

printf("

\n\n\n\n\n\t\t~~~~~~~~~~~~~~~~客房管理系统~~~~~~~~~~~~~~~~~"

\n\n\n\t\t\tPressanykeytocontinue....."

\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t---By童川\n"

getch();

menu();

}

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

{intn,w;

do{

\n\n\n\t***************************MENU*****************************\n\n"

\t\t\t||

(1).Regist||\n"

\t\t\t||

(2).Statistics||\n"

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

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

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

\n\t***********************************************************\n"

\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();

case3:

search();

case4:

modify();

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();

(1)输入模块

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

输入模块流程图

程序

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

intn,m,i,j;

\tHowmanynewcustoms?

\t"

\tHowmanyroomstheywant?

"

m);

for(i=r;

r+m;

i++)

{puts("

\n\tRoom_ID:

room[i].room_ID);

puts("

\n\tTel:

%s"

room[i].tel);

\n\tPrice:

room[i].price);

room[i].sign=1;

for(j=p;

j<

p+n;

j++)

{

\n\tName:

room[i].client_list[j].name);

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

room[i].client_list[j].sex);

\n\tAge:

room[i].client_list[j].age);

\n\tID_card:

room[i].client_list[j].ID_card);

\n\tYear:

room[i].client_list[j].year);

\n\tMonth:

room[i].client_list[j].month);

\n\tDate:

room[i].client_list[j].date);

}

r=r+m;

p=p+n;

save();

menu();

(2)统计模块

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

[流程图]

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

按任意键显示下一屏

按任意键返回主菜单

统计模块流程图

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

intn,m;

do

\t\t*********************MENU************************\n"

\t\t\t\t1).Statisticsonemonth\n"

\t\t\t\t2).Statisticsusingroom\n"

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

\t\t**************************************************\n"

\t\tPleasechoiceyournumber(1-3):

[]\b\b"

1&

&

n>

3)

{m=1;

getchar();

elsem=0;

}while(m==1);

switch(n)

{case1:

stat_o();

case2:

stat_u();

case3:

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

intj,i,n,l;

ints=0;

Pleaseinputthemonthyouwanttostatistics:

load_room();

for(i=0;

r;

i++)

for(j=0;

p;

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

Thereare%dcustomerthismonth"

s);

\n\nWhatyouwanttodo?

\n"

1).Statisticsagain\t2).back\n"

l);

switch(l)

{case1:

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

{intj,l,s=0;

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

Thereare%droomsinuse"

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

name:

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

\nsex:

%d\n"

room[i].client_list[j].sex);

\nage:

room[i].client_list[j].age);

\nID_card:

\nyear:

room[i].client_list[j].year);

\nmonth:

room[i].client_list[j].month);

\ndate:

room[i].client_list[j].date);

\nRoom_ID:

room[i].room_ID);

\nTel:

%s\n"

\nPrice:

room[i].price);

(3)查找模块

查找模块流程图

程序:

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

\n\n\t\t*********************MENU************************\n"

\t\t1).Searchsomeonehaderevlivedhere\n"

\t\t2).Searchsomeday\n"

\t\t3).MENU()"

\t\t************************************************\n"

search_one();

search_day();

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

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

chars[20];

Pleaseinputthename\n"

for(j=0;

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"

Whatdoyouwanttodo?

1).searchagain\t2).back\n"

switch(l)

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

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

\nPleaseinputthedayyouwanttosearch"

\nYear:

scanf("

a);

\nMonth:

b);

\nDate:

c);

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)

NOrecordthisday\n"

Whatyouwanttodo?

(4)修改模块

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

插入模块

调用加载函数

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

调用整条信息输入函数

用户作出选择,输入1or2

1还是2

1浏览全部

2返回主菜单

修改模块流程图

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

\t\t\t\t1).modifyonepeople\n"

\t\t\t\t2).modifyoneday\n"

modify_one();

modify_day();

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

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

\t\tPleaseinputthename"

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

if(w==1)

printf_p(m,n);

elseprintf("

modify_s(m,n);

1).Modifyagain\t2).back\n"

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

inta,q;

chars[20],b[15];

\nChoicethetitleyouwanttomodify\n"

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

Pleasechoiceyournumber(1-10):

q);

switch(q)

case1:

Pleaseinputnewname\n"

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

Pleaseinputnewsex\n"

room[i].client_list[j].sex=a;

Pleaseinputthenewage\n"

room[i].client_list[j].age=a;

case4:

PleaseinputnewID_card\n"

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

case5:

Pleaseinputnewyear\n"

room[i].client_list[j].year=a;

case6:

Pleaseinputthenewmonth\n"

room[i].client_list[j].month=a;

case7:

Pleaseinputthenewdate\n"

room[i].client_list[j].date=a;

case8:

Pleaseinputthenewroom_ID\n"

room[i].room_ID=a;

case9:

Pleaseinputthenewtel\n"

b);

strcpy(room[i].tel,b);

case10:

Pleaseinputthenewprice\n"

room[i].price=a;

case11:

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

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

\t\tPleaseinputthedate"

(room[i].client_list[j].yea

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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