版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計—貓抓老鼠的模擬
- c++課程設(shè)計報告
- c++課程設(shè)計ppt
- c++課程設(shè)計--c++程序設(shè)計語言
- c++課程設(shè)計-- c++面向?qū)ο蟪绦蛟O(shè)計
- 串口通信c++課程設(shè)計
- c++掃雷課程設(shè)計報告
- 中南大學(xué)c++課程設(shè)計
- c++課程設(shè)計-教學(xué)游戲
- c++課程設(shè)計——乘積最大
- c++課程設(shè)計——矩陣類
- c++課程設(shè)計---商場管理
- c++課程設(shè)計(文章編輯)
- c++面向?qū)ο笳n程設(shè)計報告
- c++課程設(shè)計拼圖游戲
- 航空售票系統(tǒng)+c++課程設(shè)計
- c++課程設(shè)計——計算器
- c++課程設(shè)計八皇后問題
- c++課程設(shè)計報告--幸運(yùn)52
- c++課程設(shè)計石頭剪刀布
評論
0/150
提交評論