C++语言课程设计报告(长途客运)订票系统)

合集下载

C语言课程设计汽车售票系统

C语言课程设计汽车售票系统

二○一○~二○一一学年第二学期信息科学与工程学院课程设计报告书课程名称:班级:学号:姓名:指导教师:二○一○年九月C语言课程设计题目:汽车售票系统任务:自学C语言中相关知识,设计出汽车售票系统。

要求如下所述:每天“火车站→植物园”有5个班次的汽车(假设),具体的数据格式如下:班次发车时间载客量已售票数1 06:40 50 02 09:30 40 03 12:00 40 04 14:30 40 05 16:00 50 0为售票员开发一个小程序,以完成每天的“火车站→植物园”的售票业务。

要求如下:1. 能够售票和退票。

以文件(myfile.txt)的形式保存当天各个车次的售退票情况。

◆售票功能当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。

◆退票功能退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。

2. 查询显示功能。

可以随时显示当前售票现状(如:班次发车时间载客量已售票数余票等信息)。

3. 用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项。

可适当增加其他附加功能。

主程序流程图:订票程序流程图:退票程序流程图:系统功能模块图:程序概述:主函数菜单包括订票,退票,查看,保存的菜单.由相应函数调用可以实现相关功能模块.订票退票功能基本是一样的,需要分别输出购票车次及张数.查看功能只是把数据输出界面.退出功能是调用系统退出函数来终止程序的运行.函数程序首先要读入文件myfile.txt,获取已订票数的数据,如果没有文件,则会提示打不开文件.英雌运行程序之前请在C盘建立一个TXT文件,名为:myfile.txt.里面的内容不做任何修改,让其保留空白.默认购票数全部为0.主要源程序代码:#include<stdio.h>#include<stdlib.h>int menu() /*主菜单*/{int a;printf("****************************\n");printf("*1、订票*\n");printf("*2、退票*\n");printf("*3、显示订票情况*\n");printf("*4、保存当天数据*\n");printf("*5、退出(请先保存) *\n");printf("****************************\n");printf("******请选择操作*********\n");scanf("%d",&a);return a;}void esc(){exit (0);}void check(int*bus) /*查看车次售票情况的程序*/{printf("车次发车时间载客量已售票\n");printf("1、06:40 50 %d\n",*bus); printf("2、09:30 40 %d\n",*(bus+1)); printf("3、13:00 40 %d\n",*(bus+2)); printf("4、16:00 40 %d\n",*(bus+3)); printf("5、20:50 50 %d\n",*(bus+4)); }void order(int*bus) /*订票功能程序*/{int a,b;int capacity[5]={50,40,40,40,50};check(bus);printf("请选择要订的车次\n");scanf("%d",&a);if(a>5||a<1)printf("你选择了错误的序号\n");else printf("请选择要订票的张数\n");scanf("%d",&b);if(b>capacity[a-1]-*(bus+a-1))printf("你定票的张数超过剩余张数\n");else{*(bus+a-1)+=b;printf("订票成功\n");}}void cancel(int*bus) /*退票功能程序*/{int a,b;check(bus);printf("请选择要取消订票的车次\n");scanf("%d",&a);if(a>5||a<1)printf("你选择了错误的序号\n");elseprintf("请选择要退票的张数\n");scanf("%d",&b);if(b>*(bus+a-1))printf("你退票的张数已超过订票的张数\n");else{*(bus+a-1)-=b;printf("退票成功\n");}}void write(int*bus) /*写入已存数据的程序*/ {FILE *fp;if((fp=fopen("C:\\myfile.txt","wb"))==0){printf("打不开文件\n");exit(0);}fwrite(bus,1,1,fp);printf("保存成功\n");fclose(fp);}void read(int*bus) /*读入已存数据的程序*/{int i;FILE *fp;if((fp=fopen("C:\\myfile.txt","rb"))==0){printf("打不开文件\n");exit(0);}for(i=0;i<5;i++){if(!feof(fp)) /*测试fp所指向的文件当前状态是否"文件结束"*/ fread(bus+i,1,1,fp);}fclose(fp);}void main() /*主函数*/{int bus[5]={0,0,0,0,0};int a;read(bus);a=menu(); /*显示主菜单*/while(a<6){switch(a){case 1:order(bus);break;case 2:cancel(bus);break;case 3:check(bus);break;case 4:write(bus);break;case 5:esc();break;default:printf("你选择了错误的序号\n");break;}a=menu();}write(bus);}调试分析过程:对于购票子程序中,原来没有对购退票的张数与所剩张数做比较,加了相应代码,可以实现相应的错误提醒,然后返回主菜单,重新开始.对于退出函数,是查相应资料,通过调用系统退出函数来实现退出程序.存在问题及思考:在购退票输入要选择的车次的时候,如果输入错误的车次,则会提示”你选择了错误的序号”.但是不会返回上级菜单或主菜单.这个问题还没有解决.尝试过用return函数使其返回,但是反而会引起其他的错误,暂不知如何修改.课程设计小结:C语言是所有现在流行的编程语言的基础.学好C语言,有助于其他的语言的理解及学习.C程序中,核心是算法,只有先写出算法,然后对细节慢慢修改,写程序也应该有个相应的分块,不能就从头开始往下写,而应该先分成相应子块,写出主程序把其他子程序连接起来.然后开始子程序块的编写代码.刚编写成功的程序,肯定是有很多问题的,特别是联系实际情况的,问题就更多了,这就要求我们有很大的耐心来修改程序,并联系实际情况.学好C语言能培养我们的耐心,严谨,的态度,并有良好的基础,为以后的计算机方面的学习提供一定的帮助.我们应该学好C语言.。

