2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  信息科學(xué)與技術(shù)學(xué)院</b></p><p>  《程序設(shè)計基礎(chǔ)》課程設(shè)計報告</p><p>  目 錄</p><p>  1 課程設(shè)計綜述————————————————— 3</p><p>  1.1 課程設(shè)計的目的——————————————— 3</p>

2、<p>  1.2 課程設(shè)計的題目——————————————— 3</p><p>  1.3 題目要求—————————————————— 3</p><p>  2 概要設(shè)計——————————————————— 3</p><p>  3 詳細設(shè)計——————————————————— 4</p><p>  3.1 流

3、程圖——————————————————— 4</p><p>  3.2 源程序——————————————————4</p><p>  4 測試——————————————————— 5</p><p>  5 課程設(shè)計總結(jié)—————————————————5</p><p><b>  1.課程設(shè)計綜述<

4、/b></p><p>  1.1 課程設(shè)計的目的</p><p>  讓我們更加深入的了解C++的,使我們一學(xué)期學(xué)習(xí)到的東西得到實踐.</p><p>  1.2 課程設(shè)計的題目</p><p><b>  火車票管理系統(tǒng)</b></p><p><b>  1.3 題目要求&l

5、t;/b></p><p>  用c++設(shè)計一個系統(tǒng),能提供下列服務(wù):(1)錄入班次信息(信息用文件保存),可不定時地增加班次數(shù)據(jù)</p><p> ?。?)瀏覽班次信息,可顯示出所有班次當(dāng)前狀態(tài)(如果當(dāng)前系統(tǒng)時間超過了某班次的發(fā)車時間,則顯示“此班已發(fā)出”的提示信息)。</p><p>  (3)查詢路線:可按班次號查詢 ,可按終點站查詢</p>

6、;<p>  (4)售票和退票功能</p><p>  A:當(dāng)查詢出已定票人數(shù)小于額定載量且當(dāng)前系統(tǒng)時間小于發(fā)車時間時才能售票,自動更新已售票人數(shù)</p><p>  B:退票時,輸入退票的班次,當(dāng)本班車未發(fā)出時才能退票,自動更新已售票人數(shù)</p><p><b>  2 方案選擇</b></p><p>

7、;<b>  1)算法設(shè)計說明</b></p><p>  由主函數(shù)進入,彈出主菜單界面,通過Switch語句選擇需要的功能,可以選擇班次錄入,瀏覽班次信息,查詢班次信息,購票和退票以及退出系統(tǒng),以完成不同的操作.其中查詢班次信息中還可以由班次查詢或者終點站查詢.整個系統(tǒng)的文件載入用一個文件載入函數(shù)承當(dāng).</p><p><b>  3 詳細設(shè)計</

8、b></p><p><b>  3.1 流程圖</b></p><p><b>  3.2 源程序</b></p><p>  #include <iostream></p><p>  #include <fstream></p><p>

9、;  #include <string></p><p>  #include<time.h></p><p>  using namespace std;</p><p>  void welcome(); //歡迎子函數(shù)</p><p>  void choose(

10、); //選擇子函數(shù)</p><p>  void banciluru(); //班次錄入子函數(shù)</p><p>  void liulanbancixinxi(); //瀏覽班次信息子函數(shù)</p><p>  void shoupiao

11、(); //售票子函數(shù)</p><p>  void tuipiao(); //退票子函數(shù)</p><p>  void quit(); //退出子函數(shù)</p><p>  void chaxun();

12、 //查詢子函數(shù)</p><p>  int loading(); //文件載入子函數(shù)</p><p>  const int MAX=20; //使數(shù)組最大值可調(diào)</p><p>  const int N=50;</p&

13、gt;<p>  struct time //時間結(jié)構(gòu)體,為了與系統(tǒng)時間做比較.</p><p><b>  {</b></p><p><b>  int hour;</b></p><p>  int minutes;</p><

14、;p><b>  };</b></p><p>  struct ticket //車票結(jié)構(gòu)體,包含車次,時間結(jié)構(gòu)體,起點,終點,行車時間,額定載客量,已訂票人數(shù)</p><p><b>  {</b></p><p>  int Number;</p>

