個(gè)人約會(huì)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
個(gè)人約會(huì)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁(yè)
個(gè)人約會(huì)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁(yè)
個(gè)人約會(huì)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁(yè)
個(gè)人約會(huì)管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C+課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:C+個(gè)人約會(huì)管理系統(tǒng) 學(xué)生 姓名 吳亞亮專 業(yè) 軟件工程班 級(jí) 081103學(xué) 號(hào) 08110322指導(dǎo)教師 李祥 汪雪元 2009年12月15日目錄一、C+語(yǔ)言發(fā)展?fàn)顩r3二、課程設(shè)計(jì)名稱.4三、課程設(shè)計(jì)的意義.4四、課程設(shè)計(jì)題目與內(nèi)容.5五、課程設(shè)計(jì)目的.5六、課程設(shè)計(jì)的過(guò)程(個(gè)人約會(huì)管理系統(tǒng)).61、個(gè)人約會(huì)管理系統(tǒng)UML圖形表示62、詳細(xì)設(shè)計(jì)模塊.7 3、源程序清單及其實(shí)現(xiàn)說(shuō)明8 4、功能實(shí)現(xiàn)和結(jié)果顯示.16 5、調(diào)試、測(cè)試與運(yùn)行錯(cuò)誤處理19七、課程設(shè)計(jì)總結(jié)與收獲20八、參考文獻(xiàn)21 一、 C+語(yǔ)言發(fā)展?fàn)顩r語(yǔ)言的發(fā)展是一個(gè)逐步遞進(jìn)的過(guò)程,C+ 是直接從 C

2、語(yǔ)言發(fā)展過(guò)來(lái)的,而 C 語(yǔ)言是從B 語(yǔ)言發(fā)展過(guò)來(lái)的,B 語(yǔ)言是 BCPL 的一個(gè)解釋性后代,BCPL 是 Basic CPL。其中最有趣的是 CPL 中 C 的由來(lái),由于當(dāng)時(shí)這個(gè)語(yǔ)言是劍橋大學(xué)和倫敦大學(xué)合作開發(fā)的,在倫敦的人員加入之前,C 表示劍橋,倫敦人員加入之后,C 表示 Combined 組合。還有一種非正式的說(shuō)法,C 表示 Christopher,因?yàn)?Christopher 是 CPL 背后的主要?jiǎng)恿?。最初?dǎo)致C+誕生的原因是在Bjarne博士等人試圖去分析UNIX的內(nèi)核的時(shí)候,這項(xiàng)工作開始于1979年4月,當(dāng)時(shí)由于沒(méi)有合適的工具能夠有效的分析由于內(nèi)核分布而造成的網(wǎng)絡(luò)流量,以及怎樣將

3、內(nèi)核模塊化。同年10月,Bjarne博士完成了一個(gè)可以運(yùn)行的預(yù)處理程序,稱之為Cpre,它為C加上了類似Simula的類機(jī)制。在這個(gè)過(guò)程中,Bjarne博士開始思考是不是要開發(fā)一種新的語(yǔ)言,當(dāng)時(shí)貝爾實(shí)驗(yàn)室對(duì)這個(gè)想法很感興趣,就讓Bjarne博士等人組成一個(gè)開發(fā)小組,專門進(jìn)行研究。當(dāng)時(shí)C+即是C with class,這是把它當(dāng)作一種C語(yǔ)言的有效擴(kuò)充。由于當(dāng)時(shí)C語(yǔ)言在編程界居于老大的地位,要想發(fā)展一種新的語(yǔ)言,最強(qiáng)大的競(jìng)爭(zhēng)對(duì)手就是C語(yǔ)言,所以當(dāng)時(shí)有兩個(gè)問(wèn)題最受關(guān)注:C+要在運(yùn)行時(shí)間、代碼緊湊性和數(shù)據(jù)緊湊性方面能夠與C語(yǔ)言相媲美,但是還要盡量避免在語(yǔ)言應(yīng)用領(lǐng)域的限制。在這種情況下,很自然C+從C語(yǔ)