c订票课程设计

c订票课程设计

c 订票课程设计一、课程目标知识目标:1. 学生能够掌握计算机订票系统的基本操作流程。

2. 学生能够理解并运用相关的票务术语,如:航班号、座位选择、电子客票等。

3. 学生能够了解我国民航订票的基本规则及常见问题处理方式。

技能目标:1. 学生能够熟练使用计算机进行在线订票操作。

2. 学生能够通过分析票务信息,进行合理的航班选择和座位预订。

3. 学生能够运用所学知识解决实际订票过程中遇到的问题。

情感态度价值观目标:1. 培养学生遵守公共秩序、尊重他人权益的良好品质。

2. 增强学生的团队协作意识,学会在集体中分享和交流经验。

3. 培养学生关注社会热点问题,提高信息素养,树立正确的消费观念。

课程性质:本课程为信息技术与生活实际相结合的实践课程,注重培养学生的实际操作能力和解决问题的能力。

学生特点:本年级学生具备一定的计算机操作基础,对新鲜事物充满好奇,喜欢动手实践。

教学要求:结合学生特点和课程性质,采用任务驱动法,引导学生自主探究和合作学习,提高课程教学的实用性和趣味性。

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

二、教学内容1. 订票系统介绍:介绍计算机订票系统的基本概念、功能及其在生活中的应用。

- 教材章节:第二章第三节《计算机订票系统》- 内容列举:系统登录、查询航班、选择航班、预订座位、填写个人信息、支付票款、获取电子客票。

2. 订票操作流程:详细讲解订票操作步骤,指导学生进行实际操作。

- 教材章节:第二章第四节《订票操作流程》- 内容列举:航班查询、票价查询、在线预订、支付与出票、退改签操作。

3. 常见问题处理:分析订票过程中可能遇到的问题,并提供解决方法。

- 教材章节:第二章第五节《订票常见问题处理》- 内容列举:航班取消、座位选择失误、支付失败、个人信息填写错误等问题的处理方法。

4. 民航订票规则:讲解我国民航订票的基本规则,提高学生的法律意识和遵守公共秩序的能力。

- 教材章节:第二章第六节《民航订票规则》- 内容列举:购票证件、儿童票、婴儿票、退改签规定等。

c语言订票系统课程设计

c语言订票系统课程设计

c语言订票系统课程设计一、课程目标知识目标:1. 理解C语言中结构体、数组、函数等基本概念,掌握其应用方法。

