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

下載本文檔

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

文檔簡介

1、<p><b>  課 程 設(shè) 計</b></p><p>  設(shè)計題目: C++程序設(shè)計課程設(shè)計 </p><p>  模擬電信計費(fèi) </p><p><b>  課程設(shè)計任務(wù)書</b></p><p>  課程設(shè)計題目: 模擬電信計費(fèi) <

2、;/p><p>  一、課程設(shè)計的原始資料及依據(jù)</p><p>  查閱有關(guān)資料,進(jìn)一步理解面向?qū)ο蟪绦蛟O(shè)計的思想,并編寫一個簡單的管理系統(tǒng)。通過本設(shè)計可以加深理解使用面向?qū)ο蟪绦蛟O(shè)計思想開發(fā)一個系統(tǒng)的方法,提高分析問題、解決問題和實(shí)際動手的能力。</p><p>  二、課程設(shè)計主要內(nèi)容及要求</p><p>  設(shè)計內(nèi)容:假設(shè)電信計費(fèi)標(biāo)準(zhǔn):

3、固定電話長途話費(fèi)0.02元/秒,固定電話本地話費(fèi)0.06元/分,無線電話長途話費(fèi)1.00元/分,無線電話本地話費(fèi)0.60元/分,無線電話接聽話費(fèi)0.50元/分。在源數(shù)據(jù)文件中存放:電話號碼,電信服務(wù)類別,通話時間(秒)。根據(jù)源數(shù)據(jù)文件生成如下列表:</p><p>  固定長途電話:長途電話號碼和通話時間。 </p><p>  固定本地電話:本地電話號碼和通話時間。 </p>

4、<p>  無線長途電話:長途電話號碼和通話時間。 </p><p>  無線本地電話:本地電話號碼和通話時間。 </p><p>  無線接聽電話:接聽電話號碼和通話時間。 </p><p>  統(tǒng)計電信費(fèi)用:電話號碼、累計電信費(fèi)用。</p><p> ?。ǜ鶕?jù)自己的任務(wù)填寫內(nèi)容)</p><p>&l

5、t;b>  設(shè)計要求:</b></p><p>  (1) 要求在設(shè)計的過程中建立清晰的類層次,并畫出類圖;</p><p>  (2) 設(shè)計功能滿足要求、易于操作的友好界面;</p><p>  (3) 在系統(tǒng)的設(shè)計中,至少要用到面向?qū)ο蟮囊环N機(jī)制:繼承、多態(tài)等;</p><p>  (4) 在完成該題目時,小組人員進(jìn)行詳

6、細(xì)的任務(wù)分工,并要在報告中體現(xiàn)出來。</p><p>  三、對課程設(shè)計說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求</p><p>  1.課程設(shè)計說明書是體現(xiàn)和總結(jié)課程設(shè)計成果的載體,主要內(nèi)容包括:設(shè)計題目、設(shè)計目的、設(shè)備器材、設(shè)計原理及內(nèi)容、設(shè)計步驟、遇到的問題及解決方法、設(shè)計總結(jié)、參考文獻(xiàn)等。一般不應(yīng)少于3000字。</p><p>  2.在適當(dāng)位置配合相應(yīng)的實(shí)驗(yàn)原理

7、圖、功能模塊圖、算法流程圖等圖表進(jìn)行說明。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。</p><p>  3.設(shè)計總結(jié)部分主要寫本人完成工作簡介以及自己的設(shè)計體會,包括通過課程設(shè)計學(xué)到了什么,哪里遇到了困難,解決的辦法以及今后的目標(biāo)。</p><p>  4.課程設(shè)計說明書手寫或打印均可。手寫要用學(xué)校統(tǒng)一的課程設(shè)計用紙,用黑或藍(lán)黑墨水工整書寫;打印時采用A4紙,頁邊距均為20mm,

8、正文采用宋體小四號字,行間距18磅。文中大標(biāo)題采用黑體小三號字,一級節(jié)標(biāo)題采用黑體四號字,二級節(jié)標(biāo)題采用黑體小四號字,表題與圖題采用宋體五號字。</p><p>  5.課程設(shè)計說明書裝訂順序?yàn)椋悍饷?、任?wù)書、成績評定表、目錄、正文、參考文獻(xiàn)。</p><p>  四、設(shè)計完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求</p><p>  1.完成“任務(wù)書”中指定的

9、功能,運(yùn)行結(jié)果正確。</p><p>  2.課程設(shè)計說明書。</p><p><b>  五、時間進(jìn)度安排</b></p><p>  六、主要參考資料(文獻(xiàn))</p><p>  [1]鄭莉 董淵 張瑞豐 編著. 《C++語言程序設(shè)計》(第4版). 北京:清華大學(xué)出版社.2010</p><p&g

10、t;  [2] 陳維興, 林小茶.《C++高級程序設(shè)計教程》. 北京:清華大學(xué)出版社</p><p>  [3] 譚浩強(qiáng).《C++程序設(shè)計教程》. 北京:中國科學(xué)技術(shù)出版社</p><p>  [4] 王燕.《面向?qū)ο蟮睦碚撆cC++實(shí)踐》. 北京:清華大學(xué)出版社</p><p>  [5] 馬石安, 魏文平. 主編《Visual C++程序設(shè)計與應(yīng)用教程》.