15、;<p>  struct time Setout;</p><p>  char Qidian[MAX];</p><p>  char Zhongdian[MAX];</p><p>  float Lasttime; </p><p>  int Fixnumber;</p><p>  int F

16、ixednumber;</p><p><b>  }car[N];</b></p><p><b>  //主函數(shù)</b></p><p>  int main()</p><p><b>  {</b></p><p>  welcome();&

17、lt;/p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  //歡迎子函數(shù)</b></p><p>  void welcome()</p><p><b>  {</b&g

18、t;</p><p>  cout<<"________________________________________________________"<<endl;</p><p>  cout<<"| 歡 * 迎 * 使 * 用 * 火 * 車 * 票 * 管 * 理 * 系 * 統(tǒng) |"<<en

19、dl;</p><p>  cout<<"| |"<<endl;</p><p>  cout<<"| 本管理系統(tǒng)有以下功能: |"<<

20、endl;</p><p>  cout<<"| |"<<endl;</p><p>  cout<<"| 1 班次錄入 |"

21、<<endl;</p><p>  cout<<"| 2 瀏覽班次信息 |"<<endl;</p><p>  cout<<"| 3 查詢火車信息 |"

22、<<endl;</p><p>  cout<<"| 4 購買火車票 |"<<endl;</p><p>  cout<<"| 5 退訂火車票 |&quo

23、t;<<endl;</p><p>  cout<<"| 6 退出系統(tǒng) |"<<endl;</p><p>  cout<<"|___________________________________________________

24、___|"<<endl;</p><p>  cout<<"請輸入所要執(zhí)行功能前的數(shù)字: "<<endl;</p><p><b>  choose();</b></p><p><b>  }</b></p><p><b&g

25、t;  //選擇子函數(shù)</b></p><p>  void choose()</p><p><b>  {</b></p><p><b>  string i;</b></p><p><b>  cin>>i;</b></p>&l

26、t;p>  if(i=="1")</p><p>  banciluru();</p><p>  if(i=="2")</p><p>  liulanbancixinxi();</p><p>  if(i=="3")</p><p><b&g

27、t;  chaxun();</b></p><p>  if(i=="4")</p><p>  shoupiao();</p><p>  if(i=="5")</p><p>  tuipiao();</p><p>  if(i=="6")&

28、lt;/p><p><b>  quit();</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"輸入有誤!請在數(shù)字1-5之間重新您的輸入選擇!"<<endl;

29、</p><p><b>  choose();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //班次錄入子函數(shù)</b></p><p>  void banc

30、iluru()</p><p><b>  {</b></p><p>  string t="1";</p><p>  ofstream outfile;</p><p>  outfile.open("班次信息.txt",ios::app);</p><p

31、>  for(int i=0;t=="1";i++)</p><p><b>  {</b></p><p>  cout<<"請輸入需要添加的火車班次:"<<endl;</p><p>  cin>>car[i].Number;</p><p

32、>  cout<<"請輸入此班次發(fā)車時間(格式:先輸入小時,回車,再輸入分鐘):"<<endl;</p><p>  cin>>car[i].Setout.hour;</p><p>  cin>>car[i].Setout.minutes;</p><p>  cout<<&qu

33、ot;請輸入出發(fā)站:"<<endl;</p><p>  cin>>car[i].Qidian;</p><p>  cout<<"請輸入終點站:"<<endl;</p><p>  cin>>car[i].Zhongdian;</p><p>  co

34、ut<<"請輸入行車時間:"<<endl;</p><p>  cin>>car[i].Lasttime;</p><p>  cout<<"請輸入額定載客量:"<<endl;</p><p>  cin>>car[i].Fixnumber;</p&

35、gt;<p>  cout<<"請輸入已訂票人數(shù):"<<endl;</p><p>  cin>>car[i].Fixednumber;</p><p>  outfile<<car[i].Number<<" "<<car[i].Setout.hour<<

36、;" "<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber&

37、lt;<" "<<car[i].Fixednumber<<endl;</p><p>  cout<<"是否繼續(xù)錄入?(是請輸1,否請輸任意鍵返回主菜單)"<<endl;</p><p><b>  cin>>t;</b></p><p>

38、  if(t!="1")</p><p><b>  {</b></p><p>  welcome();</p><p><b>  }</b></p><p><b>  }</b></p><p>  outfile.close

39、();</p><p>  cout<<"輸入回車鍵返回"<<endl;</p><p>  getchar();</p><p>  getchar();</p><p>  welcome();</p><p><b>  }</b></p&g