2. 学会使用C语言进行基本的输入输出操作,了解文件操作的基本方法。

3. 掌握C语言中逻辑判断、循环等控制结构,并能应用于实际编程。

技能目标:1. 能够运用所学知识设计并实现一个简单的订票系统,包括用户注册、登录、查询航班、预订航班、取消预订等功能。

2. 培养学生分析问题、解决问题的能力,通过编写代码解决实际问题。

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

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发学生主动学习的积极性。

2. 培养学生严谨、细心的学习态度,养成良好的编程习惯。

3. 增强学生的自信心和成就感,使其在学习过程中体验成功的快乐。

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

学生特点:学生已经掌握了C语言的基本语法和编程方法,具有一定的编程基础。

教学要求:教师应注重引导学生将所学知识运用到实际项目中,鼓励学生自主探究、分组合作,培养学生分析问题、解决问题的能力。

同时,关注学生的情感态度,激发学生的学习兴趣和自信心。

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

二、教学内容1. 结构体和数组的应用:回顾结构体和数组的概念,学习如何定义结构体表示航班信息,使用数组存储多个航班数据。

教材章节:第三章 结构体与联合,第四章 数组2. 函数的使用:掌握函数的定义、声明和调用,实现模块化编程,将各个功能划分为独立的函数。

教材章节:第五章 函数3. 输入输出操作:复习标准输入输出函数,学习文件操作,实现数据的持久化存储。

教材章节:第六章 标准输入输出,第七章 文件操作4. 控制结构:运用逻辑判断和循环结构实现用户界面和业务逻辑。

教材章节:第二章 选择结构,第三章 循环结构5. 课程设计实践:结合以上所学内容,设计并实现订票系统各功能模块,完成整个订票系统的开发。

c课程设计售票系统

c课程设计售票系统

c 课程设计售票系统一、教学目标本课程的目标是让学生掌握售票系统的核心知识,包括系统的设计、实现和运行。

在知识目标方面,学生需要了解票务系统的需求分析、系统设计、数据库设计、界面设计和系统测试等基本知识。

在技能目标方面,学生应掌握使用C语言进行编程的方法,能够独立设计和实现一个简单的售票系统。

在情感态度价值观目标方面,学生应培养对编程和软件开发的兴趣,增强解决实际问题的信心和能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.售票系统概述:介绍售票系统的基本概念、功能和应用场景。

2.需求分析:讲解如何分析用户需求,并写出需求说明书。

3.系统设计:介绍系统设计的方法和步骤,包括模块划分、界面设计等。

4.数据库设计:讲解如何设计售票系统的数据库,包括表结构设计、索引创建等。

5.编程实现:使用C语言讲解如何实现售票系统的各个功能模块。

6.系统测试:介绍系统测试的方法和技巧,确保系统的稳定性和可靠性。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式:1.讲授法:教师讲解基本概念、原理和方法,引导学生掌握售票系统的相关知识。

2.案例分析法:分析实际案例,让学生了解售票系统的应用场景和实现技巧。

3.实验法:学生动手编写代码,实现售票系统的功能模块,培养实际操作能力。

4.讨论法:分组讨论问题,激发学生的思考,培养团队协作能力。

四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统性的学习资料。

2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作PPT、视频等多媒体资料,提高课堂教学效果。

4.实验设备:配置必要的实验设备,如计算机、网络设备等,确保学生动手实践的需求。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:评估学生在课堂上的参与度、提问回答等情况,占总分的20%。

2.作业:布置适量作业,评估学生的理解和应用能力,占总分的30%。

c课程设计订票系统

c课程设计订票系统

c 课程设计订票系统一、教学目标本课程的目标是使学生掌握订票系统的原理和操作方法,培养学生运用计算机技术解决实际问题的能力。

具体目标如下:1.知识目标:使学生了解订票系统的起源、发展及其在现代社会中的应用;理解订票系统的核心概念和原理,如数据库、网络通信、算法等;掌握订票系统的常用操作和功能。

2.技能目标:培养学生能够使用订票系统进行车票预订、支付、改签、退票等操作;培养学生能够对订票系统进行基本的维护和故障排除;培养学生能够运用订票系统进行数据分析和管理。

