飞机订票系统程序设计_课程设计.doc
c课程设计飞机订票系统

c课程设计飞机订票系统一、课程目标知识目标:1. 学生能理解飞机订票系统的基本原理,掌握其功能模块和使用方法。
2. 学生能运用所学编程语言,设计并实现一个简单的飞机订票系统。
3. 学生了解数据库的基本操作,能运用数据库管理飞机票务信息。
技能目标:1. 学生掌握编程语言的基本语法,能运用条件语句、循环语句等编写程序。
2. 学生具备一定的系统设计能力,能根据需求分析,设计出合理的系统模块。
3. 学生能够运用数据库技术,实现数据的增、删、改、查等操作。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发学习主动性和创新能力。
2. 学生树立团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。
3. 学生通过课程学习,认识到信息技术的应用价值,增强对信息社会的责任感。
课程性质分析:本课程为信息技术学科,旨在培养学生掌握编程语言和数据库技术,通过设计飞机订票系统,提高学生的实际操作能力和解决实际问题的能力。
学生特点分析:本课程针对初中年级学生,他们对计算机有一定的兴趣,具备一定的逻辑思维能力,但编程基础和实际操作能力有限。
教学要求:1. 教学内容与课本紧密结合,注重理论与实践相结合,提高学生的实际操作能力。
2. 教学过程中,关注学生的个体差异,给予个性化指导,确保每个学生都能掌握课程内容。
3. 通过小组合作、讨论等形式,培养学生的团队协作能力和沟通能力。
二、教学内容1. 理论知识:- 了解飞机订票系统的基本概念和功能。
- 学习编程语言的基本语法,如变量、数据类型、运算符、条件语句和循环语句等。
- 掌握数据库的基本概念,如表、字段、记录等。
2. 实践操作:- 设计飞机订票系统的功能模块,如用户注册、登录、航班查询、购票、退票等。
- 编写程序代码,实现飞机订票系统的各个功能。
- 学习数据库的创建和操作,管理飞机票务信息。
3. 教学大纲:- 第一周:飞机订票系统概述,学习编程语言基本语法。
- 第二周:设计系统功能模块,学习条件语句和循环语句。
【精编完整版】飞机订票系统程序设计_毕业论文

(此文档为word格式,下载后您可任意编辑修改!) 高级语言程序设计课程设计报告题目:飞机订票系统程序设计专业:班级:学号:姓名:指导教师:日期:山东工商学院信电学院1、程序基本功能要求本程序首先输入用户名、密码进入系统;从菜单中选择可以输入机票信息对机票信息进行浏览、修改、查询、退订票等功能并可以通过其内部各类方式或菜单内选项了解航班更细的信息。
(1)航班信息用文件保存,因而要提供文件的输入输出操作。
(2)航班信息的录入,其中包括了航班信息中的航班号、起始站、终点站、预售机票数、已售机票数。
(3)航班信息浏览功能且提供显示操作。
(4)可以查询航线,查询方式有按航班号查询、按起点站查询、按终点站查询按航线查询、按飞行时间查询五种,可从各个方面进行查询,方便快捷。
(5)承办订票和退票业务,可显示剩余票数和已买票数。
当票数被订或被退时票数会随之变化,统计较为灵活。
(6)提供键盘式选择菜单以实现功能选择。
2、总体设计.编写一个飞机订票系统的程序使该系统能够实现对航班信息的录入、浏览、修改、查询以及订票、退票的功能。
根据课程设计要求和本组人员的增补,首先要通过一个用户登录界面进入系统,其次要制作一个主菜单显示出各个操作的提示可供用户选择进而一步步地深入操作。
根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。
因为飞机订票系统含有各航班的各项信息如航班号、航线、飞行时间、机票数目等必要信息所以就决定用刚学不久的结构体数组来存放航班的各项信息,这就是看到题目后的最初的思路。
在整个程序中,含有多种类型的头文件,包括了标准输入、输出头文件、字符串函数处理头文件、动态存储与释放函数头文件;在结构体数组中也对不同类型的数组进行不同的定义,例如: int flightno、int totalticket、char start[10]等;在各类信息的显示操作中,本系统在执行浏览、查询和退订票是充分利用函数的调用,利用switch()语句进行,简便实用;在此系统中,函数相互嵌套,形成了一个完整的系统。
航空订票系统c语言课程设计

