资源描述
C语言课程设计报告
《 C 语 言 》
课程设计报告
标题:宾馆客房管理系统
学号:
姓名:
同组人员:
年级专业:09电子信息工程
指导老师:
完成日期:2010/6/21
目 录
一、程序的具体分工
二、课题要求
三、课题分析与设计
四、选题背景
五、程序介绍
六、源程序代码与调试
七、流程图
八、结语
九、参考书目
一、程序的具体分工
第一部分包括主函数和menu菜单函数是由叶伟完成,第二部分包括客人的入住(checkin)函数和退房(checkout)函数由我完成,第三部分为查询(lookfor)函数由王业生负责。
二、课题要求
1) 某宾馆有301、302、303、304、305五个标准间,每个标准间可住2人;
2) 链表存储结构:姓名、性别、房号、后续指针,按房间号有序;
3) 能实现入住(注意性别)和退房,能按给定姓名、房号查询;
4) 建议采用链表结构,但用其它方法实现也可。
三、课题分析与设计
本程序是非数值计算型算法设计,我们设计出了宾馆客房管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是结构体和链表的相关操作,包括结构体数组的输入、输出、查找、删除等。我们设计的这个宾馆客房系统也初步实现了人员信息的显示、删除、查找、添加等必要的功能。
四、 选题背景
C语言是目前世界上流行、使用最广泛的高级程序设计语言。1972年,C语言在美国贝尔实验室里问世,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSIC标准。
目前,在微机上广泛使用的C语言编译系统有MicrosoftC、Turbo C 、Visual C++等。这
C语言版本不仅实现了ANSIC标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。
C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。
此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
为了将本学期所学C语言知识应用于实际,加深对C语言的理解与掌握,我院开设了C语言课程设计这门课程。而我们小组选取了宾馆客房管理系统这个课题,以此来锻炼我们编写程序的能力。
五、程序介绍
宾馆客房管理系统由8个函数组成,包括main函数、menu函数、checkin函数、checkout函数、lookfor函数,其中checkin函数又包括一个add子函数,lookfor函数包括search1和search2两个子函数。
main函数主要是对menu函数、checkin函数、checkout函数、lookfor函数进行声明,建立静态链表并且对结构体中num、sex进行赋值。
menu函数是界面函数,有两个功能。一是输出一个界面,二是作为进入其它函数的入口。输入1则执行checkin函数;输入2则执行checkout函数 ,输入3则执行lookfor函数。
checkin函数的功能是对入住房客的信息进行统计。首先、函数先对五个房间的入住情况进行检查,并输出相应的信息。例如、若房间301是空的,则显示可住两人信息;若已住一人,则显示可住一人信息,并且同时显示可住房客的性别;若已有两人入住,则不显示任何信息。如果房客已决定入住,则输入1,进入add函数,按提示输入房客信息即可。若要返回menu函数,则输入1。
checkout函数的功能是退房。按提示信息输入房间号和姓名即可实现退房。若要返回menu函数,输入1。
lookfor函数的功能是查询房客的信息,有按姓名查找和按房间号查找两种查询方式。输入1则执行search1子函数,即按姓名查找;输入2则执行search2子函数,即按房号查找;输入3,执行manu函数。若按姓名查找,则输入姓名即可;若按房间号查找,则输入房间号即可;若要退回lookfor函数,则输入1。
六、源程序代码与调试
代码:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define NULL 0
struct restaurant
{ int num;
char name[2][20];
char sex[2];
struct restaurant *next;
};
void main()
{
void menu(struct restaurant *pt0);
void checkin(struct restaurant *pt1);
void checkout(struct restaurant *pt2);
void lookfor(struct restaurant *pt3);
struct restaurant a,b,c,d,e,*head,*p;
a.num=301,b.num=302,c.num=303,d.num=304,e.num=305;
a.sex[0]=a.sex[1]=b.sex[0]=b.sex[1]=c.sex[0]=c.sex[1]=d.sex[0]=d.sex[1]=e.sex[0]=e.sex[1]=' ';
head=&a;a.next=&b; b.next=&c;c.next=&d; d.next=&e; e.next=NULL;
p=head;
menu(p);
}
void menu(struct restaurant *pt0)
{
int i;
clrscr();
textcolor(5);
gotoxy(10,5);
cprintf(" The Hotel Management System\n");
gotoxy(10,7);
cprintf(" Welcome\n");
gotoxy(10,8);
cprintf(" **************Menu************\n");
gotoxy(10,9);
cprintf(" * 1. checkin *\n");
gotoxy(10,10);
cprintf(" * 2. checkout *\n");
gotoxy(10,11);
cprintf(" * 3. lookfor *\n");
gotoxy(10,12);
cprintf(" ******************************\n");
gotoxy(10,13);
cprintf(" Please Enter Your Choice<1~3>:");
scanf("%d",&i);
switch(i)
{
case 1:checkin(pt0);break;
case 2:checkout(pt0);break;
case 3:lookfor(pt0);break;
}
}
void checkin(struct restaurant *pt1)
{ void add(struct restaurant *pt1);
int i,k;
struct restaurant *p;
p=pt1;
clrscr();
for(i=0;i<5;i++)
{if(pt1->sex[0]==' '&&pt1->sex[1]==' ')
printf("room:%d\ntwo person can live here\n",pt1->num);
else if(pt1->sex[0]==' '&&pt1->sex[1]!=' ')
{printf("rome:%d\n",pt1->num);
printf("one person can live here,sex:%c\n",pt1->sex[1]);}
else if(pt1->sex[0]!=' '&&pt1->sex[1]==' ')
{printf("rome:%d\n",pt1->num);
printf("one person can live here,sex:%c\n",pt1->sex[0]);}
pt1=pt1->next;
}
printf("1:continue\n2:return\nInput your chioce:");
scanf("%d",&k);
switch(k)
{ case 1:add(p);break;
case 2:menu(p);break;
}
}
void add(struct restaurant *pt1)
{struct restaurant *p;
int i,j,k;
char ch1,ch2,str[20];
p=pt1;
printf("Input room number and sex and name:\n");
scanf("%d%c%c%s",&i,&ch1,&ch2,&str);
for(j=0;j<5;j++)
{ if(i==pt1->num)
{for(k=0;k<2;k++)
if(pt1->sex[k]==' ')
{pt1->num=i;pt1->sex[k]=ch2;strcpy(pt1->name[k],str);break;}
j=5;}
pt1=pt1->next;
}
checkin(p);
}
void checkout(struct restaurant *pt2)
{ struct restaurant *p;
int i,j,k;
char str[20];
p=pt2;
clrscr();
do{pt2=p;
printf("Input rome number and name:\n");
scanf("%d",&k);
if(k==1){menu(p);break;}
else {scanf("%s",str);
for(i=0;i<5;i++)
{if(k==pt2->num)
{for(j=0;j<2;j++)
if(strcmp(str,pt2->name[j])==0)
{ memset(pt2->name[j],' ',20); pt2->sex[j]=' ';break;}
break;}
pt2=pt2->next;}
}
}while(1);
}
void lookfor(struct restaurant *pt3)
{void search1(struct restaurant *pt4);
void search2(struct restaurant *pt4);
int i;
char str[20];
clrscr();
printf("1:search by inputing name\n2:search by inputing room number\n3:return\n");
printf("please input your choice:");
scanf("%d",&i);
switch(i)
{ case 1:search1(pt3);break;
case 2:search2(pt3);break;
case 3:menu(pt3);break;}
}
void search1(struct restaurant *pt4)
{ struct restaurant *p;
int n,i,j;
char str1[20]={'1'},str2[20];
p=pt4;
clrscr();
do{pt4=p;
printf("Input name:\n");
scanf("%s",&str2);
if(strcmp(str1,str2)==0)lookfor(p);
else for(i=0;i<5;i++)
{for(j=0;j<2;j++)
if(strcmp(str2,pt4->name[j])==0)
printf("rome:%d\tsex:%c\tname:%s\n",pt4->num,pt4->sex[j],pt4->name[j]);
pt4=pt4->next;}
}while(1);
}
void search2(struct restaurant *pt4)
{struct restaurant *p;
int i,j,k;
char str[20];
p=pt4;
clrscr();
do{pt4=p;
printf("Input room number:\n");
scanf("%d",&j);
if(j==1){lookfor(p);break;}
else for(i=0;i<5;i++)
{if(j==pt4->num)
{for(k=0;k<2;k++)
if(pt4->sex[k]!=' ')
printf("room:%d\tsex:%c\tname:%s\n",pt4->num,pt4->sex[k],pt4->name[k]);
break;}
pt4=pt4->next;}
}while(1);
}
调试:
1、 菜单函数执行结果:
进入程序后进入程序主菜单
结果如下:
输入1进入checkin函数,输入2进入checkout函数,输入3进入lookfor函数.
2、checkin入住函数结果:
进入入住函数界面
运行结果如下
输入1继续
运行结果如下:
输入房间号性别和姓名
例如:输入 301 m yewei
运行结果如下:
输入1返回到menu函数
3、lookfor(查询)函数结果:
输入1按姓名查找,输入2按房间号查找,输入3返回menu函数。
选择查找方式:输入1按姓名查找;
例如输入yewei
结果:
输入1返回lookfor函数。
输入2按房间号查找,结果:
例如输入301
结果:
输入1返回到lookfor函数
4、checkout(退房)函数结果:
输入房间号和姓名即可实现退房
例如输入301 yewei即可
输入1返回到menu函数
七、流程图
八、结语
通过这次课程设计,在我和我们小组成员的共同的努力下,将《宾馆客房管理系统》这个软件编写出来并运行成功。在此同时,也加深了我对谭浩强的《C语言程序设计》这本书的体会和了解。我对很多的函数有了新的认识,也学会了运用多种函数,我也明白了写软件的基本过程和基本方法。写软件的过程中我又学到了曾经自己不知道的函数或是自己不会的
函数的用法。这次课程设计课总的来说让我受益匪浅。在软件的设计过程中遇到了很多的困难。在软件一次一次的调试失败下曾经想过要放弃。我最后还是让自己坚持了下来,毫不畏惧困难,在同学和老师的帮助与讲解下我总算是顺利的完成了软件的设计。虽然在调试程序遇到了很多的困难,当软件调试成功时那种喜悦的感觉没有什么东西可以代替的。在程序的编写过程中我发现我自己有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。
在这几天的编写过程中我对C语言有了更进一步的认识和了解。此次编程过程的经验和知识肯定能促进我以后的学习。
此次课程设计不仅给了我很多很好的经验,也让我体会到了失败时的焦急和难受,成功时的兴奋与喜悦。同时我们小组成员互帮互助,让我认识到团队的力量,团结就是力量。
九、参考书目
[1] 谭浩强,C程序设计教程,清华大学出版社,2007年
[2] 赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年
[3] 夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年
[4] 谭浩强编著,《C程序设计》,清华大学出版社,1991年
[5] Gary J. Bronson, A First Book of ANSI C (Fourth Edition), Publishing House of Electronics Industry, 2006.
[6] Al Kelley, Ira Pohl, A Book on C: Programming in C (Fourth Edition), China Machine Press, 2004.
[7] Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, China Machine Press, 2006.
其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。
二.培训的及要求培训目的
安全生产目标责任书
为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标:
一、目标值:
1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。
2、现金安全保管,不发生盗窃事故。
3、每月足额提取安全生产费用,保障安全生产投入资金的到位。
4、安全培训合格率为100%。
二、本单位安全工作上必须做到以下内容:
1、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。
2、保证公司各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。
3、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。
4、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。
5、在公司及政府的安全检查中杜绝各类违章现象。
6、组织本部门积极参加安全检查,做到有检查、有整改,记录全。
7、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以查处。
8、虚心接受员工提出的问题,杜绝不接受或盲目指挥;
9、发生事故,应立即报告主管领导,按照“四不放过”的原则召开事故分析会,提出整改措施和对责任者的处理意见,并填写事故登记表,严禁隐瞒不报或降低对责任者的处罚标准。
10、必须按规定对单位员工进行培训和新员工上岗教育;
11、严格执行公司安全生产十六项禁令,保证本单位所有人员不违章作业。
三、 安全奖惩:
1、对于全年实现安全目标的按照公司生产现场管理规定和工作说明书进行考核奖励;对于未实现安全目标的按照公司规定进行处罚。
2、每月接受主管领导指派人员对安全生产责任状的落
19
安徽师范大学物理与电子信息学院
College of Physics and Electronic Information, Anhui Normal University
展开阅读全文