C+課程設計模擬電信計費_第1頁
C+課程設計模擬電信計費_第2頁
C+課程設計模擬電信計費_第3頁
C+課程設計模擬電信計費_第4頁
C+課程設計模擬電信計費_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課 程 設 計設計題目: C+程序設計課程設計 模擬電信計費 課程設計任務書 課程設計題目: 模擬電信計費 一、課程設計的原始資料及依據(jù)查閱有關資料,進一步理解面向對象程序設計的思想,并編寫一個簡單的管理系統(tǒng)。通過本設計可以加深理解使用面向對象程序設計思想開發(fā)一個系統(tǒng)的方法,提高分析問題、解決問題和實際動手的能力。二、課程設計主要內容及要求設計內容:假設電信計費標準:固定電話長途話費0.02元/秒,固定電話本地話費0.06元/分,無線電話長途話費1.00元/分,無線電話本地話費0.60元/分,無線電話接聽話費0.50元/分。在源數(shù)據(jù)文件中存放:電話號碼,電信服務類別,通話時間(秒)。根據(jù)源數(shù)據(jù)

2、文件生成如下列表:固定長途電話:長途電話號碼和通話時間。 固定本地電話:本地電話號碼和通話時間。 無線長途電話:長途電話號碼和通話時間。 無線本地電話:本地電話號碼和通話時間。 無線接聽電話:接聽電話號碼和通話時間。 統(tǒng)計電信費用:電話號碼、累計電信費用。(根據(jù)自己的任務填寫內容)設計要求:(1) 要求在設計的過程中建立清晰的類層次,并畫出類圖;(2) 設計功能滿足要求、易于操作的友好界面;(3) 在系統(tǒng)的設計中,至少要用到面向對象的一種機制:繼承、多態(tài)等;(4) 在完成該題目時,小組人員進行詳細的任務分工,并要在報告中體現(xiàn)出來。三、對課程設計說明書撰寫內容、格式、字數(shù)的要求1課程設計說明書是

3、體現(xiàn)和總結課程設計成果的載體,主要內容包括:設計題目、設計目的、設備器材、設計原理及內容、設計步驟、遇到的問題及解決方法、設計總結、參考文獻等。一般不應少于3000字。2在適當位置配合相應的實驗原理圖、功能模塊圖、算法流程圖等圖表進行說明。應做到文理通順,內容正確完整,書寫工整,裝訂整齊。3設計總結部分主要寫本人完成工作簡介以及自己的設計體會,包括通過課程設計學到了什么,哪里遇到了困難,解決的辦法以及今后的目標。4課程設計說明書手寫或打印均可。手寫要用學校統(tǒng)一的課程設計用紙,用黑或藍黑墨水工整書寫;打印時采用A4紙,頁邊距均為20mm,正文采用宋體小四號字,行間距18磅。文中大標題采用黑體小三

4、號字,一級節(jié)標題采用黑體四號字,二級節(jié)標題采用黑體小四號字,表題與圖題采用宋體五號字。5課程設計說明書裝訂順序為:封面、任務書、成績評定表、目錄、正文、參考文獻。四、設計完成后應提交成果的種類、數(shù)量、質量等方面的要求1完成“任務書”中指定的功能,運行結果正確。2課程設計說明書。五、時間進度安排序 號主 要 內 容學 時備 注1進行設計準備,閱讀資料,分析設計任務書,明確設計要求、內容和步驟1天2編寫相應的程序代碼2天3程序調試1天4整理程序,撰寫課程設計報告1天合 計5天六、主要參考資料(文獻)1鄭莉 董淵 張瑞豐 編著. C+語言程序設計(第4版). 北京:清華大學出版社.20102 陳維興

5、, 林小茶.C高級程序設計教程. 北京:清華大學出版社3 譚浩強.C程序設計教程. 北京:中國科學技術出版社4 王燕.面向對象的理論與C實踐. 北京:清華大學出版社5 馬石安, 魏文平. 主編Visual C+程序設計與應用教程. 北京:清華大學出版社6 王育堅. 主編Visual C+面向對象編程教程(第二版). 北京:清華大學出版摘 要現(xiàn)代科學技術的飛速發(fā)展,改變了世界,也改變了人類的生活。作為新世紀的大學生,應當站在展的前列,掌握現(xiàn)代科學知識,調整自己的知識結構和能力結構,以適應社會發(fā)展要求。新需要具有豐富的現(xiàn)代科學知識,能夠獨立解決面臨的任務,充滿活力同,有創(chuàng)新意識的新型人才。C+語言

