最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

火车站售票系统-C语言课程设计

来源:动视网 责编:小OO 时间:2025-09-27 06:13:24
文档

火车站售票系统-C语言课程设计

沈阳航空航天大学课程设计学号2010041102031班级04110201姓名王帅指导教师郭建新2012年6月21日沈阳航空航天大学课程设计任务书系:材料科学与工程专业:材料成型及控制工程班级:04110201学号:2010041102031题目:火车站售票系统一、课程设计时间2011~2012第2学期第16周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:每天“沈阳→大连”有5次的火车(假设),具体的数据如下:班次发车时间载客量已售票数D106:405000D209:30
推荐度:
导读沈阳航空航天大学课程设计学号2010041102031班级04110201姓名王帅指导教师郭建新2012年6月21日沈阳航空航天大学课程设计任务书系:材料科学与工程专业:材料成型及控制工程班级:04110201学号:2010041102031题目:火车站售票系统一、课程设计时间2011~2012第2学期第16周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:每天“沈阳→大连”有5次的火车(假设),具体的数据如下:班次发车时间载客量已售票数D106:405000D209:30
沈 阳 航 空 航 天 大学

 课程设计

学    号 2010041102031    

班    级 04110201

姓    名  王帅

指导教师  郭建新

2012年  6   月   21 日

沈阳航空航天大学

课程设计任务书

系:材料科学与工程    专业:材料成型及控制工程   班级:04110201

学号:2010041102031    题目:火车站售票系统

一、课程设计时间

2011~2012第2学期第16周,共计1周,20学时。

二、课程设计内容

用C语言编写软件完成以下任务:

每天“沈阳→大连”有5次的火车(假设),具体的数据如下:

班次   发车时间   载客量     已售票数

D1     06:40     500        0

D2     09:30     600        0

A1     13:00     800        0

A2     16:00     800        0

L1     20:00     500        0

请你开发一个小程序,以完成每天的:“沈阳→大连”的售票业务。要求如下:

①能够售票和退票。

②某个火车已经过了开车时间,则该班次不再售票。

③可以随时显示售票现状,并以文件(myfile.test)的形式保存当天各个车次的售票情况。

三、课程设计要求

程序质量:

✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括、“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”等项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:

✧课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。

四、指导教师和学生签字

指导教师:________   学生签名:________

五、成绩

六、教师评语

目 录

一、需求分析    4

二、程序流程图…………………………………...4

三、关键技术分析    7

四、个人总结    ………10

五、参考文献    ………11

六、源程序    ………11

一、需求分析

(1)售票系统要求存储当天各个车次售票情况,所以程序需要定义结构体变量存储售票情况。系统的整体功能通过记录当天各个车次了解售票情况。编程时采取模块化设计思想,设计主函数,通过主函数中的switch分支选择调用各子函数以实现该系统的各种功能。然后设计相应的子函数来执行系统的各种功能,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

1、经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是存储函数(save)、卖票函数、退票函数、定售总金额、退出。

2、增强了程序的实用性,使系统用户界面友好、功能明确、操作方便,应采取直接用printf函数的方式在界面上输出可供用户选择的菜单。据此应该能够很好的完成要求

二、程序流程图

1 程序总体结构图

输入c

          C=1?                

真                                                 假

c

查询当前

售票情况

         C=2?

真                                          假

c

定票

         C=3?

真                          假

c

  退票

          C=4?

真                    假

"

保存当前车次售票情况

        C=5?

真             假

退出

                  

图1 程序总体结构图

2 函数功能图

(1)退票函数tuipiao

(2)保存信息的函数save

(3)卖票函数sell 

三、主要界面截图

四、关键技术分析

核心技术的实现方法和程序段:

本函数由六个自定义函数和一个主函数组成,其中 主函数以菜单形式调用其他函数来实现要求的所有功能。主函数分别调用保存函数(save)、读取函数、卖票函数、退票函数、订票总金额、退出。程序中较为核心的部分,具体分析如下:

1 保存函数

void save()                                 /*存储函数*/

