C语言程序设计课程实践报告.doc_第1页
C语言程序设计课程实践报告.doc_第2页
C语言程序设计课程实践报告.doc_第3页
C语言程序设计课程实践报告.doc_第4页
C语言程序设计课程实践报告.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计课程实践火车时刻表学号姓名1: 学号姓名2: 完成日期: 年 月(5号宋体)1. 题目描述火车时刻表包含车次、始发站、终点站、发车时间、到达时间、车种、票价。功能:建立列车时刻表车次的调配:新增加车次;对原有车次的调整。查询:显示整个列车时刻表,要求:按始发站排序,始发站相同按终点站排序。查询某个车次;查询由某个始发站始发的列车;查询由A出发到B的所有车次。统计:统计各车种的数量。该程序应该具有下列功能:(1) 通过键盘输入某次列车的始发站、终点站、发车时间、到达时间、车种、票价;(2)通过键盘能够对原有的车次进行调整,新增加车次,进行车次的调配; (3)能够显示整个列车时刻表,并按始发站排序,若始发站相同按终点站排序; (4) 给定某个车次,能够显示该车次的始发站、终点站、发车时间、到达时间、车种、票价的信息;(5) 给定某个车次,能够查询由某个始发站始发的列车;查询由A出发到B的所有车次;(6) 提供统计各车种的数量的功能。2. 题目要求(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2) 列车信息应该包含:车次、始发站、终点站、发车时间、到达时间、车种、票价;(3) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。(4) 作业完成情况应该存储在文件中。3. 主要函数和变量描述函数名功能描述参数和返回值的意义Read建立列车时刻表读取列车时刻表参数(STRU_TRAIN * pRet,STRU_TRAIN * pItem)链表头指针;参数(int nRead) 待录入列车时刻表;无返回值变量名数据类型主要功能隶属函数pRetpItem STRU_TRAIN *结构体指针变量ReadnReadint录入列车时刻表数据Read函数名功能描述参数和返回值的意义Save保存列车时刻表参数(STRU_TRAIN * pHead, const char * filename)链表头指针;无返回值变量名数据类型主要功能隶属函数pheadchar定义名称全局变量函数名功能描述参数和返回值的意义fopen打开一个名为filename的文件参数(STRU_TRAIN * pHead, const char * filename)链表头指针;无返回值变量名数据类型主要功能隶属函数pheadchar定义名称全局变量函数名功能描述参数和返回值的意义freeTrain释放链表参数(STRU_TRAIN * pHead)链表头指针;无返回值变量名数据类型主要功能隶属函数pNext STRU_TRAIN *结构体指针变量freeTrain函数名功能描述参数和返回值的意义Add新增加车次参数(STRU_TRAIN * pHead)链表头指针变量名数据类型主要功能隶属函数pItemSTRU_TRAIN *结构体指针变量addnReadint存放新增加的列车时刻表数据add函数名功能描述参数和返回值的意义Show显示列车时刻表参数(STRU_TRAIN * pHead)链表头指针;无返回值变量名数据类型主要功能隶属函数pheadchar定义名称全局变量4. 主要模块的算法描述(至少给出两个子功能流程);5. 程序的源代码清单#include #include #include #define MAX_STRING 80/*定义本程序中字符串最大长度*/typedef struct STRU_TRAINchar trainIdMAX_STRING;/*车次*/char beginStationMAX_STRING;/*始发站*/char endStationMAX_STRING;/*终点站*/char beginTimeMAX_STRING;/* 发车时间*/char endTimeMAX_STRING;/*到达时间*/char trainTypeMAX_STRING;/*车种*/int price;/* 票价*/struct STRU_TRAIN * pNext;/*链表指针*/STRU_TRAIN;STRU_TRAIN * read(STRU_TRAIN * pHead, const char * filename)STRU_TRAIN * pRet = pHead;STRU_TRAIN * pItem = NULL;int nRead = 0; /*一行有7个数据*/FILE * fp = fopen(filename, rb);if (fp != NULL)while(1)pItem = (STRU_TRAIN*)malloc(sizeof(STRU_TRAIN); /存放一条记录memset(pItem, 0, sizeof(STRU_TRAIN);nRead = fscanf(fp, %s %s %s %s %s %s %d , pItem-trainId,pItem-beginStation, pItem-endStation, pItem-beginTime,pItem-endTime, pItem-trainType,&pItem-price);if(nRead != 7)/*读到文件结尾了,退出*/free(pItem);break;/建立链表if(pHead = NULL)pHead = pItem;pRet = pHead;elsepHead-pNext = pItem;pHead = pItem;fclose(fp);fp = NULL;return pRet;/保存列车时刻表int save(STRU_TRAIN * pHead, const char * filename)FILE * fp = fopen(filename, wb);if (fp != NULL)while(pHead != NULL)fprintf(fp, %s %s %s %s %s %s %d , pHead-trainId,pHead-beginStation, pHead-endStation, pHead-beginTime,pHead-endTime, pHead-trainType,pHead-price);pHead = pHead-pNext;fclose(fp); /*关闭fp指向的文件句柄,防止句柄泄露*/return 0;/释放链表(防止内存泄漏) void freeTrain(STRU_TRAIN * pHead)while(pHead != NULL)STRU_TRAIN * pNext = pHead-pNext;free(pHead);pHead = pNext;/新增加车次STRU_TRAIN* add(STRU_TRAIN * pHead)STRU_TRAIN* pItem = (STRU_TRAIN*)malloc(sizeof(STRU_TRAIN);/*存放一条记录*/int nRead = 0;memset(pItem, 0, sizeof(STRU_TRAIN);printf(Input trained beginStation endStation beginTime endTime trainType price n);nRead = scanf(%s %s %s %s %s %s %d, pItem-trainId,pItem-beginStation, pItem-endStation, pItem-beginTime,pItem-endTime, pItem-trainType,&pItem-price);if (nRead != 7)printf(Input information error, form: trained beginStation endStation beginTime endTime trainType price n);free(pItem);return pHead;/*输入格式有错*/pItem-pNext = pHead; /*在链表头上添加一条记录*/return pItem;/删除车次/对原有车次的调整/显示整个列车时刻表void show(STRU_TRAIN * pHead)while(pHead != NULL)fprintf(stdout, %s %s %s %s %s %s %dn, pHead-trainId,pHead-beginStation, pHead-endStation, pHead-beginTime,pHead-endTime, pHead-trainType,pHead-price);pHead = pHead-pNext;/查询某个车次/查询由某个始发站始发的列车/查询由A出发到B的所有车次/统计各车种的数量int main()STRU_TRAIN * pTrain =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论