欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      一個(gè)簡單的火車票售票管理系統(tǒng)(大全五篇)

      時(shí)間:2019-05-14 13:34:57下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《一個(gè)簡單的火車票售票管理系統(tǒng)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《一個(gè)簡單的火車票售票管理系統(tǒng)》。

      第一篇:一個(gè)簡單的火車票售票管理系統(tǒng)

      一個(gè)簡單的火車票售票管理系統(tǒng)(原創(chuàng))#include #include #define MAX 100 #define N 50

      typedef struct time

      //時(shí)間類型 {

      int x,y,z;

      //分別對(duì)應(yīng)年,月,日 }TIME;

      typedef struct cnode

      //票信息類型 {

      int no;

      //票號(hào)

      int id;

      //購票人證件號(hào)

      TIME date;

      //購票日期

      struct cnode *next;}CNODE;

      typedef struct tnode

      //車次信息類型 {

      char data;

      //車次編號(hào)

      struct tnode *lchild,*rchild;

      CNODE *head;}TNODE;

      void create();

      //按車次建立二叉排序樹

      void insert(int);

      //增加新的車次(二叉排序樹的插入)void del();

      //取消車次(二叉排序樹節(jié)點(diǎn)刪除)

      void inorder(TNODE *);

      //中序遍歷車次二叉排序樹(僅顯示車次信息)void inorder_all(TNODE *);

      //中序遍歷車次二叉排序樹(顯示車次及售票信息)void preorder(TNODE *);

      //先序遍歷車次二叉排序樹(僅顯示車次信息)TNODE *search();

      //按車次編號(hào)搜索

      CNODE *insert_c(CNODE *);

      //插入新的售票信息(單張)CNODE *insert_c_more(CNODE *);

      //插入新的售票信息(批量)CNODE *del_c(CNODE *,CNODE *);

      //退票處理(刪除售票信息)CNODE *search_c(CNODE *,int);

      //按票號(hào)查詢

      void search_c_id(CNODE *,int);

      //按購票人證件號(hào)搜索(限定某車次)void search_c_id_all(TNODE *,int);

      //按購票人證件號(hào)搜索(所有車次)void search_date(CNODE *,TIME);

      //按購票日期搜索(限定某車次)void search_date_all(TNODE *,TIME);

      //按購票日期搜索(所有車次)void print_c(CNODE *);

      //輸出售票紀(jì)錄(單張)void print_c_all(CNODE *);

      //輸出售票紀(jì)錄(批量)

      TNODE *root=NULL;

      void main(){

      int i,func,no,ok;

      TNODE *t;

      CNODE *c;

      TIME d;

      printf(“nnn”);

      for(i=0;i<15;i++)printf(“=”);

      printf(“列車售票信息管理系統(tǒng)”);

      for(i=0;i<15;i++)printf(“=”);

      printf(“n”);

      printf(“t1.車次信息管理n”);

      printf(“t2.售票記錄管理n”);

      printf(“t3.售票記錄查詢n”);

      printf(“t4.售票記錄一覽n”);

      printf(“t5.退出系統(tǒng)n”);

      for(i=0;i

      printf(“n請(qǐng)選擇您所需要的功能:”);

      fflush(stdin);

      scanf(“%d”,&func);

      switch(func){

      case 1:

      printf(“nn車次信息管理>>>>n”);

      for(i=0;i

      printf(“nt1.增加新的車次”);

      printf(“nt2.取消車次”);

      printf(“nt3.返回上級(jí)菜單n”);

      for(i=0;i

      printf(“n請(qǐng)選擇您所需要的功能:”);

      fflush(stdin);

      scanf(“%d”,&func);

      switch(func){

      case 1:

      create();

      printf(“n售票信息更新成功!nn”);

      break;

      case 2:del();break;

      case 3:main();break;

      default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!請(qǐng)重新輸入!”);

      }

      break;

      case 2:

      printf(“nn售票記錄管理>>>>n”);

      for(i=0;i

      printf(“nt1.增加新的售票記錄”);

      printf(“nt2.退票”);

      printf(“nt3.返回上級(jí)菜單n”);

      for(i=0;i

      printf(“n請(qǐng)選擇您所需要的功能:”);

      fflush(stdin);

      scanf(“%d”,&func);

      switch(func){

      case 1:

      t=search();

      if(t!=NULL)t->head=insert_c_more(t->head);

      break;

      case 2:

      t=search();

      printf(“需要退票的票號(hào):”);

      scanf(“%d”,&no);

      t->head=del_c(t->head,search_c(t->head,no));

      break;

      case 3:main();break;

      default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!請(qǐng)重新輸入!”);

      }

      break;

      case 3:

      printf(“nn售票記錄查詢>>>>n”);

      for(i=0;i

      printf(“nt1.按票號(hào)搜索”);

      printf(“nt2.按購票者證件號(hào)搜索”);

      printf(“nt3.按購票日期搜索”);

      printf(“nt4.返回上級(jí)菜單n”);

      for(i=0;i

      printf(“n請(qǐng)選擇您所需要的功能:”);

      fflush(stdin);

      scanf(“%d”,&func);

      switch(func){

      case 1:

      t=search();

      if(t!=NULL){

      printf(“n請(qǐng)輸入您所要查詢的票號(hào):”);

      scanf(“%d”,&no);

      c=search_c(t->head,no);

      if(c==NULL)printf(“[錯(cuò)誤]沒有該票號(hào)的紀(jì)錄!該票還未售出或?yàn)閺U票!自動(dòng)返回上級(jí)菜單n...”);}

      break;

      case 2:

      printf(“n請(qǐng)輸入您所要查詢的購票者證件號(hào):”);

      scanf(“%d”,&no);

      search_c_id_all(root,no);

      printf(“搜索完畢!自動(dòng)返回上級(jí)菜單n...”);

      break;

      case 3:

      do{

      printf(“n請(qǐng)輸入您所要查詢的日期(格式: yy-mm-dd):”);

      scanf(“%d-%d-%d”,&d.x,&d.y,&d.z);

      if(d.y<13&&d.y>0){

      if(d.y==1||d.y==3||d.y==5||d.y==7||d.y==8||d.y==10||d.y==12)

      if(d.z<32&&d.z>0)ok=1;

      else if(d.z==2)

      if(d.z<30&&d.z>0)ok=1;

      else

      if(d.z<31&&d.z>0)ok=1;

      }

      else ok=0;

      if(!ok)printf(“n[錯(cuò)誤]日期輸入有誤!請(qǐng)重新輸入!”);

      }while(!ok);

      printf(“n指定車次嗎?(1->是,0->否):”);

      scanf(“%d”,&ok);

      if(ok)search_date(search()->head,d);

      else search_date_all(root,d);

      break;

      case 4:main();break;

      default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!自動(dòng)返回上級(jí)菜單n...”);

      }

      break;

      case 4:

      printf(“nn售票記錄一覽>>>>n”);

      for(i=0;i

      printf(“nt1.僅瀏覽車次”);

      printf(“nt2.指定車次已售票記錄”);

      printf(“nt3.所有車次已售票記錄”);

      printf(“nt4.測試:先序遍歷車次”);

      printf(“nt5.返回上級(jí)菜單n”);

      for(i=0;i

      printf(“n請(qǐng)選擇您所需要的功能:”);

      fflush(stdin);

      scanf(“%d”,&func);

      switch(func){

      case 1:

      printf(“n+++僅瀏覽車次n”);

      if(root==NULL)printf(“[錯(cuò)誤]無車次紀(jì)錄!”);

      else{inorder(root);printf(“n”);}

      break;

      case 2:

      printf(“n+++指定車次已售票記錄n”);

      t=search();

      if(t!=NULL){

      print_c_all(t->head);

      printf(“n”);

      }

      break;

      case 3:

      printf(“n+++所有車次已售票記錄n”);

      if(root==NULL)printf(“[錯(cuò)誤]無車次紀(jì)錄!”);

      else{inorder_all(root);printf(“n”);}

      break;

      case 4:

      printf(“n+++測試:先序遍歷車次n”);

      if(root==NULL)printf(“[錯(cuò)誤]無車次紀(jì)錄!”);

      else{preorder(root);printf(“n”);}

      break;

      case 5:main();break;

      default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!自動(dòng)返回上級(jí)菜單n...”);

      }

      break;

      case 5:exit(0);

      default:printf(“n[錯(cuò)誤]功能號(hào)輸入有誤!請(qǐng)重新輸入!”);

      }

      main();}

      void inorder_all(TNODE *ptr){ if(ptr!=NULL)

      {

      inorder_all(ptr->lchild);

      printf(“%d:n”,ptr->data);

      print_c_all(ptr->head);

      printf(“n”);

      inorder_all(ptr->rchild);

      } }

      void inorder(TNODE *ptr){ if(ptr!=NULL)

      {

      inorder(ptr->lchild);

      printf(“%dt”,ptr->data);

      inorder(ptr->rchild);

      } }

      void preorder(TNODE *ptr){ if(ptr!=NULL)

      {

      printf(“%dt ”,ptr->data);

      preorder(ptr->lchild);

      preorder(ptr->rchild);

      } }

      void print_c(CNODE *tkt){

      if(tkt!=NULL)printf(“t%dt%dt%d-%d-%dn”,tkt->no,tkt->id,tkt->date.x,tkt->date.y,tkt->date.z);}

      void print_c_all(CNODE *head){

      int i=0,j=0;

      if(head==NULL){printf(“n記錄為空!n”);return;}

      for(i=0;i

      printf(“nNOt票號(hào)t購票者證件號(hào)t購票日期(年-月-日)n”);

      for(i=0;i

      for(j=0;head!=NULL;j++){

      printf(“n%d”,j);

      print_c(head);

      head=head->next;

      }

      printf(“n”);

      for(i=0;i

      printf(“n總計(jì) %d 條記錄n”,j);

      for(i=0;i

      printf(“n”);} void create(){ int n,i;int k[MAX];printf(“n您所希望增加車次的數(shù)量:”);scanf(“%d”,&n);for(i=0;i

      printf(“新增第%d列車次:”,i+1);

      scanf(“%d”,&k[i]);} for(i=0;i

      insert(k[i]);}

      void insert(int m){ TNODE *p1,*p2;if(root==NULL)

      {

      root=(TNODE *)malloc(sizeof(TNODE));

      root->data=m;

      root->lchild=root->rchild=NULL;

      root->head=NULL;

      } else

      {

      p1=root;

      while(m!=p1->data)

      {

      if((m

      data)&&(p1->lchild!=NULL))p1=p1->lchild;

      else if((m>p1->data)&&(p1->rchild!=NULL))p1=p1->rchild;

      else if((m

      data)&&(p1->lchild==NULL))

      {

      p2=(TNODE *)malloc(sizeof(TNODE));

      p2->data=m;

      p2->lchild=p2->rchild=NULL;

      p2->head=NULL;

      p1->lchild=p2;

      return;

      }

      else if((m>p1->data)&&(p1->rchild==NULL))

      {

      p2=(TNODE *)malloc(sizeof(TNODE));

      p2->data=m;

      p2->lchild=p2->rchild=NULL;

      p2->head=NULL;

      p1->rchild=p2;

      return;

      }

      }

      printf(“n[錯(cuò)誤]未能成功增加車次%d,車次號(hào) %d 已存在!”,m,m);

      } }

      TNODE *search(){

      int key;

      TNODE *p;

      p=root;

      printf(“n輸入您所要查找的車次編號(hào):”);

      scanf(“%d”,&key);

      while(p!=NULL&&p->data!=key){

      if(key

      data){p=p->lchild;}

      else if(key>p->data){p=p->rchild;}

      }

      if(p==NULL)printf(“n該車次不存在!”);

      return(p);}

      void del(){

      int key;

      TNODE *p1,*p2,*p3,*temp;

      p1=p2=root;

      p3=temp=NULL;

      printf(“n請(qǐng)輸入您想要取消的車次編號(hào):”);

      scanf(“%d”,&key);

      while(p2!=NULL&&p2->data!=key){

      if(key

      data){p1=p2;p2=p2->lchild;}

      else if(key>p2->data){p1=p2;p2=p1->rchild;}

      }

      if(p2==NULL){printf(“n[錯(cuò)誤]該車次不存在!返回上級(jí)菜單n...”);return;}

      else if(p2->lchild==NULL&&p2->rchild==NULL)

      {

      if(p1->lchild==p2)p1->lchild=NULL;

      if(p1->rchild==p2)p1->rchild=NULL;

      temp=p2;

      if(root==p2){temp=root;root=NULL;}

      }

      else{

      if(p2->rchild==NULL){

      temp=p2->lchild;

      p2->data=temp->data;

      p2->lchild=temp->lchild;

      p2->rchild=temp->rchild;

      }

      else if(p2->lchild==NULL){

      temp=p2->rchild;

      p2->data=temp->data;

      p2->lchild=temp->lchild;

      p2->rchild=temp->rchild;

      }

      else{

      p3=p2;

      temp=p2->lchild;

      while(temp->rchild!=NULL){p3=temp;temp=temp->rchild;}

      p2->data=temp->data;

      if(p3==p2)p3->lchild=temp->lchild;

      else p3->rchild=temp->lchild;

      }

      }

      free(temp);

      printf(“車次 %d 已取消!nn”,key);}

      CNODE *insert_c(CNODE *head){

      CNODE *k,*p;

      k=(CNODE *)malloc(sizeof(CNODE));

      do{

      printf(“n車票編號(hào):”);

      scanf(“%d”,&k->no);

      p=search_c(head,k->no);

      if(p!=NULL)printf(“n[錯(cuò)誤]該票已被購買!請(qǐng)重新選擇!n”);

      }while(p!=NULL);

      printf(“購票者證件號(hào):”);

      scanf(“%d”,&k->id);

      printf(“購票日期(格式:yy-mm-dd):”);

      scanf(“%d-%d-%d”,&k->date.x,&k->date.y,&k->date.z);

      k->next=head;

      head=k;

      return(head);}

      CNODE *insert_c_more(CNODE *head){

      int n,i;

      printf(“n請(qǐng)輸入批量新增售票記錄數(shù):”);

      fflush(stdin);

      scanf(“%d”,&n);

      for(i=0;i

      printf(“n售票記錄更新成功!n”);

      return(head);}

      CNODE *search_c(CNODE *head,int id){

      CNODE *temp,*s;

      s=temp=head;

      while(temp!=NULL&&temp->id!=id){s=temp;temp=temp->next;}

      print_c(temp);

      if(temp!=NULL)return(s);

      else return NULL;}

      void search_c_id(CNODE *head,int id){

      CNODE *s,*head_s;

      s=head_s=NULL;

      if(head==NULL)printf(“無該證件號(hào)紀(jì)錄!n”);

      while(head!=NULL){

      if(head->id==id){

      s=(CNODE *)malloc(sizeof(CNODE));

      s->no=head->no;s->id=head->id;s->date=head->date;

      s->next=head_s;head_s=s;

      }

      head=head->next;

      }

      print_c_all(head_s);

      printf(“n”);}

      void search_c_id_all(TNODE *ptr,int id){

      if(ptr!=NULL){

      search_c_id_all(ptr->lchild,id);

      printf(“n車次:%dn”,ptr->data);

      search_c_id(ptr->head,id);

      search_c_id_all(ptr->rchild,id);

      } }

      void search_date(CNODE *head,TIME t){

      CNODE *s,*head_s;

      s=head_s=NULL;

      while(head!=NULL){

      if(t.x==head->date.x)

      if(t.y==head->date.y)

      if(t.z==head->date.z)

      {

      s=(CNODE *)malloc(sizeof(CNODE));

      s->no=head->no;s->id=head->id;s->date=head->date;

      s->next=head_s;head_s=s;

      }

      head=head->next;

      }

      print_c_all(head_s);

      printf(“n”);}

      void search_date_all(TNODE *ptr,TIME t){

      if(ptr!=NULL){

      search_date_all(ptr->lchild,t);

      printf(“n車次:%dn”,ptr->data);

      search_date(ptr->head,t);

      search_date_all(ptr->rchild,t);

      } }

      CNODE *del_c(CNODE *head,CNODE *p){

      CNODE *temp;

      if(p==NULL)printf(“[錯(cuò)誤]該票未售出或?yàn)閺U票!返回上級(jí)菜單n...”);

      else if(p==head){head=NULL;free(p);}

      else{

      temp=p->next;

      p->next=temp->next;

      free(temp);

      }

      return(head);}

      第二篇:火車票售票系統(tǒng) 需求分析報(bào)告

      三、需求規(guī)格說明書

      三、需求規(guī)格說明書

      1.引言...........................................................................................................................1 1.1編寫目的.............................................................................................................1 1.2項(xiàng)目背景.............................................................................................................2 1.3定義....................................................................................................................2 1.4參考資料.............................................................................................................2 2.任務(wù)概述....................................................................................................................2 2.1目標(biāo)....................................................................................................................2 2.2運(yùn)行環(huán)境.............................................................................................................3 2.3條件與限制..........................................................................................................3 3.?dāng)?shù)據(jù)描述....................................................................................................................3 3.1靜態(tài)數(shù)據(jù).............................................................................................................3 3.2動(dòng)態(tài)數(shù)據(jù).............................................................................................................3 3.3數(shù)據(jù)庫介紹..........................................................................................................4 3.4數(shù)據(jù)詞典.............................................................................................................4 3.5數(shù)據(jù)采集.............................................................................................................8 4.功能需求....................................................................................................................8 4.1功能劃分.............................................................................................................8 4.2功能描述.............................................................................................................9 5.性能需求....................................................................................................................9 5.1數(shù)據(jù)精確度..........................................................................................................9 5.2時(shí)間特性.............................................................................................................9 5.3適應(yīng)性.................................................................................................................9 6.運(yùn)行需求....................................................................................................................9 6.1用戶界面.............................................................................................................9 6.2硬件接口...........................................................................................................10 6.3軟件接口...........................................................................................................10 6.4故障處理...........................................................................................................10 7.其它需求..................................................................................................................10

      1.引言

      1.1編寫目的

      本需求分析報(bào)告的目的是規(guī)范化本軟件的編寫,旨在于提高軟件開發(fā)過程中的能見度,便于對(duì)軟件開發(fā)過程中的控制與管理,同時(shí)提出了本火車售票系統(tǒng)的軟件開發(fā)過程,便于程

      三、需求規(guī)格說明書

      序員與客戶之間的交流、協(xié)作,并作為工作成果的原始依據(jù),同時(shí)也表明了本軟件的共性,以期能夠獲得更大范圍的應(yīng)用。本文檔供項(xiàng)目經(jīng)理、設(shè)計(jì)人員、開發(fā)人員參考。

      1.2項(xiàng)目背景

      a.項(xiàng)目的委托單位:中國鐵路局 b.開發(fā)單位:xx大學(xué) c.主管部門:計(jì)算機(jī)學(xué)院 d.軟件名稱:火車售票系統(tǒng) e.軟件開發(fā)者:

      1.3定義

      a.鐵路售票應(yīng)用系統(tǒng)軟件:基本元素為構(gòu)成鐵路售票及相關(guān)行為所必須的各種部分。

      b.需求:用戶解決問題或達(dá)到目標(biāo)所需的條件或功能;系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn),規(guī)范或其它正式規(guī)定文檔所需具有的條件或權(quán)能。

      c.需求分析:包括提煉,分析和仔細(xì)審查已收集到的需求,以確保所有的風(fēng)險(xiǎn)承擔(dān)者都明其含義并找出其中的錯(cuò)誤,遺憾或其它不足的地方。

      d.模塊的獨(dú)立性:是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡單的。

      1.4參考資料

      a.《實(shí)用軟件工程》(第二版)鄭人杰,殷人昆,陶永雷。清華大學(xué)出版社,1997。b.《JAVA網(wǎng)絡(luò)高級(jí)編程》金勇華,曲俊生。人民郵電出版社,2001。

      c.《JBUILDER培訓(xùn)教程》Borland software corporation。機(jī)械工業(yè)出版社,2002。

      2.任務(wù)概述

      2.1目標(biāo)

      (1)完善目前火車售票系統(tǒng),使之能跟上時(shí)代的發(fā)展。同時(shí)通過實(shí)踐來提高自己的動(dòng)手能

      三、需求規(guī)格說明書

      (2)應(yīng)用范圍:理論上能夠?qū)崿F(xiàn)于鐵路部門的售票系統(tǒng),其目的在于在原有的系統(tǒng)基礎(chǔ)使得火車售票便捷化,以期實(shí)現(xiàn)完善日常生活中火車售票的各種缺陷。

      (3)可實(shí)現(xiàn)旅客對(duì)于火車票的查詢與購買功能,售票員則可實(shí)現(xiàn)查詢、添加和刪除等功能;對(duì)于所查詢的車次結(jié)果提供列表顯示輸出;有一定的安全機(jī)制,普通旅客不能對(duì)車次信息隨意刪改,只有授權(quán)的售票員可通過密碼識(shí)別進(jìn)行維護(hù)。

      2.2運(yùn)行環(huán)境

      操作系統(tǒng):Microsoft Windows 2000 Advanced Server 支持環(huán)境:IIS 5.0 數(shù) 據(jù) 庫:Microsoft SQL Server 2000 2.3條件與限制

      一個(gè)更完善的火車票售票系統(tǒng),應(yīng)提供更為便捷與強(qiáng)大的查詢購買功能,如相應(yīng)的網(wǎng)絡(luò)操作及服務(wù),由于開發(fā)時(shí)間和計(jì)算機(jī)數(shù)量有限,該系統(tǒng)并未提供這一功能,對(duì)于信息的保護(hù)手段僅限制于設(shè)置用戶級(jí)別,以記名提供數(shù)據(jù)文件的備份,比較簡單,不能防止惡意的破壞,安全性能有待進(jìn)一步完善。

      3.?dāng)?shù)據(jù)描述

      3.1靜態(tài)數(shù)據(jù)

      火車票:列車車號(hào)

      (int SerialNumber)

      列車始發(fā)時(shí)間(struct time SetOut)

      列車始發(fā)站(char DeparturePoint)

      列車終點(diǎn)站(char TerminalPoint)

      票務(wù):列車車號(hào)

      (int SerialNumber)

      已售出車票票數(shù)(int FixedNumber)

      額定載量(int FixNumber)

      售票員:用戶名(char name)

      密碼(char password)3.2動(dòng)態(tài)數(shù)據(jù)

      輸入數(shù)據(jù):根據(jù)界面提示,鍵盤輸入操作;

      查詢方式:查詢車次、查詢始發(fā)站;

      三、需求規(guī)格說明書

      旅客購買時(shí)的票務(wù)信息,售票員添加、購票、退票時(shí)的票務(wù)信息;

      售票員備份數(shù)據(jù)恢復(fù)所需的數(shù)據(jù)備份文件;

      售票員操作需密碼,旅客操作受限; 輸出信息:查詢車次確定的數(shù)據(jù)庫記錄的子集;

      統(tǒng)計(jì)結(jié)果;

      車次信息錄入、刪除(成功或失?。?;

      車次信息查詢、購買的操作結(jié)果;

      數(shù)據(jù)備份輸出的數(shù)據(jù)備份文件; 內(nèi)部數(shù)據(jù):查詢操作建立的索引;

      3.3數(shù)據(jù)庫介紹

      數(shù)據(jù)庫采用Microsoft Access數(shù)據(jù)庫

      3.4數(shù)據(jù)詞典

      《火車售票系統(tǒng)》的總體功能如下: 車票的售出; 車票的退還; 車票信息的查詢;

      車票的增刪改;

      售票員查詢統(tǒng)計(jì)車票信息; 售票系統(tǒng)數(shù)據(jù)備份; 售票管理者口令修改; 1.售票員登陸系統(tǒng):(1)數(shù)據(jù)流圖

      售票退票選擇檢驗(yàn)錯(cuò)誤售票員選擇用戶名密碼身份驗(yàn)證售票員信息密碼正確登陸系統(tǒng)選擇選擇選擇授權(quán)信息表查詢錄入新的班次信息

      (2)數(shù)據(jù)詞典

      ? 數(shù)據(jù)源點(diǎn)及匯點(diǎn)描述: ① 名稱:售票員

      簡要描述:管理售票員信息

      有關(guān)數(shù)據(jù)流:用戶名、密碼、系統(tǒng)選擇:售票系統(tǒng)、退票系統(tǒng)、查詢系統(tǒng)、錄入信息系統(tǒng) 數(shù)目:1

      三、需求規(guī)格說明書

      ? 加工邏輯詞條描述: ① 加工名:身份檢驗(yàn)

      加工編號(hào):1

      簡要描述:檢驗(yàn)用戶身份 輸入數(shù)據(jù)流:用戶名、密碼

      輸出數(shù)據(jù)流:密碼正確、身份驗(yàn)證錯(cuò)誤 加工邏輯: IF 用戶名為空 THEN

      發(fā)出“用戶名為空錯(cuò)誤”

      ELSE IF 密碼為空 THEN

      發(fā)出“密碼為空錯(cuò)誤”

      ELSE IF 用戶名和密碼不符 THEN

      發(fā)出“用戶名和密碼不匹配錯(cuò)誤”

      ENDIF

      ENDIF

      ENDIF

      ENDIF ? 數(shù)據(jù)流名詞條描述: ① 數(shù)據(jù)流名:用戶名

      說明:售票員姓名

      數(shù)據(jù)流來源:售票員 數(shù)據(jù)流去向:身份檢驗(yàn)

      數(shù)據(jù)流組成:用戶名=字符型字符串 ② 數(shù)據(jù)流名:密碼

      說明:與用戶名相匹配的密碼 數(shù)據(jù)流來源:售票員

      數(shù)據(jù)流去向:身份檢驗(yàn)

      數(shù)據(jù)流組成:密碼=短整型字符串 每個(gè)數(shù)據(jù)量流通量: ③ 數(shù)據(jù)流名:出錯(cuò)信息

      說明:用于指示身份驗(yàn)證錯(cuò)誤的信息

      數(shù)據(jù)流來源:身份檢驗(yàn) 數(shù)據(jù)流去向:售票員

      數(shù)據(jù)流組成:出錯(cuò)信息=任意字符串 ④ 數(shù)據(jù)流名:系統(tǒng)名稱

      說明:系統(tǒng)的名稱 數(shù)據(jù)流來源: 數(shù)據(jù)流去向:選擇 數(shù)據(jù)流組成: ? 數(shù)據(jù)文件詞條描述: ① 數(shù)據(jù)文件名:授權(quán)信息表

      簡述:存放售票員信息

      輸入數(shù)據(jù):

      輸出數(shù)據(jù):售票員信息

      數(shù)據(jù)文件組成:授權(quán)信息表由“售票員信息”組成

      三、需求規(guī)格說明書

      2.售票員相關(guān)操作(售票、退票、查詢、錄入)

      票務(wù)信息表車票信息車票信息售票退票選擇檢驗(yàn)錯(cuò)誤售票員選擇用戶名密碼身份驗(yàn)證售票員信息密碼正確登陸系統(tǒng)選擇選擇選擇授權(quán)信息表查詢車票信息錄入新的班次信息車票信息列車信息表

      (2):數(shù)據(jù)詞典:

      ? 數(shù)據(jù)源點(diǎn)及匯點(diǎn)描述: 1 名稱:售票員 ○簡要描述:管理售票員信息 有關(guān)數(shù)據(jù)流:用戶名、密碼

      數(shù)目:1 ? 加工邏輯詞條描述: 1加工名:身份檢驗(yàn) ○加工編號(hào):1

      簡要描述:檢驗(yàn)用戶身份

      輸入數(shù)據(jù)流:用戶名、密碼

      輸出數(shù)據(jù)流:密碼正確、身份驗(yàn)證錯(cuò)誤 2加工名:售票 ○加工編號(hào):2 簡要描述:根據(jù)所讀入的操作信息,售出火車票

      輸入數(shù)據(jù)流:操作信息,火車票信息

      輸出數(shù)據(jù)流:火車票信息

      加工邏輯:根據(jù)所讀入的操作信息,售出火車票

      ? 數(shù)據(jù)流名詞條描述: 數(shù)據(jù)流名:用戶名 ○

      三、需求規(guī)格說明書

      說明:售票員的姓名

      數(shù)據(jù)流來源:售票員 數(shù)據(jù)流去向:身份檢驗(yàn)

      數(shù)據(jù)流組成:用戶名=字符型字符串 2數(shù)據(jù)流名:密碼 ○說明:與職工名稱相匹配的密碼 數(shù)據(jù)流來源:售票員 數(shù)據(jù)流去向:身份檢驗(yàn)

      數(shù)據(jù)流組成:密碼=短整型字符串 每個(gè)數(shù)據(jù)量流通量: 3數(shù)據(jù)流名:車票信息 ○說明:車票信息

      數(shù)據(jù)流來源:售票員

      數(shù)據(jù)流去向:列車信息表

      ? 數(shù)據(jù)文件詞條描述:

      ① 數(shù)據(jù)文件名:列車信息表

      簡述:車票信息

      輸入數(shù)據(jù):車票信息

      輸出數(shù)據(jù):

      數(shù)據(jù)文件組成:列車信息表由“車票信息”組成 存儲(chǔ)方式:關(guān)鍵碼 存取頻率:頻繁 2數(shù)據(jù)文件名:票務(wù)信息表 ○簡述:票務(wù)信息

      輸入數(shù)據(jù):票務(wù)信息 輸出數(shù)據(jù):

      數(shù)據(jù)文件組成:票務(wù)信息表由“列車號(hào)、已售票、剩余票”組成 存儲(chǔ)方式:關(guān)鍵碼 存取頻率:頻繁

      3.旅客查詢購票過程:(1)數(shù)據(jù)流圖

      三、需求規(guī)格說明書

      旅客 登錄系統(tǒng)選擇選擇選擇選擇訂票退票查詢

      (2)數(shù)據(jù)詞典:

      ● 數(shù)據(jù)源點(diǎn)及匯點(diǎn)描述: 名稱:旅客

      簡要描述:訂票,退票,查詢

      有關(guān)數(shù)據(jù)流:系統(tǒng)選擇:訂票系統(tǒng)、退票系統(tǒng)、查詢系統(tǒng) ●數(shù)據(jù)流名詞條描述:

      ⑤ 數(shù)據(jù)流名:系統(tǒng)名稱

      說明:系統(tǒng)的名稱 數(shù)據(jù)流來源:

      數(shù)據(jù)流去向:選擇

      數(shù)據(jù)流組成:

      3.5數(shù)據(jù)采集

      數(shù)據(jù)采集采用鍵盤輸入

      4.功能需求

      4.1功能劃分

      該軟件具有如下主要功能: 1.瀏覽功能 2.查詢功能 3.添加功能 4.修改功能 5.刪除功能

      三、需求規(guī)格說明書

      6.授權(quán)功能

      4.2功能描述

      1.瀏覽功能

      列出當(dāng)前數(shù)據(jù)庫文件中車票的所有記錄 可選定一項(xiàng)紀(jì)錄,顯示說有域 2.查詢功能

      車次信息匹配查詢 始發(fā)站信息匹配查詢 3.添加功能

      增加一條車票的信息 4.修改功能

      修改某一已存在的記錄內(nèi)容,提供確認(rèn)機(jī)制 5.刪除功能

      刪除一條記錄,提供確認(rèn)機(jī)制 6.授權(quán)功能

      授權(quán)票務(wù)管理人員修改數(shù)據(jù)的權(quán)限

      5.性能需求

      5.1數(shù)據(jù)精確度

      查詢時(shí)應(yīng)保證查全率,所有在相應(yīng)域中包含查詢車次的記錄都應(yīng)能查到,同時(shí)保證查準(zhǔn)率。

      5.2時(shí)間特性

      一般操作的相應(yīng)時(shí)間應(yīng)在1~2秒內(nèi)

      5.3適應(yīng)性

      滿足運(yùn)行環(huán)境在允許操作系統(tǒng)之間的安全轉(zhuǎn)換和雨其它又能夠用軟件的獨(dú)立運(yùn)行要求。

      6.運(yùn)行需求

      6.1用戶界面

      采取對(duì)話框方式,多功能窗口運(yùn)行

      三、需求規(guī)格說明書

      6.2硬件接口

      (1)硬件接口:支持x86系列PC機(jī)

      (2)網(wǎng)絡(luò)硬件接口要求:現(xiàn)實(shí)中要求具有高速以太網(wǎng)組網(wǎng)一實(shí)現(xiàn)聯(lián)網(wǎng)銷售,但是在理論實(shí)驗(yàn)驗(yàn)證軟件本身的目的來看,無需網(wǎng)絡(luò)通訊接口。

      6.3軟件接口

      運(yùn)行于Windows2000及更高版本并裝有JAVA虛擬機(jī)的操作系統(tǒng)之上。

      6.4故障處理

      正常使用時(shí)不用出錯(cuò),對(duì)于用戶的輸入錯(cuò)誤應(yīng)及時(shí)給出適當(dāng)?shù)母恼畔⑻崾?,若運(yùn)行遇到不可恢復(fù)的系統(tǒng)錯(cuò)誤,也必須保證數(shù)據(jù)庫完好無損。

      7.其它需求

      (1)可用性:該軟件也可以通過單步跟蹤的操作進(jìn)行檢查處理。

      (2)安全性:由于軟件運(yùn)行數(shù)據(jù)放在數(shù)據(jù)庫中,所以參數(shù)不容易被錯(cuò)改、破壞,萬一參數(shù)受到破壞也不會(huì)影響源程序。

      (3)可維護(hù)性:該軟件利用數(shù)據(jù)庫進(jìn)行編程,系統(tǒng)結(jié)構(gòu)由程序基本確定,大量的參數(shù)及文本內(nèi)容全部放于數(shù)據(jù)庫中。修改、更新數(shù)據(jù)只要在數(shù)據(jù)庫進(jìn)行修改添加,而不需要對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行修改,這樣系統(tǒng)維護(hù)性、升級(jí)都十分方便。

      (4)兼容性:由于尚未測試,故無法對(duì)兼容性進(jìn)行評(píng)析。

      第三篇:課程設(shè)計(jì)火車票售票系統(tǒng)的需求分析

      二.需求分析

      經(jīng)過對(duì)程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為八個(gè)模塊,每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù)。在這些函數(shù)當(dāng)中,添加車次數(shù)據(jù)函數(shù)、售票函數(shù)、查詢總額函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而顯示時(shí)間函數(shù)和顯示車次函數(shù)屬于附加功能。讀取文件函數(shù)和保存信息函數(shù)對(duì)其它函數(shù)的實(shí)現(xiàn)起輔助作用,主函數(shù)及菜單函數(shù)控制程序的整體運(yùn)行。

      1.添加車次函數(shù)

      主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)車次的錄入 2.旅客買票函數(shù)

      實(shí)現(xiàn)的功能是按照旅客所需車次幾所購買車票的數(shù)目 3.查詢車票總額

      按照題目的具體要求實(shí)現(xiàn)的是總額的查詢 4.顯示函數(shù)

      實(shí)現(xiàn)的是顯示目前所有的有效車次信息

      除上面介紹的功能之外,程序還具有顯示當(dāng)?shù)貢r(shí)間,以及退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。

      每一個(gè)車次都包含車次、日期,始發(fā)、終點(diǎn)以及所受票數(shù)和所需費(fèi)用,在程序當(dāng)中,將車次類型定義為結(jié)構(gòu)體類型,添加的車次信息直接寫入E盤的train.txt文件中,其它函數(shù)每次對(duì)車次記錄的訪問,其數(shù)據(jù)來源都是train.txt文件,這樣做不但可以保證學(xué)生數(shù)據(jù)的一致性,而且可以對(duì)車次數(shù)據(jù)進(jìn)行永保存,保證每次運(yùn)行程序都可以采用原來的數(shù)據(jù)

      近年來,中國乃至世界的人口急劇增加,人口流動(dòng)量也隨之增加,火車作為一種便捷且相對(duì) 比較便宜的交通工具也受到廣大出行者的青睞,為了減輕鐵道部售票的壓力,特此編寫此程序,便于乘客在網(wǎng)上購票。

      3.1.2 軟件項(xiàng)目概述

      本系統(tǒng)擁有四大功能,分別是查詢、訂票、改簽和退票。在使用不能系統(tǒng)之前,用戶必須注 冊(cè)用戶名,用戶名必須包括乘客的身份證號(hào),這樣可以實(shí)行實(shí)名制購票,防止在購票高峰,非法 分子以高價(jià)倒賣火車票,以此來保證乘客的利益。用戶在利用用戶名登陸本系統(tǒng)以后,方可經(jīng)行 查詢、訂票、改簽和退票的相關(guān)操作。其中,查詢?cè)试S乘客對(duì)自己所需乘坐的列車經(jīng)行查詢,來 判斷是否有票,如果有票,乘客則可以選擇訂票,訂票以后,用戶的信息將被修改,用戶信息將 會(huì)添加剛才購買的火車票的列車車次以及起始地和目的地。如果乘客已經(jīng)購票,需要換票,則必 須先查詢是否有需要換的票,如果有票,則可以經(jīng)行換票操作,同樣,用戶信息將也會(huì)被修改。

      當(dāng)乘客已經(jīng)訂票,需要退票,點(diǎn)擊退票,則可以退票,但同時(shí)會(huì)彈出

      需要用戶支付手續(xù)費(fèi)的窗

      口,用戶支付完手續(xù)費(fèi)后,退票成功,用戶信息將被修改,推掉的車票對(duì)應(yīng)的列車號(hào)以及相關(guān)信 息將從用戶信息中刪除。

      3.2 訂票流程設(shè)計(jì)

      3.2.1 訂票流程描述

      乘客在使用系統(tǒng)之前,首先注冊(cè)新用戶,需要輸入自己相關(guān)個(gè)人信息,包括自己的身份證號(hào) 碼,名稱,登陸密碼等。當(dāng)已經(jīng)注冊(cè)好用戶以后,用戶可以利用自己的證件號(hào)碼和登陸密碼登陸 火車票訂票系統(tǒng),乘客需先查詢自己所需要乘坐的列車,看是否有票,如果有票則可以選擇訂票,進(jìn)行訂票;如果用戶已經(jīng)購票,需要換票,則需要查詢目標(biāo)票看其是否有剩余,如果有剩余,則 可以進(jìn)行換票,當(dāng)用戶輸入已擁有的火車票的列車號(hào)點(diǎn)擊退票,則可以經(jīng)行退票。當(dāng)然,以上操 作都必須建立在用戶已登錄的基礎(chǔ)上

      階段通過對(duì)系統(tǒng)目標(biāo)的初步調(diào)研和分析,提出可行性方案并進(jìn)行論證。我們?cè)谶@ 里主要從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性三方面進(jìn)行分析。2.1.1 經(jīng)濟(jì)可行性

      本系統(tǒng)其他應(yīng)用軟件、硬件系統(tǒng)也易于獲得.因此 , 開發(fā)成本較低。而引進(jìn)使用本系

      統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質(zhì)量的特點(diǎn),可以節(jié)省不少人力、物 力及財(cái)力。所以,從經(jīng)濟(jì)的角度來看,該系統(tǒng)可行。2.1.2 技術(shù)可行性

      開發(fā)工具: VS2005

      數(shù)據(jù)庫環(huán)境: SQL Server 2005 系統(tǒng)環(huán)境:

      Microsoft Windows 2000 或以上版本。

      系統(tǒng)實(shí)現(xiàn)依靠相對(duì)熟悉的 c 語言和 SQL Server2008 數(shù)據(jù)庫系統(tǒng),其基本操作實(shí)質(zhì)還

      是對(duì)數(shù)據(jù)庫進(jìn)行添加、刪除、查找等操作。2.1.3 操作可行性

      系統(tǒng)采用菜單式,實(shí)現(xiàn)用戶與數(shù)據(jù)庫的交互,界面簡潔友好,操作方便。2.2 需求分析

      需求分析是軟件設(shè)計(jì)的一個(gè)重要的環(huán)節(jié)。本階段對(duì)訂票系統(tǒng)的應(yīng)用情況作全面調(diào)

      查,以確定系統(tǒng)目標(biāo),并對(duì)系統(tǒng)所需要的基礎(chǔ)數(shù)據(jù)以及數(shù)據(jù)處理要求進(jìn)行分析,從而確 定用戶的需求。用戶對(duì)系統(tǒng)的需求我們從以下幾方面進(jìn)行分析。2.2.1 功能需求

      本網(wǎng)上售票系統(tǒng)應(yīng)該具備如下功能: 1.查詢

      分為對(duì)車次信息的查詢和客戶對(duì)已訂車票信息的查詢。要求: 1)對(duì)車次的查詢,可以按照發(fā)車車次進(jìn)行查詢; 2)車次信息包括:車號(hào)、出發(fā) 地、目的地、發(fā)車日期、開出時(shí)刻、票價(jià)。3)座位類型設(shè)定。4)車次信息只允許用戶查詢,不能修改。2.添加車票

      通過查詢系統(tǒng),客戶根據(jù)自己的需求找到滿意的車次,再輸入個(gè)人信息后直接通過 網(wǎng)上售票確定已預(yù)訂選中的車票。要求 :

      售票記錄應(yīng)包括:會(huì)員名、車號(hào)、發(fā)車日期、訂購票數(shù)、總價(jià)。3.退票

      可退票,通過查詢系統(tǒng),客戶可以根據(jù)自己的名字找到自己的訂票信息,通過退票 模塊退去已購車票。2.2.2 數(shù)據(jù)需求 信息需求,即在系統(tǒng)中需要處理哪些數(shù)據(jù)。根據(jù)對(duì)火車站網(wǎng)上訂票系統(tǒng)的分析,本 系統(tǒng)的信息需求如表 2-1 所示。表 2-1 信息輸入輸出 信息輸 入 信息 處理 信息 輸出 用戶輸 入所需車次 檢索 系統(tǒng)數(shù)據(jù)庫 符合 用戶需求的車次及相關(guān) 信息 用戶輸

      入個(gè)人信息及所需 購的車 票信息 更新

      系統(tǒng)中的訂票信息,將新

      信息存入系統(tǒng)數(shù)據(jù)庫 操作

      反饋(如找零)2.2.3 性能需求

      為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運(yùn)行,本系統(tǒng)應(yīng)該滿足以下的 性能需求。1.準(zhǔn)確性和及時(shí)性

      系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。系統(tǒng)應(yīng)能及時(shí)而且準(zhǔn)確的根據(jù)用戶 權(quán)限及所輸入的信息做出響應(yīng)。

      由于本系統(tǒng)的查詢功能對(duì)于整個(gè)系統(tǒng)的功能和性能完成

      舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來源,而車票的數(shù)量和時(shí)間又影響用戶的決策活動(dòng),其 準(zhǔn)確性和及時(shí)性很大程度上決定了系統(tǒng)的成敗。在系統(tǒng)開發(fā)過程中,必須采用一定的方 法保證系統(tǒng)的準(zhǔn)確性和及時(shí)性。2.易用性

      本系統(tǒng)是直接面對(duì)用戶的,而用戶往往對(duì)計(jì)算機(jī)并不是非常熟悉。這就要求系統(tǒng)能 夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使 用用戶熟悉的術(shù)語和中文信息的界面,從而保證系統(tǒng)的易用性。

      第四篇:火車票管理系統(tǒng)

      火車票管理系統(tǒng)一、課題內(nèi)容和要求

      改系統(tǒng)要求實(shí)現(xiàn)一個(gè)簡單、實(shí)用的火車票管理程序,主要功能包括火車票數(shù)據(jù)的錄入、查找、刪除、顯示、售票、退票等。所有火車票數(shù)據(jù)都要利用文件系統(tǒng)保存,以備系統(tǒng)下次運(yùn)行時(shí)使用。通過此課題,熟練掌握文件、數(shù)組、指針的各種操作,以及一些基本算法思想的應(yīng)用。

      二、需求分析

      功能框架圖:(見圖2-1)

      火車票管理系統(tǒng)

      錄入

      查找

      刪除

      排序

      售票

      退票

      保存

      圖2-1。

      1.新增火車票數(shù)據(jù)記錄:預(yù)先建立一個(gè)txt文檔,存入數(shù)據(jù),然后在程序中讀取文檔。

      2.查找火車票數(shù)據(jù)(可按車次,發(fā)車時(shí)間、起點(diǎn)站、終點(diǎn)站等查找)。

      3.刪除火車票數(shù)據(jù)記錄(先查找,再刪除。若查找出多條記錄,則進(jìn)一步提示用戶選擇記錄的車次,再刪除)。

      4.對(duì)火車票排序(可按車次、發(fā)車時(shí)間、起點(diǎn)站、終點(diǎn)站等排序。)。

      5.顯示當(dāng)前所有火車票信息列表。

      6.售票(先查找,當(dāng)確定車次后,根據(jù)售票張數(shù)對(duì)該車次的已售票人數(shù)進(jìn)行修改)。

      7.退票(售票的逆處理,過程與售票類似)。

      8.保存火車票數(shù)據(jù)到文件中。

      9.從文件中讀入火車票數(shù)據(jù)。

      三、概要設(shè)計(jì)

      1)主要結(jié)構(gòu)體:

      struct

      time

      {

      int

      hour;

      int

      minutes;

      };

      struct

      ticket

      {

      char

      SerialNumber[10];

      struct

      time

      SetOut;

      char

      DeparturePoint[MAX];

      char

      TerminalPoint[MAX];

      float

      LastTime;

      int

      FixNumber;

      int

      FixedNumber;

      }train[N];

      2)主要函數(shù)流程圖:

      l

      載入函數(shù):用于從文本中載入信息。(見圖3-1)

      打開文本

      能否打開

      讀入數(shù)據(jù)

      是否結(jié)束

      結(jié)束

      開始

      開始

      讀入車次

      是否符合輸出信息

      結(jié)束

      圖3-2

      圖3-1

      l

      查找函數(shù):利用輸入的車次或站點(diǎn)進(jìn)行順序查找并將找到的信息輸出。(見圖3-2)

      l

      刪除函數(shù):先查找出要?jiǎng)h除的信息再刪除。(見圖3-3)

      無法訂票

      人數(shù)加一

      是否超載

      圖3-4

      結(jié)束

      開始

      讀入車次

      是否誤點(diǎn)

      圖3-3

      是否符合讀入車次

      開始

      記錄下標(biāo)i

      i=i+1,i++

      i<車次總數(shù)-1

      結(jié)束

      l

      售票退票函數(shù):先判斷該車是否已發(fā)車,若未發(fā)車且人未滿則訂票成功,否則無法訂票退票。(見圖3-4)

      l

      備份文件函數(shù):將文件內(nèi)容存儲(chǔ)到用戶給定的地址中(見圖3—5)

      圖3-5

      l

      排序函數(shù)(見圖3-6)

      圖3-6

      四、源程序代碼

      #include

      #include

      #include

      #include

      #include

      #include

      const

      int

      MAX=20;

      const

      int

      N=50;

      const

      int

      MAXFILENAME=100;

      enum

      {FALSE,TRUE};

      struct

      time

      {

      int

      hour;

      int

      minutes;

      };

      struct

      ticket

      {

      char

      SerialNumber[10];

      struct

      time

      SetOut;

      char

      DeparturePoint[MAX];

      char

      TerminalPoint[MAX];

      float

      LastTime;

      int

      FixNumber;

      int

      FixedNumber;

      }train[N];

      int

      RecordNumber;

      int

      FLAG=FALSE;

      /**********************************************/

      int

      ShowMessage(void);

      //載入原始數(shù)據(jù)

      void

      mainmenu(void);

      //主菜單

      void

      InsertMessage(void);

      //錄入班次信息

      void

      SearchMenu(void);

      //查詢路線子菜單

      void

      SearchByNumber(void);

      //按班次號(hào)查詢

      void

      SearchByAddress(void);

      //按終點(diǎn)站查詢

      void

      cancle(void);//刪除數(shù)據(jù)

      void

      selection(ticket

      *pa,int

      n);//排序

      void

      TicketManagement(void);

      //車票售出與退回

      void

      TicketOrder(void);

      //售票

      void

      TicketDelete(void);

      //退票

      void

      exit(void);

      //退出該系統(tǒng)

      void

      SaveRecord(ticket

      x);

      //儲(chǔ)存信息到文件中

      /********************************************/

      int

      main(void)

      {

      do{

      mainmenu();

      }while(FLAG==FALSE);

      return

      0;

      }

      void

      mainmenu(void)

      {

      system(“mode

      con:

      cols=140

      lines=130“);

      char

      functionNumber;

      printf(“

      火車票管理系統(tǒng)\n\n“);

      printf(“============================================================================\n“);

      printf(“

      1.錄入班次信息\t\n“);

      printf(“

      2.顯示所有車票信息列表\t\n“);

      printf(“

      3.查詢火車票數(shù)據(jù)\t\n“);

      printf(“

      4.刪除火車票數(shù)據(jù)記錄\t\n“);

      printf(“

      5.按行車時(shí)間排序\t\n“);

      printf(“

      6.售票與退票系統(tǒng)\t\n“);

      printf(“

      7.退出該系統(tǒng)\t\n“);

      printf(“============================================================================\n“);

      printf(“請(qǐng)選擇你所需要的功能:“);

      scanf(“%c“,&functionNumber);

      switch(functionNumber)

      {

      case

      '1':

      {

      InsertMessage();

      printf(“\n按任意鍵回主菜單......\n“);

      getchar();

      getchar();

      }

      break;

      case

      '2':

      {

      RecordNumber=ShowMessage();

      printf(“\n按任意鍵回主菜單......\n“);

      getchar();

      getchar();

      }

      break;

      case

      '3':

      {

      SearchMenu();

      printf(“\n按任意鍵回主菜單......\n“);

      getchar();

      getchar();

      }

      break;

      case

      '4':

      {

      cancle();

      printf(“\n按任意鍵回主菜單......\n“);

      getchar();

      getchar();

      }

      break;

      case

      '5':

      {

      selection(train,RecordNumber);

      printf(“班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已定票人數(shù)\n“);

      int

      i;

      for(i=0;i

      {

      printf(“%s\t%d:%d\t\t“,train[i].SerialNumber,train[i].SetOut.hour,train[i].SetOut.minutes);

      printf(“%s\t%s\t\t%.1f\t

      %d\t\t%d\n“,train[i].DeparturePoint,train[i].TerminalPoint,train[i].LastTime,train[i].FixNumber,train[i].FixedNumber);

      }

      printf(“\n按任意鍵回主菜單......\n“);

      getchar();

      getchar();

      }

      break;

      case

      '6':

      {

      TicketManagement();

      getchar();

      getchar();

      }

      break;

      case

      '7':

      {

      int

      i;

      FLAG=TRUE;

      for(i=0;i

      {

      SaveRecord(*(train+i));

      }

      exit();

      }

      break;

      default:

      {

      printf(“輸入錯(cuò)誤,請(qǐng)確保你的輸入為1--7.\n“);

      printf(“按任意鍵回主菜單......\n“);

      getchar();

      getchar();

      }

      }//switch

      ends

      FLAG=FALSE;

      }

      void

      InsertMessage(void)

      {

      FILE

      *fp;

      char

      filename[MAXFILENAME];

      int

      i;

      printf(“請(qǐng)輸入文件名或者文件路徑名:“);

      scanf(“%s“,filename);

      if((fp=fopen(filename,“r“))==NULL)

      {

      printf(“文件%s不可讀,請(qǐng)確認(rèn)文件%s存在或者文件路徑正確.\n\n“,filename,filename);

      mainmenu();

      }

      for(i=RecordNumber;!feof(fp)&&!ferror(fp);i++)

      {

      fscanf(fp,“%s%d%d“,&train[i].SerialNumber,&train[i].SetOut.hour,&train[i].SetOut.minutes);

      fscanf(fp,“%s%s%f%d%d“,&train[i].DeparturePoint,&train[i].TerminalPoint,&train[i].LastTime,&train[i].FixNumber,&train[i].FixedNumber);

      }

      RecordNumber=i;

      /*******************************輸出更新后的訂票記錄************************************************************/

      printf(“班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已定票人數(shù)\n“);

      for(i=0;i

      {

      printf(“%s\t%d:%d\t\t“,train[i].SerialNumber,train[i].SetOut.hour,train[i].SetOut.minutes);

      printf(“%s\t%s\t\t%.1f\t

      %d\t\t%d\n“,train[i].DeparturePoint,train[i].TerminalPoint,train[i].LastTime,train[i].FixNumber,train[i].FixedNumber);

      }

      fclose(fp);

      }

      int

      ShowMessage(void)

      {

      int

      i;

      FILE

      *fp;

      if((fp=fopen(“add.txt“,“r“))==NULL)

      {

      printf(“讀取數(shù)據(jù)失敗,請(qǐng)檢查文件add.txt是否存在.\n“);

      exit(-1);

      }

      for(i=RecordNumber;!feof(fp)&&!ferror(fp);i++)

      {

      fscanf(fp,“%s%d%d“,&train[i].SerialNumber,&train[i].SetOut.hour,&train[i].SetOut.minutes);

      fscanf(fp,“%s%s%f%d%d“,&train[i].DeparturePoint,&train[i].TerminalPoint,&train[i].LastTime,&train[i].FixNumber,&train[i].FixedNumber);

      }

      int

      count=i;

      printf(“班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已定票人數(shù)\n“);

      for(i=0;i

      {

      printf(“%s\t%d:%d\t\t“,train[i].SerialNumber,train[i].SetOut.hour,train[i].SetOut.minutes);

      printf(“%s\t%s\t\t%.1f\t

      %d\t\t%d\t“,train[i].DeparturePoint,train[i].TerminalPoint,train[i].LastTime,train[i].FixNumber,train[i].FixedNumber);

      printf(“\n“);

      }

      return

      count;

      }

      void

      SearchMenu(void)

      {

      system(“mode

      con:

      cols=140

      lines=130“);

      char

      functionNumber;

      printf(“

      查詢子菜單\n“);

      printf(“============================================================================\n“);

      printf(“

      1.按班次號(hào)查詢\t\n“);

      printf(“

      2.按終點(diǎn)站查詢\t\n“);

      printf(“

      3.返回主菜單\t\n“);

      printf(“============================================================================\n“);

      printf(“請(qǐng)選擇你所需要的功能:“);

      scanf(“%*c%c“,&functionNumber);

      switch(functionNumber)

      {

      case

      '1':SearchByNumber();break;

      case

      '2':SearchByAddress();break;

      case

      '3':

      getchar();

      mainmenu();

      break;

      default:

      printf(“輸入錯(cuò)誤,請(qǐng)確保你的輸入為1--3.\n“);

      printf(“按任意鍵回查詢子菜單......\n“);

      getchar();

      getchar();

      SearchMenu();

      }

      }

      void

      SearchByNumber(void)

      {

      int

      i;

      char

      Number[MAX];

      printf(“請(qǐng)輸入班次號(hào):“);

      scanf(“%s“,&Number);

      printf(“班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已定票人數(shù)\n“);

      for(i=0;i

      {

      //對(duì)比終點(diǎn)站記錄,找到并輸出

      if((strcmp(Number,train[i].SerialNumber))==0)

      {

      printf(“%s\t%d:%d\t\t“,train[i].SerialNumber,train[i].SetOut.hour,train[i].SetOut.minutes);

      printf(“%s\t%s\t\t%.1f\t

      %d\t\t%d\n“,train[i].DeparturePoint,train[i].TerminalPoint,train[i].LastTime,train[i].FixNumber,train[i].FixedNumber);

      }

      }

      }

      void

      SearchByAddress(void)

      {

      int

      i;

      char

      Address[MAX];

      printf(“請(qǐng)輸入終點(diǎn)站的名稱:“);

      scanf(“%s“,&Address);

      printf(“班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已定票人數(shù)\n“);

      for(i=0;i

      {

      //對(duì)比終點(diǎn)站記錄,找到并輸出

      if((strcmp(Address,train[i].TerminalPoint))==0)

      {

      printf(“%s\t%d:%d\t\t“,train[i].SerialNumber,train[i].SetOut.hour,train[i].SetOut.minutes);

      printf(“%s\t%s\t\t%.1f\t

      %d\t\t%d\n“,train[i].DeparturePoint,train[i].TerminalPoint,train[i].LastTime,train[i].FixNumber,train[i].FixedNumber);

      }

      }

      }

      void

      cancle(void)

      {

      SearchMenu();

      int

      i,j;

      char

      m[MAX];

      printf(“請(qǐng)輸入要?jiǎng)h除的班次:“);

      scanf(“%s“,&m);

      for(i=0;i

      {

      if(i==RecordNumber)

      {

      printf(“對(duì)不起,沒有這趟車\n“);

      }

      }

      for(j=i;j

      {

      train[j]=train[j+1];

      }

      printf(“刪除成功\n“);

      }

      void

      selection(ticket

      *pa,int

      n)

      {

      int

      i,k,index;

      struct

      ticket

      temp;

      for(k=0;k

      {

      index=k;

      for(i=k+1;i

      if(pa[i].LastTime

      index=i;

      if(index!=k)

      {

      temp=pa[index];

      pa[index]=pa[k];

      pa[k]=temp;

      }

      }

      }

      void

      TicketManagement(void)

      {

      char

      functionNumber;

      system(“mode

      con:

      cols=140

      lines=130“);

      printf(“

      訂票與退票菜單\n“);

      printf(“============================================================================\n“);

      printf(“

      1.訂票\t\n“);

      printf(“

      2.退票\t\n“);

      printf(“

      3.返回主菜單.\n“);

      printf(“============================================================================\n“);

      printf(“選擇你需要的功能:“);

      scanf(“%*c%c“,&functionNumber);

      switch(functionNumber)

      {

      case

      '1':

      {

      TicketOrder();

      //getchar();

      //getchar();

      }

      break;

      case

      '2':TicketDelete();break;

      case

      '3':

      {

      getchar();

      mainmenu();

      }

      break;

      default:

      {

      printf(“輸入錯(cuò)誤,請(qǐng)確保你的輸入為1--3.\n“);

      printf(“按任意鍵回主菜單......\n“);

      getchar();

      getchar();

      mainmenu();

      }

      }

      }

      void

      TicketOrder(void)

      {

      SearchMenu();

      int

      i,j;

      char

      a[MAX];

      printf(“請(qǐng)輸入要訂購的車票的班次:“);

      scanf(“%s“,&a);

      printf(“請(qǐng)輸入要訂購的車票的張數(shù):“);

      scanf(“%d“,&j);

      for(i=0;i

      {

      if((strcmp(a,train[i].SerialNumber))==0)

      {

      if(train[i].FixedNumber

      {

      (train[i].FixedNumber)+=j;

      printf(“你的訂票成功,請(qǐng)按時(shí)上車,謝謝使用!\n“);

      printf(“班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已定票人數(shù)\n“);

      printf(“%s\t%d:%d\t\t“,train[i].SerialNumber,train[i].SetOut.hour,train[i].SetOut.minutes);

      printf(“%s\t%s\t\t%.1f\t

      %d\t\t%d\n“,train[i].DeparturePoint,train[i].TerminalPoint,train[i].LastTime,train[i].FixNumber,train[i].FixedNumber);

      }

      else

      printf(“對(duì)不起,票已賣完\n“);

      }

      }

      }

      void

      TicketDelete(void)

      {

      SearchMenu();

      int

      i,j;

      char

      b[MAX];

      printf(“請(qǐng)輸入要退購的車票的班次:“);

      scanf(“%s“,&b);

      printf(“請(qǐng)輸入要退購的車票的張數(shù):“);

      scanf(“%d“,&j);

      for(i=0;i

      {

      if((strcmp(b,train[i].SerialNumber))==0)

      {

      if(train[i].FixedNumber>=1)

      {

      train[i].FixedNumber-=j;

      printf(“退訂車票成功,謝謝使用!\n“);

      printf(“班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已定票人數(shù)\n“);

      printf(“%s\t%d:%d\t\t“,train[i].SerialNumber,train[i].SetOut.hour,train[i].SetOut.minutes);

      printf(“%s\t%s\t\t%.1f\t

      %d\t\t%d\n“,train[i].DeparturePoint,train[i].TerminalPoint,train[i].LastTime,train[i].FixNumber,train[i].FixedNumber);

      }

      else

      printf(“對(duì)不起,今天的這趟車的票尚未賣出,無法完成退票!\n“);

      }

      }

      }

      void

      exit(void)

      {

      printf(“\n\n*********************謝謝使用本系統(tǒng),歡迎下次繼續(xù)使用***********************\n“);

      exit(0);

      }

      void

      SaveRecord(ticket

      x)

      {

      FILE

      *fp;

      if((fp=fopen(“add.txt“,“a“))==NULL)

      {

      printf(“打開文件%s失?。躰“,“add.txt“);

      exit(-1);

      }

      fprintf(fp,“\n%s\t%d\t%d\t\t“,x.SerialNumber,x.SetOut.hour,x.SetOut.minutes);

      fprintf(fp,“%s\t%s\t\t%.1f\t

      %d\t\t%d“,x.DeparturePoint,x.TerminalPoint,x.LastTime,x.FixNumber,x.FixedNumber);

      }

      五、測試數(shù)據(jù)及其結(jié)果分析

      顯示的主菜單界面:

      火車票管理系統(tǒng)

      ============================================================================

      1.錄入班次信息

      2.顯示所有車票信息列表

      3.查詢火車票數(shù)據(jù)

      4.刪除火車票數(shù)據(jù)記錄

      5.按行車時(shí)間排序

      6.售票與退票系統(tǒng)

      7.退出該系統(tǒng)

      ============================================================================

      請(qǐng)選擇你所需要的功能:

      1)錄入班次信息

      輸入:1

      輸出:請(qǐng)輸入文件名或者文件路徑名:

      輸入:D:\\1.txt

      輸出:

      班次

      發(fā)車時(shí)間

      起點(diǎn)

      終點(diǎn)

      行車時(shí)間(小時(shí))

      額定載量

      已定票人數(shù)

      k1111

      8:30

      南京

      上海

      4.0

      300

      200

      k1234

      10:20

      上海

      蘇州

      2.0

      200

      t2222

      12:40

      長沙

      上海

      9.0

      250

      k2323

      13:50

      揚(yáng)州

      南京

      1.5

      200

      k1122

      9:20

      廣州

      南京

      20.0

      300

      170

      按任意鍵回主菜單......2)顯示所有車票信息列表

      輸入:2

      輸出:

      班次

      發(fā)車時(shí)間

      起點(diǎn)

      終點(diǎn)

      行車時(shí)間(小時(shí))

      額定載量

      已定票人數(shù)

      k1111

      8:30

      南京

      上海

      4.0

      300

      200

      k1234

      10:20

      上海

      蘇州

      2.0

      200

      t2222

      12:40

      長沙

      上海

      9.0

      250

      k2323

      13:50

      揚(yáng)州

      南京

      1.5

      200

      k1122

      9:20

      廣州

      南京

      20.0

      300

      170

      按任意鍵回主菜單......3)查詢火車票記錄

      輸入:3

      輸出:

      查詢子菜單

      ============================================================================

      1.按班次號(hào)查詢

      2.按終點(diǎn)站查詢

      3.返回主菜單

      ============================================================================

      請(qǐng)選擇你所需要的功能:

      輸入:1

      輸出:請(qǐng)輸入班次號(hào):

      輸入:k1111

      輸出:

      班次

      發(fā)車時(shí)間

      起點(diǎn)

      終點(diǎn)

      行車時(shí)間(小時(shí))

      額定載量

      已定票人數(shù)

      k1111

      8:30

      南京

      上海

      4.0

      300

      200

      按任意鍵回主菜單......輸入:2

      輸出:請(qǐng)輸入終點(diǎn)站的名稱:

      輸入:上海

      輸出:

      班次

      發(fā)車時(shí)間

      起點(diǎn)

      終點(diǎn)

      行車時(shí)間(小時(shí))

      額定載量

      已定票人數(shù)

      k1111

      8:30

      南京

      上海

      4.0

      300

      200

      t2222

      12:40

      長沙

      上海

      9.0

      250

      按任意鍵回主菜單......4)刪除火車票數(shù)據(jù)

      輸入:4

      輸出:查詢子菜單

      ============================================================================

      1.按班次號(hào)查詢

      2.按終點(diǎn)站查詢

      3.返回主菜單

      ============================================================================

      請(qǐng)選擇你所需要的功能:

      (查找過程同上)

      輸出:請(qǐng)輸入要?jiǎng)h除的班次:

      輸入:t2222

      輸出:刪除成功

      按任意鍵回主菜單......5)按行車時(shí)間排序:

      輸入:5

      輸出:

      班次

      發(fā)車時(shí)間

      起點(diǎn)

      終點(diǎn)

      行車時(shí)間(小時(shí))

      額定載量

      已定票人數(shù)

      k2323

      13:50

      揚(yáng)州

      南京

      1.5

      200

      k1234

      10:20

      上海

      蘇州

      2.0

      200

      k1111

      8:30

      南京

      上海

      4.0

      300

      200

      t2222

      12:40

      長沙

      上海

      9.0

      250

      k1122

      9:20

      廣州

      南京

      20.0

      300

      170

      按任意鍵回主菜單......6)售票

      輸入:6

      輸出:

      訂票與退票菜單

      ===================================================

      1.訂票

      2.退票

      3.返回主菜單

      ==================================================

      選擇你需要的功能:

      輸入:1

      輸出:

      查詢子菜單

      ========================================================================

      1.按班次號(hào)查詢

      2.按終點(diǎn)站查詢

      3.返回主菜單

      =========================================================================

      請(qǐng)選擇你所需要的功能:

      (查詢過程同上)

      輸出:請(qǐng)輸入需要訂購的車票班次

      輸入:k1111

      輸出:請(qǐng)輸入要訂購的車票張數(shù)

      輸入:10

      輸出:

      您的訂票成功,請(qǐng)按時(shí)上車,謝謝使用!

      班次

      發(fā)車時(shí)間

      起點(diǎn)

      終點(diǎn)

      行車時(shí)間(小時(shí))

      額定載量

      已定票人數(shù)

      k1111

      8:30

      南京

      上海

      4.0

      300

      210

      7)退票

      輸入:6

      輸出:

      訂票與退票菜單

      ===================================================

      1.訂票

      2.退票

      3.返回主菜單

      ==================================================

      選擇你需要的功能:

      輸入:2

      輸出:

      查詢子菜單

      ========================================================================

      1.按班次號(hào)查詢

      2.按終點(diǎn)站查詢

      3.返回主菜單

      =========================================================================

      請(qǐng)選擇你所需要的功能:

      (查詢過程同上)

      輸出:請(qǐng)輸入需要退購的車票班次

      輸入:k1111

      輸出:請(qǐng)輸入要訂購的車票張數(shù)

      輸入:5

      退訂車票成功,謝謝使用!

      班次

      發(fā)車時(shí)間

      起點(diǎn)

      終點(diǎn)

      行車時(shí)間(小時(shí))

      額定載量

      已定票人數(shù)

      k1111

      8:30

      南京

      上海

      4.0

      300

      195

      8)退出

      輸入:7

      輸出:****************謝謝使用本系統(tǒng),歡迎下次繼續(xù)使用****************

      結(jié)果分析:(1).若輸入數(shù)字不在1——7之間,則會(huì)提示錯(cuò)誤。

      (2).當(dāng)輸入列車班次信息不正確時(shí),將不會(huì)得到結(jié)果。

      (3).文件錄入不正確時(shí),將不會(huì)得到任何結(jié)果。

      六、調(diào)試過程中的問題

      1)文件存儲(chǔ)方式不正確:應(yīng)先定義一個(gè)文件存儲(chǔ)函數(shù),在其它函數(shù)中調(diào)用,方便有效。

      2)刪除時(shí)若遇到?jīng)]有的班次則程序出錯(cuò)。應(yīng)在不存在輸入的列車班次時(shí),輸出不存在的提示

      3)保存后在下次運(yùn)行時(shí)出錯(cuò)問題:在保存信息時(shí),應(yīng)在每個(gè)信息之間加一空格來保存,否則在文件下次使用時(shí)讀取就會(huì)沒有分界點(diǎn)。

      4)訂票退票只能一次一張。應(yīng)在用戶輸入列車班次后讓用戶輸入需要訂購的張數(shù)。

      5)結(jié)構(gòu)指針定義錯(cuò)誤,ticket前不應(yīng)加struct。

      第五篇:航空售票管理系統(tǒng)

      #include #include #include #include #include #define N 100 using namespace std;

      typedef struct node//定義信息結(jié)構(gòu)體 {

      char num[10];// 航班號(hào)

      int hour;//起飛時(shí)間小時(shí)

      int minitues;//起飛時(shí)間分鐘

      char start[10];//起始

      char end[10];//終點(diǎn)

      float prize;//經(jīng)濟(jì)艙票價(jià)

      int last;//剩余座位 }FLIGHT;

      typedef struct Order//訂單信息 {

      char name[10];//乘客姓名

      char num[10];//航班號(hào)

      int count;//訂票數(shù)量 }Order;

      class flight//定義類 {

      private: FLIGHT stu[N];//每個(gè)元素對(duì)應(yīng)一條信息

      Order psg[N];//訂單

      int len;//航班總數(shù)

      int lenp;//訂票者總數(shù) public:

      flight();

      ~flight();void input();//錄入信息

      void show();//瀏覽

      void sall();//售票

      void back();//退票

      void search();// 信息查詢

      void search2();// 信息查詢(起點(diǎn)終點(diǎn))

      char menu();//菜單

      };

      flight stud;

      char filename[]=“flight.txt”;

      flight::flight(){}//構(gòu)造函數(shù) flight::~flight(){}//析構(gòu)函數(shù)

      bool CheckTime(int h1,int m1,int h2,int m2)//判斷兩個(gè)時(shí)間前后

      { if(h1

      return true;else if(h1==h2){

      if(m1

      return true;

      else

      return false;} else

      return false;} void flight::show()//瀏覽 {

      system(“cls”);//清屏

      cout<<“

      所有航班信息如下:”<

      起飛時(shí)間

      起點(diǎn)

      終點(diǎn)

      經(jīng)濟(jì)艙票價(jià)

      剩余座位

      備注”<

      for(int i=0;i

      printf(“%-10s%-2.2d:%-2.2d

      %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last);

      time_t t;

      struct tm *tm;

      t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間

      tm=localtime(&t);

      if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飛時(shí)間在當(dāng)前時(shí)間之前 輸出此次航班已發(fā)出

      cout<<“此次航班已發(fā)出”<

      else

      cout<

      } cout<<“_______________________________________________________________________________”<

      void flight::back()//退票 {

      char name[20];

      char s[20];

      system(“cls”);//清屏

      cout<<“請(qǐng)輸入退票的航班編號(hào):”;cin>>s;

      for(int i=0;i

      if(strcmp(stud.stu[i].num,s)==0)

      break;//存在 結(jié)束循環(huán)

      if(i==stud.len)//這二者相等說明查找完所有信息也沒找到輸入信息,說明輸入航班編號(hào)不存在{

      cout<<“對(duì)不起!沒有你輸入航班編號(hào)的相關(guān)信息。n”;

      system(“pause”);//任意鍵繼續(xù)

      return;}

      time_t t;

      struct tm *tm;

      t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間

      tm=localtime(&t);if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)

      {

      cout<<“對(duì)不起!該航班已經(jīng)起飛。不能退票。n”;

      system(“pause”);//任意鍵繼續(xù)

      return;} int j=i;

      cout<<“請(qǐng)輸入您的姓名:”;cin>>name;for(i=0;i

      if(strcmp(stud.psg[i].name,name)==0 && strcmp(stud.psg[i].num,s)==0)//查詢這個(gè)名字是否相同

      {

      stud.stu[j].last+=stud.psg[i].count;//退票

      stud.psg[i]=stud.psg[stud.lenp-1];///刪除這個(gè)訂單

      stud.lenp--;//訂單數(shù)減一

      cout<<“退票成功!n”;

      system(“pause”);//任意鍵繼續(xù)

      return;

      } } cout<<“對(duì)不起!您沒有定該航班的票。n”;

      system(“pause”);//任意鍵繼續(xù)

      }

      void flight::sall()//售票 {

      char s[20];

      system(“cls”);//清屏

      cout<<“請(qǐng)輸入要購買的航班編號(hào):”;cin>>s;

      for(int i=0;i

      if(strcmp(stud.stu[i].num,s)==0)

      break;//存在 結(jié)束循環(huán)

      if(i==stud.len)//這二者相等說明查找完所有信息也沒找到輸入信息,說明輸入航班編號(hào)不存在{

      cout<<“對(duì)不起!沒有你輸入航班編號(hào)的相關(guān)信息。n”;

      system(“pause”);//任意鍵繼續(xù)

      return;}

      if(stud.stu[i].last<=0)//沒有票了

      {

      cout<<“對(duì)不起!該航班票已售完。n”;

      system(“pause”);//任意鍵繼續(xù)

      return;}

      time_t t;

      struct tm *tm;

      t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間

      tm=localtime(&t);if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)

      {

      cout<<“對(duì)不起!該航班已經(jīng)起飛。n”;

      system(“pause”);//任意鍵繼續(xù)

      return;}

      int j=i;i=stud.lenp;strcpy(stud.psg[i].num,stud.stu[i].num);cout<<“請(qǐng)輸入購票數(shù)量:”;cin>>stud.psg[i].count;

      while(stud.psg[i].count>stud.stu[i].last){

      cout<<“余票不足,請(qǐng)重新輸入:”;

      cin>>stud.psg[i].count;

      } cout<<“請(qǐng)輸入您的姓名:”;cin>>stud.psg[i].name;

      stud.stu[j].last-=stud.psg[i].count;//剩余票數(shù)

      stud.lenp++;cout<<“購票成功!n”;system(“pause”);//任意鍵繼續(xù) }

      void flight::input()//錄入信息 {

      system(“cls”);//清屏

      for(int i=stud.len;i

      {

      cout<<“請(qǐng)輸入航班號(hào):”;

      cin>>stud.stu[i].num;

      cout<<“請(qǐng)輸入起飛時(shí)間(格式: 12:30):”;

      char ch;

      cin>>stud.stu[i].hour>>ch>>stud.stu[i].minitues;

      cout<<“請(qǐng)輸入起點(diǎn):”;

      cin>>stud.stu[i].start;

      cout<<“請(qǐng)輸入終點(diǎn):”;

      cin>>stud.stu[i].end;

      cout<<“請(qǐng)輸入經(jīng)濟(jì)艙票價(jià):”;

      cin>>stud.stu[i].prize;

      cout<<“請(qǐng)輸入剩余座位:”;

      cin>>stud.stu[i].last;

      stud.len++;//個(gè)數(shù)加1

      cout<<“一條航班信息錄入完成,是否繼續(xù)錄入?(y/n):”;

      while(1)

      {

      cin>>ch;

      if(ch=='y' || ch=='Y' || ch=='n' || ch=='N')

      break;

      else

      cout<<“輸入錯(cuò)誤請(qǐng)重新輸入:”;

      }

      if(ch=='n' || ch=='N')

      break;

      } }

      void flight::search()// 信息查詢 {

      char s[20];

      system(“cls”);//清屏

      cout<<“請(qǐng)輸入要查詢的航班編號(hào):”;cin>>s;

      for(int i=0;i

      if(strcmp(stud.stu[i].num,s)==0)

      break;//存在 結(jié)束循環(huán)

      if(i==stud.len)//這二者相等說明查找完所有信息也沒找到輸入信息,說明輸入航班編號(hào)不存在{

      cout<<“對(duì)不起!沒有你輸入航班編號(hào)的相關(guān)信息。n”;

      system(“pause”);//任意鍵繼續(xù)

      return;}

      cout<<“

      查詢結(jié)果如下:”<

      起飛時(shí)間

      起點(diǎn)

      終點(diǎn)

      經(jīng)濟(jì)艙票價(jià)

      剩余座位

      備注”<

      printf(“%-10s%-2.2d:%-2.2d

      %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last);

      time_t t;

      struct tm *tm;

      t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間

      tm=localtime(&t);

      if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飛時(shí)間在當(dāng)前時(shí)間之前 輸出此次航班已發(fā)出

      cout<<“此次航班已發(fā)出”<

      else

      cout<

      cout<<“_______________________________________________________________________________”<

      void flight::search2()// 信息查詢(按線路){

      char s1[20],s2[20];

      system(“cls”);//清屏

      cout<<“請(qǐng)輸入要查詢的線路起點(diǎn):”;cin>>s1;

      cout<<“請(qǐng)輸入要查詢的線路終點(diǎn):”;cin>>s2;

      for(int i=0;i

      if(strcmp(stud.stu[i].start,s1)==0 && strcmp(stud.stu[i].end,s2)==0)

      break;//存在 結(jié)束循環(huán)

      if(i==stud.len)//這二者相等說明查找完所有信息也沒找到輸入信息,說明輸入航班編號(hào)不存在{

      cout<<“對(duì)不起!沒有你輸入線路的相關(guān)信息。n”;

      system(“pause”);//任意鍵繼續(xù)

      return;}

      cout<<“

      查詢結(jié)果如下:”<

      起飛時(shí)間

      起點(diǎn)

      終點(diǎn)

      經(jīng)濟(jì)艙票價(jià)

      剩余座位

      備注”<

      for(i=0;i

      if(strcmp(stud.stu[i].start,s1)==0 && strcmp(stud.stu[i].end,s2)==0)

      {

      printf(“%-10s%-2.2d:%-2.2d

      %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last);

      time_t t;

      struct tm *tm;

      t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間

      tm=localtime(&t);

      if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飛時(shí)間在當(dāng)前時(shí)間之前 輸出此次航班已發(fā)出

      cout<<“此次航班已發(fā)出”<

      else

      cout<

      } cout<<“_______________________________________________________________________________”<

      char flight::menu()//菜單 { char c;

      system(“cls”);//清屏

      cout<<“nnnn

      ╔═══════════════════════════╗n”;cout<<“

      1、錄入航班信息

      ║n”;

      cout<<“

      ╠═══════════════════════════╣n”;cout<<“

      2、瀏覽航班信息

      ║n”;cout<<“

      ╠═══════════════════════════╣n”;

      cout<<“

      3、查詢路線(按編號(hào))

      ║n”;

      cout<<“

      ╠═══════════════════════════╣n”;cout<<“

      4、查詢路線(按線路)

      ║n”;

      cout<<“

      ╠═══════════════════════════╣n”;cout<<“

      5、售票

      ║n”;

      cout<<“

      ╠═══════════════════════════╣n”;cout<<“

      6、退票

      ║n”;

      cout<<“

      ╠═══════════════════════════╣n”;cout<<“

      0、退出系統(tǒng)

      ║n”;

      cout<<“

      ╚═══════════════════════════╝n”;cout<<“

      請(qǐng)選擇:”;

      cin>>c;

      return c;}

      int main(){

      while(1)

      {

      char ch;

      ch=stud.menu();//獲取選擇

      switch(ch)

      {

      case '1': stud.input();break;//錄入航班信息

      case '2': stud.show();break;//瀏覽航班信息

      case '3': stud.search();break;// 查詢路線

      case '4': stud.search2();break;// 查詢路線(按線路)

      case '5': stud.sall();break;// 售票

      case '6': stud.back();

      break;// 退票

      case '0': exit(0);//退出

      }

      }

      return 0;}

      下載一個(gè)簡單的火車票售票管理系統(tǒng)(大全五篇)word格式文檔
      下載一個(gè)簡單的火車票售票管理系統(tǒng)(大全五篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        火車票代理售票網(wǎng)點(diǎn)準(zhǔn)則

        第一章 總則 第一條 為推進(jìn)鐵路客運(yùn)售票改革,規(guī)范客票代理業(yè)務(wù),適應(yīng)市場競爭和滿足旅客購票需要,根據(jù)《中華人民共和國鐵路法》及相關(guān)法律、法規(guī)并結(jié)合我局客票系統(tǒng)建設(shè)和售票......

        電影院售票管理系統(tǒng)UML

        1.前景和范圍文檔 1.1業(yè)務(wù)需求 1.背景、業(yè)務(wù)機(jī)會(huì)和客戶需要 隨著社會(huì)的發(fā)展,人們生活水平的提高,欣賞電影逐漸成為人們閑暇時(shí)的主要娛樂方式之一。傳統(tǒng)的電影售票都是人工服......

        鐵路售票系統(tǒng)

        鐵路售票系統(tǒng)應(yīng)用軟件需求分析報(bào)告 前言: (1)需求分析報(bào)告的編寫目的 本需求分析報(bào)告的目的是規(guī)范化本軟件的編寫,旨在于提高軟件開發(fā)過程中的能見度,便于對(duì)軟件開發(fā)過程中的控制......

        鐵路售票管理系統(tǒng)項(xiàng)目背景

        軟件工程課程設(shè)計(jì)報(bào)告項(xiàng)目名稱:鐵路售票管理系統(tǒng)項(xiàng)目組長:成員:2012.1.5鐵路售票管理系統(tǒng)項(xiàng)目背景目錄:鐵路售票管理系統(tǒng)項(xiàng)目背景 ...................... 31引言....................

        火車票訂票管理系統(tǒng)++設(shè)計(jì)報(bào)告

        摘要 隨著時(shí)代的發(fā)展,計(jì)算系軟件和系統(tǒng)的成熟,火車票的正當(dāng)管理成為一個(gè)影響鐵路部門正常運(yùn)營的因素之一,而建立火車票訂票管理系統(tǒng)是一個(gè)很好的解決辦法。 作為計(jì)算機(jī)應(yīng)用的一......

        c++課程實(shí)踐火車票管理系統(tǒng)

        #include #include #include #include #include using namespace std; class Bus_infor { int No; static int Bus_No; char start[20]; char end[20]; int Bus_order......

        2013年暑假火車票售票通知[5篇模版]

        關(guān)于昆明火車站到校出售學(xué)生火車票的 通知 各位同學(xué): 暑假假臨近,為方便我校學(xué)生購買火車票并能夠順利返鄉(xiāng),經(jīng)過學(xué)校與昆明火車站進(jìn)行協(xié)調(diào),火車站相關(guān)工作人員將于2013年7月4日(......

        2012年寒假假火車票售票辦法[最終版]

        2012年寒假學(xué)生火車票售票辦法為便于全校學(xué)生和教職工寒假期間順利返家探親度假,根據(jù)北京地區(qū)客票管理中心有關(guān)規(guī)定,今年訂票(實(shí)名制)請(qǐng)各學(xué)院認(rèn)真負(fù)責(zé),做好每個(gè)環(huán)節(jié)的輸入工作,學(xué)......