11、北京:清華大學(xué)出版社</p><p>  [6] 王育堅. 主編《Visual C++面向?qū)ο缶幊探坛獭罚ǖ诙妫? 北京:清華大學(xué)出版</p><p><b>  摘 要</b></p><p>  現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,改變了世界,也改變了人類的生活。作為新世紀(jì)的大學(xué)生,應(yīng)當(dāng)站在展的前列,掌握現(xiàn)代科學(xué)知識,調(diào)整自己的知識結(jié)構(gòu)和能力結(jié)構(gòu),

12、以適應(yīng)社會發(fā)展要求。新需要具有豐富的現(xiàn)代科學(xué)知識,能夠獨(dú)立解決面臨的任務(wù),充滿活力同,有創(chuàng)新意識的新型人才。</p><p>  C++語言是在國內(nèi)外廣泛使用的一種計算機(jī)語言。C++語言功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好,既具有高級語言的優(yōu)點(diǎn),又具有低級語言的許多特點(diǎn),因此特別適合于編寫系統(tǒng)軟件。</p><p>  C++程序設(shè)計是一門實(shí)踐很強(qiáng)的課程

13、,既要掌握概念,又要動手編程,還要上機(jī)調(diào)試。</p><p>  模擬電信計費(fèi)系統(tǒng)就是通過我們組員每一個人的努力的成果,我們用到在課堂上所學(xué)到的知識以及課下參考其它資料而編寫的程序。本次課程設(shè)計可以實(shí)現(xiàn)模擬電信計費(fèi)的功能。操作簡便而實(shí)用。</p><p>  模擬電信計費(fèi)系統(tǒng)可以現(xiàn)實(shí)對手機(jī)話費(fèi)的操作,例如,對本機(jī)話費(fèi)每一條通話記錄話費(fèi)查詢、話費(fèi)清單顯示等相關(guān)功能,可以對本機(jī)話費(fèi)做一個簡單管

14、理。</p><p>  此次C++語言課程設(shè)計是對我們所掌握C++語言知識的一次檢測。我們組做的是模擬電信計費(fèi)系統(tǒng),操作簡單,使我們對C++語言知識有了質(zhì)的飛躍,提高了我們的編程技術(shù),增加了我們對計算機(jī)的興趣,程序成功的運(yùn)行,給予了我們莫大的信心,通過對程序的完善更讓我們受益匪淺,鍛煉了我們的實(shí)踐能力,給我對進(jìn)入社會提供了莫大的動力。</p><p>  關(guān)鍵詞 類 對象 繼承 文件&

15、lt;/p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  第1章 緒 論1</p><p><b>  1.1題目背景1</b></p><p><b>  1.2概要設(shè)計1

16、</b></p><p><b>  1.3解決問題1</b></p><p>  第2章 C++語言的運(yùn)行環(huán)境2</p><p>  2.1 C++語言的運(yùn)行環(huán)境2</p><p>  2.2 C++語言的特點(diǎn)2</p><p>  2.3 C++語言的運(yùn)行步驟2</

17、p><p>  第3章系統(tǒng)分析與詳細(xì)設(shè)計5</p><p>  3.1程序結(jié)構(gòu)基礎(chǔ)5</p><p>  3.2 功能設(shè)計5</p><p>  第4章 系統(tǒng)實(shí)現(xiàn)25</p><p>  4.1程序運(yùn)行的登錄界面25</p><p>  4.2程序運(yùn)行的主菜單及功能界面26</p&

18、gt;<p><b>  結(jié) 論27</b></p><p><b>  致 謝28</b></p><p><b>  參考文獻(xiàn)29</b></p><p><b>  第1章 緒 論</b></p><p><b>

19、;  1.1題目背景</b></p><p>  隨著計算機(jī)技術(shù)的飛速發(fā)展,改變了世界,也改變了人類的生活。作為現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,改變了世界,也改變了人類的生活。新世紀(jì)的大學(xué)生,應(yīng)當(dāng)站在時代發(fā)展的前列,掌握現(xiàn)代科學(xué)技術(shù)知識,調(diào)整自己的知識結(jié)構(gòu)和能力結(jié)構(gòu),以適應(yīng)社會發(fā)展的要求。</p><p>  C++語言成了在國內(nèi)外使用的一種計算機(jī)語言。C++語言功能豐富、表達(dá)能力強(qiáng)、

20、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好、既具有高級語言的優(yōu)點(diǎn),又具有低級語言的許多特點(diǎn),因此特別適合于編寫系統(tǒng)軟件。</p><p><b>  1.2概要設(shè)計</b></p><p>  根據(jù)題目要求,設(shè)計模擬電信計費(fèi)系統(tǒng),實(shí)現(xiàn)課題中的要求??梢赃M(jìn)行每一條通話記錄的查詢,并且可以顯示話費(fèi)清單。</p><p><b> 

21、 1.3解決問題</b></p><p>  本程序由4個類為基礎(chǔ)結(jié)構(gòu),分別是fixed_phone類,telephone類,phone類,log_in類, phone類是由fixed_phone類和telephone類派生而來的,fixed_phone類主要用來實(shí)現(xiàn)固定電話的話費(fèi)功能,telephone類主要用來實(shí)現(xiàn)無限電話的話費(fèi)功能,phone類通過本身成員函數(shù)來實(shí)現(xiàn)總體功能,log_in類主要實(shí)

