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

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

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

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

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

      C語言課程設(shè)計(jì)報(bào)告 火車售票查詢系統(tǒng)(完)

      時(shí)間:2019-05-14 00:01:04下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言課程設(shè)計(jì)報(bào)告 火車售票查詢系統(tǒng)(完)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言課程設(shè)計(jì)報(bào)告 火車售票查詢系統(tǒng)(完)》。

      第一篇:C語言課程設(shè)計(jì)報(bào)告 火車售票查詢系統(tǒng)(完)

      湖北工業(yè)大學(xué)

      工程技術(shù)學(xué)院

      課程設(shè)計(jì)報(bào)告書

      課程名稱:

      C語言課程設(shè)計(jì)

      級:

      物聯(lián)網(wǎng)一班

      小組成員: 范立恒、陳根、聶俊豪、麥燦文、黃文康

      長:

      范立恒

      指導(dǎo)教師:

      楚惟善

      二○一三 年 六 月

      C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 課程題目及要求及要求

      題目一:火車售票系統(tǒng)

      任務(wù):結(jié)合C語言中相關(guān)知識,設(shè)計(jì)出火車售票系統(tǒng)。錄入北京西站車次信息; 2 旅客按車次買票; 統(tǒng)計(jì)某日火車票銷售金額。

      程序要求:

      ? 貫徹結(jié)構(gòu)化的程序設(shè)計(jì)思想。

      ? 用戶界面友好,功能明確,操作方便。

      ? 用戶界面中的菜單至少應(yīng)包括“車次信息錄入”、“旅客買票”、“統(tǒng)計(jì)某

      日銷售 金額”、“退

      出”4項(xiàng)。

      ? 代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性 ? 為了保證所有的數(shù)據(jù)可以長期被使用,要求程序能將相關(guān)數(shù)據(jù)存儲(chǔ)在外部數(shù)據(jù)文件中,具體數(shù)據(jù)格式和文件名、路徑等自定;

      ? 根據(jù)所設(shè)計(jì)的算法,定義相應(yīng)函數(shù)分別實(shí)現(xiàn)系統(tǒng)的各子功能模塊,同時(shí)由主程序提供友好的用戶界面,使用戶可通過選擇主菜單來調(diào)用課程設(shè)計(jì)中要求完成的各個(gè)功能模塊,子程序執(zhí)行完后可返回到主菜單,繼續(xù)選擇其他功能執(zhí)行。源程序要求書寫規(guī)范,結(jié)構(gòu)清晰。重點(diǎn)函數(shù)的重點(diǎn)變量,重點(diǎn)功能部分均要求給出清晰的程序注釋。

      ? 程序編譯、鏈接成功后,自己設(shè)計(jì)實(shí)現(xiàn)程序功能的一組或多組測試數(shù)據(jù),并嚴(yán)格按照此測試數(shù)據(jù)進(jìn)行測試,然后分析測試結(jié)果。如果程序不能正常運(yùn)行或結(jié)果不正確,則需對程序進(jìn)行單步調(diào)試,在調(diào)試過程中認(rèn)真查找算法實(shí)現(xiàn)中存在的問題,并加以分析和 程序分設(shè)計(jì)說明

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

      主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)車次的錄入;

      C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告

      (1)添加學(xué)生數(shù)據(jù)函數(shù)add 真以追加方式打開E盤student.txt文件成功?假假輸出文件打開失敗以追加方式打開E盤student.txt文件成功?真輸入添加學(xué)生數(shù)量n循環(huán)變量i=1當(dāng)i<=n時(shí)輸入學(xué)號、姓名和三門成績學(xué)生信息寫入文件 i++關(guān)閉文件圖2 添加學(xué)生數(shù)據(jù)函數(shù)

      返回

      (2)讀取學(xué)生數(shù)據(jù)函數(shù)reads 真以讀方式打開E盤student.txt文件成功?假循環(huán)變量i=0當(dāng)文件未結(jié)束時(shí)讀取學(xué)生信息到數(shù)組元素stu[i]中i++關(guān)閉文件返回學(xué)生人數(shù)i圖3讀取學(xué)生數(shù)據(jù)

      輸出文件打開失敗返回

      (3)刪除學(xué)生記錄函數(shù)del

      C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告

      n=reads(stu)循環(huán)變量i=0當(dāng)i

      j++圖5按總分排

      4.程序清單

      本程序主要由九個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其它函數(shù)來實(shí)現(xiàn)要求的所有功能。在這些函數(shù)當(dāng)中,添加學(xué)生數(shù)據(jù)函數(shù)、刪除數(shù)據(jù)函數(shù)和排序函數(shù)是程序中較為核心的部分,下面分別進(jìn)行說明。1.錄入車次信息函數(shù)

      錄入車次信息,首先由程序創(chuàng)建一個(gè)新文件,并將錄入的車次信息寫入該文件(e: rain.txt)當(dāng)中。具體的程序段如下:

      if((fp=fopen(“e: rain.txt”,“a”))==NULL)//如果文件已經(jīng)存在,可以追加車次信息

      {

      if((fp=fopen(“e: rain.txt”,“w”))==NULL)// 文件不存在時(shí),創(chuàng)建新文件,輸入車次信息

      {

      C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告

      scanf(“%d”,&j);

      tra[i].maipiao=tra[i].maipiao+j;

      printf(“n購買成功n”);

      printf(“n%12d%11d%11s%11s%11d%11.2fn”,tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);

      save(tra,n);3.查詢銷售總額

      對于也使用比較日期的方法實(shí)現(xiàn)的,這部分程序仍然調(diào)用了reads函數(shù),整個(gè)排序過程在文件中實(shí)現(xiàn),然后用for循環(huán)進(jìn)行運(yùn)算,把查詢這一天的總額算出。

      具體程序如下:

      if((fp=fopen(“e: rain.txt”,“r”))==NULL)

      { printf(“讀取錯(cuò)誤,不能打開該文件!n”);

      return;} else

      for(i=0;i

      fscanf(fp,“ %d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);

      printf(“請輸入你要查詢的日期:n”);

      scanf(“%d”,&temp.date);

      for(i=0;i

      C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告

      知識并在此基礎(chǔ)上對數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)和算法有了更深的了解,C語言是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),它不僅是計(jì)算機(jī)科學(xué)的核心課程,而且已經(jīng)成為其他理工專業(yè)的熱門選修課。在計(jì)算機(jī)的研究和應(yīng)用中已展現(xiàn)出強(qiáng)大的生命力,它兼顧了諸多高級語言的特點(diǎn),是一種典型的結(jié)構(gòu)化程序設(shè)計(jì)語言,它處理能力強(qiáng),使用靈活方便,應(yīng)用面廣,具有良好的可移植性,同時(shí)這兩周的學(xué)習(xí)也提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力.黃文康:首先這一周的學(xué)習(xí),使我在鞏固了原有的理論知識上,培養(yǎng)了我靈活運(yùn)用和組合集成所學(xué)過知識及技能來分析、解決實(shí)際問題的能力,使我體會(huì)到自身知識和能力在實(shí)際中的應(yīng)用和發(fā)揮。其次,激發(fā)了我創(chuàng)新意識,開發(fā)創(chuàng)造的能力和培養(yǎng)溝通能力。另外,讓我進(jìn)一步熟悉了數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)應(yīng)用。每一處編碼都是在反復(fù)的熟悉數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)特性,及其語法、函數(shù)和程序設(shè)計(jì)思想的過程,對我數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)和提高很有益處,并且使我明白了程序設(shè)計(jì)過程有如解決一實(shí)際問題,從解決實(shí)際問題的角度,我們可以這樣來看:第一要了解這個(gè)問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;第二,從問題的要害入手,從前到后的解決問題的每個(gè)方面,即從輸入開始入手,著重考慮如何從輸入導(dǎo)出輸出,在這個(gè)過程中,可確定所需的數(shù)據(jù)結(jié)構(gòu)的基本類型——線性表、棧、隊(duì)列、串、數(shù)組、樹和二叉樹以及圖等,然后確定處理過程——算法,可得最后結(jié)論。最后,在這次課程設(shè)計(jì)過程中,我們深刻的認(rèn)識到了自己在學(xué)習(xí)方面的不足之處,我們知道我們還有太多的基本的思想沒有真正的理解,當(dāng)然我們不會(huì)灰心,我們會(huì)在以后的日子里努力彌補(bǔ)我們的不足。

      麥燦文:一個(gè)禮拜的課程設(shè)計(jì)讓我們受益匪淺。要學(xué)好一門學(xué)科,沒有刻苦鉆研的精神是不行的,只有在不斷的嘗試中,不斷經(jīng)歷失敗,然后又不斷的嘗試才能獲得成功。兩個(gè)多禮拜中,我們有過山窮水盡的困惑;有過柳暗花明的驚喜;有過唇槍舌劍的辯論;有過相互鼓勵(lì)的安慰。一個(gè)禮拜的時(shí)間我們經(jīng)歷了很多,也收獲了很多。與其說它是體力與腦力的作業(yè),不如說它是合作精神和毅力的考驗(yàn)。經(jīng)過這次課程設(shè)計(jì),我們不僅學(xué)到了很多知識和技能,更重要的是我們學(xué)會(huì)了如何運(yùn)用所學(xué)知識去解決實(shí)際問題。

      對于我本人來講這次課程設(shè)計(jì)的總體表現(xiàn),我自己還比較滿意,每天做到了按時(shí)的出勤,上機(jī)遵守機(jī)房的管理規(guī)定,遵循指導(dǎo)老師的安排并能適時(shí)地與老師進(jìn)行溝通,覺得不足的是不能熟練地掌握c語言的設(shè)計(jì)技巧使編程的結(jié)果缺乏效率,不過我相信這只是我的一個(gè)開始,我更應(yīng)該注重的是這次過程,我堅(jiān)信我會(huì)在以后的學(xué)習(xí)和訓(xùn)練中不斷地彌補(bǔ)自己的不足之處,不斷的完善自己的編程能力,因?yàn)槌晒π枰稽c(diǎn)一點(diǎn)積累。

      0

      C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告

      } void menu(){ printf(“

      ************************* 武昌站火車訂票系統(tǒng)************************ ”);

      printf(“n 顯示當(dāng)前時(shí)間”);

      printf(“n 車次信息錄入”);

      printf(“n 顯示”);

      printf(“n 旅客買票”);printf(“n 統(tǒng)計(jì)某日銷售金額”);

      printf(“n 退出”);} int reads(struct train tra[N])// 讀取車次中的內(nèi)容 {

      FILE *fp;

      int i=0;

      if((fp=fopen(“e: rain.txt”,“r”))==NULL){

      printf(“文件打開失??!n”);

      return 0;}

      else {

      for(i=0;!feof(fp);i++)

      fscanf(fp,“%d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);

      }

      fclose(fp);

      return i;} void save(struct train tra[N],int n)// 車次信息改變后更新文件 { FILE *fp;

      int i=0;

      if((fp=fopen(“e: rain.txt”,“w”))==NULL){

      printf(“文件打開失??!n”);

      return;}

      else {

      for(i=0;i

      C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告

      getch();}

      void sell()// 按顧客要求對車次信息賣票 {

      struct train tra[N];

      int num,n,j;

      int i;

      n=reads(tra);

      printf(“n請輸入待查詢的車次號,按回車鍵確認(rèn):n”);

      scanf(“%d”,&num);

      for(i=0;i

      if(num==tra[i].num)break;

      if(i>=n)

      {

      printf(“沒有找到該車次信息!n”);

      return;

      }

      else

      printf(“n請輸入所買票數(shù),按回車鍵確認(rèn):n”);

      scanf(“%d”,&j);

      tra[i].maipiao=tra[i].maipiao+j;

      printf(“n購買成功n”);

      printf(“n%12d%11d%11s%11s%11d%11.2fn”,tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);

      save(tra,n);} void all()//統(tǒng)計(jì)銷售金額 { struct train tra[N],temp;float sum=0;FILE *fp;int i,j=0;if((fp=fopen(“e: rain.txt”,“r”))==NULL)

      { printf(“讀取錯(cuò)誤,不能打開該文件!n”);

      return;} else

      for(i=0;i

      fscanf(fp,“ %d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);

      printf(“請輸入你要查詢的日期:n”);

      C語言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告

      4、調(diào)試與測試:調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主要問題及采取的解決措施

      5、源程序清單和執(zhí)行結(jié)果(光盤):清單中應(yīng)有足夠的注釋

      二、具體安排:

      學(xué)生以2—6人為一組,共同完成一個(gè)題目,選出一個(gè)組長負(fù)責(zé)分工和管理,共同完成總體框架設(shè)計(jì),然后每個(gè)學(xué)生分工獨(dú)立完成各自的功能模塊的編程,最后要能集成并測試通過。

      每組要以光盤形式上交C源文件和可執(zhí)行文件(放在組長文件袋中,其他成員在報(bào)告本中寫明源程序在哪個(gè)同學(xué)的文件袋中)

      (注:課程設(shè)計(jì)報(bào)告統(tǒng)一使用學(xué)院規(guī)定的課程設(shè)計(jì)報(bào)告本和文件袋)

      三、備注

      每個(gè)人可自行附加模塊設(shè)計(jì)心得

      及所發(fā)現(xiàn)的問題及解決方法

      《C語言課程設(shè)計(jì)報(bào)告

      火車售票查詢系統(tǒng)(完)》的word文檔中1.、2、3、4、7是統(tǒng)一一樣的 你們需要另外說明 哪個(gè)版塊是你設(shè)計(jì)的OK)

      第二篇:課程設(shè)計(jì)一:火車售票系統(tǒng)

      數(shù)據(jù)結(jié)構(gòu)與算法課程實(shí)驗(yàn)報(bào)告

      班級:學(xué)號:

      課程設(shè)計(jì)一:火車售票系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)姓名:

      cll

      一、實(shí)驗(yàn)內(nèi)容:

      火車售票系統(tǒng)在現(xiàn)實(shí)中的應(yīng)用已經(jīng)非常普遍,目前通常使用可視化的方法實(shí)現(xiàn),例如采用C/S模式下的程序設(shè)計(jì)或者采用B/S模式下的程序設(shè)計(jì),通常都具有較為友好的界面和較為完善的功能?;疖囀燮毕到y(tǒng)的實(shí)現(xiàn)過程中,主要涉及到數(shù)據(jù)格式的設(shè)計(jì),也就是數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)。通常在采用數(shù)據(jù)庫的情況下,可以運(yùn)用數(shù)據(jù)庫的設(shè)計(jì)來實(shí)現(xiàn)。在沒有采用數(shù)據(jù)庫情況下需要,單獨(dú)設(shè)計(jì)相應(yīng)數(shù)據(jù)結(jié)構(gòu)和算法。

      二、實(shí)驗(yàn)?zāi)康模?/p>

      按給定需求,通過查找相關(guān)資料,完成火車售票系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn),在設(shè)計(jì)過程中充分運(yùn)用數(shù)據(jù)結(jié)構(gòu)與算法課程中所學(xué)知識,從而熟練地掌握和應(yīng)用線性表、單鏈表等重要數(shù)據(jù)結(jié)構(gòu)和常用算法。提前熟悉軟件需求分析,軟件測試等環(huán)節(jié),運(yùn)用相應(yīng)程序設(shè)計(jì)語言實(shí)現(xiàn)該系統(tǒng),從而進(jìn)一步提高程序設(shè)計(jì)能力。

      三、問題描述

      (1)此系統(tǒng)可以實(shí)現(xiàn)售票、退票、車票剩余情況查詢等功能。

      (2)每張車票包含車次、座位信息。在售票、退票、查詢剩余票等環(huán)節(jié)中,都必須顯示出車票的信息,即車次、座位情況。

      (3)退票時(shí),必須是車站售出的車票才能退,否則視為無效票,不能退票。(4)演示程序以用戶和計(jì)算機(jī)的對話方式進(jìn)行,即在計(jì)算機(jī)終端上顯示“提示信息”之后,由用戶在鍵盤上輸入程序中規(guī)定的運(yùn)算命令;相應(yīng)的輸入數(shù)據(jù)(濾去輸入中的非法字符)和運(yùn)算結(jié)果顯示在后。

      (5)由訂票系統(tǒng)的主要功能使程序的命令包括: 1)查詢;2)訂票;3)退票 4)退出訂票系統(tǒng)

      四、問題的實(shí)現(xiàn)

      4.1所用的數(shù)據(jù)結(jié)構(gòu)(包括所用數(shù)據(jù)結(jié)構(gòu)的抽象數(shù)據(jù)類型定義和說明)typedefstructLNode{ //數(shù)據(jù)域

      char name[10];//訂票姓名

      intdnum;//訂票數(shù)量

      char dj[50];//證件編號

      intzhekou;//1代表折扣對象

      float pay;//付費(fèi)

      structLNode *next;//指針域

      intzuohao[200];}LNode,*LinkList;//構(gòu)造單鏈表(已訂票)

      typedefstructTickets{ char *endname;//終點(diǎn)站名

      char *hnum;//車次名

      intfnum;//票價(jià)

      float discut;//折扣

      int day;//日期

      intwholenum;//總票額 intlastnum;//余票量

      inttuipiao[100];//退票處理,記錄退票的座位號 inttpcs;//記錄目前退票次數(shù)

      intmcps;//記錄賣出去的票數(shù)(包括退票)LinkList la;//已訂票鏈表

      }Tickets;//構(gòu)造結(jié)構(gòu)類型(火車票)

      typedefstruct{ struct Tickets *elem;//存儲(chǔ)空間的基址

      int length;intlistsize;//當(dāng)前分配的存儲(chǔ)容量(以sizeof(Tickets)為單位)}SqList;//構(gòu)造順序表

      4.2主要實(shí)現(xiàn)思路

      1、火車站的火車票采用順序表表示。每趟火車出售的票用鏈表表示。

      2、查詢:輸入終點(diǎn)站信息,輸出該趟火車的票價(jià),日期,余票數(shù)等信息; 訂票:輸入終點(diǎn)站信息,確認(rèn)有該趟車之后,輸入該趟車的基本信息,之后輸入購票數(shù),系統(tǒng)查詢是否有余票,確認(rèn)之后,輸入個(gè)人基本信息;系統(tǒng)查詢是否有退票,若有退票則,先售出退票。插入新的結(jié)點(diǎn)。

      退票:輸入終點(diǎn)站的信息,輸入個(gè)人信息,1、若退出所有票,則刪除該結(jié)點(diǎn),若,只退部分票,則更改該結(jié)點(diǎn)的購票信息。

      退出:退出系統(tǒng);

      【程序演示】

      輸入2 訂票,購買到溫州的火車票十張,姓名:a;證件號:a;

      退票:輸入3退票,輸入終點(diǎn)站溫州,姓名:a;證件號:a;

      退票之后,繼續(xù)訂票3張

      【實(shí)現(xiàn)代碼】

      intInitList_L(LinkList *h){//初始化帶頭結(jié)點(diǎn)的單鏈表

      *h =(LinkList)malloc(sizeof(LNode));//生成頭結(jié)點(diǎn)

      if(!h){ printf(“初始化鏈表錯(cuò)誤!n”);

      return 0;}

      (*h)-> next = NULL;return 1;}

      intCreate_Sq(SqList *L){//初始化并創(chuàng)建順序表

      L->elem=(Tickets *)malloc(ListInitSize*sizeof(Tickets));if(!L->elem){ printf(“存儲(chǔ)分配失敗!”);// 存儲(chǔ)分配失敗

      return 0;} L->length=5;//賦值

      L->listsize=ListInitSize;int j;for(j = 0;j < L->length;j++){

      L->elem[j].mcps=0;//初始化,記錄買出去的票 L->elem[j].tpcs=0;//記錄退票數(shù)

      } inti;for(i = 0;i < L->length;i++){

      InitList_L(&L->elem[i].la);}

      L->elem[0].endname=“北京”;//終點(diǎn)站名

      L->elem[0].hnum=“G2378”;//車次名

      L->elem[0].day=1;//日期

      L->elem[0].fnum=346;//票價(jià)

      L->elem[0].discut=0.5;L->elem[0].wholenum=L->elem[0].lastnum=10;

      L->elem[1].endname=“溫州”;L->elem[1].hnum=“K351”;L->elem[1].day=2;L->elem[1].fnum=254;L->elem[1].discut=0.5;L->elem[1].wholenum=L->elem[1].lastnum=10;

      L->elem[2].endname=“合肥”;L->elem[2].hnum=“G782B”;L->elem[2].day=3;L->elem[2].fnum=224;

      L->elem[2].discut=0.5;L->elem[2].wholenum=L->elem[2].lastnum=10;L->elem[3].endname=“武漢”;L->elem[3].hnum=“D2903”;L->elem[3].day=4;L->elem[3].fnum=200;L->elem[3].discut=0.5;L->elem[3].wholenum=L->elem[3].lastnum=10;L->elem[4].endname=“廈門”;L->elem[4].hnum=“T112”;L->elem[4].day=5;L->elem[4].fnum=450;L->elem[4].discut=0.5;L->elem[4].wholenum=L->elem[4].lastnum=10;return 1;}//創(chuàng)建順序表

      void Demand(SqList L){ int n1;do{

      char endstop[100];

      printf(“*******查票窗口********n”);

      printf(“請輸入終點(diǎn)站名:n”);

      do{ gets(endstop);} while(!endstop[0]);inti;for(i=0;i

      printf(“tt杭州-->%sn”,endstop);printf(“tt車次:%sn”,L.elem[i].hnum);printf(“tt日期:%d日n”,L.elem[i].day);printf(“tt票價(jià):%dn”,L.elem[i].fnum);printf(“tt折扣價(jià)(學(xué)生/軍人等5折):%fn”,L.elem[i].fnum*L.elem[i].discut);printf(“tt總票量:%dn”,L.elem[i].wholenum);printf(“tt余票量:%dn”,L.elem[i].lastnum);}

      } break;if(i==L.length-1){ printf(“沒有找到%s的車票!n”,endstop);}

      printf(“1.返回主菜單;2.繼續(xù)n”);

      scanf(“%d”,&n1);}while(n1==2);}

      void GetTicket(SqList *L){//訂票

      int n2=2,zhekou;//n2=1,繼續(xù)訂票;n2=2,返回主菜單;n2=0,確定,即訂票成功

      intnum;//訂票數(shù)

      float money;//存儲(chǔ)應(yīng)付的總票額

      char endstop[100];//記錄終點(diǎn)站名

      char name[100];char ID[100];//記錄證件號

      do{ printf(“*******訂票窗口********n”);printf(“終點(diǎn)站名:”);

      do{ gets(endstop);} while(!endstop[0]);inti = 0;for(i=0;ilength;i++){ if(strcmp(L->elem[i].endname,endstop)==0){ //有該趟火車

      printf(“tt杭州-->%sn”,endstop);printf(“tt車次:%sn”,L->elem[i].hnum);printf(“tt日期:%d日n”,L->elem[i].day);printf(“tt票價(jià):%dn”,L->elem[i].fnum);printf(“tt折扣價(jià)(學(xué)生/軍人等5折):%fn”,L->elem[i].fnum*L->elem[i].discut);printf(“tt總票量:%dn”,L->elem[i].wholenum);printf(“tt余票量:%dn”,L->elem[i].lastnum);printf(“請輸入訂票數(shù):”);

      scanf(“%d”,&num);

      if(L->elem[i].lastnum == 0){ printf(“對不起,到%s的車票已賣完!n”,endstop);printf(“nt1.繼續(xù)訂票;2.返回主菜單;n”);

      scanf(“%d”,&n2);}else if(num> L->elem[i].lastnum){ printf(“對不起,到%s的車票只剩%d張。n”,endstop);printf(“n1.繼續(xù)訂票;2.返回主菜單;n”);scanf(“%d”,&n2);}else{

      printf(“購票請輸入個(gè)人信息:n”);

      printf(“姓名:”);

      do{ gets(name);}while(!name[0]);

      printf(“是折扣對象嗎?若是,請輸入相關(guān)證件號,不是請輸入身份證號(1.是;0.不是)n”);

      scanf(“%d”,&zhekou);while(zhekou!= 1 &&zhekou!= 0){ printf(“不合法輸入,請重輸!n”);

      scanf(“%d”,&zhekou);} printf(“證件號碼:”);//fflush(stdin);do{

      gets(ID);}while(!ID[0]);//輸出訂票信息,待客戶確認(rèn)

      printf(“t請核對您的訂票信息:n”);printf(“t姓名:%sn”,name);printf(“t證件號碼:%sn”,ID);printf(“t杭州--%s:n”,endstop);printf(“t車次:%sn”,L->elem[i].hnum);printf(“t日期:12月%d日”,L->elem[i].day);//輸出票價(jià)(兩種情況)

      if(zhekou==1){

      printf(“折扣價(jià)(學(xué)生/軍人等5折):%fn”,L->elem[i].fnum*L->elem[i].discut);

      money=L->elem[i].fnum*L->elem[i].discut*num;//money用于暫時(shí)存儲(chǔ)應(yīng)付的總票額

      }else{ printf(“票價(jià):%dn”,L->elem[i].fnum);

      money = L->elem[i].fnum*num;

      }

      printf(“訂票數(shù):%dn”,num);

      printf(“座位號: ”);

      //如果有退票,優(yōu)先賣退票

      int k=0;

      //k用于記錄買到的票是退票的數(shù)目

      int data[100];//臨時(shí)記錄座位號,用于后面的保存

      int j;//只用于for循環(huán)的參數(shù),不保存數(shù)據(jù);

      for(j=L->elem[i].tpcs-1;j>=0;j--){//只需要num張就夠了,L.elem[i].jishu1為退票總數(shù)

      printf(“%dt”,L->elem[i].tuipiao[j]);//退票的座位號tuipioa[j]

      k++;//買到退票數(shù)目+1

      if(k>=num)break;//說明買的全部都是退票

      } //退票數(shù)目不夠<買票數(shù)目 if(k

      此時(shí)賣出的票數(shù)即為座位號

      L->elem[i].mcps += 1;//賣出去票的數(shù)目+1(包括退票)

      data[j]=L->elem[i].mcps;

      printf(“%dt”,L->elem[i].mcps);

      } }

      printf(“n總票額:%fn”,money);

      printf(“n 0.確認(rèn);1.取消;2.返回主菜單n”);

      scanf(“%d”,&n2);if(n2==0){ printf(“訂票成功!n”);

      L->elem[i].lastnum-=num;//更新余票的數(shù)目

      //在鏈表中插入新結(jié)點(diǎn)

      LinkListp,s;//已訂票鏈表的指針類型

      p = L->elem[i].la;//第i趟車的已訂票列表(頭結(jié)點(diǎn))

      s =(LinkList)malloc(sizeof(LNode));//新的結(jié)點(diǎn)

      if(!s){ printf(“內(nèi)存分配失?。 ?;

      }else{

      s->next=p->next;//在頭部插入

      p->next=s;

      s->dnum=num;//訂票數(shù)量

      s->pay=money;//票價(jià)

      s->zhekou=zhekou;//折扣信息 strcpy(s->name,name);//姓名 strcpy(s->dj,ID);//證件號

      //將座位號記入客戶信息

      int flag=0;

      for(j=L->elem[i].tpcs-1;j>=0;j--){//只需要num張就夠了,L.elem[i].jishu1為可買退票的張數(shù)

      }

      }

      s->zuohao[flag]=L->elem[i].tuipiao[j];flag++;

      k++;//買到退票數(shù)目+1

      if(k>=num)break;//說明買的全部都是退票 }

      //退票數(shù)目不夠<買票數(shù)目 if(k

      s->zuohao[flag]=data[j];

      flag++;} }

      }

      }

      break;

      if(i==L->length-1){ printf(“沒有到%s的車票!n”,endstop);

      n2=2;

      }

      } }while(n2==1);}

      void ReturnTicket(SqList *L){ int n3=2,k;

      //n3=1,繼續(xù)退票;n3=2,返回主菜單;n3=0,確定,即退票成功,k記錄要退的票的數(shù)目

      LinkList p;char name[100];char ID[100];

      char endstop[100];do{

      printf(“*******退票窗口********n”);

      printf(“終點(diǎn)站:”);

      do{ gets(endstop);} while(!endstop[0]);inti;

      for(i=0;ilength-1;i++){ if(strcmp(L->elem[i].endname,endstop)==0){

      printf(“姓名:”);

      do{ gets(name);}while(!name[0]);printf(“證件號:”);do{ gets(ID);}while(!ID[0]);

      p = L->elem[i].la;if(!p->next){ printf(“沒有客戶!”);

      p->next){

      }else{ p = p->next;while(!(strcmp(p->name,name)==0 p=p->next;}

      &&strcmp(p->dj,ID)==0)&&

      if(strcmp(p->name,name)==0 &&strcmp(p->dj,ID)==0){

      printf(“您的車票信息如下:n”);

      printf(“t姓名:%sn”,p->name);

      printf(“t證件號碼:%sn”,p->dj);

      printf(“t杭州-->%sn”,L->elem[i].endname);

      printf(“t車次:%sn”,L->elem[i].hnum);

      printf(“t日期:12月%d日n”,L->elem[i].day);

      if(p->zhekou==0){//非折扣對象

      printf(“t票價(jià):%dn”,L->elem[i].fnum);

      }else{//折扣對象

      printf(“t

      折價(jià):%fn”,L->elem[i].fnum*L->elem[i].discut);

      }

      printf(“t訂票數(shù):%dn”,p->dnum);

      printf(“t座位號為:”);

      int flag;

      for(flag = 0;flag

      dnum;flag++){

      printf(“%dt”,p->zuohao[flag]);

      }

      printf(“總票額:%fn”,p->pay);

      printf(“退幾張?n”);

      scanf(“%d”,&k);//k用來記錄退票的張數(shù)

      if(k > p->dnum){

      printf(“您只有%d票,請重新確認(rèn)!n”,p->dnum);

      printf(“1.重新確定;2.返回主菜單n”);

      scanf(“%d”,n3);

      }else{

      printf(“0.確認(rèn);1.取消;2.返回主菜單n”);

      scanf(“%d”,&n3);

      if(n3==0){

      printf(“退票成功!n”);

      int i1 = L->elem[i].tpcs;

      L->elem[i].tpcs+=k;//更新退票數(shù)

      for(flag=p->dnum;flag>p->dnum-k;flag--,i1++){

      L->elem[i].tuipiao[i1] = p->zuohao[flag-1];

      }

      L->elem[i].lastnum+=k;//更新余票

      if(k==p->dnum){ //票全部退完的情況,刪除鏈表中的結(jié)點(diǎn)

      LinkList q = L->elem[i].la;

      while(q->next!=p){

      q = q->next;

      }

      q->next = p->next;free(p);//釋放資源 n3=2;//返回主菜單

      折扣票

      }else{

      if(p->pay == p->dnum*L->elem[i].fnum){ //判斷是否是

      }

      p->pay-=L->elem[i].fnum*k;}else{

      p->pay-=L->elem[i].fnum*k*L->elem[i].discut;

      p->dnum-=k;

      printf(“你還有%d張票”,p->dnum);

      n3=2;

      }

      }//if(n3==0)

      }// else

      }else{// if(strcmp(p->name,name)==0&&strcmp(p->zhengjian,zhengjian)==0)

      printf(“沒有該客戶買票的信息!請重新確認(rèn)!”);//最后一個(gè)結(jié)點(diǎn)也不是要找的結(jié)點(diǎn)的情況

      n3=2;

      } } break;

      }//if(strcmp(L.elem[i].endstop,endstop)==0)if(i==L->length-1){ //查找到了最后一個(gè)

      printf(“不是本站售出的票,請重新確認(rèn)!n”);

      n3=2;

      }

      } }while(n3==1);}

      void Quit(){ printf(“成功退出系統(tǒng)!感謝您的支持!n”);}

      void main(){ LinkList L0;InitList_L(&L0);SqList L;

      //順序表,用于存放車票信息

      Create_Sq(&L);

      //初始化并創(chuàng)建順序表

      int n;do{ printf(“n

      **************杭州火車站訂票系統(tǒng)***************n”);

      printf(“n

      ******************本站車票信息******************n”);

      printf(“

      *

      車次目的地日期票價(jià)

      *nn”);

      inti;for(i=0;i

      *

      %s

      %s

      12月%d日

      %d

      *

      n”,L.elem[i].hnum,L.elem[i].endname,L.elem[i].day,L.elem[i].fnum);

      }

      printf(“n

      *

      1.查詢

      3.退票

      *n”);printf(“n

      *

      2.訂票

      4.退出

      *n”);

      printf(“

      ***************************************************n”);

      printf(“n請按菜單提示輸入:n”);

      } scanf(“%d”,&n);

      switch(n){ case 1 : Demand(L);

      break;

      case 2 :GetTicket(&L);

      break;

      case 3 :ReturnTicket(&L);

      break;

      case 4 : Quit();

      break;} }while(n!=4);

      第三篇:火車售票系統(tǒng)需求規(guī)格說明書

      車 售 票 系 統(tǒng)

      需 求 規(guī) 格 說 明 書

      作者:李艷亮 2013年11月 火

      目錄

      1.引言.............................................................................................................................................3

      1.1編寫目的.............................................................................................................................3 1.2項(xiàng)目背景.............................................................................................................................3 1.3定義.....................................................................................................................................3 1.4參考資料.............................................................................................................................3 2.任務(wù)概述.....................................................................................................................................3

      2.1目標(biāo).....................................................................................................................................3 2.2運(yùn)行環(huán)境.............................................................................................................................4 2.3條件與限制.........................................................................................................................4 3.?dāng)?shù)據(jù)描述.....................................................................................................................................4

      3.1靜態(tài)數(shù)據(jù).............................................................................................................................4 3.2動(dòng)態(tài)數(shù)據(jù).............................................................................................................................4 3.3數(shù)據(jù)庫介紹.........................................................................................................................5 3.4數(shù)據(jù)詞典.............................................................................................................................5 3.5數(shù)據(jù)采集.............................................................................................................................9 4.功能需求.....................................................................................................................................9

      4.1功能劃分.............................................................................................................................9 4.2功能描述...........................................................................................................................10 5.性能需求...................................................................................................................................10 5.1數(shù)據(jù)精確度.......................................................................................................................10 5.2時(shí)間特性...........................................................................................................................10 5.3適應(yīng)性...............................................................................................................................10 6.運(yùn)行需求...................................................................................................................................11 6.1用戶界面...........................................................................................................................11 6.2硬件接口...........................................................................................................................11 6.3軟件接口...........................................................................................................................11 6.4故障處理...........................................................................................................................11 7.其它需求...................................................................................................................................11

      1.引言

      1.1編寫目的

      本需求分析報(bào)告的目的是規(guī)范化本軟件的編寫,旨在于提高軟件開發(fā)過程中的能見度,便于對軟件開發(fā)過程中的控制與管理,同時(shí)提出了本火車售票系統(tǒng)的軟件開發(fā)過程,便于程序員與客戶之間的交流、協(xié)作,并作為工作成果的原始依據(jù),同時(shí)也表明了本軟件的共性,以期能夠獲得更大范圍的應(yīng)用。

      1.2項(xiàng)目背景

      1、.項(xiàng)目的委托單位:中國鐵路局

      2、開發(fā)單位:湖南安全技術(shù)職業(yè)學(xué)院

      3、軟件名稱:火車售票系統(tǒng)

      1.3定義

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

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

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

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

      1.4參考資料

      1、《實(shí)用軟件工程》(第二版)鄭人杰,殷人昆,陶永雷,清華大學(xué)出版社,1997

      2、《JAVA網(wǎng)絡(luò)高級編程》金勇華,曲俊生,人民郵電出版社,2001

      3、《JBUILDER培訓(xùn)教程》Borland software corporation,機(jī)械工業(yè)出版社,2002 2.任務(wù)概述

      2.1目標(biāo)

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

      (2)應(yīng)用范圍:理論上能夠?qū)崿F(xiàn)于鐵路部門的售票系統(tǒng),其目的在于在原有的系統(tǒng)基礎(chǔ)

      使得火車售票便捷化,以期實(shí)現(xiàn)完善日常生活中火車售票的各種缺陷。

      (3)可實(shí)現(xiàn)旅客對于火車票的查詢與購買功能,售票員則可實(shí)現(xiàn)查詢、添加和刪除等功能;對于所查詢的車次結(jié)果提供列表顯示輸出;有一定的安全機(jī)制,普通旅客不能對車次信息隨意刪改,只有授權(quán)的售票員可通過密碼識別進(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)并未提供這一功能,對于信息的保護(hù)手段僅限制于設(shè)置用戶級別,以記名提供數(shù)據(jù)文件的備份,比較簡單,不能防止惡意的破壞,安全性能有待進(jìn)一步完善。

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

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

      火車票:列車車號

      (int SerialNumber)

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

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

      列車終點(diǎn)站(char TerminalPoint)票務(wù):列車車號

      (int SerialNumber)

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

      額定載量(int FixNumber)售票員:用戶名(char name)

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

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

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

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

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

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

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

      車次信息錄入、刪除(成功或失?。?/p>

      車次信息查詢、購買的操作結(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 ? 加工邏輯詞條描述: ① 加工名:身份檢驗(yàn)

      加工編號: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)信息表由“售票員信息”組成

      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) 加工編號:1

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

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

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

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

      ○1 數(shù)據(jù)流名:用戶名 說明:售票員的姓名

      數(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ù)信息表由“列車號、已售票、剩余票”組成存儲(chǔ)方式:關(guān)鍵碼 存取頻率:頻繁

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

      旅客 登錄系統(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.刪除功能

      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用戶界面

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

      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ò),對于用戶的輸入錯(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)行修改添加,而不需要對系統(tǒng)結(jié)構(gòu)進(jìn)行修改,這樣系統(tǒng)維護(hù)性、升級都十分方便。

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

      第四篇:航空售票系統(tǒng)+C++課程設(shè)計(jì)源代碼

      #include #include #define M 5//每種飛機(jī)票的總數(shù)目 #define N 3//飛機(jī)票的總數(shù)目 class Plane {private: char name[40];//終點(diǎn)站名

      int number;//航班號

      int Number;//飛機(jī)號

      int week;//星期幾飛行

      int day;//日期

      int left;//余票額

      int n;//與數(shù)組flag一起確定客戶訂票狀態(tài) public:

      int flag[20];//訂票狀態(tài)數(shù)組,-1為預(yù)訂票,1為已定票,0為初始化狀態(tài)

      Plane()//構(gòu)造函數(shù)

      {

      name[0]='