当前位置:首页 > c语言课程设计实验报告
程序结束 图3
4 实验结果 数据的输入: 01 层号 号 位置 房 间 电话 02层号 号位置 房间 电话 1层 旅客姓名 fengpeng11 出生日期 1990/09/01 01 429004 M fengpeng2 02 4290041 M fengpeng3 11 123 M fengpeng2 12 1245 M fengpeng5 3层 123 M 入住日期 退房日期 联系电话 出生日期 入住日期 退房日期 联系电话 2011/09/01 2011/09/02 12345 1990/06/01 2011/09/01 2011/09/02 123456 类型A A区 房号 身份证 001 性别 1层 旅客姓名 A区 房号 身份证 002 性别 旅客姓名 类型B 11 号 房 间 12号房间 层号 2层 出生日期 1990/09/01 入住日期 退房日期 联系电话 出生日期 入住日期 退房日期 联系电话 出生日期 入住日期 退房日期 联系电话 2011/09/01 2011/09/02 12344 1990/06/01 2011/09/01 2011/09/01 12345 1990/09/02 2011/09/02 2011/09/02 12345 位置 A区 房号 身份证 电话 011 性别 层号 2层 旅客姓名 位置 A区 房号 身份证 电话 012 性别 3层 旅客姓名 A区 房号 身份证 021 性别 类型C21层号 号位置 房 间 电话 当查询时,结果如
01号房间的旅客入住情况
5
21号房间的旅客入住情况
5 实验体会
1、这次C语言程序课程设计是把课程学完后的一次大检验,需要把书中的一些没来的及吸收的知识好好巩固,并加以运用。十字交叉链表的数据结构设计,需要把书上例子中的两级十字链表加以发展运用,写出三级十字交叉链表
2、这次实验开始时,不知道怎么从哪里开始,于是把实验书上面的例子一遍一遍的看,对于实验书上的十字交叉链表设计搞懂后,开始自己写,但是写出来的程序构建是有很多的error和wanrning,有时改好提示的错误后,又会出现一大堆新的错误。总之,对于程序的调试,需要极大的耐心,不能急躁。
3、在改完所有的错误后,运行程序,并进行数据的输入,但是在数据修改时,修改完并保存后,再次打开时,数据还是老样子,根本没什么改变,数据插入、删除都出现同样的问题,发现肯定是函数的设计有问题,于是重新检查,最后费了很大劲才解决,原来是指针的问题。
4、这次实验培养了独立思考,动手操作的能力,特别是加深了对C语言的理解与运用。学到了很多东西,通过这次课程设计,使我懂得了理论与实际相
结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
6 参考文献
图书:
1,曹计昌,卢萍,李开.C语言程序设计(第3版).北京:科学出版社 2008. 2,李开,卢萍,曹计昌.C语言实验与课程设计(第1版).北京:科学出版
6
2011。第121到146页
附录:
本实验采用C语言设计,采用codeblock编译环境,
源程序
#include
/*旅客入住信息结点结构*/ typedef struct guest {
char name[20]; /* *姓名*/ char roomNum[5]; /* *房号*/ char guestId[19]; /* *身份证号*/ char sex; /* *性别*/ char birthday[11]; /* *出生日期*/ char enrollData[20]; /* *入住日期*/ char exitData[20]; /* *退房日期*/
char guestPhone[12]; /* *旅客联系电话*/ struct guest *next; /* *指向下一结点的指针*/ }GUEST;
/*房间基本信息结点结构*/ typedef struct room_note {
char roomNum[5]; /* *房号*/ char roomType; /* *房间类型*/ char roomLayer; /* *房间层号*/ char roomPosition; /* *房间位置*/
char roomPhone[12]; /* *房间电话号码*/
struct guest* next3; /* *指向旅客入住支链的指针*/ struct room_note *next; /* *指向下一结点的指针*/ }ROOM_NOTE;
/*房间类型信息结点结构*/ typedef struct room_type {
char roomtype; /* *房间类型*/ int standardprice; /* *标准价格*/
7
社
int hourprice; /* *钟点价格*/
struct room_note *next2;/* *指向房间基本信息支链的指针*/ struct room_type *next; /* *指向下一结点的指针*/ }ROOM_TYPE;
void create_list(ROOM_TYPE** head); /*创建链表*/ void load_list(ROOM_TYPE** head); /*加载数据*/ void save_list(ROOM_TYPE* head); /*保存数据*/ void modif_list(ROOM_TYPE** head); /*修改数据*/ void insert_list(ROOM_TYPE** head); /*插入数据*/ void delete_list(ROOM_TYPE** head); /*删除数据*/
void data_seek(ROOM_TYPE* head); /*按日期查询入住旅客信息*/ void name_seek(ROOM_TYPE* head); /*按姓名查询入住旅客信息*/ void roomNum_seek(ROOM_TYPE* head); /*按房号查询该房间旅客信息*/ void id_seek(ROOM_TYPE* head); /*按身份证号查询旅客入住信息*/ void stat_guest(ROOM_TYPE* head); /*统计在住旅客的数目*/ int data_atoi(char a[]); /*将日期字符串转换成整型数据*/
/*主函数*/ int main() {
ROOM_TYPE *head=NULL; char c,ch;
printf(\
printf(\宾馆客房客房信息管理系统\\n\ /*信息管理系统标题*/ printf(\ lop: do {
printf(\ 1:文件管理\\n\\n\ /*显示菜单1,文件管理*/ printf(\ 2:数据处理\\n\\n\ /*显示菜单2,数据处理*/ printf(\ 3:数据查询\\n\\n\ /*显示菜单3,数据查询*/ printf(\ 4:数据统计\\n\\n\ /*显示菜单4,数据统计*/ scanf(\getchar();
}while(c<'1'||c>'4'); switch(c) { case '1':
lop1: do{
printf(\数据录入\\n\\n\显示文件管理子菜单
8
共分享92篇相关文档