6、是在國內外廣泛使用的一種計算機語言。C+語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點,因此特別適合于編寫系統(tǒng)軟件。C+程序設計是一門實踐很強的課程,既要掌握概念,又要動手編程,還要上機調試。模擬電信計費系統(tǒng)就是通過我們組員每一個人的努力的成果,我們用到在課堂上所學到的知識以及課下參考其它資料而編寫的程序。本次課程設計可以實現(xiàn)模擬電信計費的功能。操作簡便而實用。模擬電信計費系統(tǒng)可以現(xiàn)實對手機話費的操作,例如,對本機話費每一條通話記錄話費查詢、話費清單顯示等相關功能,可以對本機話費做一個簡單管理。此次C+語言課程設計是

7、對我們所掌握C+語言知識的一次檢測。我們組做的是模擬電信計費系統(tǒng),操作簡單,使我們對C+語言知識有了質的飛躍,提高了我們的編程技術,增加了我們對計算機的興趣,程序成功的運行,給予了我們莫大的信心,通過對程序的完善更讓我們受益匪淺,鍛煉了我們的實踐能力,給我對進入社會提供了莫大的動力。 關鍵詞 類 對象 繼承 文件目 錄摘 要I第1章 緒 論11.1題目背景11.2概要設計11.3解決問題1第2章 C+語言的運行環(huán)境22.1 C+語言的運行環(huán)境22.2 C+語言的特點22.3 C+語言的運行步驟2第3章系統(tǒng)分析與詳細設計53.1程序結構基礎53.2 功能設計5第4章 系統(tǒng)實現(xiàn)254.1程序運行的

8、登錄界面254.2程序運行的主菜單及功能界面26結 論27致 謝28參考文獻29第1章 緒 論1.1題目背景隨著計算機技術的飛速發(fā)展,改變了世界,也改變了人類的生活。作為現(xiàn)代科學技術的飛速發(fā)展,改變了世界,也改變了人類的生活。新世紀的大學生,應當站在時代發(fā)展的前列,掌握現(xiàn)代科學技術知識,調整自己的知識結構和能力結構,以適應社會發(fā)展的要求。C+語言成了在國內外使用的一種計算機語言。C+語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好、既具有高級語言的優(yōu)點,又具有低級語言的許多特點,因此特別適合于編寫系統(tǒng)軟件。1.2概要設計根據(jù)題目要求,設計模擬電信計費系統(tǒng),實現(xiàn)課題中

9、的要求??梢赃M行每一條通話記錄的查詢,并且可以顯示話費清單。1.3解決問題本程序由4個類為基礎結構,分別是fixed_phone類,telephone類,phone類,log_in類, phone類是由fixed_phone類和telephone類派生而來的,fixed_phone類主要用來實現(xiàn)固定電話的話費功能,telephone類主要用來實現(xiàn)無限電話的話費功能,phone類通過本身成員函數(shù)來實現(xiàn)總體功能,log_in類主要實現(xiàn)系統(tǒng)的登錄,主菜單,帳號信息,退出等功能。第2章 C+語言的運行環(huán)境 2.1 C+語言的運行環(huán)境C+語言的運行環(huán)境有很多,是Microsoft 公司推出的可視化開發(fā)環(huán)

10、境,即Microsoft Visual C+6.0。也就是我們小組運用的開發(fā)環(huán)境。C語言在VC+6.0環(huán)境下運行如圖2-1所示。圖2-1 C語言運行界面2.2 C+語言的特點C+語言是一種優(yōu)秀的面向對象程序設計語言,它在C語言的基礎上發(fā)展而來,但它比C語言更容易為人們學習和掌握。C+以其獨特的語言機制在計算機科學的各個領域中得到了廣泛的應用。面向對象的設計思想是在原來結構化程序設計方法基礎上的一個質的飛躍,C+完美地體現(xiàn)了面向對象的各種特性。2.3 C+語言的運行步驟 1.運行VC6.0現(xiàn)在就讓我們開始Visual C+ 6.0之旅吧!首先按如下兩種方法之一啟動并運行VC6,進入到它的集成開發(fā)