4、言繼承過(guò)來(lái),但是我們的Bjarne博士更具有先見(jiàn)之明,他為了避免受到C語(yǔ)言的局限性,參考了很多的語(yǔ)言,例如:從Simula繼承了類的概念,從Algol68繼承了運(yùn)算符重載、引用以及在任何地方聲明變量的能力,從BCPL獲得了/注釋,從Ada得到了模板、名字空間,從Ada、Clu和ML取來(lái)了異常。二、課程設(shè)計(jì)名稱 2008級(jí)面向?qū)ο蟪绦蛟O(shè)計(jì)C+個(gè)人約會(huì)管理系統(tǒng)三、課程設(shè)計(jì)的意義面向?qū)ο蟪绦颍–+)語(yǔ)言設(shè)計(jì)是一門既要結(jié)合理論學(xué)習(xí),又要結(jié)合動(dòng)手編程的科目。理論的學(xué)習(xí)是不斷廣面的書籍資料的查閱,然而動(dòng)手編程則在結(jié)合理論的基礎(chǔ)上對(duì)語(yǔ)言代碼的編寫與實(shí)現(xiàn),再加上各種功能要求和結(jié)構(gòu)思想的聯(lián)系。再次,在專業(yè)科課程

5、設(shè)計(jì)中,強(qiáng)調(diào)科學(xué)的學(xué)習(xí)方法,在進(jìn)行設(shè)計(jì)之前,先要明確主題,然后查閱大量的資料,尋找課程設(shè)計(jì)的主題思想,同時(shí)也要不斷更新知識(shí)總結(jié)的廣度和思維發(fā)展的過(guò)程。最后通過(guò),大量的練習(xí)編寫與更改,發(fā)現(xiàn)無(wú)數(shù)的運(yùn)行錯(cuò)誤,從而進(jìn)行不斷的修改完善,最終綜合地將自己課題要求的功能一步一步地實(shí)現(xiàn)出來(lái)。四、課程設(shè)計(jì)題目與內(nèi)容 課程設(shè)計(jì)題目:C+個(gè)人約會(huì)管理系統(tǒng) 課程設(shè)計(jì)內(nèi)容與要求: i)具有不同約會(huì)類的層次結(jié)構(gòu) ii)具有不同性質(zhì)朋友的類層次結(jié)構(gòu) iii)應(yīng)用類的繼承和派生機(jī)制來(lái)實(shí)現(xiàn) iv)具有約會(huì)的保存與查詢功能五、課程設(shè)計(jì)目的 本課程設(shè)計(jì)旨在實(shí)驗(yàn)中訓(xùn)練我們的基本編程能力,了解關(guān)于C+(面向?qū)ο笳Z(yǔ)言)管理信息系統(tǒng)的開發(fā)

6、思想、開發(fā)流程及功能實(shí)現(xiàn),熟悉C+的各種各樣的基本操作和代碼實(shí)現(xiàn)。本管理系統(tǒng)程序中涉及了基類定義、基類繼承與派生、函數(shù)構(gòu)造與析構(gòu)、循環(huán)函數(shù)、I/O流輸入/輸出函數(shù)、指針函數(shù)等各方面的C+編程設(shè)計(jì)理論的知識(shí)。通過(guò)課程設(shè)計(jì)大量的實(shí)驗(yàn)訓(xùn)練,使我們能對(duì)C+的功能實(shí)現(xiàn)操作有一個(gè)更深刻更進(jìn)一步的了解,掌握C+語(yǔ)言程序?qū)Ω黝愋畔⒐芾淼脑?、思想和具體的實(shí)現(xiàn)方式,為將來(lái)進(jìn)一步開發(fā)出高質(zhì)量的多方向的信息管理系統(tǒng)打下堅(jiān)實(shí)的基礎(chǔ)。六、課程設(shè)計(jì)的過(guò)程(個(gè)人約會(huì)管理系統(tǒng)) 1、個(gè)人約會(huì)管理系統(tǒng)UML圖形表示date# no : string# name : char 10# address : char 33# tim

7、e : char 10+ date ()+date ()+ input () :void+ output () :void+ getno () :stringGenfriendage : intsex : char 5+ Genfriend()+ input (): void+ output () :voidimpfriendProf : char 10interest : char 10+ impfriend()+ input (): void+ output () :voidB_Gfriendhobby : char 6workplace : char 10+ B_Gfriend()+ i

8、nput (): void+ output () :void 內(nèi)部結(jié)構(gòu)屬性及相互關(guān)系說(shuō)明date 為約會(huì)基類,其中包括有四個(gè)保護(hù)成員no、name、address、time,公有成員包括構(gòu)造函數(shù)、析構(gòu)函數(shù)、input、output、get。由date通過(guò)公有派生出三個(gè)朋友約會(huì)類分別為:Genfriend(普通朋友類) impfriend(重要朋友類) B_Gfriend(女/男朋友類)2、詳細(xì)設(shè)計(jì)模塊 約會(huì)類的定義模塊 私有成員定義,包括有:No、name10 、address33 、time10公有成員定義,包括input(輸入)、output(輸出)、getno() 約會(huì)類的繼承與派生模塊

