《C语言程序设计》课程设计 -- 火车票票务管理系统

简介: 《C语言程序设计》课程设计 -- 火车票票务管理系统

设计一个火车票票务管理系统,要求实现车票查询、车票购买、车票退订等功能。使用文件来存储所有车票的信息,这些车票信息用一个结构体数组来存取;使用另一个结构体变量来存储乘客已购买车票的信息。


1、要求设计一个火车票票务信息管理程序,实现车票查询、车票购买、车票退订和退出程序,从而完成系统所需功能;

2、用文件来存储所有车票信息,分别用不同的结构体来存取所有车票信息和乘客已购买车票信息;

3、用下标法或指针法来实现对车票信息的存取、显示、查询、增加、删除等操作;

4、系统运行界面如图1所示。


三、数据结构及文件

1、结构体:定义两个结构体分别存取所有车票的信息和乘客已购买车票的信息。

//定义火车车次结构体类型
typedef struct Ticket
{
  char trainnum[20];        /*车次*/
  char soursta[20];         /*起点站*/
  char deststa[20];         /*终点站*/
  float price;              /*价格*/
  int number;               /*剩余车票数量*/
  char deptime[20];         /*始发时间*/
  char arrtime[20];         /*到站时间*/
}TRAIN;
//定义已买车票结构体类型
struct buyticket
{
  char name[20];            /*姓名*/
  char trainnum[20];        /*车次*/
  char soursta[20];         /*起点站*/
  char deststa[20];         /*终点站*/
  float price;              /*价格*/
  char deptime[20];         /*始发时间*/
  char arrtime[20];         /*到站时间*/
  int buynum;               /*购买数量*/
};


2、文件:新建一个文件存储所有车票的信息,文件traininfo.txt(示例)的内容如图2所示。

四、函数定义

源程序中包括的函数如表1所示。

表1 源程序中的函数及其功能

函数原型  功能说明
void menu(int *flag,TRAIN *pticket,struct buyticket *pbuyticket)  打印主菜单
void showticket(int *flag,TRAIN *pticket,struct buyticket *pbuyticket)  显示所有车票信息
void showbuyticket(struct buyticket *pbuyticket)  显示已购买车票信息
void check(int *flag,TRAIN *pticket,struct buyticket *pbuyticket) 查询车票
void buy(int *flag,TRAIN *pticket,struct buyticket *pbuyticket) 购买车票
void returnticket(int *flag,TRAIN *pticket,struct buyticket *pbuyticket)  退订车票
void readfile(TRAIN *pticket) 读文件
void writefile(TRAIN *pticket)  写文件
void main( )  主函数


五、部分函数

1、读文件函数

//从traininfo.txt中读取所有车票的信息到数组train[5]中
void readfile(TRAIN *pticket)
{
  FILE *fp;
  int i;
  if((fp=fopen("d:\\traininfo.txt","r"))==NULL)
  {
    printf("文件traininfo.txt打开错误.\n");
    exit(0);
  }
  for(i=0;i<5;i++)
    fscanf(fp,"%s%s%s%f%d%s%s",(pticket+i)->trainnum,(pticket+i)->
soursta,(pticket+i)->deststa,&(pticket+i)->price,&(pticket+i)->number,
(pticket+i)->deptime,(pticket+i)->arrtime);
  fclose(fp); 
}


2、写文件函数


//将修改后的车票信息保存到文件traininfo.txt中
void writefile(TRAIN *pticket)
{
  FILE *fp;
  int i;
  if((fp=fopen("d:\\traininfo.txt","w"))==NULL)
  {
    printf("文件traininfo.txt打开错误.\n");
    exit(0);
  }
  for(i=0;i<5;i++)
    fprintf(fp,"%-8s%-10s%-10s%-12.1f%-12d%-12s%-12s\n",(pticket+i)->
trainnum,pticket->soursta,(pticket+i)->deststa,(pticket+i)->price,
(pticket+i)->number,(pticket+i)->deptime,(pticket+i)->arrtime);
  fclose(fp); 
}


3、主函数


void main()
{
  TRAIN train[5];
  int flag;
  struct buyticket ticket;
  menu(&flag,train,&ticket);
}


六、源代码


关注+评论获取,我会发送到你的邮箱,或者私信我!

编写的程序效果如下所示:



目录
相关文章
|
1月前
|
C语言
C语言模块化程序设计
C语言模块化程序设计
21 0
|
1月前
|
C语言
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
|
1月前
|
C语言
基于链表实现的链式管理系统(C语言课设)
基于链表实现的链式管理系统(C语言课设)
|
4月前
|
存储 程序员 C语言
【C语言程序设计】数组程序设计
【C语言程序设计】数组程序设计
65 0
C4.
|
1月前
|
程序员 C语言
C语言循环结构与程序设计
C语言循环结构与程序设计
C4.
23 0
|
30天前
|
存储 C语言
C语言实现学生成绩管理系统
C语言实现学生成绩管理系统
16 2
|
1月前
|
存储 C语言
C语言顺序结构程序设计
C语言顺序结构程序设计
21 0
|
1月前
|
存储 C语言
C语言的顺序程序设计
C语言的顺序程序设计
11 2
|
1月前
|
存储 C语言
C语言的顺序程序设计
C语言的顺序程序设计
15 0
|
1月前
|
C语言
【C语言】用函数实现模块化程序设计
【C语言】用函数实现模块化程序设计