40、t;<p><b>  //瀏覽班次子函數(shù)</b></p><p>  void liulanbancixinxi()</p><p><b>  {</b></p><p><b>  int c;</b></p><p>  c=loading();</

41、p><p>  cout<<"班次"<<" "<<"發(fā)車時間"<<" "<<"起點站"<<" "<<"終點站"<<" "<<"行車時間&quo

42、t;<<" "<<"額定載客量"<<" "<<"已訂票人數(shù)"<<endl;</p><p>  for(int i=0;i<c;i++)</p><p><b>  {</b></p><p>  c

43、out<<car[i].Number<<" "<<car[i].Setout.hour<<":"<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian&l

44、t;<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;</p><p>  time_t tval;</p><p>  

45、struct tm *now;</p><p>  tval = time(NULL);</p><p>  now = localtime(&tval);</p><p>  if((now->tm_hour==car[i].Setout.hour&&now->tm_min>car[i].Setout.minutes)||

46、(now->tm_hour>car[i].Setout.hour))</p><p>  cout<<"此車已發(fā)出"<<endl;</p><p><b>  }</b></p><p>  cout<<"輸入回車鍵返回"<<endl;</

47、p><p>  getchar();</p><p>  getchar();</p><p>  welcome();</p><p><b>  }</b></p><p><b>  //車次查詢子函數(shù)</b></p><p>  void Numb

48、ersearch();</p><p>  void Finalsearch();</p><p>  void chaxun()</p><p><b>  {</b></p><p><b>  string t;</b></p><p>  cout<<&q

49、uot;1.按班次查詢"<<endl;</p><p>  cout<<"2.按終點站查詢"<<endl;</p><p>  cout<<"請輸入您想選擇的查詢方法前的數(shù)字:"<<endl;</p><p><b>  cin>>t;

50、</b></p><p>  if(t=="1")</p><p>  Numbersearch();</p><p>  if(t=="2")</p><p>  Finalsearch();</p><p>  if(t!="1"||t!=&q

51、uot;2")</p><p><b>  {</b></p><p>  cout<<"輸入有誤,請重新輸入"<<endl;</p><p><b>  chaxun();</b></p><p><b>  }</b>&

52、lt;/p><p><b>  }</b></p><p><b>  //班次查詢子函數(shù)</b></p><p>  void Numbersearch()</p><p><b>  {</b></p><p>  loading();</p>

53、;<p>  int SearchNumber;</p><p>  cout<<"請輸入您需要查找的班次號:"<<endl;</p><p>  cin>>SearchNumber;</p><p>  cout<<"班次"<<" "

54、;<<"發(fā)車時間"<<" "<<"起點站"<<" "<<"終點站"<<" "<<"行車時間"<<" "<<"額定載客量"<<" &

55、quot;<<"已訂票人數(shù)"<<endl;</p><p>  cout<<car[SearchNumber-1].Number<<" "<<car[SearchNumber-1].Setout.hour<<":"<<car[SearchNumber-1].Seto

56、ut.minutes<<" "<<car[SearchNumber-1].Qidian<<" "<<car[SearchNumber-1].Zhongdian<<" "<<car[SearchNumber-1].Lasttime<<" "<&

57、lt;car[SearchNumber-1].Fixnumber<<" "<<car[SearchNumber-1].Fixednumber<<endl;</p><p>  cout<<"輸入回車鍵返回"<<endl;</p><p>  getchar();</p&g

58、t;<p>  getchar();</p><p>  welcome();</p><p><b>  }</b></p><p>  //終點站查詢子函數(shù)</p><p>  void Finalsearch()</p><p><b>  {</b>&l