22、現(xiàn)系統(tǒng)的登錄,主菜單,帳號信息,退出等功能。</p><p>  第2章 C++語言的運(yùn)行環(huán)境 </p><p>  2.1 C++語言的運(yùn)行環(huán)境</p><p>  C++語言的運(yùn)行環(huán)境有很多,是Microsoft 公司推出的可視化開發(fā)環(huán)境,即Microsoft Visual C++6.0。也就是我們小組運(yùn)用的開發(fā)環(huán)境。</p><p>

23、  C語言在VC++6.0環(huán)境下運(yùn)行如圖2-1所示。</p><p>  圖2-1 C語言運(yùn)行界面</p><p>  2.2 C++語言的特點(diǎn)</p><p>  C++語言是一種優(yōu)秀的面向?qū)ο蟪绦蛟O(shè)計語言,它在C語言的基礎(chǔ)上發(fā)展而來,但它比C語言更容易為人們學(xué)習(xí)和掌握。C++以其獨(dú)特的語言機(jī)制在計算機(jī)科學(xué)的各個領(lǐng)域中得到了廣泛的應(yīng)用。面向?qū)ο蟮脑O(shè)計思想是在原來結(jié)

24、構(gòu)化程序設(shè)計方法基礎(chǔ)上的一個質(zhì)的飛躍,C++完美地體現(xiàn)了面向?qū)ο蟮母鞣N特性。</p><p>  2.3 C++語言的運(yùn)行步驟 </p><p><b>  1.運(yùn)行VC6.0</b></p><p>  現(xiàn)在就讓我們開始Visual C++ 6.0之旅吧!首先按如下兩種方法之一啟動并運(yùn)行VC6,進(jìn)入到它的集成開發(fā)環(huán)境窗口(假設(shè)在Windows

25、系統(tǒng)下已經(jīng)安裝了VC6)其具體窗口式樣如圖2-1所示。</p><p><b>  方法一:</b></p><p>  若桌面上有VC6圖標(biāo)(“橫躺著”即“倒下”的“8”字型圖標(biāo),且標(biāo)有Microsoft Visual Studio 6.0字樣,如圖2-2所示),則用鼠標(biāo)雙擊該圖標(biāo)。</p><p>  圖2-2 VC6.0在桌面上的快捷方式

26、</p><p>  方法二(假設(shè)按照通常方式對VC6進(jìn)行了安裝的話)</p><p>  通過開始→程序→Microsoft Visual Studio 6.0→Microsoft Visual C++ 6.0,單擊一下該菜單項(xiàng)。</p><p>  圖2-1式樣的窗口從大體上可分為四部分。上部:菜單和工具條;中左:工作區(qū)(workspace)視圖顯示窗口,這里將

27、顯示處理過程中與項(xiàng)目相關(guān)的各種文件種類等信息;中右:文檔內(nèi)容區(qū),是顯示和編輯程序文件的操作區(qū);下部:輸出(Output)窗口區(qū),程序調(diào)試過程中,進(jìn)行編譯、鏈接、運(yùn)行時輸出的相關(guān)信息將在此處顯示。注意,由于系統(tǒng)的初始設(shè)置或者環(huán)境的某些不同,可能你所啟動的VC6初始窗口式樣與圖2-1有所不同,也許沒出現(xiàn)Workspace窗口或Output窗口,這時可通過View→Workspace菜單選項(xiàng)的執(zhí)行,總可使中左處的工作區(qū)窗口顯現(xiàn)出來;而通過Vi

28、ew→Output菜單選項(xiàng)的執(zhí)行,又總可使下部的輸出區(qū)窗口得以顯現(xiàn)。當(dāng)然,如果不想看到這兩個窗口,可以點(diǎn)擊相應(yīng)窗口的“x”按鍵來關(guān)閉窗口。如圖2-3所示。</p><p>  圖2-3 VC6.0的集成開發(fā)環(huán)境窗口 </p><p>  2. 編制并運(yùn)行C++語言程序的四步曲</p><p> ?、啪庉嫞ò殉绦虼a輸入,交給計算機(jī))。 </p><

29、;p>  ⑵編譯(成目標(biāo)程序文件.obj)。</p><p>  編譯就是把高級語言變成計算機(jī)可以識別的2進(jìn)制語言,計算機(jī)只認(rèn)識1和0,編譯程序把人們熟悉的語言換成2進(jìn)制的。編譯程序把一個源程序翻譯成目標(biāo)程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標(biāo)代碼生成。主要是進(jìn)行詞法分析和語法分析,又稱為源程序分析,分析過程中發(fā)現(xiàn)有語法錯誤,給出提示信息。 </p>

