火车票管理系统——C语言程序设计实训报告2.docx

上传人:wj 文档编号:66208 上传时间:2023-04-28 格式:DOCX 页数:20 大小:361.63KB
下载 相关 举报
火车票管理系统——C语言程序设计实训报告2.docx_第1页
第1页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第2页
第2页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第3页
第3页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第4页
第4页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第5页
第5页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第6页
第6页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第7页
第7页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第8页
第8页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第9页
第9页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第10页
第10页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第11页
第11页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第12页
第12页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第13页
第13页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第14页
第14页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第15页
第15页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第16页
第16页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第17页
第17页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第18页
第18页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第19页
第19页 / 共20页
火车票管理系统——C语言程序设计实训报告2.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

火车票管理系统——C语言程序设计实训报告2.docx

《火车票管理系统——C语言程序设计实训报告2.docx》由会员分享,可在线阅读,更多相关《火车票管理系统——C语言程序设计实训报告2.docx(20页珍藏版)》请在冰点文库上搜索。

火车票管理系统——C语言程序设计实训报告2.docx

实训报告

C语言程序设计

题目:

学生成绩管理系统

院系:

信息科技学院

专业:

计算机科学与技术

姓名:

何荣荣

学号:

 04

**** ***

日期:

2018年6月28日

 

桂林电子科技大学信息科技学院

前言

课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。

通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。

C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。

我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。

但是,对于程序设计而言,学习C 的步伐不应该停留于此。

我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。

可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。

本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。

本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。

由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。

编者

 

火车票管理系统

本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。

本程序中涉及字符数组的使用、字符指针的使用、数据库的设计和文件使用等方面的知识。

通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。

1、问题定义

该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。

所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。

通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。

本火车票管理系统应该具备如下功能:

1)录入班次:

车次信息包括:

班次、发车时间、起点站、终点站、行车时间、额定载量、已售票)

2)显示所有班次

3)查询班次

4)增加班次

5)售票

6)退票

7)修改班次

8)(退票)删除班次

9)退出

2、系统设计

2.1 总体设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。

需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。

可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。

车票管理系统软件的功能模块有:

(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。

(2)接受用户输入的功能项,按enter键结束输入并将进入该系统,其需要的结果显示出来,方便用户查看。

(3)完成每次功能,可保存用户的修改的信息,及时更新文件信息。

下次查询时内容为最新信息。

实时的信息更新对比等。

一个名TICKET的结构体进行定义,包括num[10] hour[3]; min[3] from[10];to[10]; hours max;now;等结构体成员。

然后对调用函数进行定义。

intsystem_time()系统时间

voidNewMessage()新纪录录入函数

voidShowTable1()voidShowTable2(inti)线框调用1和2不用每次输

voidDisplay()显示所有函数

voidadd()增加记录

voidsave()保存函数

voidsave()保存函数

voidload()按班次查询函数

voidsearch()查询函数

voidchange()修改函数

voidquit()退出函数

voidTicketorder()售票函数

voidTicketdelete()删除函数

intmenu_select()菜单函数

intwhether(int)判断时间是否超出函数

voidfind(chars1[],chars2[])查询函数车时间.起始站.终点站.行车时间.额定载量.已售票数,输入完毕后按enter键将完成录入班次结果,同时程序将再次提醒用户进行新的选择。

显示所有班次

图3-2查询班次界面

可以显示所有录入的信息。

查询所有班次功能

图3-3选择查询方式的界面

该功能将实现程序运行班次的查询。

选择3并按enter键将实现该功能。

分班次和终点站两种方式查询。

增加班次功能

图3-4增加班次界面

该功能将增加班次信息,帮助用户更新班次信息。

选择4并按enter键将实现该功能,再按提示输入就行。

按任意键返回主菜单。

售票功能

图3-5-1选择售票功能界面

图3-3-2订票的界面

选择5按enter键实现该功能,按任意键关闭程序。

买票程序可提示买票成功否,且自动判断是否可卖。

退票功能

图3-6退票界面

选择6按enter键实现该功能,按任意键关闭程序。

退票程序可提示退票成功否,且自动判断是否可退。

修改班次功能

图3-7修改界面

选择7按enter键实现该功能,按任意键关闭程序。

按提示操作修改班次。

删除班次功能

图3-8删除界面

退出功能

图3-9退出界面

该功能可退出系统,选择9按enter键实现该功能

4、详细程序

#include<> 录入班次 ",

"\n2. 显示所有班次 ",

"\n3. 查询班次 ",

"\n4. 增加班次 ",

"\n5. 售票 ",

"\n6. 退票 ",

"\n7. 修改班次 ",

"\n8. 删除班次 ",

"\n9. 退出 "};

/**************************主函数*************************/

voidmain()

{

while

(1) um);

for(h=0;h

if(strcmp(records[h].num,records[i].num)==0)

um,records[i].hour,

records[i].min, records[i].from,records[i].to,records[i].hours,

records[i].max,records[i].now);

else

printf("|%10s| 已发车 |%10s|%10s|%|%8d|%8d|",records[i].num,

records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);

}

