资源简介
一车站每天有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) 学生可自动增加新功能模块(视情况可另外加分)
代码片段和文件信息
#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语言程序实现PC端通过USB端口与单片
- mpu9250九轴算法-纯c语言
- 笨方法学习C语言
- 大一第一学期c语言课程设计,黑框框
- C语言实现的DES加密算法
- C语言经典例题100例含答案
- C语言课程设计_太空战机提高篇funco
- 学生成绩管理系统C++QT可视化
- Hilbert的C语言实现
- C语言实现日历阳历+农历输出
- 学生信息管理系统+MFC+VC6+SQLServer
- 学生社团管理系统数据结构课程设计
- 远程仓库湿度监测系统设计-Proteus仿真
- 四川大学历年考研C语言试题及答案
- DES算法_C语言实现啊
- c语言期末大作业
- c语言之汉诺塔无限关卡游戏文件密码
- 运动会管理系统模拟
- 《C语言库函数速查手册》
- 实序列FFT算法的C语言实现
- 学生通讯录管理系统
- 诊所信息管理系统C++课程设计报告
- C语言酒店管理系统 C语言大作业
- 基于STM32F4的加速度频域二次积分振动
- 基于蚁群算法的TSP问题实现C语言
- C语言-投票与管理系统
- 《嵌入式Linux上的C语言编程实践》
- 循环码编译码通用版
- C语言实现简单的数据库管理系统
- 学生信息管理系统(数组版)
评论
共有 条评论