C语言实现飞机票务系统

飞机票务系统设计要求:有登录系统界面、账号、密码;建立航班信息功能;查看从郑州到某终点站飞机票信息功能;飞机票购买功能;添加购票人信息功能;显示购票人信息功能;退定飞机票功能;

程序中的音乐可以改为自己指定的,用时把我用的音乐那行代码注释掉即可。

代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<Windows.h>
#include<conio.h>//主要是一些用户通过按键盘产生的对应操作,比如getch()函数
#include<time.h> //时间库
#include<mmsystem.h>//windows中与多媒体有关的大多数接口
#pragma comment(lib,"winmm.lib")//预处理,支持对windows 多媒体的编程.
//#include<graphics.h>//图形库

#define N 15 //航班最多15,N为全局变量

typedef struct traininfor
{
 char qishi[30]; //起始站
 char zhongdian[30]; //终点站
 char trainnumber[10]; //航班号
 float price; //飞机票单人价格
 int piaonumber; //每次航班的生成票数
 char time[30]; //飞机出发时间
}hang;

struct ticket
{
 char buyer[20]; //购票人姓名
 char ID[20]; //购票人身份证号
 int buynumber; //购买飞机票的张数
 float money;//用户购买票总钱数
 hang buy; //用户买的飞机票信息
 struct ticket *next;//指针节点
}; 

int d=0;//统计有多少次航班
struct ticket *yonghu;//用户购票信息头结点
hang plane[N]; //航班信息结构体数组 

