数据结构课程设计 火车订票系统
火车售票系统c课程设计
火车售票系统c 课程设计一、课程目标知识目标:1. 学生能理解火车售票系统的基本原理和功能需求,掌握系统设计的基本流程。
2. 学生能运用所学编程语言(如C语言)实现售票系统的功能模块,如用户界面、票务查询、购票、支付等。
3. 学生了解数据库原理,能运用数据库技术进行票务数据存储和管理。
技能目标:1. 学生掌握系统分析与设计的方法,能运用结构化分析方法进行问题求解。
2. 学生掌握C语言编程技巧,能编写规范、高效的代码实现系统功能。
3. 学生具备团队协作能力,能在小组合作中发挥个人特长,共同完成项目任务。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机科学的兴趣和热情,提高信息素养。
2. 学生在项目实践中,学会分析问题、解决问题,增强自信心和自主学习能力。
3. 学生树立正确的价值观,认识到科技对社会发展的作用,关注社会热点问题。
课程性质:本课程为信息技术课程,旨在通过火车售票系统项目设计,培养学生编程能力、团队协作能力和问题解决能力。
学生特点:学生具备一定的C语言基础,对编程有一定兴趣,喜欢动手实践,但个别学生可能缺乏团队协作经验。
教学要求:注重理论与实践相结合,以项目为导向,引导学生主动探究,培养其编程技能和实际操作能力。
同时,关注学生情感态度的培养,使其在学习过程中形成积极的价值观。
通过分解课程目标为具体的学习成果,便于教学设计和评估,确保课程目标的达成。
二、教学内容1. 火车售票系统概述:介绍火车售票系统的基本原理、功能模块及系统架构,关联课本第三章内容。
- 系统需求分析- 功能模块划分- 系统架构设计2. C语言编程基础:回顾C语言基础知识,为后续编程实践打下基础,关联课本第二章内容。
- 数据类型与运算符- 控制结构(分支、循环)- 函数与数组3. 数据库原理与应用:介绍数据库基本概念,学会运用数据库进行票务数据管理,关联课本第五章内容。
- 数据库基本概念- 数据表设计与创建- SQL语句操作4. 系统功能实现:根据需求分析,利用C语言和数据库技术实现火车售票系统功能,关联课本第六章内容。
课程设计一火车售票系统
数据结构与算法课程实验报告课程设计一:火车售票系统设计及实现姓名:cll班级:学号:一、实验内容:火车售票系统在现实中的应用已经非常普遍,目前通常使用可视化的方法实现,例如采用C/S模式下的程序设计或者采用B/S模式下的程序设计,通常都具有较为友好的界面和较为完善的功能。
火车售票系统的实现过程中,主要涉及到数据格式的设计,也就是数据结构的设计。
通常在采用数据库的情况下,可以运用数据库的设计来实现。
在没有采用数据库情况下需要,单独设计相应数据结构和算法。
二、实验目的:按给定需求,通过查找相关资料,完成火车售票系统设计及实现,在设计过程中充分运用数据结构与算法课程中所学知识,从而熟练地掌握和应用线性表、单链表等重要数据结构和常用算法。
提前熟悉软件需求分析,软件测试等环节,运用相应程序设计语言实现该系统,从而进一步提高程序设计能力。
三、问题描述(1)此系统可以实现售票、退票、车票剩余情况查询等功能。
(2)每张车票包含车次、座位信息。
在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、座位情况。
(3)退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票。
(4)演示程序以用户和计算机的对话方式进行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入程序中规定的运算命令;相应的输入数据(滤去输入中的非法字符)和运算结果显示在后。
(5)由订票系统的主要功能使程序的命令包括:1)查询;2)订票;3)退票4)退出订票系统四、问题的实现4.1所用的数据结构(包括所用数据结构的抽象数据类型定义和说明)typedef struct LNode{//数据域char name[10];//订票姓名int dnum;//订票数量char dj[50];//证件编号int zhekou; //1代表折扣对象float pay;//付费struct LNode *next;//指针域int zuohao[200];}LNode,*LinkList;//构造单链表(已订票)typedef struct Tickets{char *endname;//终点站名char *hnum;//车次名int fnum;//票价float discut;//折扣int day;//日期int wholenum;//总票额int lastnum;//余票量int tuipiao[100]; //退票处理,记录退票的座位号int tpcs;//记录目前退票次数int mcps;//记录卖出去的票数(包括退票)LinkList la;//已订票链表}Tickets;//构造结构类型(火车票)typedef struct{struct Tickets *elem;//存储空间的基址int length;int listsize;//当前分配的存储容量(以sizeof(Tickets)为单位)}SqList;//构造顺序表4.2主要实现思路1、火车站的火车票采用顺序表表示。
火车订票系统课程设计
火车订票系统课程设计一、课程目标知识目标:1. 让学生掌握火车订票系统的基本原理和功能模块;2. 帮助学生了解数据库在火车订票系统中的应用;3. 引导学生理解火车票的查询、预订、支付等业务流程。
技能目标:1. 培养学生运用所学知识设计简单的火车订票系统功能模块;2. 提高学生分析问题、解决问题的能力;3. 培养学生团队协作和沟通表达的能力。
情感态度价值观目标:1. 激发学生对计算机科学与技术学科的兴趣和热情;2. 培养学生关注社会热点问题,关注信息技术在生活中的应用;3. 引导学生树立正确的价值观,认识到科技改变生活的重要性。
课程性质:本课程为信息技术与学科整合的实践性课程,结合实际生活中的火车订票系统,让学生在实践中掌握计算机科学与技术的基本知识和技能。
学生特点:六年级学生对计算机有一定的基础,具备一定的操作能力和逻辑思维能力,对新鲜事物充满好奇心。
教学要求:注重理论知识与实践操作相结合,以学生为主体,教师为主导,鼓励学生积极参与讨论和实践活动,提高学生的动手能力和创新能力。
通过本课程的学习,使学生能够将所学知识应用于实际问题的解决中。
二、教学内容1. 火车订票系统概述:介绍火车订票系统的基本概念、发展历程和在我国的应用现状。
相关教材章节:第三章 计算机网络应用2. 火车订票系统功能模块:分析火车订票系统的功能模块,包括用户注册、登录、查询、预订、支付、改签、退票等。
相关教材章节:第四章 数据库应用3. 数据库在火车订票系统中的应用:讲解数据库的基本概念,以及如何在火车订票系统中设计数据库表、实现数据存储和查询。
相关教材章节:第五章 数据库设计4. 火车票查询与预订:详细介绍火车票查询与预订的业务流程,包括车次查询、余票查询、预订车票等。
相关教材章节:第六章 互联网编程5. 火车订票系统设计与实现:引导学生运用所学知识,设计并实现一个简单的火车订票系统。
相关教材章节:第七章 网络编程实践教学进度安排:第一课时:火车订票系统概述第二课时:火车订票系统功能模块第三课时:数据库在火车订票系统中的应用第四课时:火车票查询与预订第五课时:火车订票系统设计与实现教学内容确保科学性和系统性,注重理论与实践相结合,使学生在掌握基本知识的基础上,能够运用所学技能解决实际问题。
数据库课程设计实验报告-火车票售票管理系统
数据库课程设计报告 -------火车售票管理信息系统软件学院软件工程2013级x班姓名: xx学号:2013xxxxxxxx目录一、系统开发平台 (1)四、需求分析 (2)4.1 用户需求说明 (2)4.1.1 数据需求 (2)4.1.2 事务需求 (3)4.2 系统需求说明 (4)五、数据库逻辑设计 (4)5.1 ER图 (4)5.2 数据字典 (5)5.3 关系表 (7)六、数据库物理设计 (7)6.1 索引 (7)6.2 视图本节可选 (8)6.3 安全机制 (8)七、应用程序设计 (8)7.1 功能模块 (8)7.2 界面设计 (15)7.3 事务设计 (15)八、测试和运行 (16)九、总结 (16)一、系统开发平台题目:对火车站的售票进行管理。
主要功能:车次管理(车次、起止地点、到达时间、开车时间)、每一车次的车票管理(车厢号、座位号)、售票、退票、查询、异常处理。
开发工具:eclipse数据库:mysql操作系统:windows8.1二、数据库规划2.1 任务陈述:做一个火车票售票管理系统:对火车站的售票进行管理。
主要功能:车次管理(车次、起止地点、到达时间、开车时间)、每一车次的车票管理(车厢号、座位号)、售票、退票、查询、异常处理。
2.2 任务目标完成一个火车票售票管理系统,要实现管理员对车票的增添以及删改功能,同时需要实现用户对车票的查询购买,以及出现调整之后的退票服务。
三、系统定义3.1 系统边界管理员:可以对车票以及车次进行删改操作。
用户:可以买票,但是不可以对火车票进行添加操作3.2 用户视图3.2.1 管理员视图(1)列车管理:包括列车的录入、查询、修改和删除。
(2)用户管理:包括系统使用用户的添加、查询、修改、删除等。
在线支付用户身份信息用户注册车次设置管理员车次信息录入用户信息管理票务系统车站实际情况(3)系统数据处理:数据查询,根据关键字过滤,查看当前车次信息,车票信息,用户信息以及处理历史。
数据结构课程设计订票系统
数据结构课程设计订票系统一、课程目标知识目标:1. 理解并掌握数据结构中的线性表、栈、队列等基本概念及应用场景;2. 学会使用链表、顺序表等实现订票系统中旅客信息的存储与管理;3. 掌握查找、排序等算法在订票系统中的应用,提高数据检索效率。
技能目标:1. 能够运用所学数据结构知识,设计并实现一个简单的订票系统;2. 培养学生分析问题、解决问题的能力,提高编程实践技能;3. 学会使用调试工具,对订票系统进行测试与优化。
情感态度价值观目标:1. 培养学生团队合作精神,提高沟通与协作能力;2. 增强学生对数据结构在实际应用中的认识,激发学习兴趣;3. 培养学生严谨、认真的学习态度,养成良好编程习惯。
分析课程性质、学生特点和教学要求:本课程为数据结构课程设计,旨在让学生将所学理论知识与实际应用相结合,提高解决实际问题的能力。
学生处于高年级阶段,已具备一定的编程基础和逻辑思维能力。
教学要求注重实践操作,引导学生运用所学知识解决实际问题。
二、教学内容1. 线性表、栈、队列基本概念及操作:结合教材第二章内容,使学生掌握线性表、栈、队列的定义、特点及基本操作。
- 线性表的实现(链表与顺序表)- 栈的概念、实现及应用- 队列的概念、实现及应用2. 数据存储与管理:结合教材第四章内容,让学生学会使用数据结构对订票系统中旅客信息进行存储与管理。
- 旅客信息的数据结构设计- 数据存储(文件、数据库等)3. 查找与排序算法:结合教材第五章内容,培养学生运用查找与排序算法优化订票系统的能力。
- 常见查找算法(顺序查找、二分查找等)- 常见排序算法(冒泡排序、快速排序等)4. 订票系统设计与实现:结合教材实际案例,指导学生设计并实现一个简单的订票系统。
- 系统需求分析- 功能模块划分- 编程实现与测试5. 课程进度安排:- 第1周:线性表、栈、队列基本概念及操作- 第2周:数据存储与管理- 第3周:查找与排序算法- 第4周:订票系统设计与实现及优化教学内容注重理论与实践相结合,以教材为基础,确保学生能够系统地掌握数据结构知识,并将其应用于实际项目中。
火车订票系统课程设计
火车订票系统课程设计小组成员:(080100)王健(08010088)汪选继()王海全目录第一章概述........................................................................................................... 3.1.1课题简介 ...................................................................................................................... 3.1.2设计目的 ...................................................................................................................... 3.1.3设计内容 ...................................................................................................................... 3.1.4系统实验要求............................................................................................................... 4.第二章需求分析................................................................................................... 5.2.1需求分析的任务......................................................................................................... 5.2.2需求分析的过程.......................................................................................................... 5.2.3数据字典与流程图 .................................................................................................... 5.2.4系统框架 ...................................................................................................................... Z.第三章概念结构设计 .......................................................................................... 9.3.1概念结构设计的方法与步骤 (9)3.1.1概念结构设计的方法 (9)3.1.3概念结构设计的步骤 (9)3.2数据抽象与局部视图设计 (10)3.3视图的集成................................................................................................................ 1.1第四章数据库逻辑设计 . (13)4.1E-R图向关系模型的转换 (13)4.2数据模型的优化....................................................................................................... 1.34.3数据库的结构........................................................................................................... 1.4第五章软件功能设计.. (15)5.1软件模块划分........................................................................................................... 1.55.2软件功能结构图....................................................................................................... 1.5第六章源程序代码........................................................................................... .16第一章概述1.1课程设计题目开发一个学生火车票定票系统主要实现以下功能:1、学生基本信息的管理,尤其是学生目的地。
订票系统数据结构课程设计
订票系统数据结构课程设计一、课程目标知识目标:1. 让学生理解订票系统中的基本数据结构,掌握线性表、树和图等数据结构在订票系统中的应用。
2. 使学生掌握如何使用数据结构优化订票系统的查询和存储效率,了解不同数据结构在系统性能上的影响。
3. 引导学生学会分析订票系统中的数据关系,并能运用所学知识设计合理的数据结构。
技能目标:1. 培养学生运用所学数据结构知识解决实际问题的能力,能够根据需求设计并实现订票系统中的数据结构。
2. 提高学生的编程实践能力,使其能够熟练运用编程语言实现订票系统相关功能。
3. 培养学生团队协作和沟通能力,能在项目中进行有效分工与协作。
情感态度价值观目标:1. 激发学生对数据结构学习的兴趣,培养其探究精神,提高学习积极性。
2. 培养学生的责任心,使其认识到数据结构在实际应用中的重要性,增强对技术应用的敬畏之心。
3. 引导学生树立正确的价值观,认识到科技进步对生活的影响,培养其热爱科学、服务社会的精神。
课程性质:本课程为高二年级信息技术课程,旨在让学生结合实际应用,深入理解数据结构知识,提高编程实践能力。
学生特点:学生已具备一定的数据结构基础,对编程有一定了解,具备基本的编程能力,但实际应用经验较少。
教学要求:结合订票系统实际应用场景,引导学生运用所学数据结构知识,培养其解决实际问题的能力。
教学过程中注重理论与实践相结合,强化编程实践,提高学生的综合运用能力。
通过项目合作,培养学生的团队协作和沟通能力。
二、教学内容1. 订票系统概述:介绍订票系统的基本功能、业务流程及在生活中的应用。
教材章节:第二章 数据结构在实际应用中的优势2. 数据结构基础知识回顾:线性表、树和图的基本概念、存储结构及操作方法。
教材章节:第三章 线性表;第四章 树;第五章 图3. 订票系统中的数据结构应用:a. 线性表在航班信息存储和查询中的应用b. 树在航空公司组织结构及航班层级关系表示中的应用c. 图在航班网络及航线规划中的应用教材章节:第六章 数据结构在实际应用中的案例分析4. 数据结构优化订票系统性能:分析不同数据结构在查询、存储等方面的性能差异,探讨优化策略。
数据结构课程设计 火车订票系统
软件课程设计--C语言设计火车票订票系统之源代码(模拟数据库功能)(需求分析+可行性分析)设计题目:火车订票系统小组成员:指导教师:完成时间:一.需求设计:1.每条线路所涉及的信息有:起点、终点、站名、车次、、票价、时间、座位号。
2.作为示意系统,全部数据可以只放在内存中。
3.系统能实现的功能和操作如下:①.查询路线:根据旅客提出的终点站名输入下列信息:车次、车站名。
②.承办订票业务:根据客户提出的要求查询该车次票额的情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新查询客户要求,若需要可登记排队候补。
③.承办退票业务:根据客户提供的情况(车次、时间、座位号)为客户办理退票手续,然后查询该车次是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。
④登记旅客情况:包括旅客姓名,性别,年龄,家庭住址,联系方式等。
⑤统计功能:将每次车的订票,退票结果统计出来。
⑥管理功能:列车管理员可以通过调用函数来查看车票极其用户情况.⑦.查询功能:用户可以查询自己需要的车辆信息.二.总体设计1.程序流程图:按2键按3键按4键进入in函数进入book函数进入inquire函数进入cancel函数按5键进入you函数2.总体设计说明:①.数据结构设计:程序=数据结构+算法,一个好的程序必定有一个好的数据结构.本设计主要考虑车票信息和用户信息的数据结构.车票信息采用半十字链表.横向链表中的每一个结点包含以下内容:车次,起始站,发车时间,指向下一个结点的指针,指向中途站的指针.纵向链表中每一个结点包含以下内容:从始发站开始的依次到站,票价,到达时间,是否已被购买标识,才用mark标识,当mark为1时车票已售出,当mark为0时车票还未售出.以及指向下一个结点的指针.纵向链表采用循环链表,尾指针指向首指针.未购票用户信息使用队列来保存,因为考虑到用户会预订票,所以把用户以来订票的时间早晚排在队中.先来先买,后来后买.队列中的每个元素包含以下内容:用户姓名,身份证号码,想要购票的车次,起始站,要到的站,时间.已经购票用户信息使用一个单链表来保存,链表中的没个结点包含以下内容:用户姓名,身份证号码,已购车票的车次,出发时间,到达时间.车票信息链表示意图:车次起始站发车时间downnnext到站时间票价marknext座位号未购票用户信息队列:用户姓名购票的车次起始站要到的站达到时间用户姓名购票的车次起始站要到的站达到时间注:座位号包含在车次号中已购票用户信息链表示意图: 用户姓名身份证号码已购车票的车次号出发时间到达时间注:座位号包含在车次号中②算法的设计:主函数:利用case语句实现用户界面,用户输入需要的服务的数字代码,程序就会转到相应的函数,实现相应的功能。
数据库课程设计-火车票订票系统,E-R图,数据字典,数据流图
pk
列车号,第一位是字母,后几位为数字
始发站
nvarchar(5)
not null
区间段始发站
到达站
nvarchar(5)
not null
区间段到达站
发车时间
time
not null
发车时间,时间
到达时间
time
not null
到达时间,时间
可载客量
int
not null
最大容纳旅客人数,整数
乘客表
列名
数据类型
约束
描述
身份证号码
char(18)
PK
身份证号码,旅客唯一ID
姓名
nvarchar(10)
not null
乘客姓名
订单号
char(10)
FK
订单号,可以一个订单号对应多个旅客,多个旅客对应多个订单号
车站表
列名
数据类型
约束
描述
车站编号
int
PK
车站唯一编码
车站名
nvarchar(5)
拼音代码
char(3)
not null
车站拼音代码
D6207/D6202/d6208/d6201
列名
数据类型
约束
描述
区间段ID
int
PK
区间段ID,停留两站之间为一个区间段
发车站
nvarchar(5)
not null
发车站
发车站代码
int
FK
发车站代码
到达站
nvarchar(5)
not null
到达站
到达站代码
int
not null
火车订票管理系统设计
课程设计课程名称SQL数据库系统课程设计题目名称火车订票管理系统专业班级学生姓名学号指导教师火车订票管理系统摘要:本文针对火车站的订票实际情况,按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤设计开发了火车订票管理系统。
并运用数据流图和数据字典、开发了火车订票管理系统。
并运用数据流图和数据字典、E-R E-R 图和数据库逻辑结构、层次图、系统流程图、以及程序流程图,对该系统的数据需求、数据库、系统软件结构、系统流程、以及处理过程等进行了分析和设计。
工具软件利用Visual Studio 2010软件和SQL Server 2008数据库来设计这个火车订票管理系统,并用C#C#语言设计后台代码。
语言设计后台代码。
该系统要解决的是火车订票工作所要解决的问题,可以满足火车订票的基本要求,包括用户查询、订票、退票和管理员增加车票等几个方面的功能。
方面的功能。
关键词:订票管理;火车订票;SQL Server 2008Ordering Tickets Management System feasibility research of Abstract:After a long time observation of booking a train ticket and a online ticket booking a online train ticket booking system,i have build system in the following software cycle:requirement analysis,architecture and detail design,coding and testing.In the design phase,i present the system with data follow chart,data dictionary,E-R graphic,database logical structure,and typical UML modeling facility such as Class diagram,Activity diagram,Use case diagram and Sequence diagram.This product is developed in java(the latest jdk 1.6),and the DBMS is sql server 2005 express edition.it's build to help you to book a train ticket online.On this website ,you can inquire ticket information,book a ticket and refund your ticket.For the supervisor,it provides additional right(protected by admin priviledge) to maintain the system including train data creating,importing and cleaning up Keywords: Ticketing management ;Ticket selling system;SQL Server2008 目 录录蚌埠学院计算机科学与技术系课程设计任务书 ................................. 1 蚌埠学院计算机科学与技术系本科课程设计成绩评定表 (2)1 系统总体方案................................................................... 3 1.1开发背景....................................................................................................................................... 3 1.2意义................................................................................................................................................ 3 1.3系统相关知识介绍 .. (3)2 设计思路与主要步骤........................................................... 5 2.1系统需求....................................................................................................................................... 5 2.2功能需求....................................................................................................................................... 5 2.2.1查询 .. (5)2.2.2.2.2.2.购票购票.................................................................................................................................. 5 2.2.3.2.2.3.退票退票.................................................................................................................................. 6 2.3数据库逻辑结构......................................................................................................................... 6 2.4数据库中的约束......................................................................................................................... 7 2.4.1主键约束 .......................................................................................................................... 7 2.4.2外键约束 .......................................................................................................................... 7 2.4.3 CHICK 约束. (7)2.4.4 DEFAULT 约束................................................................................................................. 8 2.4.5长度约束 .. (8)3 各功能模块和流程图 ............................................................9 3.1系统软件结构设计 (9)3.2系统流程图.................................................................................................................................. 9 4 系统的详细设计................................................................ 14 4.1登录界面..................................................................................................................................... 14 4.2游客模块..................................................................................................................................... 14 4.2.1列车信息查询............................................................................................................... 14 4.2.2网上用户注册............................................................................................................... 15 4.3用户模块..................................................................................................................................... 16 4.3.1购票 (17)4.3.2退票 (19)4.3.3查看用户信息............................................................................................................... 21 4.3.4用户修改密码............................................................................................................... 21 4.3管理员模块................................................................................................................................ 22 5 设计代码 ......................................................................24 总结 (34)谢辞............................................................................. 35 参考文献 ........................................................................36蚌埠学院计算机科学与技术系课程设计任务书课 程程 SQL 数据库系统课程设计程设计班级班级指导教师指导教师题 目目火车订票管理系统火车订票管理系统完成时间完成时间 2014年12月1日至2015年1月 1日主要内容功能要求:功能要求: 1.1.游客功能模块游客功能模块游客功能模块::列车信息查询、用户注册。
火车订票系统课程设计
火车订票系统课程设计一、课程目标知识目标:1. 学生能理解火车订票系统的基本原理和功能需求,掌握相关的数据库知识,如数据表设计、数据查询和更新。
2. 学生能够运用所学的编程语言,结合数据库知识,实现一个简易的火车订票系统。
3. 学生了解火车票务系统的实际应用场景,掌握系统设计的基本流程和方法。
技能目标:1. 学生通过本课程的学习,培养分析问题、解决问题的能力,能够根据需求设计并实现一个具体的系统功能。
2. 学生能够运用所学知识,独立编写程序代码,完成火车订票系统的核心功能,如用户注册、查询车票、预订车票等。
3. 学生能够通过课程实践,提高团队协作和沟通能力,学会如何分工合作共同完成一个项目。
情感态度价值观目标:1. 学生在学习过程中,培养对计算机科学的兴趣和热情,激发创新意识和探索精神。
2. 学生通过课程实践,认识到信息技术在生活中的重要作用,树立正确的价值观,增强社会责任感。
3. 学生在团队合作中,学会尊重他人、关心同伴,培养良好的团队精神和职业素养。
本课程针对高年级学生,结合其已有的知识基础和认知能力,注重培养学生的实际操作能力和团队协作精神。
课程设计紧密联系实际,使学生能够将所学知识应用于实际项目中,提高学生的实践能力和创新能力。
通过本课程的学习,为学生今后从事计算机相关领域工作打下坚实的基础。
二、教学内容1. 火车订票系统概述- 了解火车订票系统的背景和实际应用场景。
- 学习系统设计的基本原则和流程。
2. 数据库知识- 数据表设计:学习如何设计用户表、车次表、票务表等。
- 数据查询与更新:掌握SQL语句,实现数据的增删改查操作。
3. 编程语言应用- 掌握Python或Java等编程语言的基本语法和面向对象编程。
- 学习如何利用编程语言实现火车订票系统的功能模块。
4. 系统功能实现- 用户注册与登录:实现用户注册、登录及权限验证功能。
- 车票查询:实现按条件查询车次及余票功能。
- 车票预订与支付:实现车票预订、支付及取消预订功能。
数据结构课设-订票系统源代码
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define maxrailway 100#define maxorder 1000typedef struct Time{int month; //月int day; //日int hour; //小时int minute; //分钟}Time, *Ptime;typedef struct Railway{char Num[15]; //列车号char corp[15]; //铁路公司名称char rail[15]; //列车车型char from[15]; //始发站点char to[15]; //终点站Ptime takeoff; //发车时间Ptime arrive; //到站时间int price; //票价float discount; //折扣,小于100大于0的浮点数int vaculmn; //乘客容量int rest; //剩余座位数struct Railway *next;}Railway, *Pst_Rail;typedef struct Order{char Num[15]; //列车号char cusname[20]; //乘客姓名char IDcardnum[20];//乘客身份证号int ticketnum; //订票总数int num; //订单编号struct Order *next;}Order, *Pst_Order;FILE *data, *order; //分别保存列车线路记录和订单记录Pst_Rail head_rail; //列车链表表头Pst_Order head_order; //订单链表表头int flag; //退出操作的标记int numofrail; //记录列车线路数目int numoforder; //记录订单数目int lastorder; //记录最后一个订单的序号void pause(){int t, now_time;now_time = clock(); //取出当前时间for(;(t = (clock() - now_time)) < 2 * (CLOCKS_PER_SEC););system("cls"); //在pause()函数中放一个清屏函数}//时钟程序,用来控制用户界面的输出,每两个界面中间暂停2秒钟void Inuput(){int i;Pst_Rail p, q;p = head_rail;for(i = 0;i < numofrail;i++)p = p->next;q = (Pst_Rail)malloc(sizeof(Railway));q->takeoff = (Ptime)malloc(sizeof(Time));q->arrive = (Ptime)malloc(sizeof(Time));p->next = q;// 为记录开辟空间printf("Please input Railway information:\n");printf("Number:\tCorparation:\tType of railway:\n");scanf("%s%s%s",q->Num,q->corp,q->rail);//输入列车线路的车号、铁路公司名称、列车车型printf("\nPassenger vaculmn:\tTake off position:\tArrive position:\n");scanf("%d%s%s",&q->vaculmn,q->from,q->to);//输入列车的乘客容量、始发、终点q->rest = q->vaculmn;//剩余的座位初始时为乘客容量printf("\nTake off time:\tArrive time:\tPrice:\tDiscount:\nTime e.g.:6/25 12:30\n");scanf("%d/%d %d:%d",&q->takeoff->month,&q->takeoff->day,&q->takeoff->hour,&q->takeof f->minute);scanf("%d/%d %d:%d",&q->arrive->month,&q->arrive->day,&q->arrive->hour,&q->arrive->m inute);//输入列车发车的时间和到站时间scanf("%d%f",&q->price,&q->discount);//输入车票价格和折扣numofrail += 1;}void File_Scanf_Data(){Pst_Rail p, q;p = head_rail;while(!feof(data)){q = (Pst_Rail)malloc(sizeof(Railway));q->takeoff = (Ptime)malloc(sizeof(Time));q->arrive = (Ptime)malloc(sizeof(Time)); // 为记录开辟空间fscanf(data,"%s%s%s",q->Num,q->corp,q->rail);fscanf(data,"%d%s%s",&q->vaculmn,q->from,q->to);fscanf(data,"%d/%d %d:%d",&q->takeoff->month,&q->takeoff->day,&q->takeoff->hour,&q->take off->minute);fscanf(data,"%d/%d %d:%d",&q->arrive->month,&q->arrive->day,&q->arrive->hour,&q->arrive-> minute);fscanf(data,"%d%f%\n",&q->price,&q->discount);q->next = NULL;numofrail += 1;p->next = q;p = p->next;} //从文件中读取列车线路记录}void File_Scanf_Order(){Pst_Order p, q;p = head_order;while(!feof(order)){q = (Pst_Order)malloc(sizeof(Order)); // 为记录开辟空间fscanf(order,"NO.%d: %s\t%s\t%d tickets for railway :%s\n",&q->num,q->cusname,q->IDcardnum,&q->ticketnum,q->Num);q->next = NULL;numofrail += 1;p->next = q;p = p->next;} //从文件中读取订单记录}void File_write(){Pst_Rail p;Pst_Order q;p = head_rail;q = head_order;while(p->next != NULL){p = p->next;fprintf(data,"%s %s %s\n",p->Num,p->corp,p->rail);fprintf(data,"%d %s %s\n",p->vaculmn,p->from,p->to);fprintf(data,"%d/%d %d:%d - ",p->takeoff->month,p->takeoff->day,p->takeoff->hour,p->takeoff->minute);fprintf(data,"%d/%d %d:%d",p->arrive->month,p->arrive->day,p->arrive->hour,p->arrive->mi nute);fprintf(data,"%d %.2f%%\n",p->price,p->discount);}while(q->next!=NULL){q = q->next;fprintf(order,"NO.%d: %s\t%s\t%d tickets for railway :%s\n",q->num,q->cusname,q->IDcardnum,q->ticketnum,q->Num);}} //向文件中写入数据void Change_item(int n){int i, choose;Pst_Rail p;p = head_rail;for(i = 0;i < n;i++)p = p->next;printf("Which item do you want to change?\n");printf("0: Number\n1: Corparation\n2: Type of railway\n3: Passenger vaculmn\n\4: Take off position\n5: Arrive position\n6: Take off time\n7: Arrive time\n\8: Price\n9: Discount\n\n");scanf("%d",&choose);system("cls");switch(choose){case 0:{printf("The old Number is %s\nPlease input the new one:\n",p->Num);scanf("%s",p->Num);break;}//显示列车号并输入新的列车号case 1:{printf("The old Corparation is %s\nPlease input the new one:\n",p->corp);scanf("%s",p->corp);break;}//显示原铁路公司并输入新的公司名称case 2:{printf("The old Type of railway is %s\nPlease input the new one:\n",p->rail);scanf("%s",p->rail);break;}//显示原列车车型并输入新的车型case 3:{printf("The old Passenger vaculmn is %d\nPlease input the new one:\n",p->vaculmn);scanf("%d",&p->vaculmn);break;}//显示原乘客容量并输入新的容量case 4:{printf("The old Take off position is %s\nPlease input the new one:\n",p->from);scanf("%s",p->from);break;}//显示原列车始发站并输入新的站名case 5:{printf("The old Arrive position is %s\nPlease input the new one:\n",p->to);scanf("%s",p->to);break;}//显示原列车终点站并输入新的终点站case 6:{printf("The old Take off time is %d/%d %d:%d\nPlease input the new one:\n",p->takeoff->month,p->takeoff->day,p->takeoff->hour,p->takeoff->minute);scanf("%d/%d %d:%d",&p->takeoff->month,&p->takeoff->day,&p->takeoff->hour,&p->takeoff->m inute);break;}//显示原列车发车时间并输入新的时间case 7:{printf("The old Arrive time is %d/%d %d:%d\nPlease input the new one:\n",p->arrive->month,p->arrive->day,p->arrive->hour,p->arrive->minute);scanf("%d/%d %d:%d",&p->arrive->month,&p->arrive->day,&p->arrive->hour,&p->arrive->minute );break;}//显示原列车到站时间并输入新的时间case 8:{printf("The old Price is %d\nPlease input the new one:\n",p->price);scanf("%d",&p->price);break;}//显示原列车价格并输入新的价格case 9:{printf("The old Discount is %.2f%%\nPlease input the new one:\n",p->discount);scanf("%f",&p->discount);break;}//显示原车票折扣并输入新的折扣}} //由Change_main()函数调用,用来选择性地改变记录中的某一项void Change_main(){char change[15], e;Pst_Rail p, q;p = head_rail;q = head_rail;int i, flag_find;do{for(i = 0;i < numofrail;i++){p = p->next;if(p != NULL)break;}if(i == numofrail){printf("There is no railway information!\n");break;} //如果pa[]数组所有元素都为空指针则退出do...while()循环,并显示没有列车信息flag_find = 0;printf("Plese input the number of the railway you want to change:\n");scanf("%s",change);for(i = 0;i < numofrail;i++){q = q->next;if(strcmp(change,q->Num) == 0){flag_find = 1;break;}} //逐一匹配输入与数组指针指向的结构体的Num项,若相等则标记找到if(flag_find == 0){printf("No such railway exist!\n");printf("Do you want to try again?(Y/N)\n");do{scanf("%c",&e);}while(e == '\n');if(e == 'N') flag_find = 1;}system("cls");}while(flag_find == 0);do{system("cls");Change_item(i); //修改飞机线记录中的一项printf("Do you want to continue?(Y/N)\n");do{scanf("%c",&e);}while(e == '\n'); //排除%c输入时,回车号的干扰}while(e == 'Y');}//用来查找需要修改的记录,并调用Change_item()函数void Quiry_number(){char quiry[15], e;Pst_Rail p;p = head_rail;int i, flag_quiry_number;do{system("cls");printf("Please input the number of the railway:\n");flag_quiry_number = 0;scanf("\n%s",quiry); //输入需要查询的列车号for(i = 0;i < numofrail;i++){p = p->next;if(strcmp(quiry,p->Num) == 0){system("cls");printf("Number: %s\t",p->Num);printf("From: %s\tTo: %s\n",p->from,p->to);printf("Time: %d/%d %d:%d - ",p->takeoff->month,p->takeoff->day,p->takeoff->hour,p->takeoff->minute);printf("%d/%d %d:%d\n",p->arrive->month,p->arrive->day,p->arrive->hour,p->arrive->minut e);printf("Price: %d\tDiscount: %.2f\t",p->price,p->discount);if(p->rest != 0)printf("There are %d seats avaliable!\n", p->rest);else printf("NO seat avaliable!\n");flag_quiry_number = 1;break;} //匹配输入与记录的列车号,若相同则输出列车始发站、时间以及票价、折扣和是否满座的信息}if(!flag_quiry_number){printf("There is no such railway exist!\n");printf("Do you want to try again?(Y/N)\n");do{scanf("%c",&e);}while(e == '\n');if(e == 'N') flag_quiry_number = 1;}}while(!flag_quiry_number);system("pause");} // 按照列车号查询void Quiry_position(){char quiry[2][15];Pst_Rail p;p = head_rail;int i, j, flag_quiry_position;do{printf("Please input the takeoff and arrive position of the airline:\n");flag_quiry_position = 0;scanf("%s%s",quiry[0],quiry[1]); //输入需要查询的始发、终点站名for(i = 0;i < numofrail;i++){p = p->next;if((strcmp(quiry[0],p->from) == 0) && (strcmp(quiry[1],p->to) == 0)){pause();printf("Number: %s\t",p->Num);printf("From: %s\tTo: %s\n",p->from,p->to);printf("Time: %d/%d %d:%d - ",p->takeoff->month,p->takeoff->day,p->takeoff->hour,p->takeoff->minute);printf("%d/%d %d:%d\n",p->arrive->month,p->arrive->day,p->arrive->hour,p->arrive->minut e);printf("Price: %d\tDiscount: %.2f\n",p->price,p->discount);flag_quiry_position = 1;break;}//匹配输入与记录的地点,若相同则输出始发、终点站、时间以及票价、折扣和是否满座的信息}if(!flag_quiry_position) printf("\nThere is no such airline exist!Please input again!\n");}while(!flag_quiry_position);pause();} //按照始发、终点站地点查询void Quiry_main(){char choose; //选择按照列车号还是始发、终点站查询printf("Please choose the type of quiry:\n1: Number\t2: Take off and arrive position\n");do{do{scanf("%c",&choose);}while(choose == '\n'); //排除回车的干扰system("cls");if(choose == '1'){Quiry_number(); //选择1则调用Quiry_number()函数break;}else if(choose == '2'){Quiry_position(); //选择2则调用Quiry_position()函数break;}else printf("Wrong input number!Please input again!\n");}while(1);}//用来选择查询的方式,并调用Quiry_number();或Quiry_position();void Order_main(){char ord[15];char e1;Pst_Order q, tail;Pst_Rail p;p = head_rail;tail = head_order;int i, j, flag_order; //用来标记是否存在需要预订的列车号q = (Pst_Order)malloc(sizeof(Order));//开辟空间do{flag_order = 0;e1 = 'N';printf("Please input the number of the railway:\n");scanf("%s",ord); //输入需要查询的列车号for(i = 0;i < numofrail;i++){p = p->next;if(strcmp(ord,p->Num) == 0){if(p->rest!=0){flag_order = 1; //若存在该列车且还有座位则标记为1break;}else{printf("The railway has no seat avaliable!\n");for(j = 0;j < numofrail;j++){if((strcmp(p->from,p->from)==0)&&(strcmp(p->to,p->to)==0)){if((p->rest!=0)&&(i!=j)){printf("%s: from %s to %s\n",p->Num,p->from,p->to);flag_order = -1; //标记有其他相同始末地点的列车线路}else continue;}}if(flag_order == 0){printf("There is no other railway from %s to %s",p->from,p->to);flag_order = -1;break;}else break;}}}if(flag_order == 1){system("cls");printf("%s from %s to %s, %d yuan per ticket, %d tickets avaliable.\n",p->Num,p->from,p->to,p->price,p->rest);printf("\nPlease input you name,ID number,and the amount ticket you want!\ne.g.:罗璐璐0909090825 2\n");scanf("%s%s%d",q->cusname,q->IDcardnum,&q->ticketnum);q->num = lastorder;strcpy(q->Num,ord);for(i = 0;i < numoforder;i++)tail = tail->next;tail->next = q;p->rest -= q->ticketnum;//TODO: 如果此时正好不够要定的票数numoforder += 1;lastorder += 1;printf("\nYour order number is:%d,please remember it!\n",lastorder-1);pause();}//由于在后面删除订单后不能改变其他订单的号码故此处用最后一个订单的号码+1作为新订单的号码else if(flag_order == -1){printf("Do you want to choose again?(Y/N)");do{scanf("%c",&e1);}while(e1 == '\n');}//当列车号对应列车满员时,查找相同起降点的列车线路,不管存在与否均重新输入订单号elseprintf("There is no such railway exist!Please input again!\n");//若列车号不存在则提示没有该列车号}while((flag_order == 0) || (e1 == 'Y'));}//预订车票void Cancel_order(){char e;int i, j, order, flag_cancel_order;Pst_Order q, change;q = head_order;change = q;flag_cancel_order = 0;printf("Please input the number of your order:\n");scanf("%d",&order); //吃掉回车for(i = 0;i < numoforder;i++){q = q->next;if(order == q->num){flag_cancel_order = 1;break;}}if(flag_cancel_order){printf("Are you sure?(Y/N)\n");do{scanf("%c",&e);}while(e == '\n'); //防止误删if(e == 'Y'){for(i = 0;i < numoforder-1;i++){change = change->next;}change->next = q->next;free(q);numoforder -= 1;pause();printf("Order cacelled!\n");}}else{printf("The is no such order number!\n");printf("Do you want to try again?(Y/N)\n");do{scanf("%c",&e);}while(e == '\n');if(e == 'Y'){system("cls");Cancel_order();}}}void Print_welcome(){printf("+-----------------------------------------------------------------------+\n\+ +\n\ + +\n\ + +\n\ + 欢迎使用简易订票系统!+\n\ + +\n\ + +\n\ + +\n\ + +\n\ + Copyright @ 2011 ****** *** +\n\ + +\n\ + +\n\ +-----------------------------------------------------------------------+\n");pause();}//欢迎界面,说明程序用途及作者char Print_operate(){char e;system("cls");printf("+-----------------------------------------------------------------------+\n\+ +\n\ + 一、录入列车信息请按'1' +\n\ + +\n\ + +\n\ + 二、更改列车信息请按'2' +\n\ + +\n\ + +\n\ + 三、查询列车信息请按'3' +\n\ + +\n\ + +\n\ + 四、订票请按'4' +\n\ + +\n\ + +\n\ + 五、退票请按'5' +\n\ + +\n\ + +\n\ + 六、退出请按'6' +\n\ + +\n\ + +\n\ +-----------------------------------------------------------------------+\n");do{scanf("%c",&e);}while(e == '\n'); //不管有多少回车,全部吃掉!while((int)e < '0' || (int)e > '6'){printf("\n选择错误!请重新选择!\n");Print_operate();}return(e);}//简单操作的选择void operate(){char choice;choice = Print_operate();system("cls");switch(choice){case '1':{Inuput(); //选择1输入列车信息break;}case '2':{Change_main(); //选择2更改列车信息break;}case '3':{Quiry_main(); //选择3查询列车信息break;}case '4':{Order_main(); //选择4订票break;}case '5':{Cancel_order(); //选择5退票break;}case '6':{flag = 1; //选择6退出break;}}}int main(){head_rail = (Pst_Rail)malloc(sizeof(Railway));head_rail->takeoff = (Ptime)malloc(sizeof(Time));head_rail->arrive = (Ptime)malloc(sizeof(Time));head_rail->next = NULL;head_order = (Pst_Order)malloc(sizeof(Order));head_order->next = NULL;numofrail = 0;numoforder = 0;lastorder = numoforder + 1;Print_welcome(); //打印欢迎界面if((data = fopen("c://data.txt","r+")) == NULL){data = fopen("c://data.txt","w+");}else{printf("数据初始化,请稍后!\n");pause();File_Scanf_Data();}if((order = fopen("c://order.txt","r+")) == NULL) {order = fopen("c://order.txt","w+");}else{printf("数据初始化,请稍后!\n");pause();File_Scanf_Order();}while(1){flag = 0; //将标记置0operate(); //调用操作函数if(flag) break; //标记为1时退出}File_write();fclose(data);fclose(order);return 0;}。
c语言火车售票系统课程设计
c语言火车售票系统课程设计一、课程目标知识目标:1. 理解C语言中数组、函数、指针、结构体等基本概念,并能运用到火车售票系统的设计与实现中;2. 掌握C语言文件操作,实现火车票信息的存储与读取;3. 理解并掌握C语言中模块化编程思想,将火车售票系统划分为多个功能模块。
技能目标:1. 能够运用C语言编写出具有良好结构和可读性的代码;2. 培养学生分析问题、解决问题的能力,通过设计火车售票系统,学会使用C 语言进行实际项目开发;3. 学会使用调试工具,对火车售票系统进行测试和优化。
情感态度价值观目标:1. 培养学生合作意识,学会在团队中共同解决问题,提高沟通与协作能力;2. 激发学生对计算机编程的兴趣,培养勇于探索、积极创新的精神;3. 培养学生关注社会实际问题的责任感,了解信息技术在实际应用中的作用和价值。
课程性质:本课程为C语言程序设计课程的实践环节,通过设计火车售票系统,让学生将所学理论知识运用到实际项目中。
学生特点:学生已具备C语言基础知识和一定的编程能力,但对实际项目的开发流程和模块化编程思想尚不熟悉。
教学要求:注重理论与实践相结合,引导学生自主探究,培养学生实际编程能力和团队协作能力。
在教学过程中,关注学生的个体差异,提供个性化指导,确保每位学生都能达到课程目标。
通过课程学习,使学生具备独立开发小型项目的能力。
二、教学内容1. 火车售票系统需求分析:介绍项目背景,分析系统功能需求,明确学生需要实现的功能模块,如用户登录、车次查询、购票、退票、余票显示等。
2. C语言基础知识回顾:- 数组:回顾一维数组、二维数组的概念和应用;- 函数:介绍函数定义、调用、参数传递等基本概念;- 指针:讲解指针的定义、使用和指针操作;- 结构体:回顾结构体的定义和使用。
3. 火车售票系统设计:- 系统架构设计:引导学生采用模块化设计思想,将系统划分为多个功能模块;- 数据结构设计:介绍如何使用结构体和数组来存储和管理车次、座位、用户等信息。
数据库课程设计报告火车订票系统
一、需求分析在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。
这样,就把一个大的系统分解成了几个小系统,使整个系统的功能更加详细易于理解,同时易于实现系统的整体设计。
本系统分为车次查询和车票预定两个部分,其所能实现的功能:1、实现对车次基本信息的查询。
2、实现售票的基本操作。
1、业务需求分析从实际角度出发,提供方便快捷的火车站站查询和订票服务,提高车次的编组效率,使车次资源得到充分利用,并可以提高车票的出售效率降低工作人员的工作量。
2.功能需求在数据操作界面需要有车次信息操作窗口,这需要有实现车次查询、车票出售的功能。
这是火车订票系统的基本功能,只有实现了这几个功能一个火车订票系统才能开始运作,在本系统中实现了车票的基本信息操作。
3、数据需求系统处理的对象有:城市信息:城市编号、城市名称。
车次信息:列车区间编号、车次号、起始站、目的站、出发时间、到站时间。
座位信息:列车区间编号、日期、车厢号、座位号。
系统总数据流图数据字典二、概要设计(一)、系统组成系统开发的总体目标是实现火车票订/售票管理的系统化和自动化,保证车票售出和车次信息管理的正确无误,确保车票和车次管理的有效。
在本系统中分为两个部分,分别是车次信息功能部分和车票预定功能部分,主要任务是对车次信息、车票信息等操作及外理。
本系统为C/S结构,运行平台为jdk1.6以上版本,以及MySQL6.0以上版本。
下图为系统结构图:系统框架(二)、数据库设计1、概念结构设计概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程。
根据之前的分析,数据库应该主要的实体有列车区间和车票信息。
经过分析得到的实体关系图如下实体关系图2、逻辑结构设计将E-R图转化为关系模式:在设计时,将一个1:n联系的单方主码加至多方。
一个实体单独转化成一张表。
根据设计原则和以上E-R图,转化为以下两张表:列车区间表:TrainInterval(列车区间号、车次号、起始站、目的站、发车时间、到站时间) 车票表:ticket(列车区间号、日期、车厢号、座位号)3、数据库模式定义列车区间表三、数据库实施阶段数据库的建立是直接在Navicat中建的,数据库中的表清单在之前已经列出。
数据结构课程设计---火车售票系统的实现
数据结构课程设计---火车售票系统的实现数据结构课程设计报告撰写要求(一)纸张与页面要求1(采用国际标准A4型打印纸或复印纸,纵向打印。
2(封页和页面按照下面模板书写(正文为:小四宋体1.5倍行距)。
3(图表及图表标题按照模板中的表示书写。
(二) 课设报告书的内容应包括以下各个部分:(按照以下顺序装订)1.封页(见课设模版)2.任务书(学生教师均要签字,信息填写完整)3.目录4.正文一般应包括以下内容:(1)题目介绍和功能要求(或描述)课程设计任务的详细描述(注意不能直接抄任务书),将内容做更详细的具体的分析与描述;(2) 系统功能模块结构图绘制系统功能结构框图及主要模块的功能说明;(3) 使用的数据结构的描述: 数据结构设计及用法说明;(4) 涉及到的函数的描述 ;(5) 主要算法描述( 程序流程图)(6) 给出程序测试/运行的结果设计多组数据加以描述(包括输入数据和输出结果)(7) 课程设计的总结及体会(8) 参考文献格式要求:[1]作者,等. 书名.出版地:出版社,出版年5.附录:程序清单 (应带有必要的注释)沈阳航空航天大学课程设计报告课程设计名称:数据结构课程设计课程设计题目: 火车售票系统的实现院(系):计算机学院专业:网络工程班级:24010201学号: 2012040102003姓名: 张译文指导教师:沈阳航空航天大学课程设计报告目录1 需求分析 ..................................................................... ........................................... 1 1.1 问题描述 ..................................................................... ....................................... 1 1.2 问题理解 ..................................................................... ....................................... 1 2 系统设计 ..................................................................... ........................................... 3 2.1 总体方案设计..................................................................................................... 3 2.2 数据结构设计...................................................................... ............................... 3 2.3 函数设计 ..................................................................... ....................................... 4 2.4 关键流程 ..................................................................... (5)2.4.1 系统主流程 ..................................................................... .. (5)2.4.2 void add()函数流程 ..................................................................... (6)2.4.3 void search()函数流程 ..................................................................... . (8)2.4.4 void order()函数流程 ..................................................................... (9)2.4.5void return_tkt()函数流程 ..................................................................... ......... 9 3 调试分析 ..................................................................... ......................................... 11 4 测试及运行结果 ..................................................................... (12)I沈阳航空航天大学课程设计报告1 需求分析1.1 问题描述火车成为越来越受欢迎的交通工具,随着愈来愈多的人选择火车成为出行的交通工具,火车站需要管理的信息量也越来越多,这种情况下,利用计算机来管理和存储火车,客户信息就会很有效率。
火车订票数据结构课程设计_任务书
数据结构与数据处理应用训练课程名称:数据结构与数据处理应用训练计划学时:32学时(1周)一、课程目的1.培养运用数据结构的基本知识解决实际问题的能力;2.加深对数据结构基本知识的理解;3.发挥各人的想象能力和分析能力,拓展思维空间;4.掌握应用程序设计的基本方法;5.培养书写课程设计报告的能力。
二、课程设计内容与要求具体见附录I。
三、考核形式考核办法:结合课程设计作品、课程设计报告和平时情况评定。
评分标准:程序运行及答辩占60%,课程设计报告占20%,平时占20%。
评分等级为优秀、良好、中等、及格、不及格五个级别。
实现难度不同的课程设计,给不同的分数。
若完成项目指定功能,按对应的标准给分;若在完成指定功能的基础上,还添加扩展功能、有创意,给予一定的加分;若减少指定功能的实现或运行有错误,酌情减分。
课程设计要求独立完成,严禁抄袭,如发现雷同,一经证实,相关人都按作弊处理,没有成绩,并且上报学院。
四、应提交材料1、课程设计报告(实习报告)不少于3000字。
格式参见附录II的模板。
内容主要包括:(1) 封面。
(2) 课程设计题目、摘要、关键词。
(3) 内容与要求(说明课程设计题目的具体内容、需实现的功能及要求,若自己对系统的功能做了增减,按实际完成的功能写)。
(4) 总体设计(说明算法总体思路及由哪几大功能模块组成、各功能模块的功能介绍)。
(5) 详细设计(说明各功能模块的具体实现算法----流程图、存储结构描述、及各功能模块的参数说明)。
(6) 程序测试(给出程序运行结果截图,需包括若干组测试用例以及实现对各种情况的测试)。
(7) 总结(说明调试过程中遇到的问题是如何解决的;对设计与实现的回顾讨论与分析、改进设想;收获与体会等)。
(8) 参考文献(9) 附录(包含源程序)2、程序提交完整的工程文件。
在统一答辩完成后,每个教学班交一张光盘,包含所有学生的资料(课程设计报告与程序),每个学生的资料放在以“学号姓名”命名的文件夹中。
c语言课程设计火车售票系统
c语言课程设计火车售票系统一、教学目标本章节的教学目标旨在让学生掌握C语言编程的基本知识,通过构建火车售票系统的案例,使学生能够理解和运用C语言的数据类型、控制结构、函数等核心概念。
同时,培养学生解决实际问题的能力,提高学生的编程思维和团队协作能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和数据类型。
2.理解函数的定义和调用。
3.熟悉数组、指针和字符串在编程中的应用。
4.学习常用的输入输出库函数。
技能目标包括:1.能够使用C语言编写简单的程序。
2.能够运用条件语句和循环语句实现复杂逻辑。
3.能够独立完成火车售票系统的编程任务。
4.具备良好的代码调试和优化能力。
情感态度价值观目标包括:1.培养学生的创新意识和解决问题的能力。
2.增强学生对编程事业的热爱和敬业精神。
3.培养学生团队合作和沟通交流的能力。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、控制结构、函数、数组、指针和字符串等。
通过讲解火车售票系统的案例,使学生能够将这些知识点运用到实际编程中。
具体的教学大纲如下:1.第一课时:C语言概述和基本语法。
2.第二课时:数据类型和变量。
3.第三课时:运算符和表达式。
4.第四课时:控制结构(条件语句、循环语句)。
5.第五课时:函数的定义和调用。
6.第六课时:数组、指针和字符串。
7.第七课时:文件操作和库函数。
8.第八课时:火车售票系统案例分析。
9.第九课时:火车售票系统编程实践。
10.第十课时:代码调试和优化。
三、教学方法为了提高教学效果,本章节将采用多种教学方法相结合的方式。
包括:1.讲授法:讲解C语言的基本语法、数据类型、控制结构等知识点。
2.案例分析法:分析火车售票系统的案例,引导学生运用所学知识解决实际问题。
3.实验法:让学生动手编写代码,进行火车售票系统的实践操作。
4.讨论法:学生进行小组讨论,分享编程心得和解决问题的方法。
四、教学资源本章节的教学资源包括:1.教材:《C程序设计语言》(K&R)。
火车售票系统课程设计c
火车售票系统课程设计c一、教学目标本节课的教学目标是让学生掌握火车售票系统的基本原理和操作流程。
知识目标包括了解火车售票系统的基本组成部分、掌握数据库的基本操作、理解程序设计的基本概念。
技能目标包括能够使用数据库管理系统进行数据维护、能够编写简单的程序实现火车票的销售。
情感态度价值观目标包括培养学生对计算机科学的兴趣、培养学生解决问题的能力、培养学生团队合作的精神。
二、教学内容本节课的教学内容主要包括火车售票系统的概述、数据库的基本操作、程序设计的基本概念。
首先,介绍火车售票系统的整体架构,包括前端界面、后端数据库和管理系统。
然后,讲解数据库的基本操作,包括数据的增删改查。
接下来,介绍程序设计的基本概念,如变量、循环、条件语句等。
最后,通过实例演示如何使用编程语言实现火车票的销售。
三、教学方法为了达到本节课的教学目标,将采用多种教学方法相结合的方式。
首先,使用讲授法向学生传授火车售票系统的相关知识。
其次,通过案例分析法让学生深入了解火车售票系统的实际应用。
然后,利用实验法让学生动手实践,操作数据库和编程实现火车票的销售。
此外,还鼓励学生进行小组讨论,培养团队合作精神和解决问题的能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,将准备以下教学资源。
首先,教材《火车售票系统设计与实现》,为学生提供理论知识的学习。
其次,参考书《数据库原理与应用》和《编程基础》,为学生提供更多的学习资料。
然后,多媒体资料,包括PPT课件、视频教程等,为学生提供直观的学习体验。
最后,实验设备,包括计算机、数据库管理系统等,为学生提供动手实践的机会。
五、教学评估本节课的教学评估将采用多元化评价方式,以全面客观地评价学生的学习成果。
评估方式包括平时表现、作业、考试等。
平时表现主要考察学生的课堂参与度、提问回答等情况,占总评的20%。
作业分为课后练习和小组项目,占总评的30%。
考试为书面考试,内容涵盖本节课的全部知识点,占总评的50%。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件课程设计--C语言设计火车票订票系统之源代码(模拟数据库功能)(需求分析+可行性分析)设计题目:火车订票系统小组成员:指导教师:完成时间:一.需求设计:1.每条线路所涉及的信息有:起点、终点、站名、车次、、票价、时间、座位号。
2.作为示意系统,全部数据可以只放在内存中。
3.系统能实现的功能和操作如下:①.查询路线:根据旅客提出的终点站名输入下列信息:车次、车站名。
②.承办订票业务:根据客户提出的要求查询该车次票额的情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新查询客户要求,若需要可登记排队候补。
③.承办退票业务:根据客户提供的情况(车次、时间、座位号)为客户办理退票手续,然后查询该车次是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。
④登记旅客情况:包括旅客姓名,性别,年龄,家庭住址,联系方式等。
⑤统计功能:将每次车的订票,退票结果统计出来。
⑥管理功能:列车管理员可以通过调用函数来查看车票极其用户情况.⑦.查询功能:用户可以查询自己需要的车辆信息.二.总体设计1.程序流程图:按2键按3键按4键进入in函数进入book函数进入inquire函数进入cancel函数按5键进入you函数2.总体设计说明:①.数据结构设计:程序=数据结构+算法,一个好的程序必定有一个好的数据结构.本设计主要考虑车票信息和用户信息的数据结构.车票信息采用半十字链表.横向链表中的每一个结点包含以下内容:车次,起始站,发车时间,指向下一个结点的指针,指向中途站的指针.纵向链表中每一个结点包含以下内容:从始发站开始的依次到站,票价,到达时间,是否已被购买标识,才用mark标识,当mark为1时车票已售出,当mark为0时车票还未售出.以及指向下一个结点的指针.纵向链表采用循环链表,尾指针指向首指针.未购票用户信息使用队列来保存,因为考虑到用户会预订票,所以把用户以来订票的时间早晚排在队中.先来先买,后来后买.队列中的每个元素包含以下内容:用户姓名,身份证号码,想要购票的车次,起始站,要到的站,时间.已经购票用户信息使用一个单链表来保存,链表中的没个结点包含以下内容:用户姓名,身份证号码,已购车票的车次,出发时间,到达时间.车票信息链表示意图:车次起始站发车时间downnnext到站时间票价marknext座位号未购票用户信息队列:用户姓名购票的车次起始站要到的站达到时间用户姓名购票的车次起始站要到的站达到时间注:座位号包含在车次号中已购票用户信息链表示意图: 用户姓名身份证号码已购车票的车次号出发时间到达时间注:座位号包含在车次号中②算法的设计:主函数:利用case语句实现用户界面,用户输入需要的服务的数字代码,程序就会转到相应的函数,实现相应的功能。
在主函数开始处做下First标识,以便在其他函数中使用goto语句返回主函数的用户界面。
In()函数:In()函数负责输入各种信息,链表中车票信息的初始值.Book()函数:Book()函数负责订票功能.主要是遍历整个链表,查找到需要订票的结点后修改其mark 值.Inquire()函数:Inquire()函数主要负责查询功能.主要是遍历整个链表查找到需要的结点,然后输出.Cancel()函数:Cancel()函数主要负责退票功能.主要是遍历整个链表查找到需要的结点,然后修改mark的值.You()函数:You()函数主要负责输入用户信息,主要是创建一个单链表,将用户信息放入.并提供管理人员的查询功能.Find()函数:Find()函数主要负责查询用户信息,遍历整个单链表后,输出需要的信息.Total()函数:Total()函数主要负责统计整个订票系统的情况.三.详细设计:1. 主函数:①程序代码:Main(){ int *t;int c;First: printf(“welcome to our ticket system!\n”);printf(“1.intput the data.\n”);/*按1键输入数据*/printf(“2.book the ticket.\n”);/*按2键订车票*/printf(“3.inquire the ticket.\n”);/*按3键查询车票*/printf(“4.cancel the ticket.\n”);/*按4键退车票*/printf(“5.input your own data.\n”);/*按5键输入个人信息*/scanf(“%d”,&c);switch(c){case ‘1’: t=in(); break;case ‘2’: book(); break;case ‘3’: inquire(); break;case ‘4’: cancel(); break;case ‘5’: you(); break;default : printf(“you enter an error number\n”);}}②功能说明:通过printf语句,输出提示用户选择的信息.用户看到后,按下自己需要功能的代号.然后程序进入实现该功能函数完成用户所需要的功能.2. In()函数:①程序流程图:建立横向链表头结点输入m,n的值For循环,m是否为0否建立结点向结点输入数据For循环,n是否为0否建立纵向结点向结点输入数据是返回头指针Goto到用户界面②程序代码:struct ticket *in() /*一个返回指针形的函数*/ {struct ticket *head; /*头结点*/struct ticket *p1,*p2;struct station *s1,*s2;int m,n;int i;p1=p2=(struct ticket *)malloc(len); /*建立横向链表的头结点*/ scanf("%d",&m); /*输入一共所需的车票信息总数*/ scanf(“%d”,&n);/*输入从始发站到终点站共有几站*/ head=null;for(i=0;i<=m;i++){p2->next=p1;p2=p1;p1=(struct ticket )*malloc(len);s1=s2=(struct ticket )*malloc(len); /*建立纵向链表的头结点*/head1=s1=s2;p1->down=s1=s2; /*指向纵向链表的头结点*/scanf("%d","%d","%d",&p1->num,&p1->num2, &p1->time); /*输入横向链表的数据*/for(i=0;i<=n,i++){s2->next=s2;s2=s1;s1=(struct ticket )*malloc(len); /*建立纵向链表*/scanf(“%s”,“%d”,“%d”,“%d”,“%d”,s1->name,&s1->time,&s1->money,&s1->seat,&s1->mark); } /*输入纵向链表的数据*/s1->next=head1; /*纵向链表为循环链表*/}p2->next=null;return(head); /*返回头指针*/goto first; /*返回头指针*/}③功能说明:通过用户输入的数值,建立所需的结点数量.再输入每个结点的具体数据.使横向链表的尾指针指向空,纵向链表的的尾指针指向头指针.最后返回头指针,再回到用户界面.3.Book()函数:①程序流程图:输入需要的车次号输入需要到达的车站名While循环是否需要的车次是横向结点值给oWhile循环是否是需要的车站名是使mark的值为1纵向结点值给s纵向链表移针横向链表移针当横向链表下一个指针为空时输出s点的数据输出o点的数据Mark是否为1错误否是②程序代码:void book(){struct ticket *p;struct station *q;int t;int *o,*s;printf(“please enter the number:”);scanf(“%d”,&f);/*输入需要的车次*/printf(“please enter the station:”);scanf(“%d”,&h);/*输入需要到达的车站名*/p=t; /*初始化p的值*/while(p=!null){if(p->number==t){ q=p->down;o=p; /*把符合条件的横向链表结点的数据给o*/while(q->next=!head1){if(q->name==h){if (q->mark=1)printf(“your ticket is unused”);elseq->mark=1; /*修改mark标记*/s=q; /*把符合条件的纵向链表的数据给s*/}q=q->next; /*纵向链表移针*/}}p=p->next; /*横向链表移针*/}printf(“your ticket has already booked!”);printf("%d","%d","%d",o->num,o->num2, o->time); /*输出横向链表的数据*/printf(“%s”,“%d”,“%d”,“%d”,“%d”,s->name,&s->time,&s->money,&s->seat,&s->mark); /*输出纵向链表的数据*/goto first;}③功能说明:本函数主要是先遍历横向链表找到符合条件的结点后,转向该点的纵向链表,遍历纵向链表找到符合条件的结点,读出需要的数据.并且修改mark标记,使其成为已定车票.如果mark已经为1则输出错误信息.3.inquire()函数:①程序流程图:输入需要的车次号输入需要到达的车站名While循环是否已到空否是否是需要的车次是While循环是否已到头指针否是否是需要的车站名是输出所需的信息是是错误移动指针否否②程序代码:void inquire(){struct ticket *p;struct station *q;int t;int *o,*s;printf(“please enter the number:”);scanf(“%d”,&f);/*输入需要的车次*/ printf(“please enter the station:”);scanf(“%d”,&h);/*输入需要到达的车站名*/ p=t; /*初始化p的值*/while(p=!null)if(p->number==t){ q=p->down;o=p; /*把符合条件的横向链表结点的数据给o*/while(q->next=!head1){if(q->name==h){s=q; /*把符合条件的纵向链表的数据给s*/}q=q->next; /*纵向链表移针*/}}p=p->next; /*横向链表移针*/}printf("%d","%d","%d",o->num,o->num2, o->time); /*输出横向链表的数据*/printf(“%s”,“%d”,“%d”,“%d”,“%d”,s->name,&s->time,&s->money,&s->seat,&s->mark); /*输出纵向链表的数据*/goto first;}③功能说明:本函数主要提供查询功能.用户输入需要查询的车次和需要到车站名,程序首先遍历横向链表查找到需要的数据后转向纵向链表,接着遍历纵向链表,查找到需要的车站名.最后输出所有关于本车次的所有信息.4.Cancel()函数:①程序流程图:输入需要的车次号输入需要到达的车站名While循环是否需要的车次是横向结点值给oWhile循环是否是需要的车站名是使mark的值为0纵向结点值给s纵向链表移针横向链表移针当横向链表下一个指针为空时输出s点的数据输出o点的数据②程序代码;void cancel(){struct ticket *p;struct station *q;int t;int *o,*s;printf(“please enter the number:”);scanf(“%d”,&f);/*输入需要的车次*/ printf(“please enter the station:”);scanf(“%d”,&h);/*输入需要到达的车站名*/ p=t; /*初始化p的值*/while(p=!null){if(p->number=t){ q=p->down;o=p; /*把符合条件的横向链表结点的数据给o*/while(q->next=!head1){if(q->name=h){q->mark=0; /*修改mark标记*/s=q; /*把符合条件的纵向链表的数据给s*/}q=q->next; /*纵向链表移针*/}}p=p->next; /*横向链表移针*/}printf(“your ticket has already cancel!”);printf("%d","%d","%d",o->num,o->num2, o->time); /*输出横向链表的数据*/printf(“%s”,“%d”,“%d”,“%d”,“%d”,s->name,&s->time,&s->money,&s->seat,&s->mark); /*输出纵向链表的数据*/goto first;}③功能说明:本函数主要提供退票功能.用户输入需要退票的车次和需要到车站名,程序首先遍历横向链表查找到需要的数据后转向纵向链表,接着遍历纵向链表,查找到需要的车站名.修改其mark标识是其为0.最后输出所有关于本车次的所有信息.5. You()函数:①程序代码:void you(){struct you *head;struct you *p;p=(struct you *)malloc(len);scanf("%d",&p->name,&p->num,&p->num1,&p->time,&p->time1);}goto First;}②用户查询代码: (注:本函数用于管理人员查询用户)void find(){struct you *head;struct you *p;int u;scanf(“%d”,&u);while(p=!null){if(p->num=u){s=p;}p=p->next;}printf(“%s”,”%d”,”%d”,”%d”,”%d”,p->name,p->num,p->num1,p->time,p->time1);}③功能说明:本函数用于用户输入个人信息,以便管理人员管理.而管理函数只面对管理人员使用,因此未在用户界面上显示出来.6.统计模块:void total(){int *p,*q;int n;p=t;while(p=!null){while(q->next=!head1){if (mark=1){n=n+1;}q=q->next;}p=p->next;}printf(“the number of the booked ticket are :”); printf(“%d”,n);}6.所用变量声明:①横向链表结点的结构体:struct ticket{int num;int num1;int time;struct ticket *next;struct station *down;};int t;②纵向链表结点的结构体:struct station{int name;int time;int money;int mark;struct station *next;}③用户信息链表结点的结构体:struct you{int name;int num;int num1;int time;int time1;struct you *next;}四.程序说明书:本系统用于火车站的车票管理.主要方便用户订票,也可方便管理人员管理车票.当用户看到用户界面时,可以根据提示选择自己想要的服务,选择后按下回车键,程序便会转到相应的函数进行.完成后,程序会显示您已经成功的订票或退票.完成后程序会自动回到起始位置.管理人员也可以很方便的调用本系统包含的查询和统计函数,管理车票情况.具体说明:1.提示程序操作者输入预设的数据.2.提示用户进行订票操作.3.提示用户进行查询自己需要的车票的操作.4.提示用户进行退票操作.5.提示用户输入自己的相关信息.五.程序调试:本程序分为多模块,为的是方便小组合作.所以各个功能都由函数调用来实现.组员在各自的编制和调试中基本都实现所需的功能.但在联调的过程中,由于我们使用了大量的传递指针形的函数,所以在数值的传递上问题很多.分步执行的时候指针的位置很乱!所以让我们遗憾的是联调并没有成功.我们也会吸取教训,在函数编制时注意数值的传递.六.运行结果:输入: 23K717,Beijing,11:00Yuci,12:00,10,0,56Yangyuan,1:00,20,0,56Shijiazhuang,2:00,30,56输入:k717shijiazhuang输出:you have already booked the ticket!K717,shijiazhuang,11:00,3:00,30,56七.程序源代码:#include <stdio.h>#include <string.h>#define null 0#define len sizeof(struct ticket)struct ticket{int num;int num1;int time;struct ticket *next;struct station *down;};int t;struct station /*公共变量声明*/ {int name;int time;int money;int mark;struct station *next;struct you{int name;int num;int num1;int time;int time1;struct you *next;}struct ticket *in() /*一个返回指针形的函数*/{struct ticket *head; /*头结点*/struct ticket *p1,*p2;struct station *s1,*s2;int m,n;int i;p1=p2=(struct ticket *)malloc(len); /*建立横向链表的头结点*/scanf("%d",&m); /*输入一共所需的车票信息总数*/scanf(“%d”,&n);/*输入从始发站到终点站共有几站*/head=null;for(i=0;i<=m;i++){p2->next=p1;p2=p1;p1=(struct ticket )*malloc(len);s1=s2=(struct ticket )*malloc(len); /*建立纵向链表的头结点*/head1=s1=s2;p1->down=s1=s2; /*指向纵向链表的头结点*/scanf("%d","%d","%d",&p1->num,&p1->num2, &p1->time); /*输入横向链表的数据*/for(i=0;i<=n,i++){s2->next=s2;s2=s1;s1=(struct ticket )*malloc(len); /*建立纵向链表*/scanf(“%s”,“%d”,“%d”,“%d”,“%d”,s1->name,&s1->time,&s1->money,&s1->seat,&s1->mark); } /*输入纵向链表的数据*/s1->next=head1; /*纵向链表为循环链表*/}p2->next=null;return(head); /*返回头指针*/goto first; /*返回头指针*/}void book(){struct ticket *p;struct station *q;int t;int *o,*s;printf(“please enter the number:”);scanf(“%d”,&f);/*输入需要的车次*/printf(“please enter the station:”);scanf(“%d”,&h);/*输入需要到达的车站名*/p=t; /*初始化p的值*/while(p=!null){if(p->number==t){ q=p->down;o=p; /*把符合条件的横向链表结点的数据给o*/ while(q->next=!head1){if(q->name==h){if (q->mark=1)printf(“your ticket is unused”);elseq->mark=1; /*修改mark标记*/s=q; /*把符合条件的纵向链表的数据给s*/}q=q->next; /*纵向链表移针*/}}p=p->next; /*横向链表移针*/}printf(“your ticket has already booked!”);printf("%d","%d","%d",o->num,o->num2, o->time); /*输出横向链表的数据*/printf(“%s”,“%d”,“%d”,“%d”,“%d”,s->name,&s->time,&s->money,&s->seat,&s->mark); /*输出纵向链表的数据*/goto first;}void inquire(){struct ticket *p;struct station *q;int t;int *o,*s;printf(“please enter the number:”);scanf(“%d”,&f);/*输入需要的车次*/printf(“please enter the station:”);scanf(“%d”,&h);/*输入需要到达的车站名*/p=t; /*初始化p的值*/while(p=!null){if(p->number==t){ q=p->down;o=p; /*把符合条件的横向链表结点的数据给o*/while(q->next=!head1){{s=q; /*把符合条件的纵向链表的数据给s*/}q=q->next; /*纵向链表移针*/}}p=p->next; /*横向链表移针*/}printf("%d","%d","%d",o->num,o->num2, o->time); /*输出横向链表的数据*/printf(“%s”,“%d”,“%d”,“%d”,“%d”,s->name,&s->time,&s->money,&s->seat,&s->mark); /*输出纵向链表的数据*/goto first;}void cancel(){struct ticket *p;struct station *q;int t;int *o,*s;printf(“please enter the number:”);scanf(“%d”,&f);/*输入需要的车次*/printf(“please enter the station:”);scanf(“%d”,&h);/*输入需要到达的车站名*/p=t; /*初始化p的值*/while(p=!null){{ q=p->down;o=p; /*把符合条件的横向链表结点的数据给o*/while(q->next=!head1){if(q->name=h){q->mark=0; /*修改mark标记*/s=q; /*把符合条件的纵向链表的数据给s*/}q=q->next; /*纵向链表移针*/}}p=p->next; /*横向链表移针*/}printf(“your ticket has already cancel!”);printf("%d","%d","%d",o->num,o->num2, o->time); /*输出横向链表的数据*/printf(“%s”,“%d”,“%d”,“%d”,“%d”,s->name,&s->time,&s->money,&s->seat,&s->mark); /*输出纵向链表的数据*/goto first;}void you(){struct you *head;struct you *p;p=(struct you *)malloc(len);scanf("%d",&p->name,&p->num,&p->num1,&p->time,&p->time1);}goto First;}void find(){struct you *head;struct you *p;int u;scanf(“%d”,&u);while(p=!null){if(p->num=u){s=p;}p=p->next;}printf(“%s”,”%d”,”%d”,”%d”,”%d”,p->name,p->num,p->num1,p->time,p->time1); }void total(){int *p,*q;int n;p=t;while(p=!null){while(q->next=!head1){if (mark=1){n=n+1;}q=q->next;}p=p->next;}printf(“the number of the booked ticket are :”);printf(“%d”,n);}Main(){ int *t;int c;First: printf(“welcome to our ticket system!\n”);printf(“1.intput the data.\n”);/*按1键输入数据*/printf(“2.book the ticket.\n”);/*按2键订车票*/printf(“3.inquire the ti cket.\n”);/*按3键查询车票*/printf(“4.cancel the ticket.\n”);/*按4键退车票*/printf(“5.input your own data.\n”);/*按5键输入个人信息*/scanf(“%d”,&c);switch(c){case ‘1’: t=in(); break;case ‘2’: book(); break;case ‘3’: inquire(); break;case ‘4’: cancel(); break;case ‘5’: you(); break;default : printf(“you enter an error number\n”);}}八.结束语:课程设计使我们通过解决一个实际问题,巩固和加深所学课程,提高了我们分析和编写程序的能力,为我们以后的学习提供了很好的帮助,更为毕业设计和毕业以后从事计算机方面的工作奠定了基础。