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

飞机订票系统c语言课程设计一、课程目标知识目标:1. 学生能理解飞机订票系统的基本功能需求,掌握C语言实现此类系统的基本知识结构。
2. 学生能掌握结构体、数组、函数等C语言基础语法在飞机订票系统中的应用。
3. 学生了解并掌握文件操作在飞机订票系统中的重要性,并能实现数据存储与读取。
技能目标:1. 学生具备运用C语言设计并实现一个简单的飞机订票系统的能力。
2. 学生能通过分析问题,设计合理的程序结构,编写出清晰、高效的代码。
3. 学生能够利用所学知识进行程序调试和优化,解决实际问题。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发探究精神,形成积极的学习态度。
2. 学生在课程实践中体会团队合作的重要性,培养沟通与协作能力。
3. 学生通过学习,认识到计算机编程在现实生活中的应用价值,增强社会责任感。
课程性质:本课程为高年级C语言程序设计课程的实践应用环节,旨在巩固学生的基础知识,提高实际编程能力。
学生特点:学生已经具备一定的C语言基础,具有较强的逻辑思维能力和问题解决能力。
教学要求:结合学生特点和课程性质,课程目标应具体、可衡量,注重培养学生的实践能力和团队协作精神。
通过分解课程目标为具体的学习成果,使学生在实践中掌握知识,提高技能,培养情感态度价值观。
后续教学设计和评估将围绕这些具体目标进行。
二、教学内容1. 系统需求分析:介绍飞机订票系统的基本功能,如用户登录、航班查询、座位选择、订票、退票等。
- 教材章节:第五章“结构体与链表”的应用,第十章“文件操作”。
2. C语言基础知识回顾:结构体、数组、函数、指针、文件操作等。
- 教材章节:第一至第四章基础语法,第五章结构体与链表,第六章数组,第七章函数,第八章指针,第十章文件操作。
3. 程序设计:根据需求分析,设计系统框架,编写代码实现各功能模块。
- 教材章节:第三章“程序控制结构”,第四章“函数与程序结构”,第五章“结构体与链表”,第七章“函数”。
c课程设计飞机订票系统