3.情感态度价值观目标:培养学生对订票系统的正确使用态度,如遵守购票规定、尊重他人隐私、不恶意刷票等;培养学生对订票系统的安全意识,如不泄露个人信息、不轻信虚假信息等;培养学生对订票系统的开放心态,如接受新功能、新服务等。

二、教学内容本课程的教学内容主要包括订票系统的原理、操作方法和应用实践。

具体安排如下:1.订票系统的起源和发展:介绍订票系统的起源、发展历程及其在现代社会中的应用,让学生了解订票系统的历史和现状。

2.订票系统的核心概念和原理:讲解订票系统的核心概念和原理,如数据库、网络通信、算法等,使学生理解订票系统的工作原理。

3.订票系统的操作方法:教授订票系统的常用操作和功能,如车票预订、支付、改签、退票等,让学生掌握订票系统的实际操作。

4.订票系统的应用实践:通过案例分析和实践操作,使学生学会运用订票系统解决实际问题,如数据分析、安全管理等。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

具体方法如下:1.讲授法:通过讲解订票系统的原理、概念和操作方法,使学生掌握相关知识。

2.讨论法:学生就订票系统的应用、优点和不足等方面进行讨论,培养学生的思考和表达能力。

3.案例分析法:通过分析实际案例,使学生学会运用订票系统解决实际问题。

4.实验法:安排实验课程,让学生亲自动手操作订票系统,提高学生的实践能力。

c课程设计订票系统

c课程设计订票系统

c 课程设计订票系统一、教学目标本章节的教学目标为:知识目标:使学生掌握订票系统的相关知识,包括系统架构、功能模块、关键技术等。

技能目标:培养学生能够使用编程语言实现简单的订票系统,并具备一定的系统调试和优化能力。

情感态度价值观目标:培养学生对信息技术领域的兴趣,提高他们运用信息技术解决实际问题的意识。

二、教学内容本章节的教学内容如下:1.订票系统概述:介绍订票系统的定义、功能、应用场景等。

2.订票系统架构:讲解订票系统的整体架构,包括前端展示、后端逻辑、数据库设计等。

3.功能模块划分:详细介绍订票系统的各个功能模块,如用户管理、订单管理、票务管理等。

4.关键技术解析:讲解实现订票系统所需的关键技术,如数据库查询、事务处理、安全性保障等。

5.编程实践:引导学生动手编写订票系统的代码,并进行调试和优化。

三、教学方法本章节的教学方法包括:1.讲授法:用于讲解订票系统的相关概念、架构和关键技术。

2.案例分析法:通过分析实际订票系统的案例,使学生更好地理解理论知识。

3.实验法:引导学生动手实践,编写订票系统代码,培养实际操作能力。

4.讨论法:学生进行小组讨论,分享学习心得,互相促进。

四、教学资源本章节的教学资源包括:1.教材:提供订票系统的理论知识,为学生学习奠定基础。

2.参考书:拓展学生的知识视野,丰富学习内容。

3.多媒体资料:通过视频、动画等形式,生动展示订票系统的实现过程。

4.实验设备:为学生提供实际操作环境,培养动手能力。

五、教学评估本章节的教学评估方式包括:1.平时表现评估:根据学生在课堂上的参与度、提问回答等情况,全面了解学生的学习态度和实际能力。

2.作业评估:通过对学生作业的完成情况、代码质量、问题解决能力等方面进行评估,了解学生的学习效果。

3.考试评估:设置期中、期末考试,测试学生对订票系统知识的掌握程度以及编程实践能力。

4.项目实践评估:学生完成一个订票系统项目,从需求分析、设计、实现到测试,全面评估学生的系统开发能力。

c订票系统课程设计

c订票系统课程设计

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

2. 让学生了解订票系统的基本功能模块及其相互关系。

3. 让学生理解订票系统中数据存储、查询、排序等算法的实现。

技能目标:1. 培养学生运用C语言设计小型信息系统的能力。

