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

车票管理系统课程设计报告车票管理系统课程设计报告车票管理系统一目的通过课程设计,加深对《C语言程序设计》和《数据结构》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力二需求分析1、首先本演示程序要实现录入班次信息的功能,并且要用文件来保存这些信息,还可以不定时的增加班次数据。
2、需要浏览班次信息是可以一次性输出当前的班次状况,并且要从实际考虑,若当前系统时间已经超过了某班次的发车时间,则要显示“此班已发出”的提示信息。
3、此程序既为车票管理系统,就要实现查询路线、售票、退票等功能。
当使用查询路线功能时,要分两种情况:按班次号查询和按终点站查询。
若使用售票功能,则只有在查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,并且要自动跟新已售票人数。
退票要输入退票的班次,当本班车尚未出发时才能退票,也要自动更新已售票人次。
4、演示程序以用户和计算机的对话方式执行,即在计算机的屏幕上显示“提示信息”下,用户根据自己的意愿自行操作,每次测试完毕,新增加的班次信息要保存在data.txt文件中。
三概要设计1、本程序各个模块的功能及调用关系:(1)主程序模块main()函数:车票管理系统课程设计报告此主程序的主要目的是用来调用读取文件函数、功能菜单函数以及保存文件信息函数。
(2)文件读入与保存函数read()、save()以及功能菜单MainMenu()函数:这三个函数的主要目的是为了读取文件,保存文件和为用户创造一个功能菜单以便于用户的操作。
C语言课程设计报告书-火车票务管理系统

延边大学工学院C语言课程设计报告书题目:火车票务系统(A)班级:学号:姓名:指导教师:二○○九年七月一.系统功能的总体描述本系统要求实现火车票务基本信息的查询,订票、售票、退票、车次查询等。
功能要求实现:火车票的基本信息:符合条件的车次名称、开时、到时、历时、里程、票价(硬座、软座、硬卧(上、中、下)软卧(上、中、下))车次类型、站名的查询显示,统计,添加(新加车次)、更改(售出票后需修改所剩票数)和删除(已发车次信息)等。
二、系统基本功能本系统可实现火车票务信息的管理和查询等功能。
它的基本功能是建立火车票信息链表,存储火车票的基本信息,实现对已有车次票务的查询、预订、售票、退票等业务的保存、修改等。
软件输出输入形式:软件提示信息丰富、容易理解,重点是依据火车票务的特点有明显的即时性和快速性。
测试数据要求:本系统的测试数据当输入想要到达的目的地信息时输出符合的车次、到站时间、开车时间以及终到站时间,车次名称、开时、到时、历时、车次类型、站名必须用字符串数据;里程、车票剩余情况、票价情况必须用整型数据。
对车票的基本信息进行查找时按目的地、时间和车次三种查找方式查找。
测试数据要有即事性、快速性。
三、系统具体分析(一)所需的功能1 输入功能:录入目的地信息2 输出功能:查看所查信息3 查询功能:查询符合车次及相关信息4修改功能:更新系统信息5 删除功能:对已发车辆信息删除6 票务功能:负责售票和退票业务7安全功能:负责管理员密码审核、修改等安全(二)系统功能模块划分(三)各模块的功能描述——主菜单模块功能————子菜单模块功能描述——(四)函数调用过程四、系统核心算法1、ccchanxun函数——通过车次查询列车信息输入:要查询车次输出:相关信息Step1:输入要查询的列车号char[6](在中国列车号有数字和字母组成,最长为5个字符,如:k8371因此为节省内存只需定义6字符长度的数组) Step2:用c与链表中的列车号(*p).lchao相比较判断strcmp((*p).lchao,c)是否等于零,否则进行step3,是则进行step4Step3:令p=p->next,判断p是否指向空节点NULL,若是则转到step2,否则进行step5Step4:显示相关信息(车次名称、开时、到时、历时、票价、车次类型等)Step5:显示未能找到所寻车次ccchanxun函数N-S流程图2、mddcharxun函数——通过目的地查询最终能到达目的地的全部车次,以及全部相关信息输入:要查询目的地输出:相关信息Step1:输入要查询的目的地char[20]Step2:用c与链表中的终到站(*p).zhongdaozhan相比较判断strcmp((*p).zhongdaozhan,m)是否等于零,否则进行step3,是则进行step4Step3:令p=p->next,判断p是否指向空节点NULL,若是则转到step2,否则进行step5Step4:显示相关信息(全部车次名称、开时、到时、历时、票价、车次类型等)Step5:显示未能找到所寻目的地。
c语言车票管理系统实验报告

