C++课程设计报告飞机订票管理系统

合集下载

飞机订票系统c语言课程设计

飞机订票系统c语言课程设计

飞机订票系统c语言课程设计一、课程目标知识目标:1. 学生能理解飞机订票系统的基本功能需求,掌握C语言实现此类系统的基本知识结构。

2. 学生能掌握结构体、数组、函数等C语言基础语法在飞机订票系统中的应用。

3. 学生了解并掌握文件操作在飞机订票系统中的重要性,并能实现数据存储与读取。

技能目标:1. 学生具备运用C语言设计并实现一个简单的飞机订票系统的能力。

2. 学生能通过分析问题,设计合理的程序结构,编写出清晰、高效的代码。

3. 学生能够利用所学知识进行程序调试和优化,解决实际问题。

情感态度价值观目标:1. 学生培养对编程的兴趣,激发探究精神,形成积极的学习态度。

2. 学生在课程实践中体会团队合作的重要性,培养沟通与协作能力。

3. 学生通过学习,认识到计算机编程在现实生活中的应用价值,增强社会责任感。

课程性质:本课程为高年级C语言程序设计课程的实践应用环节,旨在巩固学生的基础知识,提高实际编程能力。

学生特点:学生已经具备一定的C语言基础,具有较强的逻辑思维能力和问题解决能力。

教学要求:结合学生特点和课程性质,课程目标应具体、可衡量,注重培养学生的实践能力和团队协作精神。

通过分解课程目标为具体的学习成果,使学生在实践中掌握知识,提高技能,培养情感态度价值观。

后续教学设计和评估将围绕这些具体目标进行。

二、教学内容1. 系统需求分析:介绍飞机订票系统的基本功能,如用户登录、航班查询、座位选择、订票、退票等。

- 教材章节:第五章“结构体与链表”的应用,第十章“文件操作”。

2. C语言基础知识回顾:结构体、数组、函数、指针、文件操作等。

- 教材章节:第一至第四章基础语法,第五章结构体与链表,第六章数组,第七章函数,第八章指针,第十章文件操作。

3. 程序设计:根据需求分析,设计系统框架,编写代码实现各功能模块。

- 教材章节:第三章“程序控制结构”,第四章“函数与程序结构”,第五章“结构体与链表”,第七章“函数”。

c课程设计飞机订票系统

c课程设计飞机订票系统

c课程设计飞机订票系统一、课程目标知识目标:1. 学生能理解飞机订票系统的基本原理,掌握其功能模块和使用方法。

2. 学生能运用所学编程语言,设计并实现一个简单的飞机订票系统。

3. 学生了解数据库的基本操作,能运用数据库管理飞机票务信息。

技能目标:1. 学生掌握编程语言的基本语法,能运用条件语句、循环语句等编写程序。

2. 学生具备一定的系统设计能力,能根据需求分析,设计出合理的系统模块。

3. 学生能够运用数据库技术,实现数据的增、删、改、查等操作。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发学习主动性和创新能力。

2. 学生树立团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。

3. 学生通过课程学习,认识到信息技术的应用价值,增强对信息社会的责任感。

课程性质分析:本课程为信息技术学科,旨在培养学生掌握编程语言和数据库技术,通过设计飞机订票系统,提高学生的实际操作能力和解决实际问题的能力。

学生特点分析:本课程针对初中年级学生,他们对计算机有一定的兴趣,具备一定的逻辑思维能力,但编程基础和实际操作能力有限。

教学要求:1. 教学内容与课本紧密结合,注重理论与实践相结合,提高学生的实际操作能力。

2. 教学过程中,关注学生的个体差异,给予个性化指导,确保每个学生都能掌握课程内容。

3. 通过小组合作、讨论等形式,培养学生的团队协作能力和沟通能力。

二、教学内容1. 理论知识:- 了解飞机订票系统的基本概念和功能。

- 学习编程语言的基本语法,如变量、数据类型、运算符、条件语句和循环语句等。

- 掌握数据库的基本概念,如表、字段、记录等。

2. 实践操作:- 设计飞机订票系统的功能模块,如用户注册、登录、航班查询、购票、退票等。

- 编写程序代码,实现飞机订票系统的各个功能。

- 学习数据库的创建和操作,管理飞机票务信息。

3. 教学大纲:- 第一周:飞机订票系统概述,学习编程语言基本语法。

- 第二周:设计系统功能模块,学习条件语句和循环语句。

C++课程设计报告飞机订票管理系统

C++课程设计报告飞机订票管理系统

C++课程设计报告飞机订票管理系统一、设计背景和目的随着航空业的不断发展,飞机订票系统逐渐成为人们旅游和出行的必须工具。

为了提高飞机订票系统的效率和便捷性,开发一款好用的飞机订票管理系统显得尤为重要。

本次课程设计即以C++为编程语言,设计一款简单实用的飞机订票管理系统。

二、系统功能1、用户注册/登录用户初次使用系统需要先进行注册,填写相关信息,包括用户名、密码等,并进行确认。

之后系统将给用户分配一个专用ID。

已经注册的用户可以通过输入用户名和密码进行登录。

2、航班查询用户登录系统后,可以通过系统查询到航班信息,并可以进行筛选和排序,便于用户选择最优航班。

3、机票订购用户选择航班后,可以进行机票订购操作。

订票后,系统将保留座位,并且将相应信息存入系统数据库。

机票订购成功后,系统将显示用户订票的详细信息。

4、支付系统用户在订票后需要进行支付操作,支付成功后机票订购成功。

5、订单管理系统管理员可以对用户订票信息进行管理,并且可以对订单信息进行统计和分析,改善系统运营效率。

三、技术框架和编程实现本系统采用C++语言进行编写,使用了面向对象的编程思想,包括以下类:1、User类该类实现了用户的注册和登录功能。

其中包含属性有用户名、密码等,包含方法有注册、登录等。

2、Flight类该类实现了航班信息的查询和排序功能。

其中包含属性有航班号、起飞时间、到达时间等,包含方法有查询、排序等。

3、Ticket类该类实现了机票订购和支付功能。

其中包含属性有座位号、价格等,包含方法有订购、支付等。

4、Order类该类实现了订单管理和统计功能。

其中包含属性有订单号、用户ID、航班号和票价等,包含方法有查询、删除、统计等。

以上四个类的成员变量和成员函数实现都需要在不同的源文件里面实现,最后通过主函数进行调用和启动。

四、系统运行和测试本系统可以通过Visual Studio等C++编程环境进行调试和运行。

在本地测试中,我们可以输入不同的用户名和密码,可以查询不同的航班,并进行筛选和排序,可以订购机票并支付,也可以通过系统管理员身份对用户订单进行管理和统计。

c语言航空订票系统课程设计

c语言航空订票系统课程设计

c语言航空订票系统课程设计一、课程目标知识目标:1. 让学生掌握C语言中结构体、数组、函数等基本知识点的综合应用。

2. 让学生了解并掌握航空订票系统的基本功能模块及其实现方法。

3. 帮助学生理解文件操作在C语言中的应用,学会读写航班信息。

技能目标:1. 培养学生运用C语言进行问题分析、程序设计和调试的能力。

2. 培养学生独立完成一个小型项目的能力,包括需求分析、功能设计、编码实现和测试。

3. 提高学生团队协作能力,学会在项目中分工合作、共同解决问题。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,增强自信心。

2. 培养学生良好的编程习惯,注重代码规范,提高代码质量。

3. 引导学生关注实际问题,培养解决实际问题的能力,增强社会责任感。

本课程针对高中年级学生,课程性质为实践性较强的项目课程。

结合学生特点,课程目标注重培养学生的动手能力和团队协作能力。

在教学过程中,要求教师引导学生掌握C语言相关知识,关注实际问题的解决,以实现课程目标。

通过本课程的学习,学生将能够独立完成一个航空订票系统,达到预期的学习成果。

二、教学内容1. C语言基础回顾:结构体、数组、函数、指针、文件操作等。

2. 航空订票系统需求分析:介绍系统功能模块,包括航班查询、预订、取消预订、显示航班信息等。

3. 功能模块设计:- 航班信息结构体设计- 航班信息文件读写操作- 航班查询功能实现- 航班预订与取消预订功能实现- 航班信息显示功能实现4. 编程规范与调试技巧:代码规范、调试方法、性能优化等。

5. 团队协作与项目管理:任务分配、进度控制、代码合并与冲突解决等。

教学内容依据教材相关章节进行组织,确保科学性和系统性。

教学大纲安排如下:第一周:C语言基础回顾,航空订票系统需求分析。

第二周:航班信息结构体设计,文件读写操作。

第三周:航班查询功能实现,编程规范与调试技巧。

第四周:航班预订与取消预订功能实现,团队协作与项目管理。