航空订票系统c语言课程设计一、课程目标知识目标:1. 让学生掌握C语言中结构体、数组、函数等基本知识点的综合运用,特别是在航空订票系统中的应用。
2. 让学生了解并掌握航空订票系统的基本业务流程,如航班查询、预订、取消预订等功能。
3. 使学生能够通过C语言实现简单的航空订票系统,并了解其背后的数据结构和算法。
技能目标:1. 培养学生运用C语言进行问题分析、程序设计和调试的能力。
2. 培养学生独立思考和团队协作的能力,通过项目实践,提高解决实际问题的能力。
3. 培养学生具备良好的编程习惯,编写出结构清晰、可读性强的代码。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发他们主动探索新知识的精神。
2. 培养学生面对困难和挑战时,保持积极乐观的心态,勇于克服困难,不断进步。
3. 通过航空订票系统课程设计,使学生认识到编程在实际生活中的应用价值,提高他们对社会责任的认识。
课程性质:本课程为C语言程序设计课程的实践环节,以项目为导向,注重培养学生的动手能力和实际应用能力。
学生特点:学生已经掌握了C语言的基本语法和编程技巧,具有一定的编程基础,但缺乏实际项目经验。
教学要求:结合学生特点和课程性质,采用案例教学、任务驱动等方法,引导学生通过实践掌握课程内容,提高编程能力。
在教学过程中,注重启发式教学,鼓励学生提问、讨论,培养他们的问题解决能力和团队协作精神。
最终达到课程目标,使学生能够独立完成航空订票系统课程设计。
二、教学内容1. C语言基础知识回顾:结构体、数组、函数、指针、文件操作等。
2. 航空订票系统业务流程分析:航班查询、预订、取消预订、显示航班信息等。
3. 数据结构和算法:链表、排序算法、查找算法等在航空订票系统中的应用。
4. 编程规范和调试技巧:代码规范、调试方法、性能优化等。
5. 项目实践:根据业务流程,设计并实现航空订票系统各功能模块。
教学内容安排和进度:1. 第一周:C语言基础知识回顾,重点讲解结构体、数组和函数。
航空订票系统课程设计(c语言)

航空订票系统课程设计(c语言)一、教学目标本课程旨在通过学习航空订票系统的开发,让学生掌握C语言编程的基本概念和方法,培养学生的实际编程能力和问题解决能力。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握函数的定义和调用。
3.学习面向对象编程的基本概念。
4.能够使用C语言编写简单的程序。
5.能够运用面向对象编程的思维解决实际问题。
6.能够独立完成航空订票系统的开发。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。
2.培养学生的创新思维和问题解决能力。
3.培养学生对编程语言和计算机科学的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及面向对象编程的基本概念。
具体安排如下:1.C语言的基本语法和数据结构(2课时)。
2.函数的定义和调用(2课时)。
3.面向对象编程的基本概念(2课时)。
4.航空订票系统的开发实践(4课时)。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:用于讲解C语言的基本语法、数据结构和函数的定义和调用。
2.讨论法:用于讨论面向对象编程的基本概念,促进学生之间的交流和思考。
3.案例分析法:通过分析航空订票系统的案例,让学生理解和应用所学的编程知识。
4.实验法:通过实际编写程序和开发航空订票系统,培养学生的实际编程能力和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选择一本适合学生水平的C语言编程教材。
2.参考书:提供相关的编程参考书籍,供学生自主学习。
3.多媒体资料:制作相关的教学PPT和视频,帮助学生更好地理解和掌握知识。
4.实验设备:提供计算机实验室,让学生能够实际编写程序和进行实验。
五、教学评估本课程的评估方式将包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
C语言程序设计课程设计飞机订票系统的设计