《车票管理系统》课程设计报告题目:车票管理系统专业:信息与计算科学班级: 1002 学号:姓名:陈婉璐包忠材邱振涛指导教师:吴选忠熊保平完成日期: 2011年12月23日一、课程设计目的本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。
设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。
通过这次设计,要在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
二、课程设计内容一.系统的主要功能:1.浏览班次信息2.查询班次:①按班次查询;②按终点查询;3.售票(1)售票成功(当车票有剩余,且车未发出时)(2)班次不存在(3)票已售完(当座位数小于等于已定票人数)(4)车已发出4.退票退票成功(输入的班次号存在且当前时间比发车时间早)退票失败(班次不存在或当前时间比发车时间晚)三、课程设计过程1.需求分析(1) 输入的形式和输入值的范围;录入的班次信息的输入形式和输入值的范围:车次(类型:int)发车时间小时(类型:int [0,24])发车时间分钟(类型:int [0,60])起始站及终点站(类型:void wap(int k))行车时间(类型:float times(int k))额定票数(类型:number(int k))已定票人数(类型:nownumber(int k,int i))(2) 输出的形式;printf(3) 程序所能达到的功能;①录入详细的班次信息(发车时间,起点,终点站,行车时间,额定票数,订票人数,是否已发车……);②浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
课程设计报告_车票管理系统

湖南工业大学课程设计(实训)资料学院计算机学院2018-2019 学年第 1 学期课程名称面向过程程序设计(C语言)课程设计指导教师xxx 学生姓名xxx 专业班级计算机类xxx 学号xxx题目车票管理系统起止日期2019 年12 月23 日~2019 年 1 月 2 日目录清单课程设计(实训)任务书学院:计算机学院学生姓名:xxx 专业班级:xxx课程名称:面向过程程序设计(C语言)课程设计设计题目:车票管理系统完成期限:自2018 年12 月23 日至2019 年 1 月 2 日共1周指导教师(签字):年月日系(教研室)主任(签字):年月日课程设计(实训)报告课程名称:面向过程程序设计(C语言)课程设计题目:车票管理系统起止日期:2018 年12 月23 日至2019 年1 月2 日学院计算机学院学生姓名xxx班级计算机类xxx学号xxx成绩指导教师(签字)2019 年1 月目录1 课题简介 (5)1.1系统简介 (5)1.2开发环境及开发工具 (5)2 问题分析 (6)2.1需求分析 (6)2.2问题分析 (7)2.3系统中涉及到的相关算法 (8)3 系统设计 (10)3.1系统功能设计 (10)3.2系统的功能分析 (12)4 系统的实现 (13)4.1系统主函数设计 (13)4.2录入和增加班次模块 (14)4.3查询和浏览模块 (18)4.4售退票模块 (23)5 系统测试 (27)5.1软件测试 (27)5.2系统有效性 (27)6 设计总结 (27)参考文献 (28)1 课题简介1.1系统简介通过这次系统开发的经历,通过查询各种书籍以及网上视频去学会怎样灵活地去运用C语言设计编写一些小功能函数,并且结合课上所学的的知识,将呆板的文字知识变成实际的动手能力,通过编写课程设计,去体会逻辑思维和设计算法能力的重要性,并且要知道编写代码应该思路清晰,格式整齐,简单易懂为主。
我也需要去发现所学知识中的漏洞,并且及时翻找资料完善不足以提高自身水平、完善自身。
车票管理系统C语言课程设计报告实验报告

