1、 目 录 一、课程设计题目 3 二、运行环境(软、硬件环境) 3 三、算法设计思想 3 四、算法步骤图 3 五、算法设计分析 4 六、源代码 4 七、运行结果分析 10 八、收获及体会 13 一、课程设计题目 宾馆客房管理系统。 二、运行环境(软、硬件环境) 汉字版Windows XP和Microsoft Visual C++ 6.0。 三、算法设计思想 1.定义宾馆客房管理信息结构体Hot
2、el-Info。 2.建立一个简易选择菜单,经过输入选择实施动作。 3.主函数中,用switch case 实现选择功效,7项功效经过7个分支实现,每个对应一个函数。 4.写函数,包含Insert-插入,Amend-修改,Demand-查询,Del-删除,Skim-浏览,Balance-结算。 5.源程序可运行以后,将其数据、信息输入到文档中,使其能存档,能够写入文件和读出文件。 6.对程序进行修改、完善。 写函数 四、算法步骤图 联络文件 开始 定义结构体Hotel-Info 修改、完善 建立选择菜单
3、 写主函数,实现选择功效 结束 图1 算法步骤图 五、算法设计分析 1.这是一个小型管理系统,使用结构体数组存放客房信息。 2.通常管理系统全部应该含有插入,修改,查询,删除,浏览等功效,经过使用一个简易菜单进行实施动作选择。 3.用函数实现模块化设计,调理清楚,使程序易读写。 4.把程序和文件联络,使数据能存放在磁盘中,更具实用性。 六、源代码 1结构体 struct Hotel_Info { char name[N],type[N],ID_card[N],in_time[N],leave_time[N];
4、 char idly[N];
int prize,num,ad_payment;
}Info[N];
2主函数
int main()
{
FILE *fp;
int i=0;
fp=fopen("d:\\hotel manage system.txt","r");
//fscanf(fp,"%d",&n);
// for(i=0;i 5、a);
fscanf(fp," 客房号:%d",&Info[i].num);
fscanf(fp," 空闲情况:%s",Info[i].type);
fscanf(fp," 客房类型:%s",Info[i].idly);
fscanf(fp," 客房价格:%d",&Info[i].prize);
fscanf(fp," 用户姓名:%s",Info[i].name);
fscanf(fp," 身份证:%s",Info[i].ID_card);
fscanf(fp," 预付款:%d",&Info[i].ad_pa 6、yment);
fscanf(fp," 入住时间:%s",Info[i].in_time);
fscanf(fp," 退房时间:%s",Info[i].leave_time);
i++;
}
fclose(fp);
n=i-1;
int m;
do
{
printf("\n");
printf(" ***************************************************\n");
printf(" 1————登记。\n 7、");
printf(" 2————修改。\n");
printf(" 3————查询。\n");
printf(" 4————删除。\n");
printf(" 5————浏览。\n");
printf(" 6————结算。\n");
printf(" 8、 7————退出。\n");
printf(" ***************************************************\n");
scanf("%d",&m);
switch(m)
{
case 1: Insert(&count); break;
case 2: Amend(count) ;break;
case 3: Demand(count) ;break;
case 4: Del(&count) ;break;
case 5: Skim(count) ;break;
9、 case 6: Balance(count) ;break;
case 7: break;
default:printf("错误选择!请重选");break;
}
}while(m!=7);
return 0;
}
3 函数
void Insert(int *count) //定义1————插入函数
{
int i=0,in_num;
n=n+1;
if(*count==N)
{printf("overflow!");return;}
FILE *fp;
fp=fope 10、n("d:\\hotel manage system.txt","a");
fprintf(fp,"%d",n);
for(i=*count;i 11、k;}
}
Info[i].num=in_num;
printf("客房号:");
scanf("%d",&Info[i].num);
fprintf(fp," 客房号:%d",Info[i].num);
printf("空闲情况:");
scanf("%s",Info[i].idly);
fprintf(fp," 空闲情况:%s",Info[i].idly);
printf("客房类型:");
scanf("%s",Info[i].type);
fprintf(fp," 客房类型:%s",Info[i]. 12、type);
printf("客房价格:");
scanf("%d",&Info[i].prize);
fprintf(fp," 客房价格:%d",Info[i].prize);
printf("用户姓名:");
scanf("%s",Info[i].name);
fprintf(fp," 用户姓名:%s",Info[i].name);
printf("身份证:");
scanf("%s",Info[i].ID_card);
fprintf(fp," 身份证:%s",Info[i].ID_card);
printf( 13、"预付款:");
scanf("%d",&Info[i].ad_payment);
fprintf(fp," 预付款:%d",Info[i].ad_payment);
printf("入住时间:");
scanf("%s",Info[i].in_time);
fprintf(fp," 入住时间:%s",Info[i].in_time);
printf("退房时间:");
scanf("%s",Info[i].leave_time);
fprintf(fp," 退房时间:%s\n",Info[i].leave_time);
14、break;
}
fclose(fp);
(*count)++;
}
void Amend(int count) //定义2————修改函数
{
int i,num,payment,tag=0;;
char idly[N],name[N],ID_card[N],in_time[N],leave_time[N];
printf("请输入要修改数据编号:");
scanf("%d",&num);
for(i=0;i 15、1;
printf("空闲情况:%s",Info[i].idly);
printf(" 客人姓名:%s",Info[i].name);
printf(" 身份证:%s",Info[i].ID_card);
printf(" 入住时间:%s",Info[i].in_time);
printf(" 退房时间:%s",Info[i].leave_time);
printf(" 预付费用:%d\n",Info[i].ad_payment);
printf("空闲情况:");
scanf("%s",i 16、dly);
printf("客人姓名:");
scanf("%s",name);
printf("身份证:");
scanf("%s",ID_card);
printf("入住时间:");
scanf("%s",in_time);
printf("退房时间:");
scanf("%s",leave_time);
printf("预付费用:");
scanf("%d",&payment);
17、 strcpy(Info[i].idly,idly);
strcpy(Info[i].name,name);
strcpy(Info[i].ID_card,ID_card);
strcpy(Info[i].in_time,in_time);
strcpy(Info[i].leave_time,leave_time);
Info[i].ad_payment=payment;
FILE *fp;
fp=fopen("d:\\hotel manage system.txt","w");
18、 for(i=0;i 19、 身份证:%s",Info[i].ID_card);
fprintf(fp," 预付款:%d",Info[i].ad_payment);
fprintf(fp," 入住时间:%s",Info[i].in_time);
fprintf(fp," 退房时间:%s\n",Info[i].leave_time);
}
fclose(fp);
}
if(!tag)
printf("没有查询到可修改数据!");
}
void Demand(int count) 20、 //定义3————查询函数
{
int in_num,i=0,flag=1;
printf("请输入要查询客房号:");
scanf("%d",&in_num);
int tag=0;
for(i=0;i 21、d\n",Info[i].prize);
printf("客人姓名:%s\n",Info[i].name);
printf("身份证:%s\n",Info[i].ID_card);
printf("入住时间:%s\n",Info[i].in_time);
printf("退房时间:%s\n",Info[i].leave_time);
printf("预付费用:%d\n",Info[i].ad_payment);
flag=0;
break;
}
if(!tag)
{printf("没有查询到!");}
}
void Del(int 22、count) //定义4————删除函数
{
int i,j,num,flag=1,tag=0;
printf("请输入要删除客房号信息:");
scanf("%d",&num);
for(i=0;i<*count&&flag;i++)
{
if(Info[i].num==num)
{
for(j=i;j<*count&&flag;j++)
Info[j]=Info[j+1];
Info[*count-1].ad_payment = 0;
strcpy(Info[*count- 23、1].ID_card,"");
strcpy(Info[*count-1].idly,"");
strcpy(Info[*count-1].in_time,"");
strcpy(Info[*count-1].leave_time,"");
strcpy(Info[*count-1].name,"");
Info[*count-1].num = 0;
Info[*count-1].prize = 0;
strcpy(Info[*count-1].type,"");
flag=0,tag=1;
(*count)--;
24、 break;
}
}
if(!tag)
{printf("没有查询到能够删除信息!");}
n=n-1;
FILE *fp;
fp=fopen("d:\\hotel manage system.txt","w");
for(i=0;i 25、);
fprintf(fp," 客房价格:%d",Info[i].prize);
fprintf(fp," 用户姓名:%s",Info[i].name);
fprintf(fp," 身份证:%s",Info[i].ID_card);
fprintf(fp," 预付款:%d",Info[i].ad_payment);
fprintf(fp," 入住时间:%s",Info[i].in_time);
fprintf(fp," 退房时间:%s\n",Info[i].leave_time);
}
fclose(fp);
26、}
void Skim(int count) //定义5————浏览函数
{
int i,flag=1;
printf("\n");
for(i=0;i 27、 printf("客人姓名:%s\n",Info[i].idly);
printf("客人身份证号:%s\n",Info[i].name);
printf("入住时间:%s\n",Info[i].ID_card);
printf("退房时间:%s\n",Info[i].in_time);
printf("预付费用:%s\n",Info[i].leave_time);
printf("\n");
flag=0;
//return;
}
}
void Balance(int conut) // 28、定义6————结算函数
{
int i,x,fee,time;
printf("请输入要结算客房号:");
scanf("%d",&x);
for(i=0;i 29、}
else
{printf("编号输入错误,请重新输入:");return;}
}
七、运行结果分析
1.运行程序后,按提醒选择对应功效。
(1)。功效1——登记。(图2)
图2 登记数据
(2)。功效2——修改。(图3)
图3 修改数据
(3)功效3——查询。(图4)
图4查询信息
(3)功效4——删除。(图5)
图5 删除信息
(5)功效5——浏览。(图6)
图6 浏览信息
(6)功效6——结算。(图7)
图7 结算余额
2.进入对应功效后,进行数据处理。处理后数据会保留在磁盘中便于系统运作和数据存放。
图 30、8
3.信息能够在d:\\hotel manage system.txt 中查询到。
八、收获及体会
对C语言在编写程序时用处有了更明确认识,知道了编写C程序通常法方步骤。最大收获是,编写程序时一定要有信心和勇气,要相信自己一定能够把这个程序编写出来。分析问题做出算法,想好思绪,在心里有个大致框架,然后按部就班记下自己想到每一点内容,把写下东西认真整理,查缺补漏,把部分细节地方补上,就这么一个貌似极难程序就写出来了(其实编程并不难,关键是要投入,要钻到里面去)。下一步就是读程序了,读程序时一定要小心仔细,一条语句、一条语句读,看是否能输出自己想要输出结果,假如发觉错误要立即改过来,再接着向下读,直到把程序调试完美无缺为至。
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818