59、t;/p><p><b>  int R;</b></p><p>  R=loading();</p><p><b>  int i;</b></p><p>  char Address[MAX];</p><p>  cout<<"請輸入終點站名稱:

60、"<<endl;</p><p>  cin>>Address;</p><p>  cout<<"班次"<<" "<<"發(fā)車時間"<<" "<<"起點站"<<" "

61、<<"終點站"<<" "<<"行車時間"<<" "<<"額定載客量"<<" "<<"已訂票人數(shù)"<<endl;</p><p>  for(i=0;i<R;i++)</

62、p><p><b>  {</b></p><p>  if((strcmp(Address,car[i].Zhongdian))==0)</p><p>  cout<<car[i].Number<<" "<<car[i].Setout.hour<<":"

63、;<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber

64、<<" "<<car[i].Fixednumber<<endl;</p><p><b>  }</b></p><p>  cout<<"輸入回車鍵返回"<<endl;</p><p>  getchar();</p&g

65、t;<p>  getchar();</p><p>  welcome();</p><p><b>  }</b></p><p>  //購買火車票子函數(shù)</p><p>  void shoupiao()</p><p><b>  {</b></

66、p><p><b>  int R;</b></p><p>  R=loading();</p><p><b>  int i;</b></p><p>  cout<<"請輸入要訂購的車票的班次:"<<endl;</p><p>

67、<b>  cin>>i;</b></p><p>  if(i<=0||i>R)</p><p><b>  {</b></p><p>  cout<<"對不起,今天沒有這趟車,請明天再來,謝謝使用!"<<endl;</p><p&

68、gt;  cout<<"輸入回車鍵返回"<<endl;</p><p>  getchar();</p><p>  getchar();</p><p>  welcome();</p><p><b>  }</b></p><p>  time_t

69、 tval;</p><p>  struct tm *now;</p><p>  tval = time(NULL);</p><p>  now = localtime(&tval);</p><p>  if((now->tm_hour==car[i-1].Setout.hour&&now->tm_

70、min<car[i-1].Setout.minutes)||(now->tm_hour<car[i-1].Setout.hour))</p><p><b>  {</b></p><p>  if(car[i-1].Fixednumber<car[i-1].Fixnumber)</p><p><b>  {

71、</b></p><p>  (car[i-1].Fixednumber)++;</p><p>  ofstream outfile;</p><p>  outfile.open("班次信息.txt",ios::out);</p><p>  for(i=0;i<R;i++)</p>&

72、lt;p><b>  {</b></p><p>  outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setout.minutes<<" "<<car[i].Qidian

73、<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;</p><p><b

74、>  }</b></p><p>  outfile.close();</p><p>  cout<<"你的訂票成功,請按時上車,謝謝使用!"<<endl;</p><p><b>  }</b></p><p>  else cout<<&qu

75、ot;對不起,今天的這趟車的票已賣完,請明天再來,謝謝合作"<<endl;</p><p><b>  }</b></p><p>  else cout<<"對不起,今天的這趟車已發(fā)出,請明天再來,謝謝合作"<<endl;</p><p>  cout<<"

76、;輸入回車鍵返回"<<endl;</p><p>  getchar();</p><p>  getchar();</p><p>  welcome();</p><p><b>  }</b></p><p>  //退訂火車票子函數(shù)</p><p&

77、gt;  void tuipiao()</p><p><b>  {</b></p><p><b>  int R;</b></p><p>  R=loading();</p><p><b>  int i;</b></p><p>  cout

78、<<"請輸入要退購的車票的班次:"<<endl;</p><p><b>  cin>>i;</b></p><p>  if(i<=0||i>R)</p><p><b>  {</b></p><p>  cout<<

79、;"對不起,今天沒有這趟車,無法完成退票.謝謝使用!"<<endl;</p><p>  cout<<"輸入回車鍵返回"<<endl;</p><p>  getchar();</p><p>  getchar();</p><p>  welcome();<

80、/p><p><b>  }</b></p><p>  time_t tval;</p><p>  struct tm *now;</p><p>  tval = time(NULL);</p><p>  now = localtime(&tval);</p><p

81、>  if((now->tm_hour==car[i-1].Setout.hour&&now->tm_min<car[i-1].Setout.minutes)||(now->tm_hour<car[i-1].Setout.hour))</p><p><b>  {</b></p><p>  if(car[i-1]

82、.Fixednumber>=1)</p><p><b>  {</b></p><p>  car[i-1].Fixednumber-=1;</p><p>  ofstream outfile;</p><p>  outfile.open("班次信息.txt",ios::out);<

83、/p><p>  for(i=0;i<R;i++)</p><p><b>  {</b></p><p>  outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setou

84、t.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i]

85、.Fixednumber<<endl;</p><p><b>  }</b></p><p>  outfile.close();</p><p>  cout<<"退訂車票成功,謝謝使用!"<<endl;</p><p><b>  }</b&g

86、t;</p><p>  else cout<<"對不起,今天的這趟車的票尚未賣出,無法完成退票!"<<endl;</p><p><b>  }</b></p><p>  else cout<<"對不起,今天的這趟車已發(fā)出,無法完成退票!"<<endl;

87、</p><p>  cout<<"輸入回車鍵返回"<<endl;</p><p>  getchar();</p><p>  getchar();</p><p>  welcome();</p><p><b>  }</b></p>