航空订票系统课程设计(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飞机订票系统课程设计

c飞机订票系统课程设计

c飞机订票系统课程设计一、课程目标知识目标:1. 让学生理解飞机订票系统的基本原理和功能模块,掌握相关概念和术语;2. 使学生掌握数据库查询、数据输入输出、界面设计等基本编程技能;3. 帮助学生了解我国民航业的发展现状和飞机订票系统的实际应用。

技能目标:1. 培养学生运用所学知识设计和开发一个简单的飞机订票系统;2. 培养学生分析和解决实际问题的能力,提高团队协作和沟通能力;3. 培养学生运用计算机技术进行信息处理和创新能力。

情感态度价值观目标:1. 培养学生对计算机科学和民航业的兴趣,激发学习热情;2. 培养学生关注社会热点问题,增强社会责任感和使命感;3. 培养学生尊重知识产权,遵循法律法规,树立正确的价值观。

课程性质:本课程为实践性较强的学科课程,结合编程、数据库和民航知识,旨在培养学生的实际操作能力和解决问题的能力。

学生特点:学生具备一定的计算机编程基础和民航知识背景,对新鲜事物充满好奇,具备较强的动手能力和团队协作精神。

教学要求:教师应注重理论与实践相结合,充分调动学生的积极性,引导学生主动探究,注重培养学生的创新能力和实践能力。

在教学过程中,关注学生的个体差异,给予个性化指导,确保课程目标的实现。

通过课程学习,使学生能够达到预定的学习成果,为后续相关课程的学习打下坚实基础。

二、教学内容1. 理论知识:- 计算机网络基础:介绍网络通信原理,TCP/IP协议,网络编程基础;- 数据库原理:讲解数据库的基本概念,关系型数据库的设计与应用;- 民航知识:介绍民航业的发展,飞机票务系统的业务流程及功能需求。

2. 实践操作:- 界面设计:学习使用相关工具进行界面设计,制作飞机订票系统的用户界面;- 数据库操作:掌握SQL语句,实现对数据库的增删改查操作;- 编程实现:运用所学编程语言,实现飞机订票系统的核心功能。

3. 教学大纲:- 第一周:计算机网络基础,数据库原理;- 第二周:民航知识,界面设计;- 第三周:数据库操作,编程实现;- 第四周:综合实践,项目调试与优化。

c语言机票预订系统课程设计

c语言机票预订系统课程设计

c语言机票预订系统课程设计一、课程目标知识目标:1. 让学生掌握C语言中结构体、数组、函数等基本知识点的综合应用;2. 让学生理解并掌握C语言中文件操作的基本方法;3. 让学生掌握C语言实现机票预订系统的基本原理和步骤。

技能目标:1. 培养学生运用C语言解决实际问题的能力,能独立完成机票预订系统的设计和编程;2. 培养学生分析问题、设计解决方案的能力,能针对具体需求进行模块划分和功能实现;3. 提高学生的团队协作能力,学会与他人合作共同完成一个项目。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣和热情,培养良好的编程习惯;2. 培养学生面对问题勇于挑战、积极解决的态度,增强自信心;3. 通过团队合作,培养学生的集体荣誉感和责任感。

课程性质分析:本课程为C语言程序设计课程的实践环节,旨在让学生通过实际项目的开发,巩固所学知识,提高编程能力。

学生特点分析:学生已具备C语言基础知识,具有一定的编程能力,但缺乏实际项目经验,对综合运用知识解决实际问题的能力有待提高。

教学要求:1. 注重理论与实践相结合,引导学生将所学知识应用于实际项目中;2. 鼓励学生积极参与讨论,培养独立思考和解决问题的能力;3. 加强团队合作指导,提高学生的沟通能力和协作精神。

二、教学内容1. C语言基础知识回顾:结构体、数组、函数、指针、文件操作等;2. 机票预订系统需求分析:讲解系统功能需求,引导学生进行需求分析和模块划分;3. 系统设计:介绍C语言实现机票预订系统的基本原理,包括数据结构设计、模块设计等;4. 编程实现:- 数据结构设计:定义所需的结构体,如航班信息、用户信息等;- 功能模块实现:编写各功能模块的代码,如航班查询、预订、取消预订等;- 文件操作:实现数据的存储和读取,保证数据的持久化;5. 测试与优化:介绍测试方法,指导学生进行系统测试,发现问题并进行优化;6. 团队合作与项目展示:组织学生分组合作,完成整个项目,并进行项目展示和评价。

c语言飞机订票系统课程设计

c语言飞机订票系统课程设计

c语言飞机订票系统课程设计一、课程目标知识目标:1. 让学生掌握C语言的基本语法和程序结构,特别是数组、结构体和函数的应用。

2. 使学生了解飞机订票系统的基本原理和功能需求,掌握相关数据结构和算法。

3. 帮助学生理解文件操作在飞机订票系统中的应用,学会读写数据文件。

技能目标:1. 培养学生运用C语言设计小型系统的能力,特别是模块化编程和代码组织能力。

2. 提高学生分析问题、解决问题的能力,学会运用所学知识解决实际订票问题。

3. 培养学生的团队协作能力,通过分组合作完成课程设计。

情感态度价值观目标:1. 激发学生对编程的兴趣,培养计算机编程的思维习惯。

2. 培养学生认真负责、严谨细致的学习态度,注重代码规范和程序调试。

3. 使学生认识到计算机技术在生活中的应用,增强对信息技术的认识和尊重。

课程性质:本课程设计属于实践性课程,以项目为导向,注重培养学生的实际操作能力和团队协作能力。

学生特点:学生已具备C语言基础知识,有一定的编程基础,但缺乏实际项目经验。

教学要求:教师需引导学生掌握飞机订票系统的基本原理,注重培养学生的编程实践能力,关注学生在课程设计过程中的情感态度变化,及时给予指导和鼓励。

在教学过程中,将课程目标分解为具体的学习成果,便于后续的教学设计和评估。

二、教学内容1. C语言基础回顾:复习数组、结构体、函数等基本概念和用法,确保学生具备扎实的编程基础。

相关教材章节:第3章 数组,第4章 结构体和联合,第6章 函数。

2. 飞机订票系统需求分析:讲解飞机订票系统的基本功能需求,如用户注册、航班查询、订票、退票等。

相关教材章节:第12章 项目设计。

3. 数据结构和算法设计:介绍飞机订票系统中涉及的数据结构(如链表、树等)和算法(如排序、查找等)。

相关教材章节:第7章 数据结构,第8章 算法。

4. C语言编程实践:指导学生运用所学知识编写飞机订票系统的各个功能模块。

相关教材章节:第9章 指针,第10章 文件操作。

大一C语言课程设计--飞机订票系统

大一C语言课程设计--飞机订票系统

⼤⼀C语⾔课程设计--飞机订票系统#include#include#includestruct airplane{int num;char begin[20];char end[20];char time[20];double fee;int count;}plane[2014];void home();void input();void del();void scan();void book();void change();void quit();void sou();void save();void read();void home(){int a,i,j;printf("\n\n *****************************欢迎进⼊飞机票务系统*****************************\n\n");printf("==========您好,现在要确认您的⾝份!票务⼈员请按 1 ,旅客请按 0 ===========");scanf("%d",&a);if(a==1)do{printf("\n\t\t^o^o^o^o^o^o^o^o^ 1.输⼊航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 2.删除航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 3.浏览航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 0.退出 ^o^o^o^o^o^o^o^o^\n\n");printf("请在0~3之间选择您要进⾏的操作 ");scanf("%d",&i);if(i>=0&&i<=3)switch(i){case 0: break;case 1:input(); break;case 2: del(); break;case 3:scan(); break;}else{printf("\n输⼊错误!!\n\n\n");continue;}printf("\n\n **************************以⾼度负责的态度做好春运⼯作**************************\n\n");} while(i!=0);if(a==0)do{printf("\n\t\t<><><><><><><><><><> 1.订票 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 2.改签 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 3.退票 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 4.浏览航班信息 <><><><><><>\n");printf("\t\t<><><><><><><><><><> 5.查询 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 0.退出 <><><><><><><><><><>\n\n");printf("请在0~5之间选择您要进⾏的操作");scanf("%d\n\n",&j);if(j>=0&&j<=5)switch(j){case 0: break;case 1:book(); break;case 2:change(); break;case 3:quit(); break;case 4:scan(); break;}else{printf("\n输⼊错误!!\n\n\n");continue;}printf("\n\n *******************春节即将到来,提前祝您春节快乐,出⾏平安********************\n\n"); } while(j!=0);}void input() // 输⼊航班{char sysm[]="jim007";char youm[20];int i,m;printf("请输⼊密码: ");scanf("%s",youm);if(strcmp(sysm,youm)!=0){printf("输⼊密码错误!请确认您是否是票务⼈员,如不是,请按任意键返回菜单重新选择" ); getchar();getchar();home();}else{system("cls");printf("请问要输⼊⼏个航班信息: ");scanf("%d",&m);printf("\n\n******************************************************************\n\n");for(i=0;i{printf("请输⼊航班号:\n");scanf("%d",&plane[i].num);printf("请输⼊起飞地点:\n");scanf("%s",plane[i].begin);printf("请输⼊降落地点:\n");scanf("%s",plane[i].end);printf("请输⼊起飞时间:\n");scanf("%s",plane[i].time);printf("请输⼊票价:\n");scanf("%lf",&plane[i].fee);printf("请输⼊机票数:\n");scanf("%d",&plane[i].count);}getchar();home();}}void del() //删除模块{char be[20];char en[20];char sysm[]="jim007";char youm[20];int i,w,p,q,k=0;printf("请输⼊密码: ");scanf("%s",youm) ;if(strcmp(sysm,youm)!=0){printf("输⼊密码错误!请确认您是否是票务⼈员,如不是,请按任意键返回菜单重新选择" );getchar();getchar();home();}elseprintf("1.按航班号删除 \n");printf("2.按航线删除 \n");printf("请在1-2中选择删除⽅式: ");scanf("%d",&q);switch(q){case 1:printf("请输⼊航班号: ");scanf("%d",&p);break;case 2:printf("请输⼊起飞地点: ");scanf("%s",be);printf("请输⼊降落地点: ");scanf("%s",en);break;}printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;i{if(q==1&&plane[i].num==p){k++;printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }if(q==2&&strcmp(plane[i].begin,be)==0&&strcmp(plane[i].end,en)==0){k++;printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }}if(k=0)printf("没有找到此航班,⽆法删除!");elseprintf("确定删除请按 1 否则请按 0:\n\n");scanf("%d",&w);if(w==1)for(i=0;i{plane[i].num=0;strcpy(plane[i].begin,"0");strcpy(plane[i].end,"0");strcpy(plane[i].time,"0");plane[i].fee=0;plane[i].count=0;}getchar();getchar();home();}void scan() //浏览{if(m==0)printf("\n\n⽆航班信息\n\n");else{printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;iprintf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }getchar();home();}void book() //订票模块{int i,a;struct airplane d;system( "cls" );do{sou();printf("请输⼊您要订的航班号: ");scanf("%d",&d.num);printf("请输⼊您要订的机票数: ");scanf("%d",&d.count);for(i=0;iif(result[i].num==d.num){if(result[i].count!=0&&result[i].count>= d.count){result[i].count=result[i].count- d.count;printf("恭喜您订票成功!祝您旅途愉快!\n");break;}if(result[i].count{printf("此航班只剩下%d张票,订票失败",result [i].count);break;}}printf("\n\n继续订票请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);void change() //改签模块{int i,num1,num2;system( "cls" );do{sou();printf("请输⼊您改签前的航班号: ");scanf("%d",&num1);printf("请输⼊您改签后的航班号: ");scanf("%d",&num2);for(i=0;iif(result[i].num==num1)result[i].count=result[i].count+1;for(i=0;iif(result[i].num==num2)result[i].count=result[i].count-1;printf("恭喜您改签成功!祝您旅途愉快!\n");break;printf("\n\n继续改签请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);void quit() //退票模块{int i,a;struct airplane f;system( "cls" );do{sou();printf("请输⼊您要退订的航班号: ");scanf("%d",&f.num);printf("请输⼊您要退订的机票数: ");scanf("%d",&f.count);if(d.count<0){printf("您输⼊的票数有误,请重新输⼊\n");break;}for(i=0;iif(result[i].num==f.num){result[i].count=result[i].count+ f.count;printf("恭喜您退票成功! \n");break;}elseprintf("抱歉,您输⼊的航班号有误!");printf("\n\n继续订票请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);}void sou() //查询模块{int i,c,d,e,t,j=0;struct airplane a;struct airplane result[20];system( "cls" );printf("\n\n请输⼊起飞时间:");scanf("%s",a.time);printf("\n\n请输⼊起飞地点:");scanf("%s",a.begin);printf("\n\n请输⼊降落地点:");scanf("%s",a.end);printf("请选择排序⽅式( 1:按航班号升序;2:按票价升序)")scanf("%d",&c);printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;i{if(plane[i].time==a.time&&strcmp(plane[i].begin,a.begin)==0&&strcmp(plane[i].end,a.end)==0) result[j]=plane[i]j++;}if(j==0)printf("抱歉,暂时没有该条件的航班!");if(j>0&&c==1){for(d=0;dfor(e=d+1;eif(result[e].num{t= result[e];result[e]= result[e-1];result[e-1]=t;}}if(j>0&&c==0){for(d=0;dfor(e=d+1;eif(result[e].fee{t= result[e];result[e]= result[e-1];result[e-1]=t;}}for(i=0;iprintf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n", result[i].num, result[i].begin, result [i].end, result[i].time, result[i].fee, result[i].count); }void save() //保存模块{FILE *fp;int i,w=1;system( "cls" );if((fp=fopen("C:\\Users\\Administrator\\Desktop\\plane.txt","w"))==NULL){printf("打开⽂件错误\n");exit(0);}for(i=0;iif(fwrite(fp,sizeof(struct airplane),1, &plane[i])==0){printf("⽂件保存错误!\n");exit(0);w=0;}if(w==1)printf("⽂件保存成功!\n");fclose(fp);getchar();getchar();home();}void read() //读取模块{int i;FILE *fp;if(fp=fopen("C:\\Users\\Administrator\\Desktop\\plane.txt","r")==NULL){printf("⽂件打开失败\n");exit(0);}else{while(!feof(fp))for(i=0;ifread(plane[i],sizeof(struct airplane),1,fp)}getchar();getchar();home();}。

飞机订票系统c语言课程设计

飞机订票系统c语言课程设计

飞机订票系统 c语言课程设计一、课程目标知识目标:1. 理解C语言在开发飞机订票系统中的应用,掌握相关数据结构(如结构体、数组、链表)的使用;2. 学会使用C语言进行文件操作,实现数据的存储和读取;3. 掌握C语言中的模块化编程思想,将系统功能划分为多个函数并实现协同工作。

技能目标:1. 能够运用所学知识,独立设计和实现一个飞机订票系统,包括用户注册、查询航班、预订机票、取消预订等功能;2. 提高问题分析能力,针对实际需求,运用C语言编写合适的算法和程序;3. 培养良好的编程习惯,编写规范、易读、高效的代码。

情感态度价值观目标:1. 培养学生面对复杂问题时,保持积极、主动、合作的态度,勇于克服困难;2. 增强学生的团队协作意识,学会在团队中发挥个人优势,共同完成任务;3. 通过课程学习,让学生认识到编程在实际生活中的应用价值,激发对计算机科学的兴趣。

本课程针对高年级学生,课程性质为实践性较强的课程设计。

在教学过程中,要求学生具备一定的C语言基础,能独立完成程序编写和调试。

课程目标的设定旨在让学生在掌握C语言知识的基础上,进一步提高编程实践能力,培养实际项目开发中的团队协作和问题解决能力。

通过课程学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。

二、教学内容1. C语言基础知识复习:数据类型、运算符、控制语句、函数等基本概念;教材章节:第一章至第四章。

2. 数据结构:结构体、数组、链表等;教材章节:第六章、第七章。

3. 文件操作:文件打开、读取、写入、关闭等;教材章节:第十章。

4. 模块化编程:函数定义、调用、参数传递、作用域等;教材章节:第五章、第八章。

5. 飞机订票系统功能设计:- 用户注册、登录功能;- 航班查询、预订、取消预订功能;- 数据存储与读取功能;教材章节:综合应用实例。

6. 编程规范与调试技巧:代码风格、调试方法、性能优化等;教材章节:第十二章。

教学内容安排与进度:第一周:C语言基础知识复习;第二周:数据结构学习;第三周:文件操作学习;第四周:模块化编程;第五周:飞机订票系统功能设计与实现;第六周:编程规范与调试技巧,项目完善与优化。

c语言飞机订票系统课程设计

c语言飞机订票系统课程设计

c 语言飞机订票系统课程设计一、课程目标知识目标:1. 学生理解C语言中结构体、数组、函数等基本概念,并能运用这些知识设计飞机订票系统。

2. 学生掌握C语言文件操作,实现对飞机票数据的存储和读取。

3. 学生了解C语言中字符串处理函数,并能够运用字符串操作进行信息输入和输出。

技能目标:1. 学生能够运用结构体和数组创建和管理飞机票数据,实现票务信息的增删改查功能。

2. 学生能够编写C语言程序,实现用户界面交互,包括用户登录、航班查询、购票、退票等功能。

3. 学生能够利用文件操作保存和加载飞机订票系统数据,保证数据的持久性。

情感态度价值观目标:1. 学生培养编程的兴趣,激发学习C语言的积极性,形成自主学习的习惯。

2. 学生通过合作完成课程设计,培养团队协作能力和沟通能力,增强集体荣誉感。

3. 学生了解飞机订票系统的实际应用,认识到编程知识在解决实际问题中的价值,增强学以致用的意识。

课程性质:本课程设计为实践性课程,旨在让学生将所学的C语言知识应用于实际项目中,提高编程能力和解决实际问题的能力。

学生特点:学生已具备C语言基础知识,具有一定的编程能力,但对实际项目的开发尚缺乏经验。

教学要求:教师需引导学生复习相关知识点,提供必要的技术支持,鼓励学生自主探究和团队协作,注重培养学生的实践能力和创新能力。

在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能在课程中取得进步。

通过课程设计,使学生将理论知识与实践相结合,提高综合运用C语言知识解决实际问题的能力。

二、教学内容1. 复习C语言基础知识:结构体、数组、函数、指针、文件操作、字符串处理函数等。

相关教材章节:第一章至第六章- 结构体与数组:理解结构体的定义和用法,掌握结构体数组的操作。

- 函数:掌握函数的定义、调用和参数传递。

- 指针:理解指针的概念和操作,掌握指针在数组、函数中的应用。

- 文件操作:掌握文件的打开、读写、关闭操作。

- 字符串处理函数:熟悉常用的字符串处理函数,如strcpy、strcat等。

c航空订票课程设计

c航空订票课程设计

c 航空订票课程设计一、课程目标知识目标:1. 学生能够理解航空订票的基本概念和流程。

2. 学生掌握航班查询、预订、支付等操作步骤。

3. 学生了解航空公司的服务项目及优惠政策。

4. 学生掌握航班时刻表、舱位等级、行李额度的相关知识。

技能目标:1. 学生能够熟练运用信息技术进行航班查询和预订。

2. 学生具备分析和比较不同航班、舱位、价格的能力,能制定合适的出行计划。

3. 学生能够解决在航空订票过程中遇到的问题,具备一定的应变能力。

情感态度价值观目标:1. 学生培养对航空事业的兴趣,关注我国航空业的发展。

2. 学生树立正确的消费观念,合理选择航班和舱位。

3. 学生培养团队协作精神,学会在航空订票过程中与他人沟通、分享信息。

4. 学生提高安全意识,了解并遵守航空公司的相关规定。

课程性质:本课程为实践性较强的信息技术课程,旨在帮助学生掌握航空订票的实际操作技能。

学生特点:六年级学生具备一定的信息技术基础,对新鲜事物充满好奇,善于动手操作。

教学要求:结合学生特点,注重实践操作,以学生为主体,教师引导、辅导相结合,确保学生能够达到课程目标。

将目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. 航空订票基础知识:包括航空订票的定义、分类及发展历程,航空公司的服务项目及优惠政策。

- 教材章节:第一章 航空订票概述2. 航班查询与预订:介绍航班查询的方法、步骤,以及在线预订的操作流程。

- 教材章节:第二章 航班查询与预订3. 航空订票支付与取票:讲解支付方式、支付流程,以及电子票和纸质票的取票方法。

- 教材章节:第三章 航空订票支付与取票4. 航空订票常见问题及解决方案:分析在航空订票过程中可能遇到的问题,提供相应的解决方法。

- 教材章节:第四章 航空订票常见问题及处理5. 航空订票案例分析:通过实际案例,让学生了解航空订票的注意事项和技巧。

- 教材章节:第五章 航空订票案例分析6. 实践操作:组织学生进行航空订票模拟操作,巩固所学知识,提高实际操作能力。

c语言课程设计--飞机订票系统

c语言课程设计--飞机订票系统

c语言课程设计–飞机订票系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本知识,能够使用C语言设计并实现一个简单的飞机订票系统。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。

2.技能目标:学生能够运用C语言进行程序设计,解决实际问题,如设计飞机订票系统的各个功能模块。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力,培养学生的团队合作精神。

二、教学内容教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础,以及如何使用C语言设计并实现一个简单的飞机订票系统。

具体安排如下:1.C语言基本语法和数据类型2.C语言运算符和控制结构3.C语言函数和数组4.C语言指针和字符串5.飞机订票系统的设计和实现三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。

2.案例分析法:通过分析实际案例,让学生了解如何使用C语言设计并实现飞机订票系统。

3.实验法:让学生动手编写代码,实现飞机订票系统的各个功能模块。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》或《C语言程序设计》2.参考书:《C Primer Plus》或《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络环境五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。

2.作业:布置课后编程作业,评估学生对C语言知识的掌握程度及编程能力。

3.考试:期末进行闭卷考试,评估学生对C语言编程基础知识的掌握情况。

4.项目实践:要求学生分组设计并实现一个简单的飞机订票系统,评估学生的实际编程能力和团队协作能力。

c(sql)飞机订票系统课程设计

c(sql)飞机订票系统课程设计

c (sql)飞机订票系统课程设计一、课程目标知识目标:1. 理解数据库在飞机订票系统中的作用,掌握SQL语言的基本语法和操作。

2. 学会创建、修改和查询数据库中的表格,熟练运用SQL命令进行数据管理。

3. 了解飞机订票系统的业务流程,掌握系统中涉及的关键数据表和字段。

技能目标:1. 能够独立设计飞机订票系统的数据库,包括创建表格、设置字段属性和关系等。

2. 能够运用SQL语言实现数据的增、删、改、查等操作,解决实际问题。

3. 能够分析飞机订票系统的实际需求,编写合适的SQL查询语句,为决策提供数据支持。

情感态度价值观目标:1. 培养学生的团队协作意识,学会与他人共同解决问题,提高沟通与表达能力。

2. 增强学生对数据库技术在实际应用中的认识,激发学习兴趣,培养创新思维。

3. 通过课程学习,使学生认识到信息技术在航空业中的重要性,树立正确的价值观。

课程性质:本课程为信息技术学科课程,结合实际应用场景,教授数据库知识和SQL语言技能。

学生特点:学生具备一定的计算机基础,对数据库概念有一定了解,但SQL语言操作相对陌生。

教学要求:结合教材,注重实践操作,通过案例分析和实际操作,使学生掌握SQL语言在飞机订票系统中的应用。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 数据库基础知识回顾:数据库概念、数据模型、关系型数据库等。

2. SQL语言基础:SQL语法结构、数据类型、基本命令(SELECT、INSERT、UPDATE、DELETE)。

3. 数据库设计:飞机订票系统需求分析、实体关系建模、数据库表格设计。

- 教材章节:第三章 数据库设计、第四章 SQL与关系数据库4. SQL操作:- 数据定义:CREATE TABLE、ALTER TABLE、DROP TABLE。

- 数据操纵:INSERT INTO、UPDATE、DELETE。

- 数据查询:SELECT、WHERE、GROUP BY、ORDER BY、JOIN。

C语言课程设计报告(附程序代码--飞机订票系统)

C语言课程设计报告(附程序代码--飞机订票系统)

C语言课程设计报告(附程序代码--飞机订票系统) 12/21/2011 第1页xxxx大学xx学院C语言课程设计题目:飞机订票系统专业: 计算机科学与技术班级:姓名:完成时间:12/21/2011 第2页第一部分:源程序(3-12页)第二部分:函数流程图(13-25页)(1)menu函数流程图(第13页)(2)enter函数流程图(第14页)(3)Order函数流程图(第15页)(4)input函数流程图(第16页)(5)browse函数流程图(第17页)(6)Search_time函数流程图(第18页)(7)Search_end函数流程图(第19页)(8)search函数流程图(第20页)(9)void menu1函数流程图(第21页)(10)book函数流程图(第22页)(11)back函数流程图(第23页)(12)save函数流程图(第24页)(13)load 函数流程图(第25页) 第三部分:心得体会(第26-27页) 12/21/2011 第3页第一部分:源程序#include <stdio.h>#include <string.h> #include <stdlib.h> #define N 1000 typedef struct plane {char ID[10]; /*航班代号*/char BePlace[10];/*飞机起飞地点*/char EnPlace[10];/*飞机降落终点*/char data[15];/*飞机起飞时间*/int max;/*飞机最大乘客人数*/int price;/*飞机票价*/int num;/*飞机已售票数*/}PLANE;PLANE ti[N];int n;/*当前的航班数目*/void menu();void menu1();void input(int i){printf("请输入航班代号:\n");scanf("%s",ti[i].ID);printf("请输入起飞地点:\n");scanf("%s",ti[i].BePlace);printf("请输入降落地点:\n");scanf("%s",ti[i].EnPlace);printf("请输入起飞时间:\n");scanf("%s",ti[i].data);printf("请输入航班的最大载客人数:\n"); scanf("%d",&ti[i].max);printf("请输入航班的票价:\n");scanf("%d",&ti[i].price);ti[i].num=0;}12/21/2011 第4页void enter(){int i;system( "cls" );printf("请输入航班的数目(0-%d)?:",N); scanf("%d",&n); /*要输入的记录个数*/ printf("\n请输入数据\n\n");for(i=0;i<n;i++){printf("\n请输入第 %d 航班记录.\n",i+1);input(i); /*调用输入函数*/}getchar();menu();}void printf_one(int i) /*显示一个记录的函数*/ {printf("%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);}void browse(){int i;system( "cls" );puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){printf_one(i);printf("\n");}getchar();getchar();12/21/2011 第5页menu();}void order() /*排序模块(按平均成绩)*/ { int i,j;struct plane s;system( "cls" );for(i=0;i<n;i++) /*冒泡法排序*/{for(j=i+1;j<n;j++)if(strcmp(ti[i].data,ti[j].data)>0) {s=ti[i];ti[i]=ti[j];ti[j]=s;}}browse();}void search_time(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the time:");scanf("%s",s.data); /*输入出发的时间*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(s.data,ti[i].data)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");12/21/2011 第6页getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void serch_end(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the end Place:");scanf("%s",s.EnPlace); /*输入要到达的地方*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(ti[i].EnPlace,s.EnPlace)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}12/21/2011 第7页puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void menu1(){int n,w1;do{system( "cls" ); /*清屏*/puts("\t\t\t\t 飞机售票操作!\n\n");puts("\t\t*********************MENU*********************\n\n"); puts("\t\t\t\t1.按照时间排序");puts("\t\t\t\t2.按照时间查找航班");puts("\t\t\t\t3.按照地点查找航班");puts("\t\t\t\t4.返回主菜单");puts("\n\n\t\t**********************************************\n"); printf("Choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 4,Please input again:"); getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:order();break;case 2:search_time();break;case 3:serch_end();break;case 4:menu();break;}}12/21/2011 第8页int search() /*查找模块*/ {int i,k;struct plane s;k=-1;system( "cls" );printf("\n\n请输入要订票的起飞地点:");scanf("%s",s.BePlace); /*输入要到达的地方*/printf("\n\n请输入要订票的降落地点:");scanf("%s",s.EnPlace);printf("\n\n请输入要订票的起飞时间:");scanf("%s",s.data); /*输入出发的时间*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPl ace)==0&&strcmp(s.data,ti[i].data)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/ }}if(k==-1){printf("\n\nNO exist!");return -1;}elsereturn k;}void book(){int i;system( "cls" );printf("欢迎进入售票窗口!\n");12/21/2011 第9页i=search();if(i!=-1){if(ti[i].num>=ti[i].max){printf("\n该趟航班票已售完~");}else{ti[i].num++;printf("\n订票成功!\n");}}elseprintf("该航班不存在!\n");getchar();getchar(); /*按任意健*/menu();}void back(){int i,k=-1;struct plane s;system( "cls" );printf("欢迎进入退票窗口!\n");printf("\n\n输入航班代号:");scanf("%s",s.ID); /*输入要到达的地方*/ for(i=0;i<n;i++) /*查找要修改的数据*/ {if(strcmp(s.ID,ti[i].ID)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/ }}if(k==-1){printf("\n\nNO exist!");12/21/2011 第10页}else{ti[i].num--;printf("\n退票成功!\n");}getchar(); /*按任意健*/getchar(); /*按任意健*/menu();}void save(){int w=1;FILE *fp;int i;system( "cls" );if((fp=fopen("\\ticket.txt","wt"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/{printf("\nCannot open file\n");return ;}for(i=0;i<n;i++)if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1){printf("file write error\n");w=0;}if(w==1){printf("file save ok!\n");}fclose(fp);getchar();getchar();menu();}void load()12/21/2011 第11页{FILE*fp;int i,w;w=1;system( "cls" );if((fp=fopen("\\ticket.txt","rt"))==NULL) {printf("\nCannotopen file\n");w=0;return ;}n=0;for(i=0;!feof(fp);i++){fread(&ti[i],sizeof( struct plane),1,fp); n++;}n=n-1;fclose(fp);if(w==1)printf("Load file ok!");getchar();getchar();menu();}void menu(){int n,w1;do{system( "cls" ); /*清屏*/ /*清屏*/puts("\t\t\t\t 飞机售票管理系统!\n\n");puts("\t\t*********************MENU*********************\n\n"); puts("\t\t\t\t1.输入新航班");puts("\t\t\t\t2.浏览 ");puts("\t\t\t\t3.航班操作");puts("\t\t\t\t4.订票");puts("\t\t\t\t5.退票");12/21/2011 第12页puts("\t\t\t\t6.保存");puts("\t\t\t\t7.载入");puts("\t\t\t\t8.退出");puts("\n\n\t\t**********************************************\n"); printf("Choice your number(1-8): [ ]\b\b");scanf("%d",&n);if(n<1||n>8) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 8,Please input enter to choiceagain:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:enter();break; /*输入模块*/case 2:browse();break; /*浏览模块*/case 3:menu1();break; /*查找模块*/case 4:book();break; /*订票模块*/case 5:back();break; /*退票模块*/case 6:save();break; /*保存模块*/case 7:load();break; /*加载模块*/case 8:exit(0);}}void main(){menu();}12/21/2011 第13页第二部分:函数流程图(1)menu()函数结束NY 退出 n=8 Y Y 开始NY载入 Y n=7 int n,w1YNY保存 Y 清屏(cls) n=6YNY输出目录退票 Y n=5YN输出n Y订票 Y n=4YNNif n<1||n>8 Y航班操作 Y Y n=3 YY NY w1=1 w1=0 Y浏览 Y n=2 YNN Y输入新航班 While(w==1) n=1 Y Y YYY 输出n(1-8)12/21/2011 第14页开始 (2)enter函数int i清屏(cls)请输入航班的数目n请输入数据mi=0N i<nY请输入第n次航班记录调用input()函数i++返回menu()结束12/21/2011 第15页(3)Order函数开始int i,j清屏(cls)i=0N 调用browse() i<n YYY j=i+1结束N i++ j<n YYYNstrcmp(ti[i].data, ti[j].data)>0YYY s=ti[i];ti[i]=ti[j]ti[j]=sj++12/21/2011 第16页开始 (4)input函数请输入航班代号请输入起飞地点请输入降落地点请输入起飞时间请输入航班的最大载客人数请输入航班的票价返回menu()结束12/21/2011 第17页(5)browse函数开始int i清屏(cls)i=0Ni<n i++Y调用printf_one(i)输出返回menu() 结束开始12/21/2011 第18页int i,m (6)Search_time函数清屏(cls)输入时间i=0N 返回menu1() i<nYYN i++ S==ti[i] YYY 结束m++(m!=0)&&(m%10==0)按任意键继续进行回车换行调用函数printf_one()开始12/21/2011 第19页int i,m (7) Search_end函数清屏(cls)输入要到达的地方i=0返回menu () i<nYYN i++ S==ti[i] Y结束Ym++(m!=0)&&(m%10==0)按任意键继续进行回车换行调用函数printf_one(i)12/21/2011 第20页(8)search函数开始int i,kk=-1清屏(cls)输入起飞,降落地点和时间i=0N Y k==-1i<nY Y i++输出“NO exist!”strcmp(s.BePlace,ti[i].BePlN ace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strc返回search()=k 返回search()=-1 mp(s.data,ti[i].data)==0Yk=i结束调用printf_one(k)跳出(break)12/21/2011 第21页(9)void menu1函数开始结束int n,w1清屏(cls)Ymenu() n=4Y 输出目录2NY Y n=3 () serch_end 输出n(1-4)Y NNY Ysearch_time() if n<1||n>4 n=2 Y Y YN Y w1=1 w1=0 Y Yorder() n=1 YYN输出n while(w1==1)Y Y12/21/2011 第22页(10)book函数开始int i清屏(cls)输出“欢迎进入售票窗口”i=search()N i!=-1YN ti[i].num>=ti[i].maxY ti[i].num++输出“该航班输出“该趟航不存在!” 班票已售完”输出“订票成功”返回menu()结束12/21/2011 第23页开始 (11)back函数int i,k=-1清屏(cls) 结束输入 menu()“欢迎进入退票窗口”输入输出“退票成功!”“输入航班代号”i=0 ti[i].num--NNk==-1 i<n i++Y Y输出N strcmp(s.ID,ti[i].“NOexist!” ID)==0 Y调用k=iprintf_one(k)12/21/2011 第24页开始(12)save函数结束 int w=1, FILE*fp,i清屏(cls) 输出“Cannotopen file”返回menu()Y (fp=fopen("\\ticket.txt","wt"))==NULLN调用fclose(fp)i=0NN i<n w==1i++Y YN 输出“file save fwrite(&ti[i],sizeof(struct ok!” plane),1,fp)!=1plane),1,fp)!=1Y输出“file writeerror”w=012/21/2011 第25页开始load函数n++(13)FILE*fp int i,w=1fread(&ti[i],sizeof( struct i++ plane),1,fp)Y清屏(cls) N !feof(fp)FILE*fp int i,w i=0n=0 (fp=fopen("\\ticket.txNt","rt"))==NULLY输出“Cannotopen n=n-1 file”(fp=fopen("\\ticket.txt","rtfclose(fp) "))==NULLw=0 N w==1Y返回输出“Load fileok!”返回menu() 结束12/21/2011 第26页第三部分,心得体会通过对C语言课程设计的学习,自己有很大的收获,将<<C语言>>应用得到了实践,将所学的各种语句紧密的联系起来,得到了融汇和贯通,使我对C语言有了更深一步的学习和认识。

c语言课程设计飞机订票系统设计

c语言课程设计飞机订票系统设计

c语言课程设计飞机订票系统设计一、课程目标知识目标:1. 学生能够掌握C语言的基本语法,包括数据类型、运算符、控制语句等。

2. 学生能够理解结构体和指针的概念,并能够运用它们进行程序设计。

3. 学生能够运用数组、链表等数据结构来实现飞机订票系统的基本功能。

4. 学生能够理解文件操作的基本原理,实现数据的存储和读取。

技能目标:1. 学生能够运用C语言编写具有一定规模的程序,具备独立解决问题的能力。

2. 学生能够运用结构体和指针操作实现数据的有效组织和管理。

3. 学生能够通过分析飞机订票系统的需求,设计合理的程序模块和接口。

4. 学生能够运用调试工具和技巧,找出并修复程序中的错误。

情感态度价值观目标:1. 学生在课程学习过程中,培养对编程的兴趣和热情,树立编程自信心。

2. 学生能够认识到编程在解决实际问题中的重要作用,提高学习责任感。

3. 学生通过团队协作完成课程设计,培养沟通、协作能力和集体荣誉感。

4. 学生能够遵循编程规范,养成良好的编程习惯,提高自身职业素养。

课程性质:本课程为C语言课程设计,旨在让学生通过实际项目实践,巩固所学知识,提高编程能力。

学生特点:学生已具备C语言基础知识,有一定的编程基础,但对大型程序设计尚缺乏经验。

教学要求:教师应注重引导学生运用所学知识解决实际问题,关注学生的个体差异,提供有针对性的指导,帮助学生完成课程目标。

同时,注重培养学生的团队协作能力和创新能力。

通过课程设计,使学生将所学知识转化为实际成果。

二、教学内容1. C语言基本语法复习:数据类型、变量、常量、运算符、表达式、控制语句(条件语句、循环语句)。

2. 结构体和指针:结构体的定义和使用、结构体数组、指向结构体的指针、动态内存分配。

3. 数据结构:数组、链表的概念与应用,实现航班信息、座位信息的存储和查询。

4. 函数和模块化设计:函数的定义、调用、参数传递、模块化设计原则,实现飞机订票系统的功能模块。

5. 文件操作:文件的概念、文件的打开与关闭、文件的读写操作,实现数据的持久化存储。

飞机订票管理系统-C语言课程设计

飞机订票管理系统-C语言课程设计

飞机订票管理系统-C语言课程设计设计报告题目:飞机订票管理系统学院:工商管理学院专业:信息管理与信息系统专业班级:050507姓名:赵伟宏指导教师:张守伟设计日期:2006年12月14日——12月17日题目:飞机订票管理系统一、选题背景:问题提出:在以往的机订票系统过程中~由于订票系统过于复杂~往往给订票工作人员带来了很多的不便~工作人员要知道是否还有多余的空座以及航班都十分困难~依次也给乘客带来了很多的麻烦~飞机订票系统提供的功能过于烦琐~而且有些程序并不提供订票的功能。

为此,这里用C语言编制了几个函数,用于程序中时,可达到让工作人员准确订票的目的.二、设计思路:飞机订票系统是对中国民航订票系统的管理~即对为的方便乘客~对工作人员输入和删除航班信息~乘客浏览和查找航班信息以及订票和退票的系统管理。

本程序是通过简单的C语言的基本函数来管理运行的~来实现飞机订票系统管理的基本功能。

在实现过程中~应用循环来判断运行相应的函数~即可达到方便查找和管理的功能。

三:设计分析:应用技术点及主要解决问题阐述通过飞机订票系统管理函数~来实现对飞机订票的管理~通过调用输入模块~调用打印模块~调用修改模块~调用查找模块~调用删除模块~调用订票模块~调用退票模块~来输出飞机订票系统的程序~从而来是工作人员和乘客方便的打印和查询飞机航班的系统。

技术关键飞机订票系统管理主要运用了调用函数~其中包括输入函数,void input()),输出函数,void print()),保存函数,void save()),读取函数,void read()),查找函数,voidsearch()),删除函数,void shanchu()),订票函数,void dingpiao()),退票函数~void tuipiao(),修改(void xiugai())。

