C语言课程设计报告

发布 2022-10-03 03:16:28 阅读 4977

二○一○~二○一一学年第二学期。

信息科学与工程学院。

课程设计报告书。

课程名称: c语言课程设计

班级: 自动化1006

学号: 201003166053

姓名: 孙逊。

指导教师: 尉宇。

二○一一年九月。

目录。1 题目及要求1

1.1题目内容3

1.2设计要求3

1.3设计报告及书写内容要求4

2 程序分设计说明5

2.1概要设计5

2.2流程图5

2.3详细设计6

3 调试与测试8

3.1相关界面显示8

3.2数据测试10

3.3问题及思考11

3.4指导老师的建议13

4 总结14

5 附件:源程序**15

1. 题目及要求。

1.1 题目内容。

任务:自学c语言中相关知识,设计出汽车售票系统。要求如下所述:

每天“武汉火车站→天河机场”有5个班次的汽车(假设),具体的数据格式如下:

班次发车时间载客量已售票数。

为售票员开发一个小程序,以完成每天的“火车站→植物园”的售票业务。要求如下:

1. 能够售票和退票。以文件(的形式保存当天各个车次的售退票情况。

售票功能。

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

退票功能。

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

查询显示功能。

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

2. 用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项。可适当增加其他附加功能。

1.2设计要求。

为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;

根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。

程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和。

1.3设计报告及书写内容要求。

课程设计和上机调试任务完成之后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:

1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;

2) 概要设计:包括系统总体设计框架和系统功能模块图;

3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;

4) 主要源程序**:完整源程序清单及关键注释;

5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考;

6) 课程设计小结:包括课程设计过程中的学习体会与收获、对c语言和本课程设计的认识以及自己的建议等内容。

2.程序分析及设计说明。

2.1概要设计。

初看题目不难发现这是一个主函数调用三个子函数从而实现售票、退票、查询的功能,调用完毕返回主函数由此可以确定大致的框架。

设计之初,根据题目要求需要用到结构体,函数、指针文件等相关知识,事先对其进行回顾。

设计之时,应该明确:是用结构体去存放同一班车的相关信息;用“while(1)”实现程序的不断循环,即相关售退票函数结束可以回到主函数实现下一以为顾客的操作而不出现程序结束的现象;用switch case实现不同的函数入口。

这样一个大致的模型就已经构建。

2.2流程图。

2.3详细设计。

主程序关键部位。

1. 由于车次的各个信息,以及系统时间变量在许多子函数有调用,所以对于各车次的结构体变量,系统时间变量要再最前面以全局变量的形式定义,以便作用域的范围满足程序需求。

2. 对于主菜单下的选择1,2,3都是通过调用子函数实现,而选择0是退出程序,所以在用switch之前就应该判断输入内容是否为0,是,则直接进入退出。当然这应该包含在while(1)语句内。

3. 如果是选择售票或退票应先提示选择车次,并以参数的形式带入函数。

4. 对于主函数和子函数中篇幅比较长而且需要多次使用的打印语句,判断语句应该在库函数的引用后进行宏定义,比如说主菜单的输出,车次信息的打印,系统时间与发车时间的比较。

5. 系统时间的获取运用。

curr =time(null);

date =localtime(&curr);”语句。

子程序关键部位。

1. 每个子程序都需要清屏处理system("cls");使得用户产生由主菜单点击进入选项的感觉,增强界面的友好性。

2. 子程序**现的新界面在完成相关售票,退票,查询后应该予以停留,方便用户确认信息,否者完成后一闪而过回到主菜单,并不能确认是否已经成功完成操作。因此运用两次“getchar();达到屏幕停滞的效果,再按任意键返回。

3. 在售票和退票的界面应该再次打出当前的各个车次信息,以便用户做出选择,并不是每个用户都知道要买什么车次的车子,这样也是为了增强了程序的友好性。

辅助函数设计。

1. 对于主菜单【void menu()】车次信息【表头void printheader(),内容void printdata(…)信息保存【void s**e(…)等内容会在程序的许多部位出现,因此单独使用函数予以实现,使得程序更加清晰。

2. 由于每次输入需要检查输入信息是否合格,如果不合格应该报错,并重新输入,因此定义一个void wrong() 来输出按键错误信息。

3.调试与测试。

3.1相关界面显示。

主界面。售票界面。

退票界面。查询界面。

注:由于版面限制,在此只出现了部分情况的界面)

3.2数据测试。

本次报告的内容为其中一次测试,测试时间13:41,其他不一一给出,由于涉及到系统时间问题所以每天需要分时段进行测试或是修改系统时间。

1) 售票系统。

车次发车时间载客量已售车票测试结果。

1 06:40 50 0 超过时间无法购票。

2 09:30 40 0 超过时间无法购票。

3 12:00 40 0 超过时间无法购票。

4 14:30 40 3 可以购票(购3票)

5 16:00 40 4 可以购票(购4票)

2) 退票系统。

车次发车时间载客量已售车票测试结果。

1 06:40 50 0 超过时间无法购票。

2 09:30 40 0 超过时间无法购票。

3 12:00 40 0 超过时间无法购票。

4 14:30 40 2 可以退票(退1票)

5 16:00 40 3 可以退票(退1票)

3)查询系统。

正常输出。3.3问题及思考。

问题一:系统时间的获取。

问题二:发车时间的打印问题。

问题三:发车时间与系统时间的比较。

问题四:屏幕停滞问题。

问题解决:1.系统时间的获取。

通过对于网上资料的查询,获得了系统时间的调用方式,先引用库函数<>,以及<>,再进行系统时间变量的定义。

struct tm *date;

time_t curr;

最后在需要用的时候进行系统时间的获取。

curr =time(null);

date =localtime(&curr);

以此可以获得系统时间,系统时间实际上是以结构体的形式存在,可以以date->tm_hour,date->tm_min的形式分别获得小时及分钟。

2.发车时间的打印问题及系统时间和发车时间比较的综合分析。

(1)之前是以一个字符数组的形式来存储整个时间(由于时间表示中“:”的原因只能选择字符数组),但是由于需要把系统时间和发车时间相互比较,系统时间里是分开存储小时和分钟,而在字符数组中是以整体出现,compare()函数也无法实现比较,因此此方法失败。

(2)换而使用char型数组,分别存储小时和分钟,在打印时可以手动在其中添加“:”这样可以解决打印问题。但由于是以字符形式存储分钟和小时,必须使用compare(),才可实现比较,而系统时间却不是用数组的形式存储,所以在比较上又遇到困难,无法实现。

c语言课程设计报告 课程设计报告

周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...

C语言课程设计报告

华中科技大学计算机科学与技术学院。题目 专业 班级 学号 姓名 成绩 指导教师 完成日期 2016年月日。目录。一 系统需求分析 1 二 总体设计 2 三 数据结构设计 3 四 详细设计 4 五 系统实现 5 六 运行测试与结果分析 6 七 总结 7 八 参考文献 8 九 指导教师评语 9 对所要解...

C语言课程设计报告

c语言。课程设计。商业销售管理系统。学号 121407210 姓名 宋军。班级 软件1202 指导老师 邹姝稚。成绩 2013年6月。一 任务描述。编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选...