C语言课程设计报告 火车售票查询系统(完)_火车订票系统课程设计
C语言课程设计报告 火车售票查询系统(完)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“火车订票系统课程设计”。
湖北工业大学
工程技术学院
课程设计报告书
课程名称:
C语言课程设计
班
级:
物联网一班
小组成员: 范立恒、陈根、聂俊豪、麦灿文、黄文康
组
长:
范立恒
指导教师:
楚惟善
二○一三 年 六 月
C语言课程设计实验报告课程题目及要求及要求
题目一:火车售票系统
任务:结合C语言中相关知识,设计出火车售票系统。录入北京西站车次信息; 2 旅客按车次买票;统计某日火车票销售金额。
程序要求:
贯彻结构化的程序设计思想。
用户界面友好,功能明确,操作方便。
用户界面中的菜单至少应包括“车次信息录入”、“旅客买票”、“统计某
日销售 金额”、“退
出”4项。
代码应适当缩进,并给出必要的注释,以增强程序的可读性 为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;
根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。
程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和程序分设计说明
经过对程序设计题目的分析可知,整个程序的设计实现大致分为八个模块,每一个模块对应一个函数。在这些函数当中,添加车次数据函数,售票函数,查询总额函数的实现严格按照题目的要求,而显示时间函数和显示车次函数属于附加功能。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1.添加车次函数
主要实现程序最初运行时车次的录入;
C语言课程设计实验报告
(1)添加学生数据函数add 真以追加方式打开E盘student.txt文件成功?假假输出文件打开失败以追加方式打开E盘student.txt文件成功?真输入添加学生数量n循环变量i=1当i
返回
(2)读取学生数据函数reads 真以读方式打开E盘student.txt文件成功?假循环变量i=0当文件未结束时读取学生信息到数组元素stu[i]中i++关闭文件返回学生人数i图3读取学生数据
输出文件打开失败返回
(3)删除学生记录函数del
C语言课程设计实验报告
n=reads(stu)循环变量i=0当i
j++图5按总分排
4.程序清单
本程序主要由九个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加学生数据函数、删除数据函数和排序函数是程序中较为核心的部分,下面分别进行说明。1.录入车次信息函数
录入车次信息,首先由程序创建一个新文件,并将录入的车次信息写入该文件(e: rain.txt)当中。具体的程序段如下:
if((fp=fopen(“e: rain.txt”,“a”))==NULL)//如果文件已经存在,可以追加车次信息
{
if((fp=fopen(“e: rain.txt”,“w”))==NULL)// 文件不存在时,创建新文件,输入车次信息
{
C语言课程设计实验报告
scanf(“%d”,&j);
tra[i].maipiao=tra[i].maipiao+j;
printf(“n购买成功n”);
printf(“n%12d%11d%11s%11s%11d%11.2fn”,tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);
save(tra,n);3.查询销售总额
对于也使用比较日期的方法实现的,这部分程序仍然调用了reads函数,整个排序过程在文件中实现,然后用for循环进行运算,把查询这一天的总额算出。
具体程序如下:
if((fp=fopen(“e: rain.txt”,“r”))==NULL)
{ printf(“读取错误,不能打开该文件!n”);
return;} else
for(i=0;i
fscanf(fp,“ %d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);
printf(“请输入你要查询的日期:n”);
scanf(“%d”,&temp.date);
for(i=0;i
C语言课程设计实验报告
知识并在此基础上对数据结构的特点和算法有了更深的了解,C语言是计算机程序设计的重要理论技术基础,它不仅是计算机科学的核心课程,而且已经成为其他理工专业的热门选修课。在计算机的研究和应用中已展现出强大的生命力,它兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性,同时这两周的学习也提高了我适应实际,实践编程的能力.黄文康:首先这一周的学习,使我在巩固了原有的理论知识上,培养了我灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力,使我体会到自身知识和能力在实际中的应用和发挥。其次,激发了我创新意识,开发创造的能力和培养沟通能力。另外,让我进一步熟悉了数据结构的设计应用。每一处编码都是在反复的熟悉数据结构的结构特性,及其语法、函数和程序设计思想的过程,对我数据结构的学习和提高很有益处,并且使我明白了程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:第一要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;第二,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的数据结构的基本类型——线性表、栈、队列、串、数组、树和二叉树以及图等,然后确定处理过程——算法,可得最后结论。最后,在这次课程设计过程中,我们深刻的认识到了自己在学习方面的不足之处,我们知道我们还有太多的基本的思想没有真正的理解,当然我们不会灰心,我们会在以后的日子里努力弥补我们的不足。
麦灿文:一个礼拜的课程设计让我们受益匪浅。要学好一门学科,没有刻苦钻研的精神是不行的,只有在不断的尝试中,不断经历失败,然后又不断的尝试才能获得成功。两个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。一个礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我们不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题。
对于我本人来讲这次课程设计的总体表现,我自己还比较满意,每天做到了按时的出勤,上机遵守机房的管理规定,遵循指导老师的安排并能适时地与老师进行沟通,觉得不足的是不能熟练地掌握c语言的设计技巧使编程的结果缺乏效率,不过我相信这只是我的一个开始,我更应该注重的是这次过程,我坚信我会在以后的学习和训练中不断地弥补自己的不足之处,不断的完善自己的编程能力,因为成功需要一点一点积累。
0
C语言课程设计实验报告
} void menu(){ printf(“
************************* 武昌站火车订票系统************************ ”);
printf(“n 显示当前时间”);
printf(“n 车次信息录入”);
printf(“n 显示”);
printf(“n 旅客买票”);printf(“n 统计某日销售金额”);
printf(“n 退出”);} int reads(struct train tra[N])// 读取车次中的内容 {
FILE *fp;
int i=0;
if((fp=fopen(“e: rain.txt”,“r”))==NULL){
printf(“文件打开失败!n”);
return 0;}
else {
for(i=0;!feof(fp);i++)
fscanf(fp,“%d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);
}
fclose(fp);
return i;} void save(struct train tra[N],int n)// 车次信息改变后更新文件 { FILE *fp;
int i=0;
if((fp=fopen(“e: rain.txt”,“w”))==NULL){
printf(“文件打开失败!n”);
return;}
else {
for(i=0;i
C语言课程设计实验报告
getch();}
void sell()// 按顾客要求对车次信息卖票 {
struct train tra[N];
int num,n,j;
int i;
n=reads(tra);
printf(“n请输入待查询的车次号,按回车键确认:n”);
scanf(“%d”,&num);
for(i=0;i
if(num==tra[i].num)break;
if(i>=n)
{
printf(“没有找到该车次信息!n”);
return;
}
else
printf(“n请输入所买票数,按回车键确认:n”);
scanf(“%d”,&j);
tra[i].maipiao=tra[i].maipiao+j;
printf(“n购买成功n”);
printf(“n%12d%11d%11s%11s%11d%11.2fn”,tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);
save(tra,n);} void all()//统计销售金额 { struct train tra[N],temp;float sum=0;FILE *fp;int i,j=0;if((fp=fopen(“e: rain.txt”,“r”))==NULL)
{ printf(“读取错误,不能打开该文件!n”);
return;} else
for(i=0;i
fscanf(fp,“ %d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);
printf(“请输入你要查询的日期:n”);
C语言课程设计实验报告
4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施
5、源程序清单和执行结果(光盘):清单中应有足够的注释
二、具体安排:
学生以2—6人为一组,共同完成一个题目,选出一个组长负责分工和管理,共同完成总体框架设计,然后每个学生分工独立完成各自的功能模块的编程,最后要能集成并测试通过。
每组要以光盘形式上交C源文件和可执行文件(放在组长文件袋中,其他成员在报告本中写明源程序在哪个同学的文件袋中)
(注:课程设计报告统一使用学院规定的课程设计报告本和文件袋)
三、备注
每个人可自行附加模块设计心得
及所发现的问题及解决方法
《C语言课程设计报告
火车售票查询系统(完)》的word文档中1.、2、3、4、7是统一一样的你们需要另外说明 哪个版块是你设计的OK)