数据结构实训报告-影院订票系统

上传人:第*** 文档编号:31143474 上传时间:2018-02-05 格式:DOC 页数:15 大小:581KB
返回 下载 相关 举报
数据结构实训报告-影院订票系统_第1页
第1页 / 共15页
数据结构实训报告-影院订票系统_第2页
第2页 / 共15页
数据结构实训报告-影院订票系统_第3页
第3页 / 共15页
数据结构实训报告-影院订票系统_第4页
第4页 / 共15页
数据结构实训报告-影院订票系统_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据结构实训报告-影院订票系统》由会员分享,可在线阅读,更多相关《数据结构实训报告-影院订票系统(15页珍藏版)》请在金锄头文库上搜索。

1、信息工程学院实训报告实训项目:电影票预订及查询系统计算机科学与技术 专业 09 级 01 班姓 名: 实训成绩: 指导老师: 2011 年 06 月 30 日 实训目的:通过数据结构的课程设计,掌握并熟悉一个简单项目的开发过程,本项目利用数据结构中最基础和最重要的部分:单链表。在整个开发设计过程中掌握数据结构的思想,以及各种操作和实际应用。并可以将其运用于具体问题的解决之中。加深对数据结构课程中理论和实践相结合的认识。实训任务及要求:掌握并熟练单链表的创建、插入、删除、查找等各种常用算法。并最终设计完成电影票预订及查询系统 ,将各种算法综合运用于具体的设计任务中。 实训仪器、仪表与工具、器材:

2、硬件设备为多媒体计算机、实验运行环境及软件为 MicroSoft visual C+ 6.0 及 Windows 2003、操作系统、程序设计语言为 C 语言。 实训内容、方法与步骤(流程):设计一个电影院订票系统,完成以下功能:1、可为此系统增加任意多部的影片,且每个放映厅可以放映多部影片(暂不考虑放映时间问题) ,影片按添加先后顺序依次编号顺序排列;2、允许观众按影片名订票订票(每人限订票数不大于 5 张) ;3、订过票的观众,可以退票;4、允许查询现有影片的放映厅号及剩余座位数。5、允许查询已售出影票的信息。该系统中用到的数据结构:1、所有影片构成一个单链表,且每部影片为一个结构体,其成

3、员包括:影片序号(int 型) 、放映厅编号(int 型) 、影片名称(char20,字符数组型) 、影片剩余票数座位数 10(int 型) 、next指针;2、所有观众构成一个单链表,且每个观众为一个结构体,其成员包括:影片序号(int 型) 、放映厅号(int 型) 、观众姓名(char10,字符数组型) 、影片名( char20,字符型数组) 、观众持有票数(int 型) 、next 指针;提示:1、观众订票后,对应影片的剩余座位数自动减去观众所定票数。2、若观众所定影片票已售完,应给出相应的提示信息,并且订票失败。程序运行结果要求1、应显示界面如下,接受不同的数字输入,运行不同的结果:

4、2、在订票前,应先创建影片链表(可向指定放映厅增加任意多的影片信息) ;* 系统可执行操作如下: * 1、查询影片信息及余票 * 2、添加影片至指定放映厅 * 3、订购影票 * 4、退订影票 * 5、查询已售出影票信息 * 0、退出系统 *3、观众链表的初始值为空,在有观众订票时,才把观众结点插入观众链表;如观众退票,则将对应的观众结点从观众链表中删除,且其所购票影片的剩余座位数自动增加观众所退票数。实训记录:1、结构体实现:影片链表结构体:typedef struct inodeint num;int hall;char name20;int seats;struct inode *next