一、设计内容与设计要求一、设计内容:飞机订票系统1.1问题描述:假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。
通过该系统来实现机票的订购问题。
1.2功能要求:1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。
2)、本系统显示这样的菜单:(1)输入航班信息(2)输出航班信息(3)查找航班信息a.显示空座的数量b.显示空座的信息c.显示已订座的信息d.起飞时间(4)订票预约(5)删除定票预约(6)退出系统1、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。
2、查找航班信息既可按线路查,也可按目的地查。
4、在两次运行之间,数据被保存于一个文件里,当本程序重新开始的时候,它首先从该文件读入数据1.3 算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库。
1.4测试数据:每架飞机的座位N=12,M=51.5 其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。
二、设计要求1).设计正确,方案合理。
2).界面友好,使用方便。
3).程序精炼,结构清晰。
4).设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5).上机演示。
二、进度安排第 18 周星期一上午课题讲解查阅资料星期一下午系统需求分析模块设计星期二上午算法、数据结构设计主程序设计星期二下午各功能模块程序设计修改完善程序星期五下午各功能模块程序设计修改完善程序第 19 周时间待定星期五下午答辩目录一、需求分析 (4)1、程序的功能 (4)2、输入输出的要求 (6)二、概要设计 (9)三、详细设计 (11)1、数据类型 (11)2、模块分析 (12)3、函数的调用关系 (12)四、调试分析以及设计体会 (13)1、测试数据 (13)2、调试分析 (13)3、心得体会 (14)五、使用说明 (15)六、附录 (17)1、参考书目 (17)2、源程序清单(带注释) (17)七、计算机科学与技术系课程设计评分表 (40)一、需求分析1.1 系统功能需求1.1.1程序的功能1.系统管理员功能:1)录入和修改航班和机票的信息:输入航班号,输入起飞港,途径港,到达港,录入起飞时间,到达时间,飞行总共用时,可随时修改航班信息2)输出航班的信息:输入航班号便可输出之前输入的航班信息2.客户需要的功能:1)查找航班信息:a.显示空座的数量b.显示空座的信息c.显示已订座的信息d.起飞时间2)订票预约:查询航班信息后,提前订票预约需要的飞机票,3)删除定票预约4)退出系统1.1.2 主要模块流程图1.1.3 功能描述1.1.4各功能模块的功能描述(1)显示菜单函数:FLIGHT fltlist[5]; PASSENGER psglist[5][12]; ReadFlight(fltlist);PASSENGER* k;k=(PASSENGER*) psglist; ReadPassenger(k);用户可以根据菜单提示,选择相关菜单。
飞机订票系统 课程设计 doc

飞机订票系统课程设计1. 引言飞机订票系统是一种为用户提供在线预订航班、选择座位以及支付机票的系统。
该系统可以方便用户进行航班查询、订票和退票等操作,提供了更便捷的服务,节省了用户的时间和精力。
本文档将详细介绍飞机订票系统的功能需求、系统设计以及实现细节,旨在为系统的开发提供一份可行的设计方案。
2. 需求分析2.1 功能需求系统需要提供以下功能: 1. 用户注册和登录:用户可以通过注册和登录功能完成对个人信息的维护。
2. 航班查询:用户可以根据出发日期、出发地、目的地等条件查询航班信息。
3. 机票预订:用户可以选择心仪的航班并进行预订,选择座位和支付机票费用等操作。
4. 机票退订:用户可以在一定时间范围内申请退票,并按照规定的退票政策进行退款。
5. 个人中心:用户可以在个人中心查看已购买的机票信息、修改个人信息和密码等个人操作。
6. 管理员功能:管理员可以对航班信息进行维护,包括添加、修改和删除航班信息。
2.2 性能需求系统需要满足以下性能需求: 1. 快速响应:系统需要能够在用户请求时迅速响应并返回结果,以提供良好的用户体验。
2. 高并发处理:系统需要能够同时处理多个用户的请求,以应对高并发访问的需求。
3. 数据安全性:系统需要采取有效措施确保用户个人信息的安全性,防止数据泄露和篡改。
3. 系统设计3.1 系统架构该系统采用客户端-服务器架构,客户端负责与用户进行交互,服务器负责处理用户请求并返回相应的结果。
客户端和服务器之间通过网络进行通信。
3.2 数据库设计系统的主要数据存储在数据库中,包括用户信息、航班信息和订单信息等。
数据库设计需满足以下几个方面的需求: 1. 用户信息表:包括用户ID、用户名、密码、邮箱等字段。
2. 航班信息表:包括航班ID、出发日期、起飞时间、出发地、目的地、航班号等字段。
3. 订单信息表:包括订单ID、用户ID、航班ID、座位号、订票时间、支付状态等字段。
3.3 界面设计系统需要提供一系列界面供用户进行操作。
飞机订票系统课程设计