四:程序流程图主函数输入函数修改函数函数函数函数函数输出查找订票删除void input() void print() xiugai() search() dingpiao() shuanch() (( ()shanchu()voidshanchu()退票函数 tuipiao()开始dowhile输出管理的程序(1-7)关于调用函数I输入j的计算值选择j=7 j=5 j=6 j=1 j=2 j=3 j=4dingpiao() input() print() xiugai() search() Shunchu() dingpiao() tuipiao()dingpiao() break break break break break break break五、程序清单:一,二(#include<stdio.h> /*标准输入、输出头文件*/ #include<string.h> /*包含字符串函数处理头文件*/ #include<stdlib.h> /*包含动态存储与释放函数头文件*/#define N 1000struct air /*定义结构体数组*/ {int num;char start[20];char over[20];char time[10];int count;}s[N];int i;int m=0;#define PRINT "%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count /*定义输出格式*/void input(); /*输入航班信息*/void print(); /*输出航班信息*/void save(); /*保存航班信息*/void read(); /*读取航班信息*/void search(); /*查找航班信息*/void shanchu(); /*删除航班信息*/void dingpiao(); /*订票信息*/void tuipiao(); /*退票信息*/void xiugai(); /*修改信息*/void main(){int j;printf(" ?---您好,欢迎进入中国民航管理系统~---?\n");printf("============================================================ ====================\n");do{printf(" -------- ? 1.输入航班信息 ?-------- \n\n"" -------- ? 2.浏览航班信息 ?-------- \n\n"" -------- ? 3.修改航班信息 ?-------- \n\n"" -------- ? 4.查找航班信息 ?-------- \n\n"" -------- ? 5.删除航班信息 ?-------- \n\n"" -------- ? 6.订票信息 ?-------- \n\n"" -------- ? 7.退票信息 ?-------- \n\n"" -------- ? 0.退出 ?-------- \n\n");printf("============================================================ ====================\n");printf("请在0-7中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1: input();/*调用输入模块*/ break;case 2:print();/*调用打印模块*/ break;case 3:xiugai();/*调用修改模块*/ break;case 4:search();/*调用查找模块*/ break;case 5:shanchu(); /*调用删除模块*/ break;case 6:dingpiao();/*调用订票模块*/ break;case 7:tuipiao();/*调用退票模块*/ break;case 0:;break;}}while(j!=0); /*判断结束*/printf("谢谢使用,再见~\n");}/*主函数结束*/void input()/*打印模块程序*/{char f[]="2008china"; /*设置密码*/int y;printf("请输入密码并以回车键结束:\n\n");scanf("%s",f); /*读取密码*/if(strcmp(f,"2008china")==0){printf("请依次输入航班信息(机票数位0结束输入):\n\n""完成输入信息请键入w以回车键结束\n\n"); /*打印提示信息*/printf("--------------------------------------------------------------------------\n");for(i=0;i<N;i++){printf("请输入航班号:\n");scanf("%d",&s[i].num); /*读取航班号*/printf("请输入起始站:\n");scanf("%s",s[i].start);/*读取起始站*/printf("请输入终点站:\n");scanf("%s",s[i].over);/*读取终点站*/printf("请输入时间:\n");scanf("%s",s[i].time);/*读取时间*/printf("请输入机票数(机票数为0结束输入):\n",m);scanf("%d",&s[i].count);/*读取机票数*/m++;printf("第%d个信息已经输完是否继续?按任意键继续,按 0结束",m);scanf("%d",&y);if(y==0){save();/*将结构体信息存盘*/print();/*输出输入的航班信息*/break;}}}elseprintf("输入密码错误!请检查您的密码是否正确!谢谢!再见!\n\n"); }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 air),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('air'),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 name1[20];char name2[20];char ii[10];int n,no;do{printf("请选择查找方式:\n\n");/*打印查询方式菜单*/ printf("1.按航班号查找\n\n""2.按终点站查找\n\n""3.按航线查找\n\n""0.返回\n\n");printf("请在0-3中选择:\n\n""按其他键以回车键结束返回主菜单:\n\n");scanf("%d",&n);/*读取查找方式*/if(n==0)break;switch(n){case 1:printf("请输入航班号:\n");scanf("%d",&no);/*航班号*/break;case 2:printf("请输入终点站名称:\n");scanf("%s",name2);/*读取终点站*/break;case 3:printf("请输入起始站名称:\n");scanf("%s",name1);/*读取起始站*/printf("请输入终点站名称:\n");scanf("%s",name2);/*终点站*/break;}read();/*用读取函数*/for(i=0;i<m;i++){if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)/*终点站起始站判断输出条件*/{printf("\n查找航班信息成功!\n");printf("航班号起始站终点站时间机票数\n");printf(PRINT);/*印信息*/break;}if(s[i].num==no)/*按航班号判断输出条件*/{printf("\n查找航班信息成功!\n");printf("航班号起始站终点站时间机票数\n");printf(PRINT);/*打印信息*/break;}}no=0;/*将航班号赋值为0*/printf("没有您需要的信息或查找完毕:\n\n""是否继续查找?请键入yes或no以回车键结束\n");scanf("%s",ii); }while(strcmp(ii,"yes")==0);/*判断结束*/ } void shanchu()/*删除模块*/{char name1[20];char name2[20];char ii[10];char f[]="2008china";/*设置密码*/int no,n;printf("请输入密码并以回车键结束:\n\n");scanf("%s",f);/*读取密码*/if(strcmp(f,"2008china")==0) /*判断密码是否正确*/{do{printf("请选择删除以方式回车键结束:\n\n");/*打印删除方式菜单*/ printf("*1.按航班号删除\n\n""*2.按航线删除\n\n""*0.返回\n\n");printf("请在0-2中选择以回车键结束:\n");scanf("%d",&n);/*读取删除方式*/if(n==0)break; /*跳出循环*/switch(n){case 1:printf("请输入航班号:\n");scanf("%d",&no);/*读取航班号*/read();/*调用读取函数*/break;/*跳出循环*/case 2:printf("请输入起始站名称:\n");scanf("%s",name1);/*读取起始站*/printf("请输入终点站名称:\n");scanf("%s",name2);/*读取终点站*/read();/*调用读取函数*/break;/*跳出循环*/}for(i=0;i<m;i++){if(s[i].num==no||strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2 )==0)/*判断输入信息是否存在*/{s[i]=s[m-1];m--;}}printf("查找完毕或没有这个信息\n\n");printf("是否继续删除\n");printf("请键入yes或no以回车键结束\n");scanf("%s",ii); /*读取是否继续信息*/save(); /*调用读取函数*/if(!strcmp(ii,"yes")) /*判断是否继续删除*/printf("请按任意键以回车键结束返回上层菜单:\n");break;}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0); /*判断结束*/}elseprintf("对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!\n\n");}void dingpiao()/*订票模块*/{int n;char a[10];do{search();/*调用查询模块*/printf("请输入您要订的机票数以回车键结束:\n");scanf("%d",&n);/*读取所订机票数*/if(n<0){printf("请输入有效的机票数~\n");/*判断机票数是否出错*/break;}if(s[i].count!=0&&s[i].count>=n)/*判断是否出错*/{s[i].count=s[i].count-n;save();/*调用保存函数*/printf("订票成功!\n\n");break;}if(s[i].count<n)/*判断是否出错*/{printf("请输入有效的机票数:\n");break;}printf("是否继续, 请输入yes或no以回车键结束:\n");/*判断是否继续订票*/scanf("%s",a);}while(!strcmp(a,"yes"));/*判断结束*/}void tuipiao()/*退票模块*/{int n;char a[10];do{search();/*调用查询模块*/printf("请输入您要退的机票数目:\n");scanf("%d",&n);/*输入所退票数*/if(n<0) /*判断票数是否有效*/printf("请输入有效的机票数~\n");s[i].count=s[i].count+n;save(); /*调用保存模块*/printf("退票成功!\n\n");printf("是否继续, 请键入yes或no以回车键结束:\n\n");/*判断是否继续退票*/scanf("%s",a);}while(!strcmp(a,"yes"));/*判断并跳出循环*/getchar();}void xiugai() /*修改模块*/{struct xiu /*定义结构体* /{int no;char name1[20];char name2[20];char time[20];int count;}x[1];char j[10];char f[]="2008china";/*设置密码*/int n;printf("请输入密码并以回车键结束:\n\n"); scanf("%s",f);/*读取密码*/if(strcmp(f,"2008china")==0)/*判断是否出错*/ {read();/*调用读取模块*/do{printf( "请选择修改方式:\n\n""*1,按航班号修改:\n\n""*2,按航线修改: \n\n");printf("请在1---2中修改以回车键结束:\n\n"); scanf("%d",&n);/ *读取修改方式*/switch(n){case 1:printf("请输入航班号:\n");scanf("%d",&x[0].no);/*读取航班号*/break;case 2:printf("请输入起始站:\n");scanf("%s",x[0].name1);/*读取起始站*/printf("请输入终点站:\n");scanf("%s",x[0].name2);/*读取终点站* /break;}for(i=0;i<m;i++){if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0) /*判断输出条件*/{printf("航班号起始站终点站时间机票数\n");printf(PRINT);break;}if(s[i].num==x[0].no)/*判断输出条件*/{printf("航班号起始站终点站时间机票数\n");printf(PRINT);break;}}x[0].no=0; /*将结构体中的号为零*/printf("请输入新航班号、起始站、终点站、时间(星期几)、机票数:\n");scanf("%d%s%s%s%d",&x[0].no,x[0].name1,x[0].name2,x[0].time,&x[0].co unt);/*定义输入格式*/s[i].num=x[0].no;/*替换航班号*/strcpy(s[i].start,x[0].name1);/*替换其始站*/strcpy(s[i].over,x[0].name2);/*替换终点站*/strcpy(s[i].time,x[0].time);/*替换时间*/s[i].count=x[0].count;/*替换机票数*/save();/*调用保存模块*/printf("是否继续,请键入yes或no以回车键结束:\n\n");scanf("%s",j);}while(strcmp(j,"yes")==0); /*判断结束*/}elseprintf("对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!\n\n"); }六、设计自评:1~设计优点:该程序的最大特点是设计思路简单~语言简练、通俗易懂。

C语言课程设计报告飞机订票系统

C语言课程设计报告飞机订票系统

C语言课程设计题目:飞机订票系统专业:。

学号:。

:。

任课教师:。

C语言课程设计报告一、课程设计报告正文(1)课程设计题目的原文;假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。

试设计一民航订票系统,使之能提供下列服务:航班信息录入功能(文件保存)完成航班信息浏览功能;查询航线(至少一种查询方式)。

(2)题目的分析(需求分析);任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中)浏览:航班信息浏览功能需要提供显示操作;查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。

要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。

可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。

(3)整体设计与模块划分;根据需求分析,该程序可分为以下四大模块:(4)代码设计;包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析等等;二、航班基本信息输入模块航班信息录入函数:航班信息浏览函数:[流程图]显示信息查询模块:分析:基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。

在查询小模块中采用了直接查找的方法。

本模块可以通过多种查询方式进行完善。

这是本程序没有做的地方。

[流程图](一)核心源程序清单和执行结果:a)源程序清单:#include<stdio.h>#include<stdlib.h>#include<io.h>#include<math.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<process.h> //包含access函数的头文件#define N 1000 //定义最多的航班数#define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式struct air //定义结构体数组{int num; //定义航班号char start[20]; //航班起始站char over[20]; //终点站char time[10]; //飞行时间int count; //机票数量}s[N];int i,m=0; //定义全局变量char ii[10];void add(); //函数声明增加航班信息函数void print(); //显示航班信息void search(); //查找航班信息void read(); //读取文件void save(); //保存文件void output(); //输出格式void chushihua(); //系统初始化void build(); //建立数据文件void main() //主函数{int j;chushihua(); //系统初始化判断是否存在原始数据文件printf(" O(^_^)O欢迎使用飞机订票系统O(^_^)O \n"); //打印出系统主界面do{printf("===================================================================== =========== ");printf(" 1.增加航班信息\n"" 2.浏览航班信息\n"" 3.查找航班信息(按航班号)\t\t\n"" 0.退出\n");printf("================================================================================ ");printf("请在0-3中选择以回车键结束:");scanf("%d",&j);switch(j){case 1: add(); //调用增加航班函数break;case 2:print(); //调用显示模块break;case 3:search(); //调用查找模块break;case 0: //退出系统save();printf("使用,再见!( ^_^ )/~~ \n ");break;}}while(j!=0); //判断是否调用其他函数}void chushihua() //定义系统初始化函数{if(access("hangban.dat",0)){build();}elseread();}void build() //定义建立数据文件函数{FILE *fp; //定义文件指针if((fp=fopen("hangban.dat","wb"))==NULL) //打开文件并判定是否出错{printf("创建文件失败! "); //打印出错提示getchar();return;}printf("请依次输入航班信息(以回车键结束):\n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");for(i=0;i<N;i++){printf("请输入航班号: ");scanf("%d",&s[i].num); //输入航班号printf("请输入起始站: ");scanf("%s",s[i].start); //输入起始站printf("请输入终点站: ");scanf("%s",s[i].over); //输入终点站printf("请输入时间(星期几): ");scanf("%s",s[i].time); //输入时间printf("请输入机票数: ");scanf("%d",&s[i].count); //输入机票数fwrite(&s[i],sizeof(struct air),1,fp);m++;printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");scanf("%s",ii);if(strcmp(ii,"y")!=0) //判断是否继续添加航班信息{fclose(fp); //关闭文件return;}}}void read() //定义读取文件函数{FILE *fp;if((fp=fopen("hangban.dat","r"))==NULL){printf("创建文件失败! ");getchar();return;}i=0;while(!feof(fp)){fread(&s[i],sizeof(struct air),1,fp); //逐块读取数据i++;m++; //计算存在航班数}m--;fclose(fp);}void save() //定义保存函数{FILE *fp;if((fp=fopen("hangban.dat","wb"))==NULL){printf("创建文件失败! ");getchar();return;}for(i=0;i<m;i++) //逐块保存数据fwrite(&s[i],sizeof(struct air),1,fp);fclose(fp);}void add() //定义增加航班信息函数{do{printf("请依次输入您要增加的航班信息(以回车键结束): \n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");printf("请输入航班号: ");scanf("%d",&s[m].num); //读取航班号printf("请输入起始站: ");scanf("%s",s[m].start); //读取起始站printf("请输入终点站: ");scanf("%s",s[m].over); //读取终点站printf("请输入时间: ");scanf("%s",s[m].time); //读取时间printf("请输入机票数: ");scanf("%d",&s[m].count); //读取机票数m++;printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");scanf("%s",ii);}while(!strcmp(ii,"y")); //判断是否继续添加}void output() //定义输出格式函数{printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n"); //信息标题for(i=0;i<m;i++)printf(PRINT);//打印出信息}void print() //定义显示航班信息函数{printf("\n目前我们有如下航班:\n");output(); //调用输出格式函数printf("\n请按回车键返回上层菜单");getchar();getchar();}void search() //定义查询函数{int n;do{printf("\n请输入航班号:");scanf("%d",&n); //输入查询的航班号for(i=0;i<m;i++){if(s[i].num==n) //按航班号判定输出条件{printf("\n您所查找的航班信息为:\n ");printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n\n");printf(PRINT); //显示信息printf("\n查询完毕,按回车键继续");getchar();getchar();return;}}printf("\n对不起,没有您需要的信息!\n ");printf("是否重新查找?请键入y或n以回车键结束");scanf("%s",ii);}while(!strcmp(ii,"y"));//判定是否重新查找}1)第一次运行程序(输入初始数据)界面提示输入原始数据:请输入航班号→请输入起始站→请输入终点站→请输入飞行时间→请输入机票数。

C课程教学设计报告飞机订票管理方案计划系统

C课程教学设计报告飞机订票管理方案计划系统

青岛理工大学C++面向对象课程设计报告院(系):计算机工程学院专业:软件工程学生姓名:班级软件131班学号:题目:飞机订票管理系统设计____起迄日期:_2015.6.29~2015.7.10设计地点:计算机学院机房指导教师:翟正利丁凡完成日期: 2015 年7月10 日C++面向对象课程设计任务书题目24“飞机订票管理系统设计”1、问题描述:航空客运订票的业务包括:查询航班、客票预订和办理退票等。

试设计一个航空客运订票系统,已使上述业务可以借助计算机完成。

2.功能要求:(1)每条航线所涉及的信息有:终点站名、航班号、飞机号、星期几飞行飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级)以及等候补替补的客户名单(包括姓名、所需票量);(2)作为示意系统,全部数据可以只放在内存中;(3)系统能实现的操作和功能如下:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);查询航线:根据旅客提出的终点站名输入下列信息:航班号、飞机号、星期几起飞,最近航班的日期和余票量。

