C++课程设计报告飞机订票管理系统
- 格式:docx
- 大小:489.34 KB
- 文档页数:31
飞机订票系统c语言课程设计一、课程目标知识目标:1. 学生能理解飞机订票系统的基本功能需求,掌握C语言实现此类系统的基本知识结构。
2. 学生能掌握结构体、数组、函数等C语言基础语法在飞机订票系统中的应用。
3. 学生了解并掌握文件操作在飞机订票系统中的重要性,并能实现数据存储与读取。
技能目标:1. 学生具备运用C语言设计并实现一个简单的飞机订票系统的能力。
2. 学生能通过分析问题,设计合理的程序结构,编写出清晰、高效的代码。
3. 学生能够利用所学知识进行程序调试和优化,解决实际问题。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发探究精神,形成积极的学习态度。
2. 学生在课程实践中体会团队合作的重要性,培养沟通与协作能力。
3. 学生通过学习,认识到计算机编程在现实生活中的应用价值,增强社会责任感。
课程性质:本课程为高年级C语言程序设计课程的实践应用环节,旨在巩固学生的基础知识,提高实际编程能力。
学生特点:学生已经具备一定的C语言基础,具有较强的逻辑思维能力和问题解决能力。
教学要求:结合学生特点和课程性质,课程目标应具体、可衡量,注重培养学生的实践能力和团队协作精神。
通过分解课程目标为具体的学习成果,使学生在实践中掌握知识,提高技能,培养情感态度价值观。
后续教学设计和评估将围绕这些具体目标进行。
二、教学内容1. 系统需求分析:介绍飞机订票系统的基本功能,如用户登录、航班查询、座位选择、订票、退票等。
- 教材章节:第五章“结构体与链表”的应用,第十章“文件操作”。
2. C语言基础知识回顾:结构体、数组、函数、指针、文件操作等。
- 教材章节:第一至第四章基础语法,第五章结构体与链表,第六章数组,第七章函数,第八章指针,第十章文件操作。
3. 程序设计:根据需求分析,设计系统框架,编写代码实现各功能模块。
- 教材章节:第三章“程序控制结构”,第四章“函数与程序结构”,第五章“结构体与链表”,第七章“函数”。
c课程设计飞机订票系统一、课程目标知识目标:1. 学生能理解飞机订票系统的基本原理,掌握其功能模块和使用方法。
2. 学生能运用所学编程语言,设计并实现一个简单的飞机订票系统。
3. 学生了解数据库的基本操作,能运用数据库管理飞机票务信息。
技能目标:1. 学生掌握编程语言的基本语法,能运用条件语句、循环语句等编写程序。
2. 学生具备一定的系统设计能力,能根据需求分析,设计出合理的系统模块。
3. 学生能够运用数据库技术,实现数据的增、删、改、查等操作。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发学习主动性和创新能力。
2. 学生树立团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。
3. 学生通过课程学习,认识到信息技术的应用价值,增强对信息社会的责任感。
课程性质分析:本课程为信息技术学科,旨在培养学生掌握编程语言和数据库技术,通过设计飞机订票系统,提高学生的实际操作能力和解决实际问题的能力。
学生特点分析:本课程针对初中年级学生,他们对计算机有一定的兴趣,具备一定的逻辑思维能力,但编程基础和实际操作能力有限。
教学要求:1. 教学内容与课本紧密结合,注重理论与实践相结合,提高学生的实际操作能力。
2. 教学过程中,关注学生的个体差异,给予个性化指导,确保每个学生都能掌握课程内容。
3. 通过小组合作、讨论等形式,培养学生的团队协作能力和沟通能力。
二、教学内容1. 理论知识:- 了解飞机订票系统的基本概念和功能。
- 学习编程语言的基本语法,如变量、数据类型、运算符、条件语句和循环语句等。
- 掌握数据库的基本概念,如表、字段、记录等。
2. 实践操作:- 设计飞机订票系统的功能模块,如用户注册、登录、航班查询、购票、退票等。
- 编写程序代码,实现飞机订票系统的各个功能。
- 学习数据库的创建和操作,管理飞机票务信息。
3. 教学大纲:- 第一周:飞机订票系统概述,学习编程语言基本语法。
- 第二周:设计系统功能模块,学习条件语句和循环语句。
C++课程设计报告飞机订票管理系统一、设计背景和目的随着航空业的不断发展,飞机订票系统逐渐成为人们旅游和出行的必须工具。
为了提高飞机订票系统的效率和便捷性,开发一款好用的飞机订票管理系统显得尤为重要。
本次课程设计即以C++为编程语言,设计一款简单实用的飞机订票管理系统。
二、系统功能1、用户注册/登录用户初次使用系统需要先进行注册,填写相关信息,包括用户名、密码等,并进行确认。
之后系统将给用户分配一个专用ID。
已经注册的用户可以通过输入用户名和密码进行登录。
2、航班查询用户登录系统后,可以通过系统查询到航班信息,并可以进行筛选和排序,便于用户选择最优航班。
3、机票订购用户选择航班后,可以进行机票订购操作。
订票后,系统将保留座位,并且将相应信息存入系统数据库。
机票订购成功后,系统将显示用户订票的详细信息。
4、支付系统用户在订票后需要进行支付操作,支付成功后机票订购成功。
5、订单管理系统管理员可以对用户订票信息进行管理,并且可以对订单信息进行统计和分析,改善系统运营效率。
三、技术框架和编程实现本系统采用C++语言进行编写,使用了面向对象的编程思想,包括以下类:1、User类该类实现了用户的注册和登录功能。
其中包含属性有用户名、密码等,包含方法有注册、登录等。
2、Flight类该类实现了航班信息的查询和排序功能。
其中包含属性有航班号、起飞时间、到达时间等,包含方法有查询、排序等。
3、Ticket类该类实现了机票订购和支付功能。
其中包含属性有座位号、价格等,包含方法有订购、支付等。
4、Order类该类实现了订单管理和统计功能。
其中包含属性有订单号、用户ID、航班号和票价等,包含方法有查询、删除、统计等。
以上四个类的成员变量和成员函数实现都需要在不同的源文件里面实现,最后通过主函数进行调用和启动。
四、系统运行和测试本系统可以通过Visual Studio等C++编程环境进行调试和运行。
在本地测试中,我们可以输入不同的用户名和密码,可以查询不同的航班,并进行筛选和排序,可以订购机票并支付,也可以通过系统管理员身份对用户订单进行管理和统计。
c语言航空订票系统课程设计一、课程目标知识目标:1. 让学生掌握C语言中结构体、数组、函数等基本知识点的综合应用。
2. 让学生了解并掌握航空订票系统的基本功能模块及其实现方法。
3. 帮助学生理解文件操作在C语言中的应用,学会读写航班信息。
技能目标:1. 培养学生运用C语言进行问题分析、程序设计和调试的能力。
2. 培养学生独立完成一个小型项目的能力,包括需求分析、功能设计、编码实现和测试。
3. 提高学生团队协作能力,学会在项目中分工合作、共同解决问题。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,增强自信心。
2. 培养学生良好的编程习惯,注重代码规范,提高代码质量。
3. 引导学生关注实际问题,培养解决实际问题的能力,增强社会责任感。
本课程针对高中年级学生,课程性质为实践性较强的项目课程。
结合学生特点,课程目标注重培养学生的动手能力和团队协作能力。
在教学过程中,要求教师引导学生掌握C语言相关知识,关注实际问题的解决,以实现课程目标。
通过本课程的学习,学生将能够独立完成一个航空订票系统,达到预期的学习成果。
二、教学内容1. C语言基础回顾:结构体、数组、函数、指针、文件操作等。
2. 航空订票系统需求分析:介绍系统功能模块,包括航班查询、预订、取消预订、显示航班信息等。
3. 功能模块设计:- 航班信息结构体设计- 航班信息文件读写操作- 航班查询功能实现- 航班预订与取消预订功能实现- 航班信息显示功能实现4. 编程规范与调试技巧:代码规范、调试方法、性能优化等。
5. 团队协作与项目管理:任务分配、进度控制、代码合并与冲突解决等。
教学内容依据教材相关章节进行组织,确保科学性和系统性。
教学大纲安排如下:第一周: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. 让学生理解飞机订票系统的基本原理和功能模块,掌握相关概念和术语;2. 使学生掌握数据库查询、数据输入输出、界面设计等基本编程技能;3. 帮助学生了解我国民航业的发展现状和飞机订票系统的实际应用。
技能目标:1. 培养学生运用所学知识设计和开发一个简单的飞机订票系统;2. 培养学生分析和解决实际问题的能力,提高团队协作和沟通能力;3. 培养学生运用计算机技术进行信息处理和创新能力。
情感态度价值观目标:1. 培养学生对计算机科学和民航业的兴趣,激发学习热情;2. 培养学生关注社会热点问题,增强社会责任感和使命感;3. 培养学生尊重知识产权,遵循法律法规,树立正确的价值观。
课程性质:本课程为实践性较强的学科课程,结合编程、数据库和民航知识,旨在培养学生的实际操作能力和解决问题的能力。
学生特点:学生具备一定的计算机编程基础和民航知识背景,对新鲜事物充满好奇,具备较强的动手能力和团队协作精神。
教学要求:教师应注重理论与实践相结合,充分调动学生的积极性,引导学生主动探究,注重培养学生的创新能力和实践能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保课程目标的实现。
通过课程学习,使学生能够达到预定的学习成果,为后续相关课程的学习打下坚实基础。
二、教学内容1. 理论知识:- 计算机网络基础:介绍网络通信原理,TCP/IP协议,网络编程基础;- 数据库原理:讲解数据库的基本概念,关系型数据库的设计与应用;- 民航知识:介绍民航业的发展,飞机票务系统的业务流程及功能需求。
2. 实践操作:- 界面设计:学习使用相关工具进行界面设计,制作飞机订票系统的用户界面;- 数据库操作:掌握SQL语句,实现对数据库的增删改查操作;- 编程实现:运用所学编程语言,实现飞机订票系统的核心功能。
3. 教学大纲:- 第一周:计算机网络基础,数据库原理;- 第二周:民航知识,界面设计;- 第三周:数据库操作,编程实现;- 第四周:综合实践,项目调试与优化。
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语言飞机订票系统课程设计一、课程目标知识目标: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语⾔课程设计--飞机订票系统#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语言课程设计一、课程目标知识目标:1. 理解C语言在开发飞机订票系统中的应用,掌握相关数据结构(如结构体、数组、链表)的使用;2. 学会使用C语言进行文件操作,实现数据的存储和读取;3. 掌握C语言中的模块化编程思想,将系统功能划分为多个函数并实现协同工作。
技能目标:1. 能够运用所学知识,独立设计和实现一个飞机订票系统,包括用户注册、查询航班、预订机票、取消预订等功能;2. 提高问题分析能力,针对实际需求,运用C语言编写合适的算法和程序;3. 培养良好的编程习惯,编写规范、易读、高效的代码。
情感态度价值观目标:1. 培养学生面对复杂问题时,保持积极、主动、合作的态度,勇于克服困难;2. 增强学生的团队协作意识,学会在团队中发挥个人优势,共同完成任务;3. 通过课程学习,让学生认识到编程在实际生活中的应用价值,激发对计算机科学的兴趣。
本课程针对高年级学生,课程性质为实践性较强的课程设计。
在教学过程中,要求学生具备一定的C语言基础,能独立完成程序编写和调试。
课程目标的设定旨在让学生在掌握C语言知识的基础上,进一步提高编程实践能力,培养实际项目开发中的团队协作和问题解决能力。
通过课程学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。
二、教学内容1. C语言基础知识复习:数据类型、运算符、控制语句、函数等基本概念;教材章节:第一章至第四章。
2. 数据结构:结构体、数组、链表等;教材章节:第六章、第七章。
3. 文件操作:文件打开、读取、写入、关闭等;教材章节:第十章。
4. 模块化编程:函数定义、调用、参数传递、作用域等;教材章节:第五章、第八章。
5. 飞机订票系统功能设计:- 用户注册、登录功能;- 航班查询、预订、取消预订功能;- 数据存储与读取功能;教材章节:综合应用实例。
6. 编程规范与调试技巧:代码风格、调试方法、性能优化等;教材章节:第十二章。
教学内容安排与进度:第一周: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)完成系统总结报告。
目录一、需求分析 (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.实际完成的情况说明(完成的功能,支持的数据类型等)。