河南城建学院课程设计报告书专业:计算机科学与技术课程设计名称:《数据结构课程设计》题目:飞机订票系统班级:0814122班学号:081412220姓名:郭晓甜同组人员: 王彬宇指导老师:张延红张芳芳杨斌完成时间:2014年2月28日摘要随着时代的进步社会分工的不断细化,各个行业联系的不断密切,人们的出行越来越多,出行的方式也各种各样,作为空中的重要交通工具,飞机航空系统也在不断地得到优化,其中重要的一项就是飞机航空订票系统,因此好的订票系统关系着人么日常出行的方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而且艰巨的任务,需要我们认真去完成。
本文采用C作为前台开发工具,VC6.0作为程序代码的实现,旨在实现对现有飞行系统中遇到的各种情况进行良好的改进。
关键词:C,C++,VC6.0,数据结构,飞机订票系统;目录目录 (1)第一章开发环境和开发工具 (1)1.1 C#语言简介 (1)1.2 开发背景 (1)1.3 开发环境 (1)第二章算法思想 (2)2.1 系统需求分析 (2)2.2 系统总体设计 (2)2.2.1 系统设计目标 (3)2.2.2 开发设计思想 (3)2.2.3 系统功能模块设计 (3)2.3 算法思想描述 (4)第三章算法实现 (9)3.1 数据结构 (9)3.2 程序模块 (9)3.3 各模块之间的调用关系 (9)3.4 源程序代码 (10)第四章测试与分析 (20)4.1 测试数据选择 (20)4.2 测试结果分析 (20)总结 (22)心得体会 (22)参考文献 (23)第一章开发环境和开发工具1.1 C/ C ++语言简介一种面向对象的开发语言,C++是一种使用非常广泛的计算机编程语言。
C++是一种静态数据类型检查的、支持多重编程方式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。
其编译器比目前其他计算机语言的编译技术更复杂。
飞机订票系统c语言课程设计