承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或者余票数少于订票额,则需重新寻味客户要求,若需要,可登记排队候补;承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队等候补,首先询问排在第一的客户,若所有退票额能满足他的要求,则为他办理订票手续否则依次询问其他排队候补的客户。

修改航班信息:当航班信息改变可以修改航班数据文件。

(选作)为客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。

3、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

青岛理工大学C++ 面向对象课程设计报告院(系):计算机工程学院专业:软件工程学生姓名:班级软件 131 班学号:题目:飞机订票管理系统设计____起迄日期:_ 2015.6.29 ~ 2015.7.10设计地点:计算机学院机房指导教师:翟正利丁凡完成日期 : 2015年7月10日C++面向对象课程设计任务书题目 24“飞机订票管理系统设计”1、问题描述:航空客运订票的业务包括:查询航班、客票预订和办理退票等。

试设计一个航空客运订票系统,已使上述业务可以借助计算机完成。

2.功能要求:( 1)每条航线所涉及的信息有:终点站名、航班号、飞机号、星期几飞行飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级)以及等候补替补的客户名单(包括姓名、所需票量);( 2)作为示意系统,全部数据可以只放在内存中;( 3)系统能实现的操作和功能如下:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);查询航线:根据旅客提出的终点站名输入下列信息:航班号、飞机号、星期几起飞,最近航班的日期和余票量。