30、<p> ?、擎溄樱ǔ煽蓤?zhí)行程序文件.exe)。</p><p>  鏈接是將編譯產(chǎn)生的.obj文件和系統(tǒng)庫連接裝配成一個可以執(zhí)行的程序。由于在實(shí)際操作中可以直接點(diǎn)擊Build從源程序產(chǎn)生可執(zhí)行程序,可能有人就會置疑:為何要將源程序翻譯成可執(zhí)行文件的過程分為編譯和鏈接兩個獨(dú)立的步驟,不是多此一舉嗎?之所以這樣做,主要是因?yàn)椋涸谝粋€較大的復(fù)雜項(xiàng)目中,有很多人共同完成一個項(xiàng)目(每個人可能承擔(dān)其中一部分模

31、塊),其中有的模塊可能是用匯編語言寫的,有的模塊可能是用VC寫的,有的模塊可能是用VB寫的,有的模塊可能是購買(不是源程序模塊而是目標(biāo)代碼)或已有的標(biāo)準(zhǔn)庫模塊,因此,各類源程序都需要先編譯成目標(biāo)程序文件(2進(jìn)制機(jī)器指令代碼),再通過鏈接程序?qū)⑦@些目標(biāo)程序文件連接裝配成可執(zhí)行文件。 </p><p> ?、冗\(yùn)行(可執(zhí)行程序文件)。</p><p>  上述四個步驟中,其中第一步的編輯工作是最

32、繁雜而又必須細(xì)致地由人工在計算機(jī)上來完成,其余幾個步驟則相對簡單,基本上由計算機(jī)來自動完成。在VC6.0下編譯后的窗口界面如圖2-4所示。</p><p>  圖2-4 在VC6.0下編譯后的窗口界面</p><p>  第3章系統(tǒng)分析與詳細(xì)設(shè)計</p><p><b>  3.1程序結(jié)構(gòu)基礎(chǔ)</b></p><p> 

33、 本程序主要完成的是模擬電信計費(fèi)的功能,整個程序由4個類結(jié)構(gòu)為基礎(chǔ)。類UML圖如圖3-1所示。 </p><p>  圖3-1 類UML圖</p><p><b>  3.2 功能設(shè)計</b></p><p>  3.2.1 log_in類的設(shè)計</p><p>  1.load()成員函數(shù)</p><