2. 培养学生分析问题、解决问题的能力,能够根据需求独立设计并实现订票系统的功能模块。

3. 培养学生运用调试工具进行代码调试和优化的能力。

情感态度价值观目标:1. 培养学生合作学习的意识,提高团队协作能力。

2. 增强学生对计算机编程的兴趣和自信心,激发学生的创新精神。

3. 培养学生严谨、认真的学习态度,养成良好的编程习惯。

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

学生特点:学生已具备C语言基本语法知识,具有一定的编程能力,但尚需提高综合运用知识解决实际问题的能力。

教学要求:结合订票系统实际需求,引导学生通过分析、设计、编程、调试等环节,完成课程目标,实现订票系统的基本功能。

在教学过程中,注重培养学生的动手能力和团队协作精神,提高学生的编程兴趣和自信心。

二、教学内容1. 结构体和数组:回顾结构体的定义和用法,数组的基本操作,为存储和管理订票系统中的数据打下基础。

(对应教材章节:结构体与数组)2. 函数:介绍函数的定义、调用和参数传递,强调模块化编程的重要性,指导学生将订票系统的功能分解为多个函数。

(对应教材章节:函数)3. 数据存储:讲解如何使用文件存储数据,介绍文件读写操作,为学生实现数据持久化提供技术支持。

(对应教材章节:文件操作)4. 排序和查询算法:引导学生了解常见的排序算法,如冒泡排序、快速排序等,并掌握二分查找算法,为优化订票系统的查询功能提供方法。

(对应教材章节:排序与查找)5. 用户界面设计:教授简单的用户界面设计方法,使学生能够实现友好的用户交互体验。

(对应教材章节:用户界面设计)教学内容安排与进度:第一周:回顾结构体和数组,明确订票系统的需求,进行功能模块划分。

c语言课程设计售票系统

c语言课程设计售票系统

c语言课程设计售票系统一、教学目标本章节的教学目标是使学生掌握C语言基础知识,能够运用C语言设计一个简单的售票系统。

具体目标如下:1.理解C语言的基本语法和数据类型。

2.掌握函数的定义和调用。

3.了解面向过程的编程思想。

4.能够使用C语言编写简单的程序。

5.能够运用面向过程的编程思想设计程序。

6.能够独立完成一个简单的售票系统的设计和实现。

情感态度价值观目标:1.培养学生的编程兴趣,提高学生对计算机科学的热爱。

2.培养学生解决问题的能力,提高学生的自主学习能力。

3.培养学生团队合作的精神,提高学生的沟通协作能力。

二、教学内容本章节的教学内容主要包括C语言基础知识、函数的定义和调用、面向过程的编程思想以及售票系统的设计和实现。

具体内容如下:1.C语言基础知识:数据类型、变量、运算符、表达式等。

2.函数的定义和调用:函数的定义、返回值、参数、函数调用等。

3.面向过程的编程思想:顺序结构、分支结构、循环结构等。

4.售票系统的设计和实现:系统需求分析、功能模块设计、程序实现等。

三、教学方法为了达到本章节的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言基础知识、函数的定义和调用、面向过程的编程思想等,使学生掌握相关概念和理论。

2.案例分析法:通过分析实际案例,使学生了解售票系统的设计和实现过程。

3.实验法:让学生动手编写程序,培养学生的实际编程能力。

4.讨论法:学生进行分组讨论,促进学生之间的交流与合作。

四、教学资源为了支持本章节的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:C语言程序设计教程,用于引导学生学习C语言基础知识。

2.参考书:C语言编程实践,用于为学生提供更多的编程案例和实践指导。

3.多媒体资料:教学PPT、视频教程等,用于辅助讲解和演示。

4.实验设备:计算机、编程环境等,用于学生动手实践和编写程序。

五、教学评估本章节的教学评估将采用多元化的评估方式,以全面、客观地评价学生的学习成果。

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