c课程设计飞机订票系统一、课程目标知识目标:1. 学生能理解飞机订票系统的基本原理,掌握其功能模块和使用方法。
2. 学生能运用所学编程语言,设计并实现一个简单的飞机订票系统。
3. 学生了解数据库的基本操作,能运用数据库管理飞机票务信息。
技能目标:1. 学生掌握编程语言的基本语法,能运用条件语句、循环语句等编写程序。
2. 学生具备一定的系统设计能力,能根据需求分析,设计出合理的系统模块。
3. 学生能够运用数据库技术,实现数据的增、删、改、查等操作。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发学习主动性和创新能力。
2. 学生树立团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。
3. 学生通过课程学习,认识到信息技术的应用价值,增强对信息社会的责任感。
课程性质分析:本课程为信息技术学科,旨在培养学生掌握编程语言和数据库技术,通过设计飞机订票系统,提高学生的实际操作能力和解决实际问题的能力。
学生特点分析:本课程针对初中年级学生,他们对计算机有一定的兴趣,具备一定的逻辑思维能力,但编程基础和实际操作能力有限。
教学要求:1. 教学内容与课本紧密结合,注重理论与实践相结合,提高学生的实际操作能力。
2. 教学过程中,关注学生的个体差异,给予个性化指导,确保每个学生都能掌握课程内容。
3. 通过小组合作、讨论等形式,培养学生的团队协作能力和沟通能力。
二、教学内容1. 理论知识:- 了解飞机订票系统的基本概念和功能。
- 学习编程语言的基本语法,如变量、数据类型、运算符、条件语句和循环语句等。
- 掌握数据库的基本概念,如表、字段、记录等。
2. 实践操作:- 设计飞机订票系统的功能模块,如用户注册、登录、航班查询、购票、退票等。
- 编写程序代码,实现飞机订票系统的各个功能。
- 学习数据库的创建和操作,管理飞机票务信息。
3. 教学大纲:- 第一周:飞机订票系统概述,学习编程语言基本语法。
- 第二周:设计系统功能模块,学习条件语句和循环语句。
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 引言随着科技的不断发展,传统的人工订票系统已经不能满足人们的复杂需求,订票系统需要采用新技术来改进,以适应现代用户的需求。
为了建立一个高效的订票系统,我们开发了一个飞机订票系统。
它具有基于菜单式界面的灵活性,可以有效地实现飞机航班信息的查询,购票和航班信息的管理。
本报告着重介绍了构筑飞机订票系统的过程,旨在介绍编程技术以及每个模块的函数、功能实现,并概述程序的全部运行流程。
2 技术框架编写本程序的主要语言是C,采用层次功能模块结构设计,分为用户界面,数据管理,查询服务,支付服务和关系维护四个主要模块。
(1)用户界面用户界面模块主要实现功能是提供用户访问的菜单界面,用户可以在输入信息后,访问系统并根据输入信息获取反馈,进行下一步操作。
(2)数据管理数据管理包含数据结构和文件管理模块,它用来存储和管理航班信息、乘客信息等有关数据,数据在使用后可以及时写入文件。
(3)查询服务查询服务模块提供用户查询航班信息所必需的功能,根据用户输入的查询条件,提供精确的查询结果。
(4)支付服务支付服务模块用来实现订票系统和外围支付系统或服务的接口,以进行订票支付操作,以保证系统订票的安全性。
(5)关系维护关系维护模块主要负责订票系统的关系维护,保证数据的一致性,以及相联的航班和乘客信息之间的一致性。
3 设计实现(1)用户界面模块用户界面模块主要是用户与系统的交互界面,用C语言的标准输入输出实现,通过“while-switch”语句实现对不同功能的跳转。
(2)数据管理模块数据管理模块采用数组和二维字符串实现,能够有效地存储和进行订票,查询,修改和删除数据。
飞机订票系统c语言课程设计