34、;p>  void log_in::load()</p><p><b>  {</b></p><p>  int i,count=0;</p><p>  char str[50],str1[50];</p><p>  time_t t1,*t=&t1;</p><p>  p

35、rintf("\n\n\n\n\n\n");</p><p>  printf("\t* *\n");</p><p>  printf("\t*

36、 *\n");</p><p>  printf("\t* *\n");</p><p>  printf("\t* *\n");</p&g

37、t;<p>  printf("\t* * * * * * * * * * * * * *\n");</p><p>  printf("\t* * * * * * *\n");</p><p>  p

38、rintf("\t* * * * * * *\n");</p><p>  printf("\t* * * * * * *\n");</p><p>  printf("\t*

39、 * * * * * * *\n");</p><p>  printf("\t* * * * * * * * * * * * * * * * * *\t");</p><p><b>  i=6;</b></p>

40、<p><b>  do</b></p><p><b>  {</b></p><p>  t1=time(NULL);</p><p>  strcpy(str,ctime(t));</p><p>  if(count==6) break;</p><p> 

41、 while(strcmp(str,str1)!=0)</p><p><b>  {</b></p><p>  strcpy(str1,str);</p><p>  printf(" >");</p><p><b>  count++;</b></p>

42、<p><b>  break;</b></p><p><b>  }</b></p><p>  }while(1);</p><p>  system("cls");</p><p>  logshow();</p><p><b&

43、gt;  }</b></p><p>  設(shè)計流程如圖3-2所示。</p><p>  2. account_code()成員函數(shù)</p><p>  void log_in ::account_code()</p><p><b>  {</b></p><p><b> 

44、 int b;</b></p><p>  cout<<"**********1注冊新賬號***********\n";</p><p>  cout<<"**********2修改密碼***********\n";</p><p>  cout<<"請再此輸入選擇代號

45、:\n";</p><p><b>  cin>>b;</b></p><p><b>  if(b==1)</b></p><p><b>  {</b></p><p>  string temp1;</p><p>  str

46、ing temp2;</p><p>  ofstream outfile ;// 建立輸出文件流對象</p><p>  outfile.open( "code.txt" , ios::out ); // 連接文件,指定打開方式 </p><p>  cout<<"請輸入賬號:"<<endl

47、;</p><p>  cin>>account;</p><p>  cout<<"請輸入密碼:"<<endl;</p><p>  cin>>temp1;</p><p>  cout<<"請再次輸入密碼:"<<endl;<

48、;/p><p>  cin>>temp2;</p><p>  if(temp1==temp2)</p><p>  code=temp1;</p><p>  outfile <<account<< endl ;</p><p>  outfile <<code<&l

49、t; endl ;</p><p>  outfile.close () ;</p><p>  cout<<"注冊成功!\n";</p><p>  system("pause");</p><p><b>  menu();</b></p><p

50、><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  fstream rwfile ( "code.txt" , ios::in | ios::out ) ; </p><p&g

51、t;  string temp1;</p><p>  string temp2;</p><p>  string temp3;</p><p>  string temp4;</p><p>  string temp5;</p><p>  string temp6;</p><p>  

52、rwfile>>temp1>>temp2;</p><p>  cout<<"請輸入您的賬號:"<<endl;</p><p>  cin>>temp3;</p><p>  cout<<"請輸入原密碼:"<<endl;</p>

53、<p>  cin>>temp4;</p><p>  if((temp1==temp3)&&(temp2==temp4))</p><p><b>  {</b></p><p>  loop:cout<<"請輸入新密碼:"<<endl;</p>

54、<p>  cin>>temp5;</p><p>  cout<<"請再次輸入新密碼:"<<endl;</p><p>  cin>>temp6;</p><p>  if(temp5==temp6)</p><p><b>  {</b>&

55、lt;/p><p>  account=temp1;</p><p>  code=temp5;</p><p><b>  }</b></p><p><b>  else</b></p><p>  goto loop;</p><p>  rwfil

56、e <<account<< endl ;</p><p>  rwfile <<code<< endl ;</p><p>  rwfile.close();</p><p>  cout<<"修改成功!\n";</p><p>  system("pa

57、use");</p><p><b>  menu();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  設(shè)計流程如圖3-

58、3所示。</p><p>  3. log()成員函數(shù)</p><p>  void log_in ::log()</p><p><b>  {</b></p><p><b>  int b;</b></p><p>  cout<<"*******

59、***1注冊賬號或修改密碼***********\n";</p><p>  cout<<"**********2登陸系統(tǒng)***********\n";</p><p>  cout<<"請再此輸入選擇代號:\n";</p><p><b>  cin>>b;</b

60、></p><p><b>  if(b==1)</b></p><p>  account_code();</p><p><b>  else</b></p><p><b>  load();</b></p><p><b>  }

61、</b></p><p>  設(shè)計流程如圖3-4所示。</p><p>  圖3-2 load()成員函數(shù)流程圖</p><p>  圖3-3 account_code()成員函數(shù)</p><p>  圖3-4 log()成員函數(shù)</p><p>  4. codeNum()成員函數(shù)</p>

62、<p>  void log_in ::codeNum()</p><p><b>  {</b></p><p>  char a[37]="abcdefghijklmnopqrstuvwxyz0123456789";//定義一個包含26個小寫字母的字符串</p><p><b>  int i,j;&

63、lt;/b></p><p>  char output[5]="";</p><p>  char code[5]="";</p><p>  srand((int)time(0));//初始化隨機(jī)數(shù)發(fā)生器</p><p>  printf("\n\n \t驗(yàn)證碼: ");&

64、lt;/p><p>  for(i=0;i<4;i++)</p><p><b>  {</b></p><p>  j= rand()%36;//取得0~25的隨機(jī)數(shù)</p><p>  printf("%c ",a[j]);</p><p>  output[i]=a[j

65、];</p><p><b>  }</b></p><p>  a[4]='\0';</p><p>  printf("請輸入驗(yàn)證碼:");</p><p>  fflush(stdin);</p><p>  scanf("%s",&a

66、mp;code);</p><p>  if(strcmp(code,output)!=0)</p><p><b>  {</b></p><p>  printf("\n\t\t驗(yàn)證碼輸入錯誤,請重新輸入!\n\n");</p><p>  system("pause");&l

67、t;/p><p>  codeNum();</p><p><b>  }</b></p><p><b>  }</b></p><p>  設(shè)計流程如圖3-5所示。</p><p>  圖3-5 codeNum()成員函數(shù)</p><p>  5. l

68、ogshow()成員函數(shù)</p><p>  void log_in ::logshow()</p><p><b>  {</b></p><p>  ifstream infile("code.txt",ios::in);</p><p>  string temp1;</p>&l

69、t;p>  string temp2;</p><p>  infile>>temp1>>temp2;</p><p>  loop:cout<<"請輸入您的賬號:"<<endl;</p><p>  cin>>account;</p><p>  cout

70、<<"請輸入您的密碼:"<<endl;</p><p>  cin>>code;</p><p>  codeNum();</p><p>  if((temp1==account)&&(temp2==code))</p><p><b>  {</b&g

71、t;</p><p><b>  menu();</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  goto loop;</p><p><b>  }</b><

72、/p><p>  設(shè)計流程如圖3-6所示。</p><p>  圖3-6 logshow()成員函數(shù)</p><p>  6. logshow()成員函數(shù)</p><p>  void log_in ::quit()</p><p><b>  {</b></p><p>  

73、cout<<"確定退出系統(tǒng)?"<<endl;</p><p>  cout<<"Yes?/Y or No?/N:"<<endl;</p><p><b>  char c;</b></p><p><b>  cin>>c;</b

74、></p><p>  if(c=='Y'||c=='y')</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  char str[50],str1[50];</p><p>  

75、time_t t1,*t=&t1;</p><p><b>  i=5;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  t1=time(NULL);</p><p>  strcpy

76、(str,ctime(t));</p><p>  while(strcmp(str,str1)!=0)</p><p><b>  {</b></p><p>  strcpy(str1,str);</p><p>  for(;i>0;)</p><p><b>  {<

77、/b></p><p>  system("cls");</p><p>  printf("%d秒后退出!",i--);</p><p><b>  //</b></p><p><b>  break;</b></p><p>

78、;<b>  }</b></p><p><b>  }</b></p><p>  }while(1);</p><p>  system("pause");</p><p><b>  exit(0);</b></p><p>&

79、lt;b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  system("pause");</p><p><b>  menu();</b></p>

80、<p><b>  }</b></p><p><b>  }</b></p><p>  設(shè)計流程如圖3-7所示。</p><p>  圖3-7 logshow()成員函數(shù)</p><p>  3.2.2 fixed_phone類的設(shè)計</p><p>  1.

81、get_fee(int t)成員函數(shù)</p><p>  float fixed_phone::get_fee(int t)</p><p><b>  {</b></p><p><b>  if(t==0)</b></p><p>  fee=0.02*time;</p><

82、p><b>  if(t==1)</b></p><p>  fee=(time/60+1)*0.06;</p><p>  return fee;</p><p><b>  }</b></p><p>  設(shè)計流程如圖3-8所示。</p><p>  圖3-7 ge

83、t_fee(int t)成員函數(shù)</p><p>  2. show_detail(int t) 成員函數(shù)</p><p>  void fixed_phone::show_detail(int t)</p><p><b>  {</b></p><p><b>  if(t==0)</b><

84、;/p><p><b>  {</b></p><p>  //cout<<"您本次通話的詳細(xì)信息:"<<endl;</p><p>  cout<<"電話號碼:"<<number<<" 電信服務(wù)類型:"<<&q

85、uot; 固定長途電話"<<" 通話時間(秒):"<<time<<" 產(chǎn)生的費(fèi)用:"<<fee<<endl;</p><p><b>  }</b></p><p><b>  if(t==1)</b></p><

86、;p><b>  {</b></p><p>  //cout<<"您本次通話的詳細(xì)信息:"<<endl;</p><p>  cout<<"電話號碼:"<<number<<" 電信服務(wù)類型:"<<" 固定本地電話

87、"<<" 通話時間(秒):"<<time<<" 產(chǎn)生的費(fèi)用:"<<fee<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  設(shè)計流程如圖3-9所示

88、。</p><p>  圖3-9 show_detail(int t) 成員函數(shù)</p><p>  3.2.3 telephone類的設(shè)計</p><p>  1. get_fee(int t)成員函數(shù)</p><p>  float telephone::get_fee(int t)</p><p><b&g

89、t;  {</b></p><p><b>  if(t==2)</b></p><p>  fee=(time/60+1)*1;</p><p><b>  if(t==3)</b></p><p>  fee=(time/60+1)*0.6;</p><p>

90、<b>  if(t==4)</b></p><p>  fee=(time/60+1)*0.5;</p><p>  return fee;</p><p><b>  }</b></p><p>  設(shè)計流程如圖3-10所示。</p><p>  2. show_deta

91、il(int t)成員函數(shù)</p><p>  void telephone::show_detail(int t)</p><p><b>  {</b></p><p>  if(type==2)</p><p><b>  {</b></p><p>  //cout&

92、lt;<"您本次通話的詳細(xì)信息:"<<endl;</p><p>  cout<<"電話號碼:"<<number<<" 電信服務(wù)類型:"<<"無線長途電話"<<" 通話時間(秒):"<<time<<&quo

93、t; 產(chǎn)生的費(fèi)用:"<<fee<<endl;</p><p><b>  }</b></p><p>  if(type==3)</p><p><b>  {</b></p><p>  //cout<<"您本次通話的詳細(xì)信息:"

94、<<endl;</p><p>  cout<<"電話號碼:"<<number<<" 電信服務(wù)類型:"<<"無線本地電話"<<" 通話時間(秒):"<<time<<" 產(chǎn)生的費(fèi)用:"<<fee<

95、;<endl;</p><p><b>  }</b></p><p>  if(type==4)</p><p><b>  {</b></p><p>  //cout<<"您本次通話的詳細(xì)信息:"<<endl;</p><p

96、>  cout<<"電話號碼: "<<number<<" 電信服務(wù)類型:"<<"無線電話接聽"<<" 通話時間(秒):"<<time<<" 產(chǎn)生的費(fèi)用:"<<fee<<endl;</p><p&g

97、t;<b>  }</b></p><p><b>  }</b></p><p>  設(shè)計流程如圖3-11所示。</p><p>  圖3-10 get_fee(int t)成員函數(shù) 圖3-11 show_detail(int t)成員函數(shù)</p><p>  3.2.4

98、 phone類的設(shè)計</p><p>  1. find()成員函數(shù)</p><p>  void phone::find()</p><p><b>  {</b></p><p>  ifstream infile ("data.txt",ios::in);</p><p>

99、;<b>  int i;</b></p><p><b>  int t;</b></p><p><b>  int num;</b></p><p>  infile>>num;</p><p>  fixed_phone * fph=new fixed_ph

100、one[num];</p><p>  telephone * tlh=new telephone [num];</p><p>  string temp_num;</p><p>  cout<<"請輸入要查詢的電話號碼:\n";</p><p>  cin>>temp_num;</p&g

101、t;<p>  for(i=0;i<num;i++)</p><p><b>  {</b></p><p>  infile>>t;</p><p>  if((t=0)||(t=1))</p><p><b>  {</b></p><p>

102、;  fph[i].type=t;</p><p>  infile>>fph[i].number>>fph[i].time;</p><p>  fph[i].fee=fph[i].get_fee(t);</p><p>  if(fph[i].number==temp_num)</p><p><b> 

103、 {</b></p><p>  cout<<"您本次通話記錄為:\n";</p><p>  fph[i].show_detail(fph[i].type);</p><p><b>  }</b></p><p><b>  }</b></p&

104、gt;<p><b>  else</b></p><p><b>  {</b></p><p>  tlh[i].type=t;</p><p>  infile>>tlh[i].number>>tlh[i].time;</p><p>  tlh[i].f

105、ee=tlh[i].get_fee(t);</p><p>  if(tlh[i].number==temp_num)</p><p><b>  {</b></p><p>  cout<<"您本次通話記錄為:\n";</p><p>  tlh[i].show_detail(tlh[i

106、].type);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  設(shè)計流程如圖3-12所示。<

107、/p><p>  圖3-12 find()成員函數(shù)</p><p>  2. read_show_all()成員函數(shù)</p><p>  void phone::read_show_all()</p><p><b>  {</b></p><p>  ifstream infile ("d

108、ata.txt",ios::in);</p><p><b>  int i;</b></p><p><b>  int t;</b></p><p><b>  int num;</b></p><p>  infile>>num;</p>

109、<p>  fixed_phone * fph=new fixed_phone[num];</p><p>  telephone * tlh=new telephone [num];</p><p>  for(i=0;i<num;i++)</p><p><b>  {</b></p><p> 

110、 infile>>t;</p><p>  if((t==0)||(t==1))</p><p><b>  {</b></p><p>  fph[i].type=t;</p><p>  infile>>fph[i].number>>fph[i].time;</p>

111、<p>  fph[i].fee=fph[i].get_fee(t);</p><p>  fph[i].show_detail(t);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b><

112、;/p><p>  tlh[i].type=t;</p><p>  infile>>tlh[i].number>>tlh[i].time;</p><p>  tlh[i].fee=tlh[i].get_fee(t);</p><p>  tlh[i].show_detail(t);</p><p&g

113、t;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  設(shè)計流程如圖3-13所示。</p><p>  圖3-13 read_show_all()成員函數(shù)</p><p>  3.2

114、.5 主函數(shù)的設(shè)計</p><p><b>  主函數(shù)</b></p><p>  void main()</p><p><b>  {</b></p><p>  log_in loging;</p><p>  loging.log();</p><

115、p>  phone phe;</p><p>  int choose;</p><p>  loop:cout<<"請輸入功能選項(xiàng):\n";</p><p>  cin>>choose;</p><p>  if(choose==1)</p><p><b>

116、;  {</b></p><p>  system("cls");</p><p>  loging.log();</p><p><b>  }</b></p><p>  else if(choose==2)</p><p><b>  {</b

117、></p><p>  loop2:system("cls");</p><p>  phe.find();</p><p>  cout<<"**********1返回主菜單***********\n";</p><p>  cout<<"**********2

118、繼續(xù)查詢***********\n";</p><p>  int choose_2;</p><p>  cin>>choose_2;</p><p>  if(choose_2==1)</p><p>  {loging.menu();</p><p>  goto loop;</

119、p><p><b>  }</b></p><p>  if(choose_2==2)</p><p>  goto loop2;</p><p><b>  }</b></p><p>  else if(choose==3)</p><p>  {

120、system("cls");</p><p>  phe.read_show_all();</p><p>  cout<<"按任意鍵返回主菜單";</p><p>  system("pause");</p><p>  loging.menu();</p>

121、;<p>  goto loop;}</p><p>  else if(choose==4)</p><p>  {system("cls");</p><p>  loging.quit();</p><p>  goto loop;</p><p><b>  }}&

122、lt;/b></p><p>  設(shè)計流程如圖3-14所示。</p><p><b>  圖3-14 主函數(shù)</b></p><p><b>  第4章 系統(tǒng)實(shí)現(xiàn)</b></p><p>  4.1程序運(yùn)行的登錄界面</p><p>  1.帳號注冊界面如圖4-1所示。

123、</p><p>  圖4-1 帳號注冊界面</p><p>  2.登錄界面如圖4-2所示。</p><p><b>  圖4-2 登錄界面</b></p><p>  4.2程序運(yùn)行的主菜單及功能界面</p><p>  1.主菜單界面如圖4-3所示。</p><p>

124、  圖4-3 主菜單界面</p><p>  2.選項(xiàng)1會進(jìn)入其實(shí)界面,并且要求重新登錄。選項(xiàng)2話費(fèi)查詢界面如圖4-4所示。</p><p>  圖4-4 話費(fèi)查詢界面</p><p>  3.選項(xiàng)3話費(fèi)清單界面如圖4-5所示。</p><p>  圖4-5 話費(fèi)清單界面</p><p>  4.選項(xiàng)4退出界面如圖4-

125、6和4-7所示。</p><p>  圖4-6 退出界面 圖4-7退出界面</p><p><b>  結(jié) 論</b></p><p>  時間是短暫的,收獲是豐厚的。經(jīng)過這樣一周的課程設(shè)計,把我對C++知識從新鞏固了一遍,對類和繼承進(jìn)一步理解,特別對程序的面向?qū)ο蟮姆庋b性進(jìn)一步的理解和體會,為今

126、后的程序編寫奠定了一定的基礎(chǔ)。而這次的課程設(shè)計也給了我們一次機(jī)會,一次把學(xué)習(xí)到的知識付諸實(shí)踐的機(jī)會。</p><p>  知識寶貴,團(tuán)隊精神同樣可貴,我想任務(wù)分組完成就是出于這樣的考慮吧,團(tuán)隊合作不是把任務(wù)簡單分開就能實(shí)現(xiàn)的。每個人學(xué)習(xí)知識的側(cè)重點(diǎn)不盡相同,每人解決問題的思路也不一樣,幾個人相互討論,相互辯論的過程中往往會產(chǎn)生出人意料的好想法,也許這就叫做靈感。分歧過后達(dá)成共識,團(tuán)結(jié)協(xié)作,最終才造就了一個完整的可

127、使用的程序。</p><p>  實(shí)踐的過程中出現(xiàn)了無法解決的問題,所以我們也查閱了大量相關(guān)資料和書籍,這也是獲取知識最重要的途徑之一,吸取前人的經(jīng)驗(yàn)也是解決問題的很好途徑,但是絕不能照抄代碼,先繼承后發(fā)展才能算是我的收獲的。</p><p>  “書到用時方恨少!”應(yīng)用時的捉襟見肘才讓我認(rèn)識到了自己高級語言基礎(chǔ)上的不足,每一門專業(yè)基礎(chǔ)課都是我們手中不可替代的武器,只有把他們有機(jī)聯(lián)系起來才

128、有可能實(shí)現(xiàn)一個完整的功能,本次課程設(shè)計是我體會到只有付出才會有收獲,只有平日認(rèn)真學(xué)習(xí)關(guān)鍵時刻才會不捉襟見肘,只有團(tuán)結(jié)一致才會成功,只有互助才會順利</p><p>  課程設(shè)計要親手做過,不管它是否有結(jié)果。你要學(xué)的是知識,是解決問題的方法和思想,要端正學(xué)習(xí)態(tài)度,一時的成敗不足以論英雄,每一次突破都是一種收獲,就是在這樣的過程中我們才能不斷提高。在從開始接到課程設(shè)計,再到報告的完成,每走一步都滲透著努力和汗水。在收

129、獲知識的同時收獲快樂。 </p><p>  隨著時間的流失我會用今天所學(xué)到的用到今后的學(xué)習(xí)中,我會為了今后編寫出更好的程序而努力學(xué)習(xí),時刻記住只有付出才會有收獲。</p><p><b>  致 謝</b></p><p><b>  尊敬的老師您好!</b></p><p>  兩周的課程設(shè)計

130、匆匆結(jié)束,在這段時間內(nèi),我們不僅學(xué)會了如何設(shè)計程序、對錯誤程序進(jìn)行調(diào)試、如何運(yùn)用創(chuàng)新能力,更重要的是我們認(rèn)識到了自己的不足。</p><p>  在修改程序的過程中,我們遇到許多在書本學(xué)習(xí)中不曾遇到過的問題,是張老師和代老師一次次以淵博的學(xué)識、嚴(yán)謹(jǐn)求實(shí)的科學(xué)精神和一絲不茍的治學(xué)態(tài)度幫助我們解決問題。課設(shè)讓我們得到的遠(yuǎn)遠(yuǎn)超過了書本。</p><p>  在系統(tǒng)完善過程中,我們遇到了許多的技術(shù)

131、問題,但經(jīng)過老師的細(xì)心指導(dǎo)及查閱大量的資料,最終問題得到了解決。同時,同學(xué)也給了我們許多有益的啟示、促動和幫助,幫助我們能夠順利的完成此次課設(shè)。</p><p>  在設(shè)計接近尾聲時,兩位老師不辭勞苦的幫助,才能幫助我們能夠圓滿的完成這次課程設(shè)計。沒有老師的細(xì)心指導(dǎo),就沒有我們的設(shè)計成果。老師程序設(shè)計方面有很多的實(shí)踐經(jīng)驗(yàn),使得我們在設(shè)計時遇到的困難都能夠迎刃而解。也讓我們在設(shè)計的過程中少走了許多的彎路。在此我們由

132、衷的向老師表示感謝和敬意。 </p><p>  最后我們要再次感謝對我們有深遠(yuǎn)影響的*老師。祝您們今后事業(yè)一帆風(fēng)順,身體康健。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]鄭莉 董淵 張瑞豐 編著. 《C++語言程序設(shè)計》(第4版). 北京:清華大學(xué)出版社.2010</p><p>  [2

133、] 陳維興, 林小茶.《C++高級程序設(shè)計教程》. 北京:清華大學(xué)出版社</p><p>  [3] 譚浩強(qiáng).《C++程序設(shè)計教程》. 北京:中國科學(xué)技術(shù)出版社</p><p>  [4] 王燕.《面向?qū)ο蟮睦碚撆cC++實(shí)踐》. 北京:清華大學(xué)出版社</p><p>  [5] 馬石安, 魏文平. 主編《Visual C++程序設(shè)計與應(yīng)用教程》. 北京:清華大

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論