ShowTable2(j);..\n");

getch(); 按班次查询\n");

printf("2. 按终点站查询\n");

printf("3. 退出\n");

printf("请选择(1-3):

\n");

scanf("%d",&i);

load();..\n");

getch(); um)==0||strcmp(s2,records[i].to)==0)

um,records[i].hour,records[i].min,

records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);

h+=2;

if(m==1)

break;

}

ShowTable2(h); 增加班次\n");

printf("2. 返回\n");

printf("请选择(1-2)\n");

scanf("%d",&i);

if(i==1)

{

printf("1. 请输入要增加的班次:

\n");

scanf("%s",records[class_num].num);

for(i=0;i

if(strcmp(records[class_num].num,records[i].num)==0)

售票\n");

printf("2. 返回\n");

printf("请选择(1-2):

\n");

scanf("%d",&i);

if(i==1)

{

load();um)==0)ax>records[i].now&&whether(i)==1)

ow++;o,records[i].num);

save(); 退票\n");

printf("2. 返回\n");

printf("请选择(1-2)\n:

");

scanf("%d",&i);

if(i==1)

{

load();um)==0)ow--; 删除班次\n");

printf("2. 返回\n");

printf("请选择(1-2):

\n");

scanf("%d",&i);

if(i==1)

{

printf("请输入要删除的班次:

\n");

scanf("%s",num);

i=findnum(num); um)==0) um,records[i].hour,

records[i].min,records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);

h+=2; at","wb"))==NULL) at","rb"))==NULL)

{

printf("文件打开错误!

\n");

getch(); our,records[i].min);

if((atoi(records[i].hour)<24&&atoi(records[i].hour)>=0)&&(atoi(records[i].min)<60&&atoi(records[i].min)>=0))

break; else

{

printf("输入错误!

\n");

getch(); rom);

printf("请输入终点站:

\n");

scanf("%s",records[i].to);

printf("请输入行车时间:

\n");

scanf("%f",&records[i].hours);

printf("请输入额定载量:

\n");

scanf("%d",&records[i].max);

for(;;)

{

printf("请输入已售票数:

\n");

scanf("%d",&records[i].now);

if(records[i].now<=records[i].max)

break;

else

{

printf("输入错误!

\n");

getch(); our)||local->tm_hour==atoi(records[i].hour)&&local->tm_min

state0-正常中止非0-非正常

}

5、归纳总结

5.1 开发经验

通过对本题目的开发,体会到要掌握以下几点内容很重要:

1.大程序的设计风格。

按“自顶向下,逐步细化,模块化”的方法进行程序设计。

2.编写主函数,并进行测试与调试。

当被调函数又需要调用其他函数时,也要遵循逐步细化的原则。

C语言提供丰富的库函数,编程序时要善于使用库函数,避免不必要的劳动。

3.文件使用方法。

文件使用完毕后应及时关闭。

4.函数的定义应明确内容。

5.主函数良好的调用会使代码更美观。

5.2 实训中遇到的问题及解决方法

在这次的实训中,主要遇到的问题是

fread(&class_num,sizeof(int),1,fp2); 数据来自给出的输入流. 函数的返回值是读取的内容数量...的意思

打代码过程中,其实重复利用了很多数据,很容易浮躁,幸好有学长的指点,让我们活学活用,自己定义一个新的函数,然后后面需要就直接调用就好了。

5.3 感想和心得体会

通过将近两周的程序设计实习,我首先认识到自己编程水平的有限,还要当初有学好C语言这么课程,其次我也意识到编程是件很严谨的工作,一点点小的错误都会引起不可想象的连锁反应。

实践出真知,我觉得这两个星期的学习,自己收获很大,对我自己来说也是一种锻炼,不仅在一定程度上增长了我对编程的认识,我也学会了团队合作,学会了坐冷板凳一行一行敲代码。

当然,我自己身上依然存在着不少的问题。

比如对于一些难懂的代码,还是参考了网上的程序,比如录入数据的时候一开始不知道怎么让各组信息整齐地排列,以及如何完美的输入输出等。

我们大学生学编程,实践真的是很好的方式,我非常感谢学校给我们安排这样一次珍贵的实习机会,让我们第一次面对问题、解决问题,在实战中真正地提高了自己对编程的理解和编程的能力,真心希望学校多给我们提供这样书本之外的考核和锻炼。

指导老师王老师对我们的严格要求是我们更加努力完成作业,提高自己的打代码水平,并努力真正的成为计算机专业的技术性人才,再次真的非常感谢王老师的鼓励教导!

6、参考资料

[1] 谭浩强 C程序设计教程 北京 高等教育出版社 1992

[2] 耿国华 高级程序设计技术(C语言版)西安电子科技大学出版社 2009

[3] 王骞、陈宇、管马舟 程序设计经典300例

[4] AndrewKoenigAndrewKoenig 《C陷阱与缺陷》

[5] BrianW.Kernighan、DennisM.Ritchie C程序设计语言 第2版·新版

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2