int menu();//打印主菜单函数
void DengLu();//登录票务系统函数
void JianFile();//建立文件航班信息函数
void OpenFile();//读取文件信息函数
void check(); //查看从郑州到某终点站飞机票信息函数
void buy(); //飞机票购买函数
void add();//添加购票人信息
int TicketMenu();//用户购票菜单
void XianShi();//显示购票人信息
void tui(); //退定飞机票函数
void exit(); // 退出程序 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int main()
{
 DengLu();// 登录票务系统函数
 JianFile();//建立文件航班信息
 //OpenFile();//打开文件读取航班信息 

 while(1)
 {//每次操作完自动返回主菜单作用
 switch(menu())
 {//menu()函数为输入选项
 case 1://选项为1时
  OpenFile();//打开文件读取航班信息
  printf("已成功导入航班信息\n\n\n");
  break; 

 case 2: //选项为2时
  check();// 查看从郑州到某终点站飞机票信息函数
  break;

 case 3://选项为3时
  buy();//飞机票购买函数
  break;

 case 4://选项为4时
  tui();//退票函数
  break;

 case 5://选项为5时
  system("cls");//清屏
  printf("感谢您的使用,祝您的旅途愉快\n");
  Sleep(5000);//延迟15秒
  exit(1);//
  break;

 }
 }
 return 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//登录票务系统
void DengLu()
{
 //getch()=从键盘输入一个字符且不显示 getche()=从键盘输入一个字符并显示
 printf("欢迎来到票务系统,请先注册票务系统账号(账号为10位,密码为6位):\n");
 printf("温馨提示:若登录密码输入有误超过三次,电脑会自动关机:\n\n");
 char ch;//重键盘上输入一个字符
 char password[10];//passsword数组表示初始密码
 char input[10];//input数组表示待输入的密码
 char Szhanghao[20];// zhanghao数组表示申请的账号
 char Dzhanghao[20];// zhanghao数组表示登录的账号
 int i=0,j;//控制输入次数
 int number,find,count;
 printf("申请账号:\n");
 fflush(stdin);//清空输入流
 while(1)
 {
 ch=getche();//从键盘输入一个字符,保存到ch变量
 //加过滤,只要数字,其他的不做任何处理
 if(ch>='0' && ch<='9') //if( (ch>='a' && ch<='z') || (ch>='A' && ch<='Z') )
 {
 printf("\a");//转义字符\a=bell
 Szhanghao[i++]=ch;//把申请的账号储存到数组中

 if(10==i)//写条件语句时,把常量放前面
 {
 Szhanghao[i]='\0';
 break;//账号为十位时停止输入
 }
 }
 }
 //1提示输入密码
 printf("\n设置卡的密码:\n");
 //2输入密码
 i=0;
 while(1)
 {
 ch=getch();//从键盘输入一个字符,保存到ch变量
 //加过滤,只要数字,其他的不做任何处理
 if(ch>='0' && ch<='9') //if( (ch>='a' && ch<='z') || (ch>='A' && ch<='Z') )
 {
 printf("*\a");//转义字符\a=bell
 password[i++]=ch;//把初始密码储存到数组中

 if(6==i)//写条件语句时,把常量放前面
 {
 password[i]='\0';
 break;//初始密码为六位时停止输入
 }

 }
 }
 Sleep(2000);
 system("cls");
 printf("温馨提示:若登录密码输入有误超过三次,电脑会自动关机:\n\n");
 printf("请登录您的账号:\n");
 while(1)
 {
 gets(Dzhanghao);
 if(strcmp(Dzhanghao,Szhanghao)!=0)
 printf("您输入的账号有误,请重新输入:\n");
 else
 break;
 }

 number=0;//输入密码的次数
 count =3;//有3次机会 

 while(count--)
 {//循环三次
 find=0;j=0;//find初始化为0,表示输入密码正确
 memset(input,0,sizeof(input));//初始化输入密码数组 

 printf("请输入账号密码:\n");
 for(i=0;i<6;i++)
 {//输入六位密码
 ch=getch();//从键盘输入一个字符,保存到ch变量中
 if(ch>='0' && ch<='9')
 {//密码为数字时加入数组
 printf("*\a");
 input[j++]=ch;
 }
 }
 input[j]='\0';//数组以\0结束 

 for(i=0;i<=5;i++)
 {//密码是否输入正确
 if(input[i]!=password[i])
 {//输入密码与初始密码不匹配
 find=1;
 break;
 }
 }

 if(find==0)
 {//输入密码正确
 printf("\n输入正确,即将进入票务系统主页");
 PlaySound("20100814_5c610cfa0dec6116aa701YT6vHJzW9Zw.wav", NULL, SND_FILENAME | SND_SYNC); //音乐播放
 printf("\n");
 //Sleep(3000);//延时3秒
 system("cls");//清屏
 break;
 }
 else
 {//输入密码次数加一
 number++;
 printf("\n输入密码错误,");
 }

 }

 if(3==number)
 {//当输入错误次数到达3次时
 printf("\n输入三次密码错误,不能再输入,电脑将在10秒后自动关机\n");
 system("shutdown -s -t 10");//电脑即将关机
 }
 return ;
} 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void JianFile()
{
 FILE *fp;//定义文件指针
 if((fp=fopen("txt.in","w"))==NULL)
 {//创建文件失败
 printf("建立失败!\n");
 exit(0);
 }
 //向文件中输入航班信息
 fprintf(fp,"郑州 南阳 T1230 110.50 200 2018年11月6日12点15分\n");
 fprintf(fp,"郑州 信阳 T1231 120.50 200 2018年11月6日13点15分\n");
 fprintf(fp,"郑州 商丘 T1232 100.00 200 2018年11月6日14点15分\n");
 fprintf(fp,"郑州 开封 T1234 115.50 200 2018年11月6日15点15分\n");
 fprintf(fp,"郑州 洛阳 T1235 95.00 200 2018年11月6日16点15分\n");
 fprintf(fp,"郑州 三门峡 T1236 97.30 200 2018年11月6日17点15分\n");
 fprintf(fp,"郑州 鹤壁 T1237 130.50 200 2018年11月6日18点15分\n");
 fprintf(fp,"郑州 周口 T1238 117.00 200 2018年11月6日19点15分\n");
 fprintf(fp,"郑州 驻马店 T1239 135.00 200 2018年11月6日20点15分");
 fclose(fp);
 return ;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//文件读取航班信息
void OpenFile()
{
 FILE *fp; //定义文件指针
 d=0;//表示读取到当前文件位置
 if((fp=fopen("txt.in","r"))==NULL)
 {//打开文件
 printf("文件打开失败!\n");
 return ;
 }

 while(!feof(fp))
 {//读取到文件为空
 //printf("请设定第%d个站的地点、车次、价格、还剩票数、到站时间、已被购买票数:\n",d);
 fscanf(fp,"%s%s%s%f%d%s",plane[d].qishi,plane[d].zhongdian,plane[d].trainnumber,&plane[d].price,&plane[d].piaonumber,plane[d].time);
 d++;
 }
 fclose(fp);//关闭文件
 return ;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int menu()
{
 char s[10];//输入字符串选项
 int n;//整型选项
 //菜单框架
 printf("--------------------票务系统目录--------------------\n\n");
 printf("1, 导入航班信息\n");
 printf("2, 查询飞机票\n");
 printf("3, 购买飞机票\n");
 printf("4, 退订飞机票\n");
 printf("5, 退出程序\n");
 printf("注意:飞机从本站能到达的地方有南阳、信阳、商丘\n");
 printf("开封、洛阳、三门峡、鹤壁、周口、驻马店\n");
 printf("如果您想了解更多信息请输入选项序号\n \n");
 printf("本程序制作者:2017级物联网工程一班 胡斌\n");
 printf("请输入选项:");

 while(1)
 {//死循环状态
 fflush(stdin);//清空输入流
 gets(s);//得到一串字符串
 n=atoi(s);//字符串转化为整数
 if(n<1||n>5)//判断输入的选项是否正确
 printf("输入错误,请重新输入:\n");
 else//符合条件,结束循环
 break;
 }
 //返回选项值
 return n;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 查看从郑州到某终点站飞机票信息函数
void check()
{
 int i,j;//循环变量
 int find=1,flag=0,count=0;//标志变量
 char qi[30];//起始站
 char mudi[30];//终点站
 printf("请输入起始地(提示:起始地为郑州): \n");
 scanf("%s",qi);//输入起始地
 printf("请输入目的地: \n");
 scanf("%s",mudi);//输入目的地

 while(1)
 {//死循环状态
 if(0==strcmp(qi,"郑州"))
 {//起始地为郑州时
 flag=1;//标志变量为1,表示起始地没有出错
 for(j=0;j<d;j++)
 {//循环d次航班信息
 if(0==strcmp(plane[j].zhongdian,mudi))
 {//输入的终点站与航班信息终点站一致
  count=1;//标志变量为1
  printf("航班号: ");//输出航班号
  printf("%s\n",plane[j].trainnumber);
  printf("起始地: ") ;//输出起始地
  printf("%s\n",plane[j].qishi);
  printf("目的地: ");//输出目的地
  printf("%s\n",plane[j].zhongdian);
  printf("此次航班单人票价: ");//输出票价
  printf("%.2f\n",plane[j].price);
  printf("此次航班时间:");//输出航班时间
  printf("%s\n",plane[j].time);
  printf("此次航班飞机票数量: ");//输出票数
  printf("%d\n\n\n\n",plane[j].piaonumber);
  return ;
 }
 }
 }
 else
 {
 flag=1;//起始地输入错误
 printf("输入有误,返回菜单!\n\n\n");
 return ;
 }

 if(0==count&&flag==1)
 {//起始地并且目的地输入错误
 printf("sorry 您查询的结果无信息!\n\n\n");
 return ;
 }
 }
 return ;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//对购物车进行操作
void buy()
{
 while(1)
 {//成死循环状态
 switch(TicketMenu())
 {//ShopCartMenu()为输入选项
 case 1://选项1 显示用户购票列表信息
  XianShi();
  break;
 case 2: //选项2 添加用户购票信息
  add();
  break;
 case 3: //选项3 退出
  printf("即将退出子程序\n");
  Sleep(2000);//延时两秒
  return ;
 }
 }
 return ;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//打印购物车菜单
int TicketMenu()
{
 int n;//输入选项
 char s[5];//输入字符串
 //购票子程序菜单框架
 printf("\n\n请选择操作:\n");
 printf("--------------------------------------------\n");
 printf("1. 显示当前购票列表\n");
 printf("2. 添加购票人信息\n");
 printf("3. 退出\n");
 printf("--------------------------------------------\n");
 printf("请选择对应数字1~3\n");

 while(1)
 {//成死循环状态
 fflush(stdin);//清空输入流
 gets(s);//输入一串字符串
 n=atoi(s);//字符串转化为整数
 if(n<1||n>3)//判断输入的选项是否正确
 printf("输入错误,请重新输入:\n");
 else//输入正确,结束循环
 break;
 }
 return n;//返回输入选项
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//显示用户购票信息
void XianShi()
{
 FILE *fp;//定义文件指针
 struct ticket *p;//定义一个新节点
 p=yonghu;//把整个购票信息赋给p

 if((fp=fopen("goupiao.txt","r"))==NULL)
 {//判断是否打开了文件
 printf("打开文件失败\n");
 printf("暂时还没有用户购票信息\n\n");
 return ;
 }
 //printf("\n姓名  身份证    起始站  目的站   购买票数\n");
 while(p!=NULL)
 {//输出购票人信息
 //fscanf(fp,"%s%s%s%s%d",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,&p->buynumber);
 printf("姓名: ");
 printf("%s\n",p->buyer);
 printf("身份证号: ");
 printf("%s\n",p->ID);
 printf("起始地: ") ;
 printf("%s\n",p->buy.qishi);
 printf("目的地: ");
 printf("%s\n",p->buy.zhongdian);
 printf("购买票数: ");
 printf("%d\n",p->buynumber);
 printf("此次航班总钱数: ");
 printf("%.2f\n",p->money);
 printf("此次航班时间:");
 printf("%s\n\n\n\n",p->buy.time);
 //printf("姓名  身份证   起始地  目的地  购买票数 票的价格 出发时间\n");
 //printf("%-11s%-20s%-10s%-10s%-7d%-7.2f%-20s\n",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,,p->buy.price,p->buy.time);//输出购票人信息
 p=p->next;//指向下一个节点
 }
 fclose(fp);//关闭文件
 return ;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//添加用户购票信息
void add()
{
 FILE *fp1,*fp;//定义两个文件指针
 struct ticket *p,*p1;//定义两个节点

 int i,j;//定义控制循环变量
 int count,flag;//定义标志变量
 int buynumber1;//用户购买的票数
 char choice1[10];//选择变量
 char choice2[10];//选择变量
 char mingzi[20];//用户姓名
 char shenfen[20];//用户身份证号
 char qi[30];//起始站
 char mudi[30];//终点站

 do{//开始进入循环
 printf("请输入您的姓名:\n");
 scanf("%s",mingzi);
 printf("请输入您的身份证号:\n");
 scanf("%s",shenfen);
 printf("请输入起始地(提示:起始地为郑州): \n");
 scanf("%s",qi);
 printf("请输入目的地: \n");
 scanf("%s",mudi);
 count=0;flag=0;//标志变量初始化
 while(1)
 {//成死循环状态
 if(0==strcmp(qi,"郑州"))
 {//起始站为郑州
 flag=1;//标志为1
 for(j=0;j<d;j++)
 {//循环d次航班信息
 // printf("%s %s %.2f %d %s %d",pointtr->station[j],pointtr->trainnumber[j],pointtr->price[j],pointtr->piaonumber[j],pointtr->time[j],pointtr->buynumber[j]);
  if(0==strcmp(plane[j].zhongdian,mudi))
  {//目的地一致时
  count=1;//标志为1
  //输出航班信息
  printf("航班号: ");
  printf("%s\n",plane[j].trainnumber);
  printf("起始地: ") ;
  printf("%s\n",plane[j].qishi);
  printf("目的地: ");
  printf("%s\n",plane[j].zhongdian);
  printf("此次航班单人票价: ");
  printf("%.2f\n",plane[j].price);
  printf("此次航班时间:");
  printf("%s\n",plane[j].time);
  printf("此次航班飞机票数量: ");
  printf("%d\n",plane[j].piaonumber);
  break;//结束循环
  }
 }
 break ;//结束循环
 }
 else
 {
 flag=1;
 printf("输入有误:\n\n\n");
 fflush(stdin);//清空输入流
 break; //结束循环
 }

 if(0==count&&flag==0)
 {//输入条件不符合
 printf("sorry 您查询的结果无信息!\n\n\n");
 return ;
 }
 }
 if(1==count)
 {//找到用户所需航班信息
 printf("您确定购买此飞机票吗?(1.是 2.否)\n");
 scanf("%s",choice1);//输入选项
 if(0==strcmp(choice1,"1"))
 {//选项为1时
 printf("请输入您要购买的张数:\n");
 scanf("%d",&buynumber1);//输入购买票数
 if(buynumber1<0)
 {//不符合客观情况
  printf("输入有误,请重新输入!\n\n\n");
  break;
 }

 if(plane[j].piaonumber-buynumber1>=0)
 {//输入正确
  plane[j].piaonumber=plane[j].piaonumber-buynumber1;//计算剩余飞机票

  p=new ticket;//生成新节点
  if(p==NULL)
  {//分配内存失败
  printf("内存申请失败!\n\n\n");
  exit(1);
  }
  p->buynumber=buynumber1;//用户所购票数
  strcpy(p->buyer,mingzi);//用户姓名
  strcpy(p->ID,shenfen);//用户身份证号

  p->buy=plane[j];//航班信息
  p->next=NULL;//指向下一个节点为空

  p1=yonghu;//把用户信息赋给p1
  if(yonghu==NULL)//头结点为空
  yonghu=p;//把节点赋值给头结点
  else
  {
  while(p1->next!=NULL)
  p1=p1->next;//把链表循环到尾部
  p->next=p1->next;
  p1->next=p;//把新节点p挂在链表尾部
  }
 }
 else
 {
  printf("飞机票已售完或不足,不能购买!\n\n\n");
  break;
 }
 }
 else if(0==strcmp(choice1,"2"))
 {//输入选项为2时
 printf("放弃购买, 返回!\n\n\n");
 break;
 }
 else
 {//输入选项有误
 printf("输入错误,返回!\n\n\n");
 break;
 }
 }
 else//没有找到用户所需航班
 printf("输入有误");

 printf("是否继续购票?(1.是,2.否)\n");
 fflush(stdin);//清空输入流
 scanf("%s",choice2);//输入选项
 }while(strcmp(choice2,"1")==0);//当选项为1时

 if((fp1=fopen("goupiao.txt","w"))==NULL)
 {//判断文件是否创建失败
 printf("创建文件失败。\n");
 return ;
 }
 p=yonghu;//把用户信息赋给p
 while(p!=NULL)
 {//一直循环到链表为空
 p->money=p->buy.price*p->buynumber;//计算票价总钱数
 fprintf(fp1,"%s %s %s %s %d %.2f %s\n",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,p->buynumber,p->money,p->buy.time);
 p=p->next;//指向下一个节点
 }
 fclose(fp1);//关闭文件
 return ;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//退订飞机票
void tui()
{
 FILE *fp,*fp1;//定义两个文件指针
 char s[20];//身份证号
 char s1[20];//目的地
 char choice[10];//选择项
 int buynumber2;//退订的票数
 int i,j;//控制循环变量
 int find=0;//标志变量
 struct ticket *p;//定义新节点
 printf("您确定要退票吗?1.是 2.否\n");
 scanf("%s",choice);//输入选项
 if(0==strcmp(choice,"1"))
 {//选项为1时
 printf("请输入身份证号:\n");
 scanf("%s",s);//输入身份证号
 printf("请输入目的地:\n");
 scanf("%s",s1);//输入目的地
 if((fp=fopen("goupiao.txt","r"))==NULL)
 {//打开文件
 printf("打开文件失败\n");
 return ;
 }
 p=yonghu;//把用户信息赋给p
 while(p!=NULL)
 {//循环到链表为空时
 //fscanf(fp,"%s%s%s%s%f%d%s",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,p->buy.price,&p->buynumber,p->buy.time);
 if(0==strcmp(s,p->ID)&&(0==strcmp(s1,p->buy.zhongdian)))
 {//找到对应的用户
 find=1;//标志变量为1
 printf("请输入退票张数:\n");
 scanf("%d",&buynumber2);//输入退订票数
 if(buynumber2<0)
 {//不符合客观情况
  printf("输入有误, 返回菜单!\n");
  return ;
 }
 if(p->buynumber>=buynumber2)
 {//输入票数符合条件
  fclose(fp);//关闭yonghu文件
  if((fp=fopen("goupiao.txt","w"))==NULL)
  {//判断文件是否创建失败
  printf("创建文件失败\n");
  return ;
  }

  if((fp1=fopen("txt.in","w"))==NULL)
  {//判断文件是否创建失败
  printf("创建文件失败。\n");
  return ;
  }
  printf("退票成功,返回菜单!\n\n\n");
  for(i=0;i<d;i++)
  {//循环d次航班信息
  if(0==strcmp(plane[i].zhongdian,p->buy.zhongdian))
  {//找到对应终点站,计算剩余票数
  plane[i].piaonumber+=buynumber2;
  }
  fprintf(fp1,"%s %s %s %f %d %s\n",plane[i].qishi,plane[i].zhongdian,plane[i].trainnumber,plane[i].price,plane[i].piaonumber,plane[i].time);
  }
  p->buynumber-=buynumber2;//用户所购票数
  p->money=p->buynumber*p->buy.price;//购票的总价钱

  p=yonghu;//把用户信息赋给p
  while(p!=NULL)
  {//循环链表为空时
  fprintf(fp,"%s %s %s %s %.2f %d %s\n",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,p->money,p->buynumber,p->buy.time);
  p=p->next;//指向下一个节点
  }

  fclose(fp);//关闭文件
  fclose(fp1);//关闭文件

  return ;
 }
 else
 {
  printf("输入错误,返回菜单!\n\n\n");
  return ;
 }
 }
 p=p->next;//指向下一个节点
 }
 if(0==find)
 {//输入有误
 printf("查询不到信息,返回菜单\n\n\n");
 return ;
 }
 }
 else if(0==strcmp(choice,"2"))
 {//输入选项为2时
 printf("放弃退票,返回菜单!\n\n\n");
 return ;
 }
 else
 {//输入有误
 printf("输入错误,返回菜单!\n\n\n");
 return ;
 }
 return ;
}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生信息的查询 9.密码修改函数 10.学生信息管理系统的菜单函数 #include "stdio.h" #include "malloc.h" #include "string.h" #include "stdlib.h" #inc

  • C语言实现航班订票系统

    本文实例为大家分享了C语言实现航班订票系统的具体代码,供大家参考,具体内容如下 描述: 点定义两个链表,一个存储航班信息,一个存储客户信息: 进行一系列简单的增删查找: 代码如下 #include<cstdio> #include<cstring> #include<iostream> #include<cstdlib> using namespace std; const int MAXN=250; typedef struct { string p_id

  • C语言实现航班售票系统 C语言实现航班管理系统

    本文实例为大家分享了C语言航班售票系统的具体代码,供大家参考,具体内容如下 题目描述:实现一个航班售票系统,每个航班应包括以下信息:航班号.起飞地.目的地.总座位数.余票数.乘客名单等:每个乘客的信息有:乘客姓名.证件号码.座位号等. #include <stdio.h> #include <stdlib.h> #include <string.h> #define MaxFlight 32 //最大的航班数 #define MaxPassenger 1000 //最大

  • 基于C语言实现简单的12306火车售票系统

    程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 录入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票数量排序保存 售票 退票 更新班次信息 退出系统 所有的班次信息保存在number.dat文件中,排序过后的保存在sort.dat中(.dat是一种二进制文件). 在编写的过程中我觉得在判断火车的状态比较值得深究.这里假设火车主要有四种状态: 1.未发车 2.已发车 3.停止检票 4.停止退票 在程序中,思路是将代表发车时间的字符串转化为整型,再和系统现在的时间进行大小

  • C语言编写学生成绩管理系统

    用C语言编写学生成绩管理系统代码,供大家参考,具体内容如下 C语言实现学生成绩管理系统实战教学 https://www.jb51.net/article/154767.htm (1)给出所选课程设计题目以及本题目具体所要完成的功能要求说明. 1.课程设计题目:学生成绩管理系统 2.完成的功能要求: (1).主要实现的功能: 1---学生输入 2---学生插入 3---学生查询(按学号) 4---学生删除 5---学生输出 6---计算每名学生的平均分并输出 7---计算每科的平均分并输出 8--

  • C语言通讯录管理系统完整版

    C语言实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能.. 完整的代码如下: #include <stdio.h> #include <malloc.h> //得到指向大小为Size的内存区域的首字节的指针// #include <string.h> #include <stdlib.h> //标准库函数// #define NULL 0 #define LEN sizeof(struct address_list) //计算字节//

  • C语言实现飞机订票系统

    问题描述与题目要求 问题描述: 假定某民航有M个航次的班机,每个航次都只到达一个地方.试为该机场售票处设计一个自动订票和退票系统,要求系统具有以下功能: (1) 订票:若该航次余票大于等于乘客订票数,则在该航次的乘客表中,插入订票乘客的信息项,并修改该航次有关数据,否则给出相应信息. (2) 退票:若该航次当前退票数小于等于乘客原订票数,则在相应的乘客表中找到该乘客项,修改该航次及乘客表中有关数据:当某乘客由于退票使订票数为零时,则从乘客表中撤消该数据项. 要求: (1)描述对航次表和乘客表选用

  • C语言职工信息管理系统源码

    本文实例为大家分享了C语言职工信息管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct worker { char ID[20];//工号 char name[20];//姓名 char sex[5];//性别 char born[20];//生日 char edu[20];//学历 char po

  • 纯C语言实现火车售票系统

    这是好久之前写的一个火车售票系统, 写的非常粗糙, 后来也没改了, 希望遇见有缘人继续优化吧. 主要的功能是:设置车次,删除车次, 买票, 改签, 退票, 查询等. #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<string.h> #include<conio.h> #define MAXNUM 10000 #define Num 100 typedef stru

  • C语言实现飞机票务系统

    飞机票务系统设计要求:有登录系统界面.账号.密码:建立航班信息功能:查看从郑州到某终点站飞机票信息功能:飞机票购买功能:添加购票人信息功能:显示购票人信息功能:退定飞机票功能: 程序中的音乐可以改为自己指定的,用时把我用的音乐那行代码注释掉即可. 代码如下: #include<stdio.h> #include<string.h> #include<stdlib.h> #include<Windows.h> #include<conio.h>//

  • C语言实现飞机售票系统

    本文实例为大家分享了C语言实现飞机售票系统的具体代码,供大家参考,具体内容如下 一.项目简介 通过“航空售票系统”C语言课程设计的实践,掌握函数.数据的读取和存储.熟练链表的操作,为后期学习打下基础. 二.任务概述 (1) 将飞机坐位分为20排,每排4个位子.(2) 系统可让乘客自己选座号和区域,直到乘客满意为止.(3) 若无法满足的话,改乘另一个航班.(4) 定上票的乘客需给出姓名和身份证号.(5) 要求打印出乘客信息. 三.功能展示 四.思维导图 五.程序源码 #include <stdio

  • C语言实现飞机订票系统的完整代码

    目录 题目 总体设计和需求分析 设计目的 总体设计和功能 结构体设计 机票信息结构体 主函数的设计 各功能代码的实现 前置 添加机票 查找机票信息 修改机票信息 显示机票信息 推荐机票信息 订票 退票 保存信息 显示时间 测试 总结 题目 本文将设计一个飞机订票系统,主要包括机票的添加.修改.查找.订票.退票.推荐机票功能,用C语言编程实现,并用链表存储产生的航班信息和订票信息数据,最后可以把链表中的数据保存到文件中. 总体设计和需求分析 设计目的 1.怎样去合理的设计一个数据结构来存储订票信息

  • C语言实现飞机游戏(1)

    本文实例为大家分享了C语言实现飞机游戏的具体代码,供大家参考,具体内容如下 本节我们将在上一节 弹跳小球 实现基础上完成简单的飞机游戏. scanf 控制飞机移动 我们可以使用 scanf 函数来检测输入,分别使用 a , s , d , w .来控制 x , y 坐标来实现飞机移动. #include <stdio.h> #include <stdlib.h> int main(){     int i,j;     int x = 5;     int y = 10;     

  • C语言实现小学生考试系统

    本文实例为大家分享了C语言实现小学生考试系统的具体代码,供大家参考,具体内容如下 问题及代码: /*烟台大学计算机学院 题目描述:做一个小学生考试系统,功能包括: (1)利用随机数出10道加法题: (2)小学生用户答题给出每道题的答案: (3)对小学生的答题进行评判: (4)计算出小学生答题正确率. 作者:景怡乐 完成时间:2016年12月29日 */ #include <stdio.h> #include <stdlib.h> #include <time.h> in

  • C语言实现学生选课系统完整版

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> int N1,N2,kk1,kk2,kk3; struct couse * head1; struct student * head2; struct couse//课程信息结构体 { int num1; char name1[20]; int score; int nelepeo;//课程已选人数 int Melepeo;//课

  • C语言实现学生选课系统

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<conio.h> typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #define CLASS_CLS

  • C语言实现文本编辑器系统

    本文实例为大家分享了C语言实现文本编辑器系统的具体代码,供大家参考,具体内容如下 /*文本编辑器editor源代码*/ #include <stdio.h> #include <conio.h> #include <bios.h> #include <math.h> #define LEFT 0x4b00 /*←:光标左移*/ #define RIGHT 0x4d00 /*→:光标右移*/ #define DOWN 0x5000 /*↓键:光标下移*/ #d

  • C语言之飞机大战游戏

    本文实例为大家分享了C语言之飞机大战游戏的具体代码,供大家参考,具体内容如下 技术原型 1.void gotoxy(int x, int y) 函数,该函数可以使光标去到(x,y)的位置进行打印: 2.链表,用于存储状态: 3.windows.h中有非阻塞输入,_kbhit(): 4.随机生成数: 5.视觉暂留: 6.碰撞检测: 7.清屏函数: 8.设置边界: 技术路线 1.设置一个边界: 2.维护一个子弹的列表: 3.维护一个敌机的列表: 4.初始化飞机的位置: 5.每隔一秒钟生成一架敌机,生

  • C语言实现注册登录系统

    本文实例为大家分享了C语言实现注册登录系统的具体代码,供大家参考,具体内容如下 /* Note:Your choice is C IDE */ #include "stdio.h" #include "string.h" #include "windows.h" //定义变量 char reg_name[30]="",reg_pwd[10]=""; char on_name[30],on_pwd[10];

随机推荐