飞机订票系统 c语言课程设计一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握飞机订票系统的功能、结构及其相关原理;技能目标要求学生能够运用C语言独立完成飞机订票系统的开发;情感态度价值观目标要求学生培养团队协作意识,增强对计算机编程的兴趣。
通过对课程性质、学生特点和教学要求的分析,我们将目标分解为具体的学习成果。
首先,学生需要理解飞机订票系统的业务流程,掌握C语言的基本语法和编程技巧;其次,学生能够运用所学的知识独立完成飞机订票系统的开发,提高实际操作能力;最后,学生在团队协作过程中培养沟通与协作能力,增强对计算机编程的兴趣和自信心。
二、教学内容本课程的教学内容主要包括飞机订票系统的功能介绍、C语言基础知识、飞机订票系统的模块划分和编程实现。
首先,介绍飞机订票系统的功能,包括用户注册、登录、航班查询、机票预订、支付结算等模块。
其次,讲解C语言的基本语法、数据类型、运算符、控制结构等基础知识。
接着,对飞机订票系统进行模块划分,引导学生了解各模块之间的关系和功能实现。
最后,分别针对各个模块,引导学生运用C语言进行编程实现,完成飞机订票系统的开发。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法。
包括讲授法、讨论法、案例分析法和实验法等。
首先,通过讲授法向学生传授飞机订票系统的相关知识和C语言的基本语法。
其次,采用讨论法引导学生针对飞机订票系统的功能和模块划分进行深入探讨,提高团队协作能力。
然后,运用案例分析法分析实际开发过程中遇到的问题,培养学生解决问题的能力。
最后,通过实验法让学生动手实践,独立完成飞机订票系统的开发,提高实际操作能力。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
教材方面,我们将选用《C语言程序设计》作为主教材,辅以《飞机订票系统设计与实现》等相关参考书。
多媒体资料包括教学PPT、视频教程等,以丰富教学手段,提高学生的学习兴趣。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高级语言程序设计课程设计报告题目:飞机订票系统程序设计专业:班级:学号:姓名:指导教师:日期:山东工商学院信电学院1、程序基本功能要求本程序首先输入用户名、密码进入系统;从菜单中选择可以输入机票信息对机票信息进行浏览、修改、查询、退订票等功能并可以通过其内部各类方式或菜单内选项了解航班更细的信息。
(1)航班信息用文件保存,因而要提供文件的输入输出操作。
(2)航班信息的录入,其中包括了航班信息中的航班号、起始站、终点站、预售机票数、已售机票数。
(3)航班信息浏览功能且提供显示操作。
(4)可以查询航线,查询方式有按航班号查询、按起点站查询、按终点站查询按航线查询、按飞行时间查询五种,可从各个方面进行查询,方便快捷。
(5)承办订票和退票业务,可显示剩余票数和已买票数。
当票数被订或被退时票数会随之变化,统计较为灵活。
(6)提供键盘式选择菜单以实现功能选择。
2、总体设计.编写一个飞机订票系统的程序使该系统能够实现对航班信息的录入、浏览、修改、查询以及订票、退票的功能。
根据课程设计要求和本组人员的增补,首先要通过一个用户登录界面进入系统,其次要制作一个主菜单显示出各个操作的提示可供用户选择进而一步步地深入操作。
根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。
因为飞机订票系统含有各航班的各项信息如航班号、航线、飞行时间、机票数目等必要信息所以就决定用刚学不久的结构体数组来存放航班的各项信息,这就是看到题目后的最初的思路。
在整个程序中,含有多种类型的头文件,包括了标准输入、输出头文件、字符串函数处理头文件、动态存储与释放函数头文件;在结构体数组中也对不同类型的数组进行不同的定义,例如: int flightno、int totalticket、char start[10]等;在各类信息的显示操作中,本系统在执行浏览、查询和退订票是充分利用函数的调用,利用switch()语句进行,简便实用;在此系统中,函数相互嵌套,形成了一个完整的系统。
本次设计需要编制初始化、建立数据文件、数据文件保存、增加航班信息、订票、退票业务等内容。
首先需要设立一个初始化函数来得到航班信息。
具体设计是第一次运行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。
运用了access函数判断文件是否存在。
系统初始化后,没有寻找到数据文件则进行新建数据文件。
此函数的作用就是进行新建文件数据的录入,运用到了文件指针的定义FILE *fp文件的打开fopen和关闭fclose、成块读写函数中的fwrite 运用for循环进行各组数据的输入,用m++记录下输入的航班数量并运用if 语句判断是否输入下一条航班信息,若不继续则返回主界面。
系统初始化之后若原始数据文件存在则进行文件内航班信息的读取以供接下来程序中的各个函数来使用。
在该函数中同样运用到了文件指针FILE *fp、文件的打开fopen 和关闭fclose、成块读写函数中的fread、文件结束检测函数feof同时配合while语句控制文件的读取,m++记录下读取到的航班数量等。
因为在飞机订票系统中涉及到飞机的订票和退票业务还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。
为了简便程序我就准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存将此次对文件修改的所有新信息都一次保存下来。
这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计大大简便了文件的调用和读取。
保存函数运用到的知识点与读取函数大致相同。
在这个函数中首先调用了search函数查找需要订票的航班。
运用if语句实现订票时的多种情况,订票数输入不正确、飞机票数不足等情况。
订票成功时运用s[i].totalticket=s[i].totalticket-n,s[i].sellticket=s[i].sellticket+n 将已被订的机票数减去以显示新的即时航班信息。
与订票函数相类似s[i].totalticket=s[i].totalticket+n,s[i].sellticket=s[i].sellticket-n。
只做稍稍修改就行退票成功是用.。
将航班的剩余票数加上去以显示即时航班信息。
模块分工:进入系统菜单、输出航班信息、订票信息由刘妍负责输入航班信息、保存航班信息、读取航班信息由龚媛负责查询航班信息、退票信息、修改信息部分由郭勇艳负责3、详细设计系统程序结构(流程图)录入信息系统流程图航班信息浏览函数:[流程图]显示信息查询模块:[流程图]..4、程序运行结果(截图)登陆系统时需输入用户信息图1进入系统后出现菜单供选择,选择需要进入的窗口图2航班信息的录入图3 浏览航班信息图4 航班信息的修改图5查询菜单图6 通过航班号和时间进行查询图7系统订票图8 退票系统图9 退出系统图105、源程序代码(代码中注明每段代码的完成人)/*用户名:dianke 密码:12345*/#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<stdlib.h> //包含动态存储与释放函数头文件#include<conio.h> //包含字符串的输入、输出头文件#define N 10000struct flight //定义结构体数组{int flightno;char start[10];char end[10];char day[10];int totalticket;int sellticket;}s[N];int i;int m=0;#define PRINT "%-d%14s%13s%12s%12d%16d\n",s[i].flightno,s[i].start,s[i].end,s[i].da y,s[i].totalticket,s[i].sellticket //定义输出格式void menu(); //进入系统菜单void print(); //输出航班信息void booking(); //订票信息void input(); //输入航班信息void save(); //保存航班信息void read(); //读取航班信息void search(); //查询航班信息void back(); //退票信息void correct(); //修改信息void menu(){int j;printf(" 欢迎进入飞机订票管理系统!\n");printf("======================================================================\n");do{printf(" 1.录入航班信息 \n");printf(" 2.浏览航班信息 \n");printf(" 3.修改航班信息 \n");printf(" 4.查询航班信息 \n");printf(" 5.订票信息 \n");printf(" 6.退票信息 \n");printf(" 0.退出航班信息管理系统 \n");printf("======================================================================\n");printf("请在0-6中选择以回车键结束:\n");scanf("%d",&j);switch(j){case 1: input(); //调用输入模块break;case 2:print(); //调用打印模块break;case 3:correct(); //调用修改模块break;case 4:search(); //调用查询模块break;case 5:booking(); //调用订票模块break;case 6:back(); //调用退票模块break;case 0:;break;}}while(j!=0); //判断结束printf("谢谢使用,再见!\n");} //主函数结束void main() //打印主函数程序信息{int i,k,part1,part2;char name[10]="dianke",password[10]={"\0"};char person[10], c[10]="12345";printf ("\t\t ********** 欢迎进入飞机订票管理系统!**********\n\n"); //打印提示信息printf ("\t\t ~本系统由、、编写完成~ \n\n");printf ("\t\t ~(*^__^*)~ \n\n");printf ("\t\t\t 用户登录\n\n");for(k=0;k!=3;)//打开文件并判断{printf("\t\t\t\t 用户名:"); //打印用户名gets(person);part1=strcmp(person,name);printf("\t\t\t\t 密码:"); //打印密码for(i=0;i<5;i++){c[i]=getch();printf("*");}gets(c);part2=strcmp(c,password);if(part1==0 && part2==0){printf("\t\t\t\t 登陆成功!\n\n");menu();break;}else{printf ("\t\t\t 用户名或密码错误!\n\n");printf ("\t\t\t 请注意:您还剩%d次机会!\n\n",2-k);k++;}}if (k=3)printf ("对不起,由于您输入的用户名或密码3次有误,已被强制退出。
\n");}void input() //打印模块程序{int y;printf("请依次输入航班信息:\n"); //打印提示信息printf("完成输入信息请键入w以回车键结束\n");printf("--------------------------------------------------------------------------\n");for(i=0;i<N;i++){printf("请输入航班号:\n");scanf("%d",&s[i].flightno); //读取航班号 printf("请输入起始站:\n");scanf("%s",s[i].start); //读取起始站 printf("请输入终点站:\n");scanf("%s",s[i].end); //读取终点站 printf("请输入时间:\n");scanf("%s",s[i].day); //读取时间 printf("请输入预售票总数:\n");scanf("%d",&s[i].totalticket); //读取预售票数printf("请输入已售票总数:\n",m);scanf("%d",&s[i].sellticket); //读取已售票总数 m++;printf("第%d个信息已经输完是否继续?按任意数字键继续,按0结束",m);scanf("%d",&y);if(y==0){save(); //将结构体信息存盘 print(); //输出输入的航班信息 break;}}}void save() //保存模块程序{FILE *fp,*fp1; //定义文件指针 if((fp=fopen("chen.dat","wb"))==NULL) //打开文件并判断是否出错{printf("创建文件失败!\n\n"); //打印出错提示getchar();return;}if((fp1=fopen("hao.dat","wb"))==NULL) //打开文件并判断是否出错{printf("创建文件失败!\n\n"); //打印出错提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(struct flight),1,fp)==0) //向文件写入数据,并判断是否出错printf("向文件输入数据失败!\n\n");fprintf(fp1,"%d",m);fclose(fp); //关闭文件fclose(fp1); //关闭文件}void read() //从文件读取信息模块{FILE *fp,*fp1; //定义文件指针 if((fp=fopen("chen.dat","rb"))==NULL) //打开文件,并判断是否出错 {printf("出错,请检查文件是否存在,按任意键返回住菜单");//打印出错提示getchar();}if((fp1=fopen("hao.dat","rb"))==NULL) //打开文件并判断是否出错 {printf("创建文件失败!\n\n"); //打印出错提示 getchar();return;}fscanf(fp1,"%d",&m);fclose(fp1); //关闭文件for(i=0;i<m;i++){fread(&s[i],sizeof(flight),1,fp); //从文件中读取信息 }fclose(fp); //关闭文件}void print() //打印模块{char w[10];read(); //调用读取文件函数printf("航班号起始站终点站时间预售票总数已售票总数\n");for(i=0;i<m;i++){printf(PRINT); //打印信息}printf("请按任意键回车键结束返回上层菜单以:\n");scanf("%s",w);}void search() //查询模块{char startname[10];char endname[10];char day[10];char p[10];int n,no;do{printf("请选择查询方式:\n"); //打印查询方式菜单 printf("1.按航班号查询\n");printf("2.按起点站查询\n");printf("3.按终点站查询\n");printf("4.按航线查询\n");printf("5.按飞行时间查询\n");printf("0.返回\n");printf("请在0-5中选择:\n");printf("按其他键以回车键结束返回主菜单:\n");scanf("%d",&n); //读取查找方式 if(n==0)break;switch(n){case 1:printf("请输入航班号:\n");scanf("%d",&no); //航班号 break;case 2:printf("请输入起点站名称:\n");scanf("%s",&startname);break;case 3:printf("请输入终点站名称:\n");scanf("%s",endname); //读取终点站break;case 4:printf("请输入起始站名称:\n");scanf("%s",startname); //读取起始站 printf("请输入终点站名称:\n");scanf("%s",endname); //终点站break;case 5:printf("请输入飞行时间:\n");scanf("%s",&day);break;}read(); //调用读取函数 for(i=0;i<m;i++){if(strcmp(s[i].end,startname)==0||strcmp(s[i].end,endname)==0)//按终点站起始站判断输出条件{printf("\n查询航班信息成功!\n");printf("航班号起始站终点站时间预售票总数已售票总数\n");printf(PRINT); //打印信息 break;}if(s[i].flightno==no) //按航班号判断输出条件{printf("\n查询航班信息成功!\n");printf("航班号起始站终点站时间预售票总数已售票总数\n");printf(PRINT); //打印信息 break;}if(strcmp(s[i].day,day)==0){printf("\n查询航班信息成功!");printf("\n航班号起始站终点站时间剩余机票数预售机票数\n");printf(PRINT);//打印信息break;}}no=0; //将航班号赋值为0 printf("没有您需要的信息或查找完毕:\n\n""是否继续查找?请键入yes或no以回车键结束\n");scanf("%s",p);}while(strcmp(p,"yes")==0); //判断结束}void booking() //订票模块{int n;char f[10];do{search(); //调用查询模块 printf("请输入您要订的机票数以回车键结束:\n");scanf("%d",&n); //读取所订机票数 if(n<0){printf("请输入有效的机票数!\n"); //判断机票数是否出错 break;}if(s[i].totalticket!=0&&s[i].totalticket>=n) //判断是否出错{s[i].totalticket=s[i].totalticket-n;s[i].sellticket=s[i].sellticket+n;save(); //调用保存函数 printf("订票成功!\n\n");break;}if(s[i].totalticket<n) //判断是否出错{printf("请输入有效的机票数:\n");break;}printf("是否继续?请输入yes或no以回车键结束:\n"); //判断是否继续订票scanf("%s",f);}while(!strcmp(f,"yes")); //判断结束}void back() //退票模块{int n;char f[10];do{search(); //调用查询模块 printf("请输入您要退的机票数目:\n");scanf("%d",&n); //输入所退票数 if(n<0) //判断票数是否有效 printf("请输入有效的机票数!\n");s[i].totalticket=s[i].totalticket+n;s[i].sellticket=s[i].sellticket-n;save(); //调用保存模块 printf("退票成功!\n\n");printf("是否继续?请键入yes或no以回车键结束:\n\n");//判断是否继续退票scanf("%s",f);}while(!strcmp(f,"yes")); //判断并跳出循环 getchar();}void correct() //修改模块{struct cor //定义结构体{int no;char startname[10];char endname[10];char day[10];int totalticket;int sellticket;}x[1];char j[10];int n;{read(); //调用读取模块 do{printf( "请选择修改方式:\n");printf( "*1,按航班号修改:\n");printf( "*2,按航线修改: \n");printf("请在1---2中修改以回车键结束:\n");scanf("%d",&n); //读取修改方式 switch(n){case 1:printf("请输入航班号:\n");scanf("%d",&x[0].no); //读取航班号break;case 2:printf("请输入起始站:\n");scanf("%s",x[0].startname); //读取起始站 printf("请输入终点站:\n");scanf("%s",x[0].endname); //读取终点站 break;}for(i=0;i<m;i++){if(strcmp(s[i].end,x[0].startname)==0&&strcmp(s[i].end,x[0].endname)= =0) //判断输出条件{printf("航班号起始站终点站时间预售票总数已售票总数\n");printf(PRINT);break;}if(s[i].flightno==x[0].no) //判断输出条件{printf("航班号起始站终点站时间预售票总数已售票总数\n");printf(PRINT);break;}}x[0].no=0; //将结构体中的号为零 printf("请输入新航班号、起始站、终点站、时间(星期几)、预售票总数、已售票总数:\n");scanf("%d%s%s%s%d%d",&x[0].no,x[0].startname,x[0].endname,x[0].day,&x [0].totalticket,&x[0].sellticket); //定义输入格式s[i].flightno=x[0].no; //替换航班号 strcpy(s[i].start,x[0].startname); //替换其始站 strcpy(s[i].end,x[0].endname); //替换终点站 strcpy(s[i].day,x[0].day); //替换时间 s[i].totalticket=x[0].totalticket; //替换预售票总数s[i].sellticket=x[0].sellticket; //替换已售票总数 save(); //调用保存模块 printf("是否继续?请键入yes或no以回车键结束:\n\n");scanf("%s",j);}while(strcmp(j,"yes")==0); //判断结束}}6、个人体会历经整整一个星期的课程设计终于结束了,在这一个星期内,我们小组三个同学从最开始的空白到现在的程序运行成功。