5、;lnode, *linklist;观众链表结构体:typedef struct Inodeint num;int hall;char id10;char name20;int seats;struct Inode *next;Lnode, *Linklist;2、初始化影片链表函数:void creatlist_l(linklist &L)linklist p, s;int i;p = (linklist)malloc(sizeof(lnode);L = p;p-next = NULL;printf(请输入 3 部初始化影片名字:n);for(i = 0; i num = i + 1;s-h

6、all = i + 1;s-seats = 10;scanf(%s, s-name);p-next = s;s-next = NULL;p = s;3、查询现有影片信息函数:void search_M(linklist &L)linklist p = L-next;printf(n.影院现有影片信息如下.n);printf(影片序号 影片名字 放映厅号 剩余票数n);while(p != NULL)printf(%8d%14s%10d%10dn, p-num, p-name, p-hall, p-seats);p = p-next;printf(n);4、增加影片函数:void add(lin

7、klist &L)linklist p = L, s;int i, n, hall, j = 0;while(p-next != NULL)p = p-next;j+;printf(请输入所要添加影片的放映厅号和数量:);scanf(%d%d, printf(请输入%d 部影片的名字:, n);for(i = 0; i num = +j;s-hall = hall;s-seats = 10;scanf(%s, s-name);p-next = s;s-next = NULL;p = s;printf(%d 部影片已成功添加至第%d 放映厅。nn, n, hall);5、订购影票函数:void

8、buy(linklist &L, Linklist &V)linklist p = L-next;Linklist p1 = V, s;int n, max = 5, i;char name20, id10;printf(n 请输入购票影片名字:);scanf(%s, name);while(p != NULL)if(i = strcmp(p-name, name) = 0)if(p-seats = 0)printf(对不起,影片%s票已售完。nn, p-name);return ;elseprintf(%d %s %dn, p-num, p-name, p-seats);break;else

9、p = p-next;if(p = NULL)printf(对不起,影院暂无此影片!nn);return ;printf(请输入您的姓名及购票张数:);scanf(%s%d, id, if(n seats)if(n seats -= n;s = (Linklist)malloc(sizeof(Lnode);s-num = p-num;strcpy(s-id, id);strcpy(s-name, p-name);s-hall = p-hall;s-seats = n;while(p1-next !=NULL)p1 = p1-next;p1-next = s;s-next = NULL;p1 =

10、 s;printf(%s 成功购得第%d 放映厅影片%s 影票%d 张。nn, p1-id, p1-hall, p1-name, p1-seats);elseprintf(对不起,每人最多可购票%d 张,您的购票数将超过最大限额,未能成功购票!nn, max);elseprintf(对不起,余票不足,未能成功购票!nn);6、退订影票函数:void back(linklist &L, Linklist &V)linklist p = L-next;Linklist p1 = V, q;char id10;int mark = 0, i, m, h;printf(n 请输入您的姓名:);scan

11、f(%s, id);while(p1 != NULL)if(h = strcmp(p1-id, id) = 0)mark = 1;break;elseq = p1;p1 = p1-next;if(mark)m = p1-num;for(i = 1; i next;p-seats += p1-seats;if(p1 = V)V = p1-next;elseq-next = p1-next;printf(%s 成功退订影片%s%d 张票。nn, p1-id, p1-name, p1-seats);elseprintf(%s 未在本影院订购影票。nn, id);7、 查询已售出影票信息函数:void

12、 search_V(Linklist &V)Linklist p = V-next;if(p != NULL)printf(n.已购票观众信息如下.n);printf(影片序号 影片名字 放映厅号 观众姓名 购票张数nn);while(p != NULL)printf(%8d%14s%10d%10s%10dn, p-num, p-name, p-hall, p-id, p-seats);p = p-next;printf(n);elseprintf(n 暂无观众订票信息!nn);8、 主函数实现:void main()linklist Movie;Linklist Viewer, q;int

13、n;Movie = NULL;Viewer = NULL;creatlist_l(Movie);q = (Linklist)malloc(sizeof(Lnode);Viewer = q;q-next = NULL;printf(n .欢迎使用票务系统.n);while(n)printf( *n);printf( * 系统可执行操作如下: *n);printf( * 1、查询影片信息及余票 *n);printf( * 2、添加影片至指定放映厅 *n);printf( * 3、订购影票 *n);printf( * 4、退订影票 *n);printf( * 5、查询已售出影票信息 *n);printf( * 0、退出系统 *n);printf( *n);printf(请输入所需操作序列号:);scanf(%d, switch(n)case 0: ; break;case 1:search_M(Movie); break;case 2:add(Movie); break;case 3:buy(Movie, Viewer); break;case 4:back(Movie, Viewer); break;case 5:search_V(View

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号