文档介绍:课程设计
课程设计名称:车票管理系统
专业班级:计科0406
学生姓名:苏庭波
学号:20044140616
指导教师:曹丹
课程设计时间:2006年2月20 日至3月5日
1 需求分析
本系统的程序编译采用模块分析法,把车票管理系统分解为12个功能进行算法处理(即:1输入数据;2显示列表;3按终点站查询;4按班次查询;5删除一个班次;6添加一个班次;7保存信息;8按按车次排序;9 买票;10 退票;11浏览班次信息;12退出; ),最后通过链表及指针把各个模块串结为本程序的全部代码。
2 概要设计
其中1输入数据;2显示列表;3按终点站查询;4按班次查询;5删除一个班次;6添加一个班次功能主要由王利强同学完成;7保存信息;8按按车次排序;9 买票;10 退票;11浏览班次信息;12 退出主要由本人完成。
主函数:对于主函数,采用模块化方法,构造一个switch 函数。其算法说明图如下:
开始
主菜单
2
信息输出函数
1
信息输入函数
11
时间查找函数
0
退
出
函
数
10
旅客退票函数
9
购买车票函数
8
按车次排序函数
7
文件保存函数
6
信息添加函数
5
信息删除函数
4
按车次查找函数
3
按终点站查找函数
(1)保存信息要保存班次,发车时间,行车时间,最大载人数,已售票数用结构体参数数组定义。参数为结构体数组和记录数。其算法如下:定义void save(ADDRESS t[],int n)保存函数,声明变量i ,n,*s;提示信息:输入班次的数目:班次,发车时间,起始站,终点站,行车时间,最大载量,已定票人数。输入信息后能够保存信息。
(2)按车次排序。要按班次给车辆信息排序,参数为结构体数组和记录数。定义void sort(ADDRESS t[],int n) 函数算法:开始声明字符串s[20],置ch的处值为0,声明变量i=list(t,n,s),j并用交换变量temp交换信息和标志flag判断条件。
(3)买票。买票分按终点站查询和按车次查询,系统时间与发车时间要较。按终点站查询则要定义结构体数组,指向结构体数组的指针。查找信息运用选择排序法通过指针进行。简单算法:定义void buy(ADDRESS t[],int n)买票函数:声明字符串char s[20];声明变量i,m,time_t tval; 指针变量struct tm *now; 要比较记录中的车次和输入车次;比较当前时间和发车时间;比较当前已售票人数和额定人数。
(4)退票。退票则要求输入终点站。仍要定义结构体数组,指向结构体数组的指针。简单算法:定义void back(ADDRESS t[],int n)退票函数:声明字符串char s[20];声明变量i。比较当前时间和发车时间。
(5)浏览班次信息。则要显示所有班次当前总况,且系统时间要与发车时间比较。用字符数组,结构体数组的指针。简单算法:定义scan(ADDRESS t[],int n)浏览函数:声明字符串 char s[20];声明变量 int i; 指针变量:time_t tval;结构体变量:struct tm *now;当tval = time(NULL); now = localtime(&tval);时候执行提示信息,输入信息,输出信息操作。
(6)退出。用选择结构,当返回值为零,则程序结束。
3 运行环境
软件环境:windows95/98/2000/xp/Me/NT
硬件环境:CPU,inter奔腾2以上;AMD闪龙2000+以上;
内存,256M以上。
4 开发工具和编程语言
win-,(在中文dos环境中运行)编程语言:C
5 详细设计
/******头文件(.h)***********/
#include "" /*I/O函数*/
#include "" /*标准库函数*/
#include ""/*字符串函数*/
#include "" /*字符操作函数*/
#include <>/*系统时间函数*/
#define M 50 /*定义常数表示记录数*/
/*买票*/
void buy(ADDRESS t[],int n) /*买票*/
{
char s[20]; /*保存待查找终点站字符串*/
int i,m=1; /*保存查找到结点的序号*/
struct tm *now;/*用结构体指针定义时间*/
clrscr();/*清屏*/
now = localtime(&tval);/*当前时间*/
pri