xxxx大学xx学院C语言课程设计题目:长途客运售票系统专业:计算机科学与技术班级:姓名:完成时间:目录第一部分:源程序(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页)第一部分:源程序#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 1000typedef 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;}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();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 . . .");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");/*调用显示一个记录的函数*/}}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;}}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");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!");}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(){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.退票");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 choice again:");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);}}int main(){menu();}YYYYYYYYNY NYNNNNN NNN第二部分:函数流程图 (1)menu()函数开始输出目录输出nif n<1||n>8While(w==1)输出n(1-8)结束n=1n=2 n=5 n=6 n=4n=3 n=7 n=8 航班操作浏览输入新航班退出清屏(cls)int n,w1订票退票保存载入w1=1w1=012/26/2014 第14页YN(2)enter 函数开始 请输入航班的数目n请输入第n 次航班记录请输入数据mi<n结束 调用input()函数i=0清屏(cls)int i返回menu() i++YNYNNY(3)Order函数开始i<n结束j<nstrcmp(ti[i].data,ti[j].data)>0j++s=ti[i]; ti[i]=ti[j] ti[j]=s调用browse()j=i+1i=0清屏(cls )int i,ji++(4)input 函数开始请输入航班代号请输入航班的票价请输入降落地点请输入起飞地点请输入起飞时间请输入航班的最大载客人数结束返回menu()NY(5)browse 函数开始 i<n结束调用printf_one(i)i++i=0清屏(cls)int i返回menu()输出Y YNY N(6)Search_time 函数结束m++(m!=0)&&(m%10==0)调用函数printf_one()回车换行i++返回menu1()i=0清屏(cls)int i,m输入时间按任意键继续进行S==ti[i]i<nY YNY(7) Search_end 函数S==ti[i]i<n结束输入要到达的地方按任意键继续进行回车换行(m!=0)&&(m%10==0)m++调用函数printf_one(i)i++返回menu ()i=0清屏(cls)int i ,mYYYN NY(8)search 函数开始结束输入起飞,降落地点和时间i<ns trcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPla ce,ti[i].EnPlace)==0&&strck==-1i++返回search()=k输出“NO exist!”返回sear c h()=-1 i=0清屏(cls)k=-1int i,k跳出(break )调用printf_one(k)k=iN Y NNNYNY YY Y(9)void menu1函数开始 输出目录2 输出n(1-4) if n<1||n>4 while(w1==1)结束输出nn=1n=4n=3 n=2int n,w1 清屏(cls ) serch_end ()search_time()order()w1=0w1=1 menu()YNNY(10)book 函数开始输出“欢迎进入售票窗口”i!=-1ti[i].num>=ti[i].max结束输出“该客运不存在!”ti[i].num++返回menu()i=search()清屏(cls)int i输出“该趟客运票已售完”输出 “订票成功”YNYNNY(11)back函数开始 输入“欢迎进入退票窗口”输入“输入客运代号” i<nstrcmp(s.ID,ti[i].ID)==0结束k==-1menu()i=0 清屏(cls )int i,k=-1调用printf_one(k)k=iti[i].num--i++ 输出 “退票成功!”输出 “NOexist!”NYNNYYYN(12)save 函数开始结束int w=1, FILE*fp,i清屏(cls)i++w=0i=0(fp=fopen("\\ticket.tx t","wt"))==NULLi<nfwrite(&ti[i],sizeof(struct plane),1,fp)!=1plane),1,fp)!=1w==1调用fclose(fp)返回menu()输出“Cannot open file ”输出“file saveok!”输出“file writeerror ”NYNYNYload 函数(13)开始结束FILE*fp int i,w=1清屏(cls)FILE*fp int i,ww=0(fp=fopen("\\ticket.txt","rt "))==NULL返回(fp=fopen("\\ticket.tx t","rt"))==NULLn=n-1fread(&ti[i],sizeof( struct plane),1,fp)n++i=0!feof(fp)fclose(fp)w==1返回menu()i++n=0输出“Cannotopenfile ”输出“Load file ok!”第三部分:心得体会通过对C语言课程设计的学习,自己有很大的收获,将<<C语言>>应用得到了实践,将所学的各种语句紧密的联系起来,得到了融汇和贯通,使我对C语言有了更深一步的学习和认识。

相关文档
最新文档