88、<p><b>  //退出子函數(shù)</b></p><p>  void quit()</p><p><b>  {</b></p><p>  cout<<"*********************謝謝使用本系統(tǒng),歡迎下次繼續(xù)使用***********************&quo

89、t;<<endl;</p><p><b>  } </b></p><p><b>  //文件載入子函數(shù)</b></p><p>  int loading()</p><p><b>  {</b></p><p><b> 

90、 int i;</b></p><p>  ifstream infile;</p><p>  infile.open("班次信息.txt",ios::in);</p><p>  if(!infile)</p><p><b>  {</b></p><p> 

91、 cout<<"請查看原文件是否存在!"<<endl;</p><p>  cout<<"按任意鍵返回";</p><p>  getchar();</p><p>  getchar();</p><p>  welcome();</p><p&

92、gt;<b>  }</b></p><p>  for(i=0;!infile.eof();i++)</p><p><b>  {</b></p><p>  infile>>car[i].Number>>car[i].Setout.hour>>car[i].Setout.minut

93、es>>car[i].Qidian>>car[i].Zhongdian>>car[i].Lasttime>>car[i].Fixnumber>>car[i].Fixednumber;</p><p><b>  }</b></p><p>  return i-1;</p><p>&

94、lt;b>  }</b></p><p><b>  4 測試</b></p><p><b>  主菜單:</b></p><p><b>  班次錄入:</b></p><p><b>  瀏覽班次信息:</b></p>

95、<p><b>  查詢火車信息:</b></p><p>  測試中發(fā)現(xiàn)訂購和退訂車票后,雖然已訂購車票數(shù)實際上有增減,但不能存入到文件中及時保存.后來通過以文件覆蓋的方法重新錄入一次文件得以解決.測試中還發(fā)現(xiàn)若時間是整點的話,分鐘的0只能是一個0,因為分鐘定義的格式是int.,但若果改成char格式之后和系統(tǒng)時間比較的函數(shù)將不成立.所以這個程序仍然存在這樣的一個問題.<

96、;/p><p><b>  5 課程設(shè)計總結(jié)</b></p><p>  通過這次的課程設(shè)計,我發(fā)現(xiàn)我還有好多的不足之處,還有好多知識不能很好的運用,而且題目中的一個要求沒有正常的完成.我覺得我們應(yīng)該花更多的時間去查找資料,因為僅憑自己已學(xué)的知識是無法完成這些內(nèi)容的.</p><p>  這次課程設(shè)計我用了9個子函數(shù)去完成,分開完成各個函數(shù)并驗證

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論