11、環(huán)境窗口(假設在Windows系統(tǒng)下已經安裝了VC6)其具體窗口式樣如圖2-1所示。方法一:若桌面上有VC6圖標(“橫躺著”即“倒下”的“8”字型圖標,且標有Microsoft Visual Studio 6.0字樣,如圖2-2所示),則用鼠標雙擊該圖標。 圖2-2 VC6.0在桌面上的快捷方式方法二(假設按照通常方式對VC6進行了安裝的話)通過開始程序Microsoft Visual Studio 6.0Microsoft Visual C+ 6.0,單擊一下該菜單項。圖2-1式樣的窗口從大體上可分為四部分。上部:菜單和工具條;中左:工作區(qū)(workspace)視圖顯示窗口,這里將顯示處理過

12、程中與項目相關的各種文件種類等信息;中右:文檔內容區(qū),是顯示和編輯程序文件的操作區(qū);下部:輸出(Output)窗口區(qū),程序調試過程中,進行編譯、鏈接、運行時輸出的相關信息將在此處顯示。注意,由于系統(tǒng)的初始設置或者環(huán)境的某些不同,可能你所啟動的VC6初始窗口式樣與圖2-1有所不同,也許沒出現(xiàn)Workspace窗口或Output窗口,這時可通過ViewWorkspace菜單選項的執(zhí)行,總可使中左處的工作區(qū)窗口顯現(xiàn)出來;而通過ViewOutput菜單選項的執(zhí)行,又總可使下部的輸出區(qū)窗口得以顯現(xiàn)。當然,如果不想看到這兩個窗口,可以點擊相應窗口的“x”按鍵來關閉窗口。如圖2-3所示。 圖2-3 VC6.

13、0的集成開發(fā)環(huán)境窗口 2. 編制并運行C+語言程序的四步曲編輯(把程序代碼輸入,交給計算機)。 編譯(成目標程序文件.obj)。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發(fā)現(xiàn)有語法錯誤,給出提示信息。 鏈接(成可執(zhí)行程序文件.exe)。鏈接是將編譯產生的.obj文件和系統(tǒng)庫連接裝配成一個可以執(zhí)行的程序。由于在實際操作中可以直接點擊Build從源程序

14、產生可執(zhí)行程序,可能有人就會置疑:為何要將源程序翻譯成可執(zhí)行文件的過程分為編譯和鏈接兩個獨立的步驟,不是多此一舉嗎?之所以這樣做,主要是因為:在一個較大的復雜項目中,有很多人共同完成一個項目(每個人可能承擔其中一部分模塊),其中有的模塊可能是用匯編語言寫的,有的模塊可能是用VC寫的,有的模塊可能是用VB寫的,有的模塊可能是購買(不是源程序模塊而是目標代碼)或已有的標準庫模塊,因此,各類源程序都需要先編譯成目標程序文件(2進制機器指令代碼),再通過鏈接程序將這些目標程序文件連接裝配成可執(zhí)行文件。 運行(可執(zhí)行程序文件)。上述四個步驟中,其中第一步的編輯工作是最繁雜而又必須細致地由人工在計算機上來

15、完成,其余幾個步驟則相對簡單,基本上由計算機來自動完成。在VC6.0下編譯后的窗口界面如圖2-4所示。 圖2-4 在VC6.0下編譯后的窗口界面第3章系統(tǒng)分析與詳細設計3.1程序結構基礎本程序主要完成的是模擬電信計費的功能,整個程序由4個類結構為基礎。類UML圖如圖3-1所示。 圖3-1 類UML圖3.2 功能設計3.2.1 log_in類的設計1.load()成員函數(shù)void log_in:load()int i,count=0; char str50,str150; time_t t1,*t=&t1; printf(nnnnnn); printf(t* *n); printf(t* *n)