飞机订票系统 c语言课程设计一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握飞机订票系统的功能、结构及其相关原理;技能目标要求学生能够运用C语言独立完成飞机订票系统的开发;情感态度价值观目标要求学生培养团队协作意识,增强对计算机编程的兴趣。
通过对课程性质、学生特点和教学要求的分析,我们将目标分解为具体的学习成果。
首先,学生需要理解飞机订票系统的业务流程,掌握C语言的基本语法和编程技巧;其次,学生能够运用所学的知识独立完成飞机订票系统的开发,提高实际操作能力;最后,学生在团队协作过程中培养沟通与协作能力,增强对计算机编程的兴趣和自信心。
二、教学内容本课程的教学内容主要包括飞机订票系统的功能介绍、C语言基础知识、飞机订票系统的模块划分和编程实现。
首先,介绍飞机订票系统的功能,包括用户注册、登录、航班查询、机票预订、支付结算等模块。
其次,讲解C语言的基本语法、数据类型、运算符、控制结构等基础知识。
接着,对飞机订票系统进行模块划分,引导学生了解各模块之间的关系和功能实现。
最后,分别针对各个模块,引导学生运用C语言进行编程实现,完成飞机订票系统的开发。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法。
包括讲授法、讨论法、案例分析法和实验法等。
首先,通过讲授法向学生传授飞机订票系统的相关知识和C语言的基本语法。
其次,采用讨论法引导学生针对飞机订票系统的功能和模块划分进行深入探讨,提高团队协作能力。
然后,运用案例分析法分析实际开发过程中遇到的问题,培养学生解决问题的能力。
最后,通过实验法让学生动手实践,独立完成飞机订票系统的开发,提高实际操作能力。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
教材方面,我们将选用《C语言程序设计》作为主教材,辅以《飞机订票系统设计与实现》等相关参考书。
多媒体资料包括教学PPT、视频教程等,以丰富教学手段,提高学生的学习兴趣。
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语言程序设计--飞机订票设计题目:飞机订票设计。
功能:本飞机共有80个座位,分为20排,每排4个位子。
编号为A,B,C,D。
如10D表示10排D座。
A和D靠窗,19到20排为吸烟区。
本系统可以让乘客自己选座号和区域,直到乘客满意为止,无法满足的话,只能改乘另一个航班。
订上票的乘客需要... 题目:飞机订票设计。
功能:本飞机共有80个座位,分为20排,每排4个位子。
编号为A,B,C,D。
如10D表示10排D座。
A和D靠窗,19到20排为吸烟区。
本系统可以让乘客自己选座号和区域,直到乘客满意为止,无法满足的话,只能改乘另一个航班。
订上票的乘客需要给出姓名和身份证号,最后要打印出乘客清单。
分布实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定两个函数;2、完成最低要求:建立一个小系统,包括5排座位,两个区域,能供乘客选择;3、进一步要求:完成全部功能的系统。
要求:1、用C语言实现程序设计;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。
课程设计试验报告要求:1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。
2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。
--------------------------------------------------------//#include <stdafx.h>#include < conio.h>#include<stdio.h>#include<string.h>#include<stdlib.h>#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0#define OVERFLOW -2#define PR printftypedef int status;typedef struct airlinechar line_num[8];//航班号char plane_num[8];//飞机号char end_place[20];//目的的int total;//座位总数int left;//剩余座位struct airline *next;//下一个结点}airline;typedef struct customer{char name[9];//顾客名char line_num[8];//航班号int seat_num;//座位号struct customer *next;//下一个结点}customer;airline *init_airline(){ //初始化链表airline *l;l=(airline*)malloc(sizeof(airline)); if(l==NULL){ exit(0);}return l;}customer * init_customer(){//初始化链表customer *l;l=(customer*)malloc(sizeof(customer));if(l==NULL){exit(0);}l->next=NULL;return l;}status insert_airline(airline **p,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作airline *q;q=(airline*)malloc(sizeof(airline));strcpy(q->line_num , line_num);strcpy(q->plane_num , plane_num);strcpy(q->end_place , end_place);q->total =total;q->left =left;q->next=NULL;(*p)=(*p)->next;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}status insert_customer(customer **p,char *name,char *line_num,int seat){//customer链表插入操作customer *q;q=(customer*)malloc(sizeof(customer));/* { PR("内存分配失败\n");return OVERFLOW; }*/strcpy(q->name , name);strcpy(q->line_num , line_num);q->seat_num =seat;q->next=NULL;(*p)->next=q;(*p)=(*p)->next;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}airline *modefy_airline(airline *l,char *line_num)//修改airline链表中的数据{ airline *p;for(;p!=NULL;p=p->next ){ if(strcmp(line_num,p->line_num )==0){ p->left ++;// PR("modefy %s\n",p->line_num );return l;}}PR("没有这个航班,无法完成修改任务!\n");return 0;}status delete_airline(airline *h,char *line_num)//删除航班{ airline *p,*pr;pr=h;p=pr->next ;while(p!=NULL){ if(strcmp(line_num,p->line_num )==0){ pr->next =p->next ;PR("删除%s 航班\n",p->line_num );return OK;}pr=pr->next ;}PR("无此航班,无法删除!\n");return ERROR;}status delete_customer(customer *h,char *line_num)//删除顾客{ customer *p,*pr;pr=h;p=pr->next ;while(p!=NULL){ if(strcmp(line_num,p->line_num )==0){ pr->next =p->next ;}pr=pr->next ;p=pr->next ;}// PR("无此航班,无法删除!\n");return OK;}status delete_cus(customer *h,airline *l,char *name)//顾客退票{ customer *p,*pr;char line_num[8];// qr=h;pr=h;p=pr->next ;// PR("开始删除\n");while(p!=NULL){ if(strcmp(name,p->name )==0){ strcpy(line_num,p->line_num );l=modefy_airline(l,line_num);pr->next =p->next ;PR("顾客%s 退票成功!\n",p->name ); return OK;}pr=pr->next ;p=pr->next ;}PR("无此顾客,无法退票!\n");return ERROR;}status save_airline(airline *l)//保存airline.dat { FILE *fp_airline;char ch='#';airline *p=l->next ;char filename[]="c:\\airline.dat";if((fp_airline=fopen(filename,"wb"))==NULL){ printf("can not open file to write:%s\n",filename);return ERROR;}for(;p!=NULL;p=p->next ){ //printf("%s,%s,%s,%d,%d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );fprintf(fp_airline,"%s,%s,%s,%d,%d%c\n",p->line_num ,p->plane_num ,p ->end_place ,p->total ,p->left ,ch);}fclose(fp_airline);return OK;}status save_customer(customer *l)//保存顾客信息customer.dat{ FILE *fp_customer;char ch='#';customer *p=l->next ;char filename[]="c:\\customer.dat";if((fp_customer=fopen(filename,"wb"))==NULL){ printf("can not open file to write:%s\n",filename);return ERROR;}for(;p!=NULL;p=p->next ){ // PR("%s,%s,%d\n",p->name ,p->line_num ,p->seat_num );fprintf(fp_customer,"%s,%s,%d%c",p->name ,p->line_num ,p->seat_nu m ,ch);}fclose(fp_customer);return OK;}int changStrInt(char *ch)//把字符串转化为整型{ int a=1,b=0,c=0,i;for (i=strlen(ch)-1;i>=0;i--){ if (ch[i]<58&&ch[i]>47){ b=a*(ch[i]-48);a=a*10;c=c+b;}else{ PR("%c 不合法,无法将此字符串转化为整形!\n",ch[i]);return 0;}// printf("the c is %d\n",c);}return c;}status insert_air(airline *l,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作airline *q;q=(airline*)malloc(sizeof(airline));strcpy(q->line_num , line_num);strcpy(q->plane_num , plane_num);strcpy(q->end_place , end_place);q->total =total;q->left =left;q->next=l->next ;l->next=q;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}status insert_cus(customer *l,char *name,char *line_num,int seat){//customer链表插入操作customer *q;q=(customer*)malloc(sizeof(customer)); strcpy(q->name , name);strcpy(q->line_num , line_num);q->seat_num =seat;q->next=l->next ;l->next=q;return OK;}status load_airline(airline *l){ FILE *fp_airline;int flag=0,i=0;char ch;char line_num[8];//航班号char plane_num[8];//飞机号char end_place[20];//目的的char total_str[5];char left_str[5];int total;//座位总数int left;//剩余座位// airline *p=l;char filename[]="c:\\airline.dat";if((fp_airline=fopen(filename,"rb"))==NULL){ printf("can not open file to load:%s\n",filename); return ERROR;}while(!feof(fp_airline)){ ch=fgetc(fp_airline);if(ch!='#'){ if(flag==0&&ch!=','){ line_num[i]=ch;i++;}else if(flag==1&&ch!=','){ plane_num[i]=ch;i++;}else if(flag==2&&ch!=','){ end_place[i]=ch;i++;}else if(flag==3&&ch!=','){ total_str[i]=ch;i++;}else if(flag==4&&ch!=','){ left_str[i]=ch;i++;}else if (ch==','){ flag++;i=0;}/* else{ PR("错误\n");return ERROR;}*/}else{ flag=0;i=0;total=changStrInt(total_str);left=changStrInt(left_str);PR("%8s%8s%8s%9d%9d\n",line_num ,plane_num ,end_place ,total ,left ); insert_air(l,line_num,plane_num,end_place,total,left);}}fclose(fp_airline);return OK;}status load_customer(customer *l){ FILE *fp_customer;int flag=0,i=0;char ch;char name[9];char line_num[8];//航班号char seat_num_str[5];int seat_num;//座位// customer *p=*l;char filename[50]="c:\\customer.dat";if((fp_customer=fopen(filename,"rb"))==NULL) { printf("can not open file to load:%s\n",filename); return ERROR;}while(!feof(fp_customer)){ ch=fgetc(fp_customer);printf("%c\n",ch);if(ch!='#'){ if(flag==0&&ch!=','){ name[i]=ch;i++;}else if(flag==1&&ch!=',') { line_num[i]=ch;i++;}else if(flag==2&&ch!=',') { seat_num_str[i]=ch;i++;}else if (ch==','){ flag++;i=0;}else{ PR("错误\n");return ERROR;}}else{ flag=0;seat_num=changStrInt(seat_num_str);PR("%10s %10s %d\n",name ,line_num ,seat_num );insert_cus(l,name,line_num,seat_num);// p=p->next ;}}fclose(fp_customer);return OK;}status creat_airline(airline **l)//创建airline单链表{ airline *p=*l;int i=0;char *line_num[3]={"bjnc01","bjsh02","shgz03"};char *plane_num[3]={"plane1","plane2","plane3"};char *end_place[3]={"nc","sh","gz"};int total[3]={100,100,100};int left[3]={51,50,78};for (i=0;i<3;i++){insert_airline(&p,line_num[i],plane_num[i],end_place[i],total[i],left[i]); }return OK;}status creat_customer(customer **l)////创建customer单链表{ customer *p=*l;int i=0;char *name[3]={"ouyangj0","yhl","fs"};char *line_num[3]={"bjnc01","bjsh02","shgz03"};int seat_num[3]={1,5,10};for (i=0;i<3;i++){insert_customer(&p,name[i],line_num[i],seat_num[i]);}return OK;}status increase_air(airline *l,char *line_num,char *plane_num,char*end_place,int total)//增加航线{ airline *p=l->next ;for(;p->next !=NULL;p=p->next){}insert_airline(&p,line_num,plane_num,end_place,total,total);PR("增加航班%s 成功!\n",line_num);return OK;}status book(airline *l,char *line_num,customer *c,char *name)//订票函数{ airline *p=l;customer *q=c->next ;p=l->next ;for(;q->next !=NULL;q=q->next){}// PR("%s\n",q->name );for(;p!=NULL;p=p->next ){ if(strcmp(line_num,p->line_num )==0){ if(p->left >0){ PR("恭喜您!订票成功!\n");PR("你的座位号是: %d\n",(p->total -p->left +1));insert_customer(&q,name,line_num,p->total -p->left +1); p->left --;return OK;}else PR("对不起,座位已满!\n");return 0;}}PR("对不起,没有这个航班号!\n");return ERROR;}status print_airline(airline *l)//打印航线信息{ airline *p=l->next ;for(;p!=NULL;p=p->next ){ PR("%8s%8s%8s%9d%9d\n",p->line_num ,p->plane_num ,p->end_pla ce ,p->total ,p->left );}return OK;}status print_customer(customer *l)//打印顾客信息{customer *p=l->next ;for(;p!=NULL;p=p->next ){ PR("%10s %10s %d\n",p->name ,p->line_num ,p->seat_num );}return OK;}status inputpassword(char cc[9])//隐藏密码为*号的函数-------------------楼主,注意这里!{char c;int i;for(i=0;c=getch();i++){if(c==13) break; /*13是回车的ascii码,用'\n'不行,不知怎么回事*/else{cc[i]=c;printf("*");}}cc[i]='\0';//printf("\n");//printf("%s",cc);//getchar();return strlen(cc);}void main(){ charchoice,choice2,name[9],line_num[8],password[9],plane_num[8],end_plac e[9];char pass[9]="19851102",re_pass_1[9],re_pass_2[9];int t=1,tt=1,total;airline *air=init_airline();customer *cus=init_customer();PR(" 计算机0541课程设计(一)\n");PR(" 航空订票系统\n");PR(" 成员:晏凯\n");creat_airline(&air);creat_customer(&cus);// save_airline(air);// save_customer(cus);while(t==1){ PR("*----------------------------*\n"); PR("*--航空订票系统选择菜单------*\n"); PR("* 订票-------0 *\n");PR("* 退票-------1 *\n");PR("* 查询-------2 *\n");PR("* 修改航线---3 *\n");PR("* 读入文件---4 *\n");PR("* 退出-------5 *\n");PR("*----------------------------*\n"); PR("请选择: ");choice = getch();PR("%c\n",choice);if(choice=='0'){ PR("请输入你要订的航班号: ");scanf( "%s",line_num);PR("请输入你的姓名: ");scanf( "%s",name);book(air,line_num,cus,name);save_airline(air);save_customer(cus);}else if(choice=='1'){ PR("\n请输入你的姓名: ");scanf( "%s",name);delete_cus(cus,air,name);save_airline(air);save_customer(cus);}else if(choice=='2'){ PR("\n 航班号飞机号目的地总票数余票数\n");print_airline(air);PR(" 姓名航班号座位号\n");print_customer(cus);}else if(choice=='3'){ tt=1;PR("请输入密码: ");//scanf("%s",password);inputpassword(password);-----------------楼主,注意这里!我改了!if(strcmp(password,pass)==0){ while (tt==1){PR("\n*------------------------------*\n"); PR("*-------航线信息修改:----------*\n"); PR("* 增加航班号-----'0' *\n");PR("* 删除航班号-----'1' *\n");PR("* 修改密码-------'2' *\n");PR("* 查询航线信息---'3' *\n");PR("* 退出航线修改---'4' *\n");PR("*------------------------------*\n"); PR("请选择: ");choice2=getch();PR("%c\n",choice2);if(choice2=='0'){ PR("请输入你要增加的航班号: ");scanf("%s",line_num);PR("请输入飞机号: ");scanf("%s",plane_num);PR("请输入目的地: ");scanf("%s",end_place);PR("请输入座位总数: ");scanf("%d",&total);increase_air(air,line_num,plane_num,end_place,total); save_airline(air);save_customer(cus);}else if (choice2=='1'){ PR("请输入你要删除的航班号: ");scanf("%s",line_num);delete_airline(air,line_num);delete_customer(cus,line_num);save_airline(air);save_customer(cus);}else if(choice2=='2'){ PR("注意:密码不能超过8位!\n");PR("请输入新密码:");scanf("%s",re_pass_1);PR("请再输入一次: ");scanf("%s",re_pass_2);if(strcmp(re_pass_1,re_pass_2)==0){ strcpy(pass,re_pass_1);PR("密码修改成功!请记住.\n");}else { PR("你两次输入的密码不一致!\n");}}else if(choice2=='3'){ PR("\n 航班号飞机号目的地总票数余票数\n"); print_airline(air);}else if(choice2=='4'){ tt=0;}else {PR("你的输入有误\n");tt=0;}}//end while}//end ifelse {PR("对不起!你输入的密码不正确!\n");}}//end else if 修改else if(choice=='4') { load_airline(air); load_customer(cus); }else if(choice=='5') { PR("再见!");t=0;}else{ PR("你的输入有误\n"); }}getch();}。
大一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();}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计报告指导老师:C语言课程设计报告一、 C语言课程设计的目的C语言的教学是学生根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。
具体来说:1.进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程设计开发文档的能力(书写课程设计报告);二、课程设计报告正文(1)课程设计题目的原文;假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。
试设计一民航订票系统,使之能提供下列服务:航班信息录入功能(文件保存)完成航班信息浏览功能;查询航线(至少一种查询方式)。
(2)题目的分析(需求分析);任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中)浏览:航班信息浏览功能需要提供显示操作;查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。
(3)整体设计与模块划分;根据需求分析,该程序可分为以下四大模块:(4)代码设计;包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析;等等;(一)主函数(1)分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统中没有程序所要的文件时,为程序建立一个所需的文件;调用菜单函数。
程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数。
菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到的函数。
(2)程序:void menu(){int n,w;do{puts("\t\t***********************MENU***************************\n\n");puts("\t\t\t\t 1.enter new data");puts("\t\t\t\t 2.Browse all");puts("\t\t\t\t 3.Search");puts("\t\t\t\t 4.exit");puts("\n\n\t\t ***************************************************\n");printf("Choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4){w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:enter();break;case 2:Browse();break;case 3:Search();break;case 4:exit(0);}}/**********************主函数*********************/main(){ menu();}(二)公共函数(1)分析:各功能模块中的分程序中的交错的较多,因而,本程序的公共函有5个,这使得各功能模块函数显得简洁,这是程序的一个特点。
此处的公共函数的功能较为简单,但他很实用。
(2)程序:1、把航班信息输入到文件中的函数。
void input(i){struct flight t;printf("\nflight_no startstation endstation flytime plan_ticket sell_ticket\n");scanf("%d%s%s%s%d%d",&t.flight_no,t.startstation,t.endstation,t.flytim e,&t.plan_ticket,&t.sell_ticket);fp=fopen("flydata.txt","ab");if(!fp){printf("can not open this file\n");exit(0);} else fwrite(&t,sizeof(struct flight),1,fp);fclose(fp);}2、输出一个航班信息函数void printf_oneflight(int i){printf("\n%5d%20s%20s%10s%4d%4d\n",fly[i].flight_no,fly[i].startstatio n,fly[i].endstation,fly[i].flytime,fly[i].plan_ticket,fly[i].sell_ticket);}3、输出文件内容结构函数void printf_face(){printf("\n\tNO. startstation endstation flytime plan_ticket sell_ticket\n");}4、载入函数实现文件内容载入程序,并返回飞机航班数值。
int load(){FILE *fp;int i;if((fp=fopen("flydata.txt","rb"))==NULL){printf("\nCan not open file\n");exit(0);}for(i=0;!feof(fp);i++)fread(&fly[i],sizeof(struct flight),1,fp);fclose(fp);return(i-1);}5、返回退出函数实现程序退出、返回。
void printf_back(){int w;printf("\n\n\tSuccessful.^_^\n\n");printf("What do you want to do?\n\n\t1).Browse all now\t2).back:[]\b\b");scanf("%d",&w);if(w==1) Browse();else menu();}(三)航班基本信息输入模块航班信息录入函数:(1)分析:航班的基本信息,对它们输入后,要存进原文件,采用fwrite函数就可以实现。
但是,用该函数存进文件的数据都是以二进制的形式存在的,不是通常所采用的形式,可以改用fprintf函数来实现该功能。
不过本程序采用的是fwrite函数。
再用户输入完成后,程序会询问是否继续输入,这个功能更具人性化,可以省去返回到主函数在进入这个函数的麻烦!【流程图]输入信息(2)程序:void enter(){int i,n;printf("How many flights do you want input? :[ ]\b\b");scanf("%d",&n);printf("\n Enter data now\n\n");for(i=0;i<n;i++){printf("\n Input %dth float record.\n",i+1);input(i);}printf_back();}航班信息浏览函数:[流程图]显示信息显示航班信息:void Browse(){int i,n;n=load();printf_face();for(i=0;i<n;i++){if(i%10==0){printf("\nPress any key to contiune ...");getchar();puts("\n\n");}puts("\n\n");printf_oneflight(i);}printf("\tThere are %d record.\n",n);printf("\nPress any key to back ...\n");getchar();menu();}查询模块:分析:基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。
在查询小模块中采用了直接查找的方法。
本模块可以通过多种查询方式进行完善。
这是本程序没有做的地方。
[流程图]程序:void Search(){int m,i,flight_no,flag=0;printf("Please input flight_no:\n");scanf("%d",&flight_no);m=load();for(i=0;i<m;i++){if(flight_no==fly[i].flight_no){flag=1;printf("\nThe flight message is:\n");printf_oneflight(i);}}if(flag==1)printf("Found!");elseprintf("Not Found!");printf_back();}(5)运行与测试报告:在第一步编程过程中很顺利的编写好了各模块,最后整合成了一个完整的程序,但在调试过程中遇到了许多问题。
如一些由于粗心导致分号,括号,字母输错的例子很多。
但都很快改正。
还有函数调用错误fp=fopen("flydata.txt","ab");我在写时丢了fopen结果一直错误,并且发现不了,后来请老师才解决问题。