资源简介
一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数 1 8:00 郫县 广汉 2 45 30 2 6:30 郫县 成都 0.5 40 40 3 7:00 郫县 成都 0.5 40 20 4 10:00 郫县 成都 0.5 40 2 … (一)功能要求:设计一系统,能提供下列服务: (1)录入班次信息(信息用文件保存),可不定时地增加班次数据 (2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。 (3)查询路线(起点、终点):可按班次号查询 ,可按终点站查询 (4)售票和退票功能 当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数 退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 (二)其它要求: (1) 至少采用文本菜单界面(如果能采用图形菜单界面更好) (2) 学生可自动增加新功能模块(视情况可另外加分)
![](http://www.nz998.com/pic/60866.jpg)
代码片段和文件信息
#include
#include
#include
#include
typedef struct information
{
int numb;
char starttime[10];
char begin[21];
char end[21];
float lasttime;
int canload;
int alreadyload;
struct information *next;
}
information*PINF; //结构体类型的指针
information *head; //建立班次头结点
information *rear; //建立班次尾结点
void save()
{ FILE *fp;
int i;
if((fp=fopen(“information““a+“))==NULL)
{printf(“不能打开文件\n“);
return;
}
for(i=0;;i++)
if(fwrite(&informationsizeof(information)1fp)!=1)
{
printf(“文件编写错误\n“);
break;}
fclose(fp);
}
int main() //主程序
{
int numb;
char starttime[10];
char begin[21];
char end[21];
float lasttime;
int canload;
int alreadyload;
head=rear=(information *)malloc(sizeof(information));
head->next=NULL;
//函数声明
void Read_In(); //文件读入
void Scan(); //浏览全部信息
void Lookup(); //查询信息
void Buyticket(); //预定车票
void Cancelticket(); //退订车票
void Save_In(); //把数据重新保存到文件中
int i=0;
while(i!=6)
{
printf(“ * *车 票 管 理 系 统* * \n“); //总菜单
printf(“ 1、 录入信息 \n“);
printf(“ 2、 浏览信息 \n“);
printf(“ 3、 查询信息 \n“);
printf(“ 4、 预订车票 \n“);
printf(“ 5、 退订车票 \n“);
printf(“ 6、 退出系统 \n“);
printf(“* * * * * * * * * * * * *\n“);
printf(“请根据您的需要选择:“);
scanf(“%d“&i);
switch(i)
{
case 1:printf(“请输入您要录入的班次:\n“);
scanf(“%d%s%s%s%d%d%d“numb&starttime[10]&begin[21]&end[21]lasttimecanloadalreadyload);
save();break;
case 2:Scan();break;
case 3:Lookup();break;
case 4:Buyticket();break;
case 5:Cancelticket();break;
case 6:break;
default:printf(“Sorry你的输入有误,请在1--6范围内输入。\n“);break;
}
} //while (i!=6)
Save_In(); //保存信息
return 0;
}
void Read_In() //班次信息文件读入
{
FILE *fp;
if((fp=fopen(“information.txt““r+“))==0)
{
printf(“\n打开文件错误!\n“);
exit(0);
}
while(!feof(fp)) //读取文件并测试是否抵达文件尾
{
information *p;
p=(information *)malloc(sizeof(information)); //开辟内存空间
fscanf(fp“%d%s%s%s%f%d%d\n“&p->numb&p->starttime&p->begin&p->end&p->lasttime&p->canload&p->alreadyload);
rear->next=p; //在INFORMATION单链表中依次插入下一结点
rear=p;
rear->next=NULL;
}
fclose(fp);
}
void Save_In() //保存数据
{
FILE *fp;
if((fp=fp=fopen(“information.txt“ “r+“))==0)
{
printf(“\n打开文件错误!\n“);
exit(0);
}
PINF p=head->next;
while(p!=NULL)
{
fprintf(fp“%d\t%s\t%s\t%s\t%.2f\t%d\t%d\n“p->numbp->starttimep->beginp->endp->lasttimep->canloadp->alreadyload);
p=p->next;
}
fclose(fp);
}
void Scan()
{
PINF p=head->next;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11390 2019-05-20 10:48 9.cpp
----------- --------- ---------- ----- ----
11390 1
- 上一篇:基于c++的markdown解析器
- 下一篇:卡尔曼滤波C++代码实现.zip
相关资源
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
- 算符优先语法分析器(C语言编写)
- 基于C语言的密码锁程序
评论
共有 条评论