16、; printf(t* *n); printf(t* *n); printf(t* * * * * * * * * * * * * *n); printf(t* * * * * * *n); printf(t* * * * * * *n); printf(t* * * * * * *n); printf(t* * * * * * * *n); printf(t* * * * * * * * * * * * * * * * * *t); i=6; do t1=time(NULL); strcpy(str,ctime(t); if(count=6) break; while(strcmp(str,

17、str1)!=0) strcpy(str1,str); printf( ); count+; break; while(1);system(cls);logshow();設計流程如圖3-2所示。2. account_code()成員函數(shù)void log_in :account_code()int b;cout*1注冊新賬號*n;cout*2修改密碼*n;coutb;if(b=1)string temp1;string temp2;ofstream outfile ;/ 建立輸出文件流對象 outfile.open( code.txt , ios:out ); / 連接文件,指定打開方式 cou

18、t請輸入賬號:account;cout請輸入密碼:temp1;cout請再次輸入密碼:temp2;if(temp1=temp2)code=temp1;outfile account endl ;outfile code endl ;outfile.close () ;couttemp1temp2;cout請輸入您的賬號:temp3;cout請輸入原密碼:temp4;if(temp1=temp3)&(temp2=temp4)loop:cout請輸入新密碼:temp5;cout請再次輸入新密碼:temp6;if(temp5=temp6)account=temp1;code=temp5;elsego

19、to loop;rwfile account endl ;rwfile code endl ;rwfile.close();cout修改成功!n;system(pause);menu();設計流程如圖3-3所示。3. log()成員函數(shù)void log_in :log()int b;cout*1注冊賬號或修改密碼*n;cout*2登陸系統(tǒng)*n;coutb;if(b=1)account_code();elseload();設計流程如圖3-4所示。 圖3-2 load()成員函數(shù)流程圖圖3-3 account_code()成員函數(shù)圖3-4 log()成員函數(shù)4. codeNum()成員函數(shù)void

20、 log_in :codeNum()char a37=abcdefghijklmnopqrstuvwxyz;/定義一個包含26個小寫字母的字符串int i,j;char output5=;char code5=;srand(int)time(0);/初始化隨機數(shù)發(fā)生器printf(nn t驗證碼: );for(i=0;itemp1temp2;loop:cout請輸入您的賬號:account;cout請輸入您的密碼:code;codeNum();if(temp1=account)&(temp2=code)menu();elsegoto loop;設計流程如圖3-6所示。圖3-6 logshow(

21、)成員函數(shù)6. logshow()成員函數(shù)void log_in :quit()cout確定退出系統(tǒng)?endl;coutYes?/Y or No?/N:c;if(c=Y|c=y)int i;char str50,str150;time_t t1,*t=&t1; i=5;dot1=time(NULL);strcpy(str,ctime(t);while(strcmp(str,str1)!=0)strcpy(str1,str);for(;i0;)system(cls);printf(%d秒后退出!,i-); /break;while(1);system(pause);exit(0);elsesys

22、tem(pause);menu();設計流程如圖3-7所示。圖3-7 logshow()成員函數(shù)3.2.2 fixed_phone類的設計1. get_fee(int t)成員函數(shù)float fixed_phone:get_fee(int t)if(t=0)fee=0.02*time;if(t=1)fee=(time/60+1)*0.06;return fee;設計流程如圖3-8所示。圖3-7 get_fee(int t)成員函數(shù)2. show_detail(int t) 成員函數(shù)void fixed_phone:show_detail(int t)if(t=0)/cout您本次通話的詳細信息

23、:endl;cout電話號碼:number 電信服務類型: 固定長途電話 通話時間(秒):time 產生的費用:feeendl;if(t=1)/cout您本次通話的詳細信息:endl;cout電話號碼:number 電信服務類型: 固定本地電話 通話時間(秒):time 產生的費用:feeendl;設計流程如圖3-9所示。圖3-9 show_detail(int t) 成員函數(shù)3.2.3 telephone類的設計1. get_fee(int t)成員函數(shù)float telephone:get_fee(int t)if(t=2)fee=(time/60+1)*1;if(t=3)fee=(tim

24、e/60+1)*0.6;if(t=4)fee=(time/60+1)*0.5;return fee;設計流程如圖3-10所示。2. show_detail(int t)成員函數(shù)void telephone:show_detail(int t)if(type=2)/cout您本次通話的詳細信息:endl;cout電話號碼:number 電信服務類型:無線長途電話 通話時間(秒):time 產生的費用:feeendl;if(type=3)/cout您本次通話的詳細信息:endl;cout電話號碼:number 電信服務類型:無線本地電話 通話時間(秒):time 產生的費用:feeendl;if(

25、type=4)/cout您本次通話的詳細信息:endl;cout電話號碼: number 電信服務類型:無線電話接聽 通話時間(秒):time 產生的費用:feenum;fixed_phone * fph=new fixed_phonenum;telephone * tlh=new telephone num;string temp_num;couttemp_num;for(i=0;it;if(t=0)|(t=1)fphi.type=t;infilefphi.numberfphi.time;fphi.fee=fphi.get_fee(t);if(fphi.number=temp_num)cou

26、ttlhi.numbertlhi.time;tlhi.fee=tlhi.get_fee(t);if(tlhi.number=temp_num)coutnum;fixed_phone * fph=new fixed_phonenum;telephone * tlh=new telephone num;for(i=0;it;if(t=0)|(t=1)fphi.type=t;infilefphi.numberfphi.time;fphi.fee=fphi.get_fee(t);fphi.show_detail(t);elsetlhi.type=t;infiletlhi.numbertlhi.time

27、;tlhi.fee=tlhi.get_fee(t);tlhi.show_detail(t);設計流程如圖3-13所示。圖3-13 read_show_all()成員函數(shù)3.2.5 主函數(shù)的設計主函數(shù)void main()log_in loging;loging.log();phone phe;int choose;loop:coutchoose;if(choose=1)system(cls);loging.log();else if(choose=2)loop2:system(cls);phe.find();cout*1返回主菜單*n;coutchoose_2;if(choose_2=1)lo

28、ging.menu();goto loop;if(choose_2=2)goto loop2;else if(choose=3)system(cls);phe.read_show_all();cout按任意鍵返回主菜單;system(pause);loging.menu();goto loop;else if(choose=4)system(cls);loging.quit();goto loop;設計流程如圖3-14所示。圖3-14 主函數(shù)第4章 系統(tǒng)實現(xiàn)4.1程序運行的登錄界面 1.帳號注冊界面如圖4-1所示。圖4-1 帳號注冊界面2.登錄界面如圖4-2所示。圖4-2 登錄界面4.2程序運

29、行的主菜單及功能界面1.主菜單界面如圖4-3所示。圖4-3 主菜單界面2.選項1會進入其實界面,并且要求重新登錄。選項2話費查詢界面如圖4-4所示。 圖4-4 話費查詢界面3.選項3話費清單界面如圖4-5所示。圖4-5 話費清單界面4.選項4退出界面如圖4-6和4-7所示。圖4-6 退出界面 圖4-7退出界面結 論時間是短暫的,收獲是豐厚的。經過這樣一周的課程設計,把我對C+知識從新鞏固了一遍,對類和繼承進一步理解,特別對程序的面向對象的封裝性進一步的理解和體會,為今后的程序編寫奠定了一定的基礎。而這次的課程設計也給了我們一次機會,一次把學習到的知識付諸實踐的機會。知識寶貴,團隊精神同樣可貴,我想任務分組完成就是出于這樣的考慮吧,團隊合作不是把任務簡單分開就能實現(xiàn)的。每個人學習知識的側重點不盡相同,每人解決問題的思路也不一樣,幾個人相互討論,相互辯論的過程中往往會產生出人意料的好想法,也許這就叫做靈感。分歧過后達成共識,團結協(xié)作,最終才造就了一個完整的可使用的程序。實踐的過程中出現(xiàn)了無法解決的問題,所以我們也查閱了大量相關資料和書籍,這也是獲取知識最重要的途徑之一,吸取前人的經驗也是解決問題的很好途徑,但是絕不能照抄代碼,先繼承后發(fā)展才能算是我的收獲的?!皶接脮r方恨少!”應

溫馨提示

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

評論

0/150

提交評論