承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或者余票数少于订票额,则需重新寻味客户要求,若需要,可登记排队候补;承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队等候补,首先询问排在第一的客户,若所有退票额能满足他的要求,则为他办理订票手续否则依次询问其他排队候补的客户。

修改航班信息:当航班信息改变可以修改航班数据文件。

(选作)为客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。

3、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。

目录一、需求分析 (2)二、内容设计 (2)2.1 、根据所选题目给出模块图 (2)2.2 、画出主要程序的流程图: (3)2.2 、编写程序关键代码: (8)三、调试分析 (13)四、用户手册 (14)五、设计总结 (20)六、参考文献 ..................................................................................................................................... 错误!未定义书签。

七、附录.................................................................................................................................................. 错误!未定义书签。

一、需求分析1.选做此课题或项的目的1.通过实验实现对学生信息系统的管理操作;2.进一步掌握和利用C++进行程设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型实用系统的基本方法;5.学会利用流程图或N-S 图表示算法 ;6.掌握书写程设计开发文档的能力2.程序所实现的功能1.输入航班信息并保存到磁盘;2.浏览航班信息;3.修改航班信息并保存到磁盘4.查找航班5.订票6.退票二、内容设计1.根据所选题目给出模块图如图 1.1 所示飞机订票管理系统录入查询订票退票修改查询航班航班航班全部信息信息信息信息图 1.1模块图2.画出主程序及其主要模块的流程图(1).如图 2.1 所示为查询函数的流程图:开始输入航班号否查询成功?是输出航班信息返回主菜单?否是主菜单结束图 2.1 查询函数的流程图(2).图 2.2 所示为订票函数流程图开始输入要订票的姓名是姓名与初始姓名相同?否输入航班号还有余票,订票?否是存储客户信息到文件修改航班信息(票额)输出订票信息返回主菜单?否是主菜单结束图2.2 订票函数流程图(3).图 2.3 所示为退票函数流程图开始输入姓名和航班号信息与文件中信息相否同?是是否退订?否是从文件中删除该用户订票信息退票成功!返回主菜单?是否主菜单结束图 2.3 退票函数流程图(4).如图 2.4 所示为查询全部信息函数开始输出乘客信息输出航班信息返回主菜单?否是主菜单结束图 2.4查询全部信息函数(5.)如图 2.5 所示为主程序流程图开始录入航班信息进入主菜单飞机订票管理系统查询航班订票管理退票管理查询所有信息是返回主菜单?否退出系统结束图2.5 查询全部信息函数3.编写程序关键代码(1).录入航班信息:void chushi(){int i;ofstream outfile("airline.dat");ofstream file("customer.dat");for (i=0;i<3;i++){outfile<<fl[i].fligh <<" "<<fl[i].num<<" "<<fl[i].place<<" "<<fl[i].data<<" "<<fl[i].dticket<<" "<<fl[i].riqi<<" "<<fl[i].yticket<<endl;file<<cu[i].name<<" "<<cu[i].num<<" "<<cu[i].seat<<" "<<cnum<<endl;}outfile.close();file.close();cout<<" 初始化已完毕!"<<endl<<endl;caidan1();}}(2).查询航班信息:void chaxun1(){char place[10];int temp,i,a;cout<<" 输入终点站名:";cin>>place;for(i=0;i<100;i++)if(strcmp(fl[i].place,place)==0){temp=i;a=0;}cout<<" 航班信息"<<endl<<" 航班号:"<<fl[temp].fligh<<" 飞机号:"<<fl[temp].num<<" 起飞日期:"<<fl[temp].data<<" 最近航班日期"<<fl[temp].riqi<<" 余票量"<<fl[temp].yticket<<endl;if(a!=0)cout<<" 查询失败! "<<endl;cout<<" 返回主菜单? 1.是 2.否 ";cin>>temp;if(temp==1) caidan2();}(3).订票:void dingpiao()//订票{char name[10];int num,i,t,j,k,temp;int x;cout<<" 请输入你的姓名和想订的航班号:"<<endl<<endl;cout<<" 姓名: ";cin>>name;cout<<endl;cout<<" 航班号 :";cin>>num;for(i=0;i<300;i++)if(strcmp(name,cu[i].name)==0){cout<<" 您已经定过航班 ,要返回主菜单吗?( 1.返回 /2.退出) ";cin>>t;switch(t){case 1:caidan1();break;default :break;}}for(i=0;i<300;i++)if (name!=cu[i].name)for(j=0;j<10;j++)if(fl[j].fligh==num)temp=j;if(fl[temp].yticket<=100){cout<<" 此航班还有余票,要订票吗?(1.是 /2.否 )";cin>>x;switch(x){case 1:{for (k=0;k<3;k++)if (fl[k].fligh==num){fl[k].dticket=fl[k].dticket+1;fl[k].yticket=fl[k].yticket-1;cnum=cnum+1;strcpy(cu[cnum].name,name);cu[cnum].num=num;cu[cnum].seat=fl[k].dticket;ofstream outfile1("airline.dat");for(j=0;j<3;j++)outfile1<<fl[j].fligh<<" "<<fl[j].num<<" "<<fl[j].place<<" "<<fl[j].data<<""<<fl[j].dticket<<" "<<fl[j].riqi<<" "<<fl[j].yticket<<endl;ofstream outfile2("customer.dat",ios::app);outfile2<<cu[cnum].name<<""<<cu[cnum].num<<""<<cu[cnum].seat<<" "<<cnum<<endl;// 打开文件并存储数据cout<<" 订票成功! "<<endl<<endl<<"客户信息:"<<cu[cnum].name<<'\t'<<"航班号:"<<cu[cnum].num<<'\t'<<"座位号:"<<cu[cnum].seat<<endl;outfile1.close();outfile2.close();cout<<" 1. 返回主菜单 2.退出:";cin>>temp;if(temp==1)caidan1();else;}};break;default :caidan1();break;}}else cout<<"此航班票已经售完,请订其他航班次的票~";}(4).退票:void tuipiao()//退票{char name[10];int i,temp,t,num,a,j;struct tmp;cout<<" 请输入您的姓名和航班号:"<<endl;cout<<" 姓名: ";cin>>name;cout<<" 航班号: ";cin>>num;cout<<endl;for(i=0;i<300;i++){if (strcmp(cu[i].name,name)==0){a=0;cout<<" 确定退订吗?( 1.是 2.否): ";cin>>temp;if(temp==1){ofstream outfile1("airline.dat");ofstream outfile2("customer.dat");for(j=0;j<=i;j++)outfile2<<cu[j].name<<" "<<cu[j].num<<" "<<cu[j].seat<<" "<<j<<endl;for(t=0;t<3;t++){if(fl[t].fligh==num) {fl[t].dticket=fl[t].dticket-1;fl[t].yticket=fl[t].yticket+1;}}for(t=0;t<3;t++)outfile1<<fl[t].fligh<<" "<<fl[t].num<<" "<<fl[t].place<<" "<<fl[t].data<<""<<fl[t].dticket<<" "<<fl[t].riqi<<" "<<fl[t].yticket<<endl;}}elsea!=0;}if (a!=0)cout<<" 没有你的信息,请查证后再操作!";cout<<" 返回主菜单? 1.是 2.否: ";cin>>temp;if(temp==1)caidan1();}(5).查询全部信息:void chaxunquanbu(){int i,temp;cout<<" 乘客信息: "<<endl<<endl;for(i=0;i<300;i++){if (cnum==i) temp=i;}for(i=0;i<temp;i++)cout<<"姓名:"<<cu[i].name<<'\t'<<"航班号:"<<cu[i].num<<'\t'<<"座位号:"<<cu[i].seat<<'\t'<<" 编号: "<<i+1<<endl;cout<<endl<<" 航班信息: "<<endl<<endl;for(i=0;i<3;i++)cout<<"航班号:"<<fl[i].fligh<<'\t'<<"飞机号:"<<fl[i].num<<'\t'<<"目的地:"<<fl[i].place<<'\t'<<" 起飞日期 "<<fl[i].data<<'\t'<<"已订票数:"<<fl[i].dticket<<'\t'<<"最近航班日期 "<<fl[i].riqi<<'\t'<<"剩余票数:"<<fl[i].yticket<<endl;cout<<" 返回主菜单? 1.是 2.否 ";cin>>temp;if(temp==1)caidan1();}(6).主菜单函数:void caidan1(){int i;cout<<"*************航空订票系统v2012*************"<<endl;cout<<"******"<<endl;cout<<"*** 1.订票业务 2.退票业务***"<<endl;cout<<"*** 3.查询客户信息 4.查询全部信息***"<<endl;cout<<"*** 5.查询飞机票 6.退出系统***"<<endl;cout<<"******"<<endl;cout<<"*** 如果是第一次使用本系统,请载入初始信息***"<<endl;cout<<"*********************************************************"<<endl;ifstream infile1("airline.dat");ifstream infile2("customer.dat");for(i=0;i<3;i++){infile1>>fl[i].fligh>>fl[i].num>>fl[i].place>>fl[i].data>>fl[i].dticket>>fl[i].riqi>>fl[i].yticket;}for(i=0;i<300;i++){infile2>>cu[i].name>>cu[i].num>>cu[i].seat>>cnum;}infile1.close();infile2.close();//读取数据cout<<" 请输入业务代码:";list();}(7).选择列表函数:void list(){int a;cin>>a;cout<<endl;switch(a){case 1:dingpiao();break;case 2:tuipiao();break;case 3:chaxun();break;case 4:chaxunquanbu();break;case 5:chaxun1();break;case 6:;break;default:{cout<<" 输入错误,请重新输入正确的代码:";list();}// 输入代码}}(8).查询客户信息函数:void chaxun(){char name[10];int temp,i,a;cout<<" 请输入你的姓名:";cin>>name;for(i=0;i<300;i++)if (strcmp(cu[i].name,name)==0){temp=i;a=0;}cout<<"***** 乘客信息 *****"<<endl<<"姓名:"<<cu[temp].name<<'\t'<<" 航班号: "<<cu[temp].num<<'\t'<<"座位号:"<<cu[temp].seat<<endl;if (a!=0) cout<<" 没有你的信息,请查证后再操作!"<<endl;cout<<" 返回主菜单? 1.是 2.否 ";cin>>temp;if(temp==1)caidan1();}三、调试分析1.实际完成的情况说明(完成的功能,支持的数据类型等)。

相关文档
最新文档