{

 FILE *fp;

 int i;

 if((fp=fopen("myfile.txt

  {printf("cannot open infile\\n");

   exit(0);

  }

for(i=0;i  fwrite(&ST[i],sizeof(ST),1,fp);

  fclose(fp);

  printf("\\n");

  printf("||||***存储成功!***||||\\n");

  printf(" 请选择相应的数字进行下一步操作!\\n");

 }

2 查询函数

void search()                               /*查询函数*/                                                      

{int i,j;

printf("请输入要查询的班次\\n");

scanf("%s",&j);

for(i=0;i{if(int(ST[i].banci)==j)

{printf("\\n***-------查询售票结果--------******\\n");

printf("班次    发车时间    载客量   已售票数   余票  \\n");

printf("%3s %10s %10s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);}

}

save();;

}

3 售票系统:

  定义数组存储从获得的数字,为了能够多次输入,我们可以构造像for(i=0;ivoid sell()                               /*售票*/

{

int i,c;

char a[50];

{

int i;

{

printf("\\n\\n***-------沈阳→大连 火车售票系统--------******\\n");

printf("班次    发车时间    载客量   已售票数   余票  \\n");

for(i=0;iprintf("%3s %10s %10s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);

}

}

printf("请输入您要购买的班次(格式如:D1):\\n"); 

scanf("%s",a);

printf("请输入您要购买的票数(格式如:10):\\n");

scanf("%d",&c);

for(i=0;iif(strcmp(ST[i].banci,a)==0)                      /*判断班次是否符合*/             

{

ST[i].maipiao=ST[i].maipiao+c;

ST[i].yupiao=ST[i].yupiao-c;

printf("***---购买成功---***:\\n");

printf("**********欢迎使用********:\\n");

{

printf("\\n\\n***-------沈阳→大连 火车售票系统--------******\\n");

printf("班次    发车时间    载客量   已售票数   余票  \\n");

for(i=0;iprintf("%3s %10s %10s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);

}

save();

}

}

4 退票系统

void tuipiao()                                    /*退票*/

{

int i,c;

char a[50];

{

printf("\\n\\n***-------沈阳→大连 火车售票系统--------******\\n");

printf("班次    发车时间    载客量   已售票数   余票  \\n");

for(i=0;iprintf("%3s %10s %10s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);

}

printf("请输入您要退的班次(格式如:D1):\\n");

scanf("%s",a);

printf("请输入您要退的张数(格式如:100):\\n");

scanf("%d",&c);

for(i=0;iif(strcmp(ST[i].banci,a)==0)                                                

if(ST[i].maipiao-c>=0)

                                                           

{

ST[i].maipiao=ST[i].maipiao-c;

ST[i].yupiao=ST[i].yupiao+c;

printf("退票成功!!");

printf("**********欢迎使用********:\\n");

printf("\\n\\n***---------退票结果-----------******\\n");

printf("班次  ||发车时间 ||载客量 ||已售票数 ||余票\\n");

for(i=0;iprintf("%4s %10s %7s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);

save();

}

}

五、个人总结

在这五天的C程序课程设计中,我深刻的体会到细心的重要性。C程序设计是一个繁琐,需要投入很多的心思和精力的活。有时它会因为一个标点符号,让所有的心血白费。所以写程序时真得要仔仔细细的。因而我们需要的不仅仅是平日知识的积累,可以说这门课程还是有难度的,所以以后还要加强对这方面知识的学习,掌握好这门课程对我以后的专业也有很大的好处。

只有养成良好的习惯,才能保证我们的路可以越走越远!

六、参考文献

 谭浩强.C程序设计.北京:清华大学出版社,2005

七、源程序

#include

#include

#include

#include

#include

#define N 5

struct train                              /*定义结构体*/

{

   char banci[50];

   char facheshijian[50];

   char zaikeliang[50];

   int maipiao;

   int yupiao;

 }

   ST[N]={

     {"D1

     {"D2

     {"A1

     {"A2

     {"L1

    };

/*声明各函数*/

void search();                        

void save();

void sell();

void tuipiao();

int menu();

int menu()                                  /*定义菜单*/

{ int k;

  printf("1.查询显示当前售票情况.\\n");

  printf("2.买票.\\n");

  printf("3.退票.\\n");

  printf("4.储存数据.\\n");

  printf("5.退出售票系统.\\n");

  do{

   printf("\\n 请选择(1-5)继续:");

   scanf("%d",&k);

}while(k<1||k>5);

return (k);

}

void search()                               /*查询函数*/                                                      

{int i,j;

printf("请输入要查询的班次\\n");

scanf("%s",&j);

for(i=0;i{if(int(ST[i].banci)==j)

{printf("\\n***-------查询售票结果--------******\\n");

printf("班次    发车时间    载客量   已售票数   余票  \\n");

printf("%3s %10s %10s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);}

}

save();;

}

void sell()                               /*售票*/

{

int i,c;

char a[50];

{

int i;

{

printf("\\n\\n***-------沈阳→大连 火车售票系统--------******\\n");

printf("班次    发车时间    载客量   已售票数   余票  \\n");

for(i=0;iprintf("%3s %10s %10s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);

}

}

printf("请输入您要购买的班次(格式如:D1):\\n"); 

scanf("%s",a);

printf("请输入您要购买的票数(格式如:10):\\n");

scanf("%d",&c);

for(i=0;iif(strcmp(ST[i].banci,a)==0)                      /*判断班次是否符合*/             

{

ST[i].maipiao=ST[i].maipiao+c;

ST[i].yupiao=ST[i].yupiao-c;

printf("***---购买成功---***:\\n");

printf("**********欢迎使用********:\\n");

{

printf("\\n\\n***-------沈阳→大连 火车售票系统--------******\\n");

printf("班次    发车时间    载客量   已售票数   余票  \\n");

for(i=0;iprintf("%3s %10s %10s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);

}

save();

}

}

void tuipiao()                                    /*退票*/

{

int i,c;

char a[50];

{

printf("\\n\\n***-------沈阳→大连 火车售票系统--------******\\n");

printf("班次    发车时间    载客量   已售票数   余票  \\n");

for(i=0;iprintf("%3s %10s %10s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);

}

printf("请输入您要退的班次(格式如:D1):\\n");

scanf("%s",a);

printf("请输入您要退的张数(格式如:100):\\n");

scanf("%d",&c);

for(i=0;iif(strcmp(ST[i].banci,a)==0)                                                

if(ST[i].maipiao-c>=0)

                                                           

{

ST[i].maipiao=ST[i].maipiao-c;

ST[i].yupiao=ST[i].yupiao+c;

printf("退票成功!!");

printf("**********欢迎使用********:\\n");

printf("\\n\\n***---------退票结果-----------******\\n");

printf("班次  ||发车时间 ||载客量 ||已售票数 ||余票\\n");

for(i=0;iprintf("%4s %10s %7s %8d %8d\\n",ST[i].banci,ST[i].facheshijian,ST[i].zaikeliang,ST[i].maipiao,ST[i].yupiao);

save();

}

}

void save()                                 /*存储函数*/

{

 FILE *fp;

 int i;

 if((fp=fopen("d:\\\\myfile.txt

  {printf("cannot open infile\\n");

   exit(0);

  }

 else{

for(i=0;i  fwrite(&ST[i],sizeof(ST),1,fp);

  fclose(fp);

  printf("\\n");

  printf("*******存储成功!*******\\n");

  printf(" 请选择相应的数字进行下一步操作!\\n");

 }

}

void main()

{for(;;)                                                                   

   {

      switch(menu())

      {

     case 1:search();break;                                               

     case 2:sell(); break;

     case 3:tuipiao();break;

     case 4:save();break;

     case 5:exit(0);

      }

   }

}

文档

火车站售票系统-C语言课程设计

沈阳航空航天大学课程设计学号2010041102031班级04110201姓名王帅指导教师郭建新2012年6月21日沈阳航空航天大学课程设计任务书系:材料科学与工程专业:材料成型及控制工程班级:04110201学号:2010041102031题目:火车站售票系统一、课程设计时间2011~2012第2学期第16周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:每天“沈阳→大连”有5次的火车(假设),具体的数据如下:班次发车时间载客量已售票数D106:405000D209:30
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top