9、 公有(public)派生出Genfriend(普通朋友約會(huì)類) 、impfriend(重要朋友約會(huì)類)、 B_Gfriend(女/男朋友約會(huì)類)。其中包括有,Genfriend:私有成員intage,char sex5公有成員input,output。Impfriend:私有成員char prof10,char interest10公有成員input,output。B_Gfriend:私有成員char hobby6,char workplace10公有成員input,output。等等。主函數(shù)定義與功能模塊 三個(gè)派生類的對(duì)象聲明Genfriend、impfriend、 B_Gfriend和部

10、分應(yīng)用需要的具體控制變量i=0,j=0,k=0,l,m,n,x等。個(gè)人約會(huì)系統(tǒng)登錄界面具體設(shè)計(jì)部分與登錄控制的循環(huán)函數(shù)。再使用switch()判斷語(yǔ)句分別進(jìn)行對(duì)各類約會(huì)信息更新、各類約會(huì)信息詳細(xì)查詢。各類朋友約會(huì)類的具體信息讀取與保存模塊,分別利用I/O流格式,比如fstream file1("datee1.txt",ios:in); fstream f1("datee1.txt",ios:out);等等 3、源程序清單及其實(shí)現(xiàn)說(shuō)明源程序代碼清單:(利用到多文件格式)<i>基類定義及其繼承派生#include <iostream>

11、#include <string>using namespace std;class date /約會(huì)類定義protected:string no;char name10;char address33;char time10;public:void input()cout<<"約會(huì)編號(hào)_"<<endl;cin>>no;cout<<"約會(huì)人姓名_"<<endl;cin>>name;cout<<"約會(huì)地址是_"<<endl;cin&

12、gt;>address;cout<<"約會(huì)時(shí)間為_(時(shí)間格式如2009-12-25)"<<endl;cin>>time;void output()cout<<"約會(huì)編號(hào)_ "<<no<<endl;cout<<"約會(huì)的人名_"<<name<<endl;cout<<"約會(huì)的地址是_"<<address<<endl; cout<<"約會(huì)時(shí)間在_&quo

13、t;<<time<<endl;string getno()return no;class Genfriend:public date /公有派生普通朋友約會(huì)類private: int age; char sex5;public: void input() date:input(); cout<<"該好友的年齡是_ " cin>>age; cout<<"該好友的性別為_ " cin>>sex; void output() date:output(); cout<<"

14、;年齡_ "<<age<<endl; cout<<"性別_ "<<sex<<endl; ;class impfriend:public date /公有派生重要朋友約會(huì)類private: char prof10; char interest10;public: void input() date:input(); cout<<"這個(gè)重要朋友的工作類型是_ " cin>>prof; cout<<"他(她)的生活興趣_ " cin&g

15、t;>interest; void output() date:output(); cout<<"工作類型_ "<<prof<<endl; cout<<"興趣_ "<<interest<<endl;class B_Gfriend:public date /公有派生女(男)朋友約會(huì)類private:char hobby6;char workplace10;public:void input()date:input();cout<<"你女(男)朋友的愛(ài)好是_&

16、quot;cin>>hobby;cout<<"工作單位_"cin>>workplace;void output()date:output();cout<<"愛(ài)好_"<<hobby<<endl;cout<<"工作單位_"<<workplace<<endl; <ii>主函數(shù)及文件讀取、保存#include <iostream> #include <iomanip> #include "約

17、會(huì)類定義.h"#include <string> #include <fstream>using namespace std;void main() Genfriend c20,cs; impfriend imp20,imps;B_Gfriend r20,rs;int i=0,j=0,k=0,l,m,n,x;/i,j,k 分別對(duì)應(yīng)三個(gè)派生類的人數(shù)string num; cout <<"歡迎使用個(gè)人約會(huì)管理系統(tǒng)_ "<<endl;cout <<endl<<endl<<endl<

18、<endl;cout <<""<<endl; cout <<""<<endl; cout <<" "<<endl; cout <<" >>更 新<< "<<endl; cout <<" "<<endl; cout <<" >>查 詢<< "<<endl; cout <<

19、" "<<endl;cout <<" >>退 出<< "<<endl;cout <<" "<<endl; cout <<" "<<endl;cout <<""<<endl; cout <<""<<endl;while(l) if (i=0 && j=0 && k=0 ) cout <&

20、lt;endl; cout<<"首次登陸請(qǐng)你更新系統(tǒng)信息>>>>>>"<<endl; cout<<endl<<endl; cout<<"更新->1,退出系統(tǒng) ->0"<<endl; cout<<"(注釋: 寫入信息,請(qǐng)鍵入 1 退出系統(tǒng),請(qǐng)鍵入 0 )"<<endl; cin>>l; else cout <<"更新-> 1 查詢-> 2 退出-&g