.东华理工大学C语言课程设计题目名称车票管理系统程序设计姓名刘韬学号201520150133班级1521501指导教师徐猛华编写日期2016年1月目录第一章、设计任务需求分析 (2)1、目标;2、要求;3、学生成绩管理系统;第二章、总体设计 (2)1、采用的基本思想及完成过程;2、遇到的问题和解决的方法;3、程序设的流程图;第三章、所负责部分详细设计 (4)1、程序所需函数;2、明确分工各组员所负责的模块;3,函数功能及参数的意义;4、模块功能说明;第四章、程序运行结果测试 (7)1、录入班车信息;2、浏览班车信息;3、按班次查询;4、按终点站查询;5、订票;6、退票;7、退出系统;第五章、结论与心得 (10)第六章、致谢 (10)第七章、附录 (11)正文第一章、设计任务需求分析1、目标:(1)掌握和利用C语言进行程序设计的能力。
(2)理解和运用结构化程序设计的思想和方法。
(3)学会调试一个较长程序的基本方法。
(4)掌握书写程序设计开发文档的能力(书写课程设计报告)。
2、要求:该系统需实现的功能有(1)录入班次信息(信息用文件保存),可不定时地增加班次数据。
(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(3)查询路线:可按班次号查询,可按终点站查询(4)售票和退票功能:A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。
B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。
3、学生成绩管理系统:程序执行出一个有好的人机界面,供人合理的操作,完成浏览查询、退订票以及自动更新的功能。
第二章、总体设计1、采用的基本思路:改程序设计采用的思路是利用结构体存放车辆信息,车辆的信息有操作人员录入,录入完成后,通过菜单的提示进行相应的操作,不同的模块采用不同的算法进行管理,主要采用的头文件有:#include<stdio.h>,#include<stdlib.h>,#include<string.h>,# define size 4。
火车票系统(C语言)【报告版-带截图】

一、课题内容和要求设计目标:设计一个火车票务管理系统,用C语言实现。
对该系统的要求如下:需求描述:1.系统功能(1)火车时刻信息录入。
包括车次、日期、起点、终点、开车时间、到达时间、票价。
数据存入数据文件hchsk.dat或hchsk.txt中。
(2)火车时刻信息查询。
按照车次查询按终点查询按起点查询按终点和日期查询(3)统计按终点统计每日的车次数按起点统计每日的车次数2. 系统主界面应有以下功能选项录入火车时刻信息查询火车时刻信息统计火车车次退出注:建议用VC环境开发用户界面。
结果形式:提交程序设计报告和可演示的系统软件二、需求分析系统主界面应有以下功能选项录入火车时刻信息查询火车时刻信息统计火车车次退出(1)火车时刻信息录入。
包括车次、日期、起点、终点、开车时间、到达时间、票价。
数据存入数据文件hchsk.dat或hchsk.txt中。
(2)火车时刻信息查询。
按照车次查询按终点查询按起点查询按终点和日期查询(3)统计按终点统计每日的车次数按起点统计每日的车次数在该部分中叙述每个模块的功能要求三、概要设计/* 头文件 */#include<stdio.h>#include<string.h>#include<stdlib.h>/* 函数声明 */int MENU(); //菜单模块void INPUT(); //输入模块void SEARCH(); //查询模块void SELECT(); //统计模块void WRITE(); //文件记录模块void PRINT(); //打印模块void READ(); //文件读取模块void WRONG(); //纠错模块/* 宏定义 */#define N 1000 //最大列车组数#define Print " %s%13s%10s%10s%12s%15s%11s\n",T[i].code,T[i].data,T[i].lp,T[i] .ap,T[i].lt,T[i].at,T[i].price //输出记录格式#define Wrong "\n ! ! ! ! ! ! ! ! ! ! ! 输入错误,请重新输入 ! ! ! ! ! ! ! ! ! ! ! \n"#define GeShi " 车次日期起点终点开车时间到达时间票价\n" //输出表头/* 结构定义 */struct Train{char code[10]; //车次char data[10]; //日期char lp[10]; //left place 起点char ap[10]; //arrive place 终点char lt[10]; //left time 开车时间char at[10]; //arrive time 到达时间char price[10]; // 票价}T[N];/* 全局变量 */int i=0; //输入计数器int n=0; //合计计数器char l[20]; //纠错空间四、详细设计/* 头文件 */#include<stdio.h>#include<string.h>#include<stdlib.h>/* 函数声明 */int MENU(); //菜单模块void INPUT(); //输入模块void SEARCH(); //查询模块void SELECT(); //统计模块void WRITE(); //文件记录模块void PRINT(); //打印模块void READ(); //文件读取模块void WRONG(); //纠错模块/* 宏定义 */#define N 1000 //最大列车组数#define Print " %s%13s%10s%10s%12s%15s%11s\n",T[i].code,T[i].data,T[i].lp,T[i].ap ,T[i].lt,T[i].at,T[i].price //输出记录格式#define Wrong "\n ! ! ! ! ! ! ! ! ! ! ! 输入错误,请重新输入 ! ! ! ! ! ! ! ! ! ! ! \n"#define GeShi " 车次日期起点终点开车时间到达时间票价\n" //输出表头/* 结构定义 */struct Train{char code[10]; //车次char data[10]; //日期char lp[10]; //left place 起点char ap[10]; //arrive place 终点char lt[10]; //left time 开车时间char at[10]; //arrive time 到达时间char price[10]; // 票价}T[N];/* 全局变量 */int i=0; //输入计数器int n=0; //合计计数器char l[20]; //纠错空间/////////////////////////////////////////////////////////////////////int main() {int x;do{x=MENU();switch(x){case 1:INPUT(); break;case 2:SEARCH(); break;case 3:SELECT(); break;case 4:printf("\n---------------------------------------");printf("\n 正在退出,请按任意键退出");printf("\n\n 阿哈工作室出品B09020424");printf("\n---------------------------------------\n");break;default:WRONG(); break;}}while(x!=4);return 0;}/////////////////////////////////////////////////////////////////////int MENU(){int choice;system("cls"); //借鉴而来的清屏语句,好用!printf("\n----------------------------------------------\n");printf("----------------------------------------------\n");printf(" --- ---\n");printf(" --- 欢迎进入火车票务管理系统---\n");printf(" --- ---\n");printf("----------------------------------------------\n");printf("----------------------------------------------\n\n");printf(" \n -------------- 请输入选项-------------\n");printf(" 1.录入火车时刻信息\n");printf(" 2.查询火车时刻信息\n");printf(" 3.统计火车车次\n");printf(" 4.退出\n");printf("-----------------------------------------\n");printf(" 请选择: ");scanf("%d",&choice);gets(l);return choice;}///////////////////////////////////////////////////////////////////// //////////////////输入模块void INPUT(){char ch;do{system("cls"); //借鉴而来的清屏语句,好用!printf("\n\n ====================欢迎进入录入火车时刻信息界面====================\n");do{printf("\n 新建列车信息?(y/n) ");scanf("%c",&ch);gets(l);if(ch!='y'&&ch!='n')WRONG ();}while(ch!='y'&&ch!='n');if(ch=='n')break;printf(" ---------------------");printf("\n 录入第%d趟列车信息\n",n+1);printf(" 车次 ");gets(T[i].code);printf(" 日期 ");gets(T[i].data);printf(" 起点 ");gets(T[i].lp);printf(" 终点 ");gets(T[i].ap);printf(" 开车时间 ");gets(T[i].lt);printf(" 到达时间 ");gets(T[i].at);printf(" 票价 ");gets(T[i].price);n++;i++;}while(i<N);WRITE();system("cls"); //借鉴而来的清屏语句,好用!printf("\n");printf("--------------------------------\n");printf(" 系统记载的列车信息如下\n");printf("--------------------------------\n\n");PRINT();}///////////////////////////////////////////////////////////////////// //////////////////文件记录模块void WRITE(){FILE *fp,*fp1;if((fp=fopen("hchsk.txt","w"))==NULL){printf("无法创建文件!\n\n");getchar();return;}if((fp1=fopen("N.txt","w"))==NULL)//用于记录共几趟车{printf("无法创建文件!\n");getchar();return;}for(i=0;i<n;i++)if(fwrite(&T[i],sizeof(struct Train),1,fp)==0)printf("写入数据失败!\n\n");fprintf(fp1,"%d",n);fclose(fp);fclose(fp1);}///////////////////////////////////////////////////////////////////// //////////////////文件读取模块void READ(){FILE *fp,*fp1;if((fp=fopen("hchsk.txt","r"))==NULL){printf("无法打开文件\n");getchar();return;}if((fp1=fopen("N.txt","r"))==NULL){printf("无法打开文件!\n\n");getchar();return;}fscanf(fp1,"%d",&n);fclose(fp1);for(i=0;i<n;i++){fread(&T[i],sizeof(struct Train),1,fp);}fclose(fp);}///////////////////////////////////////////////////////////////////// //////////////////打印模块void PRINT(){char ch[10];READ();printf("\n===================================================================== ======\n");printf(GeShi);for(i=0;i<n;i++)printf(Print);printf("===========================================================================\n");printf("\n 按任意键返回上级菜单: ");gets(ch);}///////////////////////////////////////////////////////////////////// //////////////////查询模块void SEARCH(){char name1[10];//车次char name2[10];//终点char name3[10];//起点char name41[10];//终点char name42[10];//日期char choice;int j;int k;do{system("cls"); //借鉴而来的清屏语句,好用!printf("\n\n ====================欢迎进入查询火车时刻信息界面====================\n");printf("\n ++++++++++++++++++请选择查找方式++++++++++++++++++\n\n");printf(" ----1.显示所有列车信息 2.按车次查询3.按终点查询----\n");printf(" -----4.按起点查询 5.按终点和日期查询6.返回上级菜单----\n");printf("\n 请选择: ");scanf("%d",&j);gets(l);switch(j){case 1:PRINT();break;case 2:printf("\n --- 请输入车次 ---: ");gets(name1);break;case 3:printf("\n --- 请输入终点 ---: ");gets(name2);break;case 4:printf("\n --- 请输入起点 ---: ");gets(name3);break;case 5:printf("\n --- 请输入终点 ---: ");gets(name41);printf("\n --- 请输入日期 ---: ");gets(name42);break;case 6:break;default:WRONG ();break;}READ();k=0;if(j==2){for(i=0;i<n;i++){if(strcmp(T[i].code,name1)==0){printf("\n 按车次查找列车信息成功!\n");printf("\n===================================================================== ======\n");printf(GeShi);break;}}for(i=0;i<n;i++){if(strcmp(T[i].code,name1)==0){printf(Print);k++;}}printf("===================================================================== ======\n");printf("\n --> 共查询到 %d 趟列车信息,请按任意键返回 <-- ",k);gets(l);}if(j==3){for(i=0;i<n;i++){if(strcmp(T[i].ap,name2)==0){printf("\n 按终点查找列车信息成功!\n");printf("\n===================================================================== ======\n");printf(GeShi);break;}}for(i=0;i<n;i++){if(strcmp(T[i].ap,name2)==0){printf(Print);k++;}}printf("===========================================================================\n");printf("\n --> 共查询到 %d 趟列车信息,请按任意键返回 <-- ",k);gets(l);}if(j==4){for(i=0;i<n;i++){if(strcmp(T[i].lp,name3)==0){printf("\n 按起点查找列车信息成功!\n");printf("\n===================================================================== ======\n");printf(GeShi);break;}}for(i=0;i<n;i++){if(strcmp(T[i].lp,name3)==0){printf(Print);k++;}}printf("===================================================================== ======\n");printf("\n --> 共查询到 %d 趟列车信息,请按任意键返回 <-- ",k);gets(l);}if(j==5){for(i=0;i<n;i++){if(strcmp(T[i].ap,name41)==0&&strcmp(T[i].data,name42)==0){printf("\n 按终点和日期查找列车信息成功!\n");printf("\n===================================================================== ======\n");printf(GeShi);break;}}for(i=0;i<n;i++){if(strcmp(T[i].ap,name41)==0&&strcmp(T[i].data,name42)==0){printf(Print);k++;}}printf("===================================================================== ======\n");printf("\n --> 共查询到 %d 趟列车信息,请按任意键返回 <-- ",k);gets(l);}do{system("cls"); //借鉴而来的清屏语句,好用!printf("\n\n -->继续查找(1),返回主菜单(2)<-- ");choice=getchar();gets(l);if(choice!='1'&&choice!='2')WRONG ();}while(choice!='1'&&choice!='2');}while(choice!='2');}///////////////////////////////////////////////////////////////////// //////////////////统计模块void SELECT(){char name1[10];//终点char name2[10];//起点int t,k;char choice;do{system("cls");printf("\n\n ====================欢迎进入统计火车车次界面====================\n");printf("\n -|- -|- -|- -|- 请选择统计方式 -|- -|- -|- -|- \n\n");printf(" 1.按终点统计每日的车次数\n");printf(" 2.按起点统计每日的车次数\n");printf("\n 请选择: ");scanf("%d",&t);gets(l);switch(t){case 1:printf(" 请输入终点: ");gets(name1);break;case 2:printf(" 请输入起点: ");gets(name2);break;default:WRONG();break;}READ();if(t==1){k=0;for(i=0;i<n;i++){if(strcmp(T[i].lp,name1)==0){printf("\n 按终点统计列车信息成功!\n");break;}}for(i=0;i<n;i++){if(strcmp(T[i].lp,name1)==0)k++;}printf("\n --> 共查询到 %d 趟列车信息,请按任意键返回 <-- ",k);gets(l);}if(t==2){k=0;for(i=0;i<n;i++){if(strcmp(T[i].lp,name2)==0){printf("\n 按起点统计列车信息成功!\n");break;}}for(i=0;i<n;i++){if(strcmp(T[i].lp,name2)==0)k++;}printf("\n --> 共查询到 %d 趟列车信息,请按任意键返回 <-- ",k);gets(l);}do{system("cls"); //借鉴而来的清屏语句,好用!printf("\n\n -->继续统计(1),返回主菜单(2)<-- ");choice=getchar();gets(l);if(choice!='1'&&choice!='2')WRONG ();}while(choice!='1'&&choice!='2');}while(choice!='2');}///////////////////////////////////////////////////////////////////// //////////////////纠错模块void WRONG(){system("cls"); //借鉴而来的清屏语句,好用!printf("\n\n ---> ! ! ! 输入错误,请按任意键返回 ! ! ! <--- ");gets(l);}五、测试数据及其结果分析1、菜单模块-选择界面:1、菜单模块-退出2、输入模块2、输入完毕3、查询模块3、查询模块-23、查询模块-43、查询模块-询问3、查询模块-失败4、统计模块-14、统计模块-2 4、统计模块询问出错提示六、调试过程中的问题实验中遇到的问题不少,有以下几点:1.本来一开始做程序时候想使用模块化的,但因外部变量总要声明的缘故被取消。
火车票管理系统——C语言程序设计实训报告

题 目: 学生成绩管理系统院 系: 信息科技学院专 业: 计算机科学与技术姓 名: 何荣荣学 号: 1751200204指导教师: 王小琼日 期: 2018年6月28日桂林电子科技大学信息科技学院前 言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。
通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。
C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。
我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。
但是,对于程序设计而言,学习C 的步伐不应该停留于此。
我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。
可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。
本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。
本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。
由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。
c语言实习报告3篇

c语言实习报告3篇c语言实习报告1在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的.学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题 目: 学生成绩管理系统院 系: 信息科技学院专 业: 计算机科学与技术姓 名: 何荣荣学 号: 1751200204指导教师: 王小琼日 期: 2018年6月28日桂林电子科技大学信息科技学院前 言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。
通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。
C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。
我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。
但是,对于程序设计而言,学习C 的步伐不应该停留于此。
我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。
可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。
本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。
本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。
由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。
编者目录1、问题定义 (3)2、系统设计 (3)2.1 总体设计 (3)2.2 详细设计 (5)3、程序测试 (5)4、详细程序 (7)5、归纳总结 (19)5.1 开发经验 (19)5.2 实训中遇到的问题及解决方法 (19)5.3 感想和心得体会 (20)6、参考资料 (20)火车票管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C 语言的文件和单链表的各种基本操作。
本程序中涉及字符数组的使用、字符指针的使用、数据库的设计和文件使用等方面的知识。
通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。
1、问题定义该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。
所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
本火车票管理系统应该具备如下功能:1)录入班次:车次信息包括:班次、发车时间、起点站、终点站、行车时间、额定载量、已售票)2)显示所有班次3)查询班次4)增加班次5)售票6)退票7)修改班次8)(退票)删除班次9)退出2、系统设计2.1 总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。
需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。
可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
void save()保存函数void save()保存函数void load()按班次查询函数void search()查询函数void change()修改函数void quit()退出函数void Ticketorder()售票函数void Ticketdelete()删除函数int menu_select()菜单函数int whether(int)判断时间是否超出函数void find(char s1[],char s2[])查询函数//s1为班次//s2为终点站void deletemessage()删除函数int findnum(char s1[])班次查询函数void get(int,int)修改及增加班次char *menu[]菜单函数。
该系统将这些信息均放在文件d:”车票管理系统0”中。
最后定义main()函数,利用函数调用,实现程序的各种功能。
将其放在系统文件d:”车票管理系统0”中。
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
程序把每种功能分开实现,更简单,实用程序更易理解。
2.2 详细设计主控main()函数执行流程3图3-0 菜单界面如上图所示,该程序为用户提供菜单界面,用户可以对程序的各种功能进行选择,方便用户使用。
选择1-9并按enter键进行操作。
如选择出错,系统将提出警告,并提醒用户重新进行选择。
3.1录入班次功能图3-1输入时的界面如上图所示,该功能实现录入班次信息。
选择1按enter键进入该功能,程序提醒用户输入车次.发车时间.起始站.终点站.行车时间.额定载量.已售票数,输入完毕后按enter键将完成录入班次结果,同时程序将再次提醒用户进行新的选择。
3.2显示所有班次图3-2查询班次界面可以显示所有录入的信息。
3.3查询所有班次功能图3-3选择查询方式的界面该功能将实现程序运行班次的查询。
选择3并按enter键将实现该功能。
分班次和终点站两种方式查询。
3.4增加班次功能图3-4增加班次界面该功能将增加班次信息,帮助用户更新班次信息。
选择4并按enter键将实现该功能,再按提示输入就行。
按任意键返回主菜单。
3.5售票功能图3-5-1选择售票功能界面图3-3-2订票的界面选择5按enter键实现该功能,按任意键关闭程序。
买票程序可提示买票成功否,且自动判断是否可卖。
3.6退票功能图3-6退票界面选择6按enter键实现该功能,按任意键关闭程序。
退票程序可提示退票成功否,且自动判断是否可退。
3.7 修改班次功能图3-7修改界面选择7按enter键实现该功能,按任意键关闭程序。
按提示操作修改班次。
3.8 删除班次功能图3-8删除界面3.9 退出功能图3-9退出界面该功能可退出系统,选择9按enter键实现该功能4、详细程序#include<stdio.h> //宏定义函数#include<string.h> //字符串操作及内存操作函数#include<stdlib.h> //调用系统函数#include<time.h> ///时间库函数#include<conio.h> ///输入输出函数#define N 1000 //宏定义多条记录typedef struct TICKET ////定义新结构体TICKET{char num[10]; //车次编号char hour[3]; //时间:小时char min[3]; //时间:分钟char from[10]; //起始站char to[10]; //终点站float hours; //车程实际时间int max; //最大车载容量int now; //已售票数}CLASS;int class_num=0; //初始班次总数为0CLASS records[N]; // 多条记录int system_time(); //系统时间void NewMessage(); //新纪录*录入函数******void ShowTable1(); //线框调用1,不用每次输void ShowTable2(int i); //线框调用2,不用每次输void Display(); //显示所有函数void add(); //增加记录void save(); //保存函数void load(); //按班次查询函数void search(); //查询函数void change(); //修改函数**void quit(); //退出函数**void Ticketorder(); //售票函数**void Ticketdelete(); //删除函数**int menu_select(); //菜单函数**int whether(int); //判断时间是否超出函数***void find(char s1[],char s2[]); //查询函数//s1为班次//s2为终点站void deletemessage(); //删除函数int findnum(char s1[]); //班次查询函数void get(int,int); //修改及增加班次*char *menu[]={"*****************欢迎使用火车票查询系统*****************", "\n*****************1751200204 何荣荣*********************","\n*******************MENU功能菜单*********************","\n 1. 录入班次","\n 2. 显示所有班次","\n 3. 查询班次","\n 4. 增加班次","\n 5. 售票","\n 6. 退票","\n 7. 修改班次","\n 8. 删除班次","\n 9. 退出"};/**************************主函数*************************/void main(){while(1) //菜单函数循环{switch(menu_select()) //菜单函数*{case 1: NewMessage();break; //新纪录*录入函数******case 2: Display();break; //显示函数****case 3: search();break; //查找函数**case 4: add();break; //增加记录**case 5: Ticketorder();break; //*售票函数***case 6: Ticketdelete();break; //(退票)删除函数*case 7: change();break; //修改函数**case 8: deletemessage();break; //选择调用删除函数case 9: quit();break; //退出函数******}}}/***********************菜单函数**************************/int menu_select() //菜单函数*{char s[5]; //定义要输入的数字功能int c,i;for(i=0;i<11;i++){printf("%s",menu[i]); //输出菜单各项)}i=0;while(c<0||c>9) //判断是否是1到9的命令{printf("\n"); //输出换行printf("******************************************************");printf("\n请选择(1-9):");scanf("%s",s);c=atoi(s); //atoi将字符串转换成一个整数值} ///输出菜单面return c; ////返回请求}/*******************************录入函数************************************/ void NewMessage() //*录入函数*{int i=0,j=5,h;char s[5];FILE *fp; //定义文件型指针变量if((fp=fopen("d:车票管理系统0.dat","rb"))!=NULL) //fopen打开文件{printf("车票信息已经存在请选择4增加功能!\n");printf("任意输入则返回菜单\n");scanf("%s",s);i=1;//通过是1}if(i==0){printf("请输入要录入班次总数:\n");scanf("%d",&class_num); //指向班次指针for(i=0;i<class_num;i++){printf("请输入第%d个班次信息:\n",i+1);h=-1;for(;h!=i;) //循环输出{printf("请输入班次:\n");scanf("%s",records[i].num);for(h=0;h<i;h++)if(strcmp(records[h].num,records[i].num)==0)//判断字符串比较是否相等,待比较的字符串{printf("输入错误!该班次已存在!\n");break; //返回}}get(i,j); //修改及增加班次*j=5;}save(); //调用保存函数}}/*******************************显示所有函数********************************/ void Display() //显示所有函数{int i,j;load(); // 调用按班次查询函数ShowTable1(); //线框调用1,不用每次输for(i=0,j=0;i<class_num;i++,j+=2) /////按班次顺序输出{printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");if(whether(i)) //判断时间是否超出函数***printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",records[i].num,records[i].hour, records[i].min,r ecords[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);elseprintf("|%10s| 已发车|%10s|%10s|%8.1f|%8d|%8d|",records[i].num,records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);}ShowTable2(j); //线框调用2printf("\n按任意键继续....\n");getch(); /////从控制台读取一个字符,但不显示在屏幕上}/**********************************打印表头***********************************************/void ShowTable1() //线框调用1,不用每次输{int i=2;printf("**************************MESSAGE车程信息**********************************\n");printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");printf("\n| 班次| 发车时间| 起点站| 终点站|行车时间|额定载量| 已售票|\n");}/***************************************打印表尾************************************************/void ShowTable2(int i) //线框调用2,不用每次输。