21、t; 0 "<<endl; cin>>l;system("cls"); switch(l) case 1: /各類朋友約會(huì)類信息更新 cout<<" n 普通朋友信息更新-> 1 n 重要朋友信息更新-> 2 n 女(男)朋友信息更新-> 3 n 返回-> 0 "<<endl; cin>>m; switch(m) case 1: cout<<"輸入一個(gè)普通朋友的數(shù)據(jù):"<<endl;ci.input();i+;brea

22、k; case 2: cout<<"輸入一個(gè)重要朋友的數(shù)據(jù):"<<endl;impj.input();j+;break; case 3: cout<<"輸入一個(gè)女(男)朋友的數(shù)據(jù):"<<endl;rk.input();k+;break; case 0:break; default :cout<<"代號(hào)輸入有誤"<<endl; cout<<endl; break; break; case 2: /各類朋友約會(huì)類信息查詢 cout<<"

23、;n 普通朋友信息查詢-> 1 n 重要朋友信息查詢-> 2n 女(男)朋友信息查詢-> 3n 返回-> 0 "<<endl;cin>>n;switch(n)case 1: cout<<"請(qǐng)輸入普通朋友的編號(hào)_" cin>>num;for(x=0;x<i;x+)if (num=cx.getno()cout<<"顯示編號(hào)為_"<<num<<" 普通朋友的數(shù)據(jù)_"<<endl;cx.output();co

24、ut<<endl;elsecout<<"n_沒(méi)有這個(gè)編號(hào)的數(shù)據(jù)!n"<<endl; break;case 2: cout<<"請(qǐng)輸入重要朋友的編號(hào)_" cin>>num;for(x=0;x<j;x+)if (num=impx.getno()cout<<"顯示編號(hào)為_"<<num<<" 重要朋友的數(shù)據(jù)_"<<endl;impx.output();cout<<endl;elsecout<&

25、lt;"n_沒(méi)有這個(gè)編號(hào)的數(shù)據(jù)!n"<<endl; break;case 3: cout<<"請(qǐng)輸入你女(男)朋友的編號(hào)_" cin>>num;for(x=0;x<k;x+)if (num=rx.getno()cout<<"顯示編號(hào)為_"<<num<<" 朋友的數(shù)據(jù)_"<<endl;rx.output();cout<<endl;elsecout<<"n_沒(méi)有這個(gè)編號(hào)的數(shù)據(jù)!n"<

26、;<endl; break; case 0:break; default :cout<<"代號(hào)輸入有誤"<<endl; cout<<endl; break;break; case 0:break; default :cout<<"代號(hào)輸入有誤"<<endl; cout<<endl;break; /各類文件信息讀取 fstream file1("datee1.txt",ios:in); /普通朋友信息讀出 while (1) file1.read(char *

27、)&cs,sizeof(cs); if (!file1) break; ci=cs; i+; file1.close(); fstream file2("datee2.txt",ios:in); /重要朋友信息從讀出 while (1) file2.read(char *)&imps,sizeof(imps); if (!file2) break; impj=imps; j+; file2.close(); fstream file3("datee3.txt",ios:in); /女(男)朋友信息從讀出 while (1) file3.r

28、ead(char *)&rs,sizeof(rs); if (!file3) break; rk=rs; k+; file3.close();/各類文件信息的保存 fstream f1("datee1.txt",ios:out); /普通朋友信息保存 for (x=0;x<i;x+) f1.write(char *)&cx,sizeof(cx); f1.close(); fstream f2("datee2.txt",ios:out); /重要朋友信息保存 for (x=0;x<i;x+) f2.write(char *)&a

29、mp;impx,sizeof(impx); f2.close(); fstream f3("datee3.txt",ios:out); /女(男)朋友信息保存 for (x=0;x<i;x+) f3.write(char *)&rx,sizeof(rx); f3.close(); /退出管理系統(tǒng)的界面設(shè)置cout <<endl<<endl<<endl<<endl<<endl<<endl;cout <<"謝謝你的使用與支持."<<endl;cout <<endl;cout <<">>>>>>>>>>>>>>你已經(jīng)成功退出個(gè)人約會(huì)系統(tǒng)<<<<<<<<<<<<<<<"<<endl;4、功能實(shí)現(xiàn)和結(jié)果顯示<a>個(gè)人約會(huì)管理系統(tǒng)的登錄界面<b>約會(huì)管理系統(tǒng)普通朋友類數(shù)據(jù)的輸入

溫馨提示

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

評(píng)論

0/150

提交評(píng)論