




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C+課程設(shè)計報告課程設(shè)計題目:C+個人約會管理系統(tǒng) 學生 姓名 吳亞亮專 業(yè) 軟件工程班 級 081103學 號 08110322指導教師 李祥 汪雪元 2009年12月15日目錄一、C+語言發(fā)展狀況3二、課程設(shè)計名稱.4三、課程設(shè)計的意義.4四、課程設(shè)計題目與內(nèi)容.5五、課程設(shè)計目的.5六、課程設(shè)計的過程(個人約會管理系統(tǒng)).61、個人約會管理系統(tǒng)UML圖形表示62、詳細設(shè)計模塊.7 3、源程序清單及其實現(xiàn)說明8 4、功能實現(xiàn)和結(jié)果顯示.16 5、調(diào)試、測試與運行錯誤處理19七、課程設(shè)計總結(jié)與收獲20八、參考文獻21 一、 C+語言發(fā)展狀況語言的發(fā)展是一個逐步遞進的過程,C+ 是直接從 C
2、語言發(fā)展過來的,而 C 語言是從B 語言發(fā)展過來的,B 語言是 BCPL 的一個解釋性后代,BCPL 是 Basic CPL。其中最有趣的是 CPL 中 C 的由來,由于當時這個語言是劍橋大學和倫敦大學合作開發(fā)的,在倫敦的人員加入之前,C 表示劍橋,倫敦人員加入之后,C 表示 Combined 組合。還有一種非正式的說法,C 表示 Christopher,因為 Christopher 是 CPL 背后的主要動力。最初導致C+誕生的原因是在Bjarne博士等人試圖去分析UNIX的內(nèi)核的時候,這項工作開始于1979年4月,當時由于沒有合適的工具能夠有效的分析由于內(nèi)核分布而造成的網(wǎng)絡(luò)流量,以及怎樣將
3、內(nèi)核模塊化。同年10月,Bjarne博士完成了一個可以運行的預處理程序,稱之為Cpre,它為C加上了類似Simula的類機制。在這個過程中,Bjarne博士開始思考是不是要開發(fā)一種新的語言,當時貝爾實驗室對這個想法很感興趣,就讓Bjarne博士等人組成一個開發(fā)小組,專門進行研究。當時C+即是C with class,這是把它當作一種C語言的有效擴充。由于當時C語言在編程界居于老大的地位,要想發(fā)展一種新的語言,最強大的競爭對手就是C語言,所以當時有兩個問題最受關(guān)注:C+要在運行時間、代碼緊湊性和數(shù)據(jù)緊湊性方面能夠與C語言相媲美,但是還要盡量避免在語言應(yīng)用領(lǐng)域的限制。在這種情況下,很自然C+從C語
4、言繼承過來,但是我們的Bjarne博士更具有先見之明,他為了避免受到C語言的局限性,參考了很多的語言,例如:從Simula繼承了類的概念,從Algol68繼承了運算符重載、引用以及在任何地方聲明變量的能力,從BCPL獲得了/注釋,從Ada得到了模板、名字空間,從Ada、Clu和ML取來了異常。二、課程設(shè)計名稱 2008級面向?qū)ο蟪绦蛟O(shè)計C+個人約會管理系統(tǒng)三、課程設(shè)計的意義面向?qū)ο蟪绦颍–+)語言設(shè)計是一門既要結(jié)合理論學習,又要結(jié)合動手編程的科目。理論的學習是不斷廣面的書籍資料的查閱,然而動手編程則在結(jié)合理論的基礎(chǔ)上對語言代碼的編寫與實現(xiàn),再加上各種功能要求和結(jié)構(gòu)思想的聯(lián)系。再次,在專業(yè)科課程
5、設(shè)計中,強調(diào)科學的學習方法,在進行設(shè)計之前,先要明確主題,然后查閱大量的資料,尋找課程設(shè)計的主題思想,同時也要不斷更新知識總結(jié)的廣度和思維發(fā)展的過程。最后通過,大量的練習編寫與更改,發(fā)現(xiàn)無數(shù)的運行錯誤,從而進行不斷的修改完善,最終綜合地將自己課題要求的功能一步一步地實現(xiàn)出來。四、課程設(shè)計題目與內(nèi)容 課程設(shè)計題目:C+個人約會管理系統(tǒng) 課程設(shè)計內(nèi)容與要求: i)具有不同約會類的層次結(jié)構(gòu) ii)具有不同性質(zhì)朋友的類層次結(jié)構(gòu) iii)應(yīng)用類的繼承和派生機制來實現(xiàn) iv)具有約會的保存與查詢功能五、課程設(shè)計目的 本課程設(shè)計旨在實驗中訓練我們的基本編程能力,了解關(guān)于C+(面向?qū)ο笳Z言)管理信息系統(tǒng)的開發(fā)
6、思想、開發(fā)流程及功能實現(xiàn),熟悉C+的各種各樣的基本操作和代碼實現(xiàn)。本管理系統(tǒng)程序中涉及了基類定義、基類繼承與派生、函數(shù)構(gòu)造與析構(gòu)、循環(huán)函數(shù)、I/O流輸入/輸出函數(shù)、指針函數(shù)等各方面的C+編程設(shè)計理論的知識。通過課程設(shè)計大量的實驗訓練,使我們能對C+的功能實現(xiàn)操作有一個更深刻更進一步的了解,掌握C+語言程序?qū)Ω黝愋畔⒐芾淼脑怼⑺枷牒途唧w的實現(xiàn)方式,為將來進一步開發(fā)出高質(zhì)量的多方向的信息管理系統(tǒng)打下堅實的基礎(chǔ)。六、課程設(shè)計的過程(個人約會管理系統(tǒng)) 1、個人約會管理系統(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)系說明date 為約會基類,其中包括有四個保護成員no、name、address、time,公有成員包括構(gòu)造函數(shù)、析構(gòu)函數(shù)、input、output、get。由date通過公有派生出三個朋友約會類分別為:Genfriend(普通朋友類) impfriend(重要朋友類) B_Gfriend(女/男朋友類)2、詳細設(shè)計模塊 約會類的定義模塊 私有成員定義,包括有:No、name10 、address33 、time10公有成員定義,包括input(輸入)、output(輸出)、getno() 約會類的繼承與派生模塊
9、 公有(public)派生出Genfriend(普通朋友約會類) 、impfriend(重要朋友約會類)、 B_Gfriend(女/男朋友約會類)。其中包括有,Genfriend:私有成員intage,char sex5公有成員input,output。Impfriend:私有成員char prof10,char interest10公有成員input,output。B_Gfriend:私有成員char hobby6,char workplace10公有成員input,output。等等。主函數(shù)定義與功能模塊 三個派生類的對象聲明Genfriend、impfriend、 B_Gfriend和部
10、分應(yīng)用需要的具體控制變量i=0,j=0,k=0,l,m,n,x等。個人約會系統(tǒng)登錄界面具體設(shè)計部分與登錄控制的循環(huán)函數(shù)。再使用switch()判斷語句分別進行對各類約會信息更新、各類約會信息詳細查詢。各類朋友約會類的具體信息讀取與保存模塊,分別利用I/O流格式,比如fstream file1("datee1.txt",ios:in); fstream f1("datee1.txt",ios:out);等等 3、源程序清單及其實現(xiàn)說明源程序代碼清單:(利用到多文件格式)<i>基類定義及其繼承派生#include <iostream>
11、#include <string>using namespace std;class date /約會類定義protected:string no;char name10;char address33;char time10;public:void input()cout<<"約會編號_"<<endl;cin>>no;cout<<"約會人姓名_"<<endl;cin>>name;cout<<"約會地址是_"<<endl;cin&
12、gt;>address;cout<<"約會時間為_(時間格式如2009-12-25)"<<endl;cin>>time;void output()cout<<"約會編號_ "<<no<<endl;cout<<"約會的人名_"<<name<<endl;cout<<"約會的地址是_"<<address<<endl; cout<<"約會時間在_&quo
13、t;<<time<<endl;string getno()return no;class Genfriend:public date /公有派生普通朋友約會類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 /公有派生重要朋友約會類private: char prof10; char interest10;public: void input() date:input(); cout<<"這個重要朋友的工作類型是_ " cin>>prof; cout<<"他(她)的生活興趣_ " cin&g
15、t;>interest; void output() date:output(); cout<<"工作類型_ "<<prof<<endl; cout<<"興趣_ "<<interest<<endl;class B_Gfriend:public date /公有派生女(男)朋友約會類private:char hobby6;char workplace10;public:void input()date:input();cout<<"你女(男)朋友的愛好是_&
16、quot;cin>>hobby;cout<<"工作單位_"cin>>workplace;void output()date:output();cout<<"愛好_"<<hobby<<endl;cout<<"工作單位_"<<workplace<<endl; <ii>主函數(shù)及文件讀取、保存#include <iostream> #include <iomanip> #include "約
17、會類定義.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 分別對應(yīng)三個派生類的人數(shù)string num; cout <<"歡迎使用個人約會管理系統(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<<"首次登陸請你更新系統(tǒng)信息>>>>>>"<<endl; cout<<endl<<endl; cout<<"更新->1,退出系統(tǒng) ->0"<<endl; cout<<"(注釋: 寫入信息,請鍵入 1 退出系統(tǒng),請鍵入 0 )"<<endl; cin>>l; else cout <<"更新-> 1 查詢-> 2 退出-&g
21、t; 0 "<<endl; cin>>l;system("cls"); switch(l) case 1: /各類朋友約會類信息更新 cout<<" n 普通朋友信息更新-> 1 n 重要朋友信息更新-> 2 n 女(男)朋友信息更新-> 3 n 返回-> 0 "<<endl; cin>>m; switch(m) case 1: cout<<"輸入一個普通朋友的數(shù)據(jù):"<<endl;ci.input();i+;brea
22、k; case 2: cout<<"輸入一個重要朋友的數(shù)據(jù):"<<endl;impj.input();j+;break; case 3: cout<<"輸入一個女(男)朋友的數(shù)據(jù):"<<endl;rk.input();k+;break; case 0:break; default :cout<<"代號輸入有誤"<<endl; cout<<endl; break; break; case 2: /各類朋友約會類信息查詢 cout<<"
23、;n 普通朋友信息查詢-> 1 n 重要朋友信息查詢-> 2n 女(男)朋友信息查詢-> 3n 返回-> 0 "<<endl;cin>>n;switch(n)case 1: cout<<"請輸入普通朋友的編號_" cin>>num;for(x=0;x<i;x+)if (num=cx.getno()cout<<"顯示編號為_"<<num<<" 普通朋友的數(shù)據(jù)_"<<endl;cx.output();co
24、ut<<endl;elsecout<<"n_沒有這個編號的數(shù)據(jù)!n"<<endl; break;case 2: cout<<"請輸入重要朋友的編號_" cin>>num;for(x=0;x<j;x+)if (num=impx.getno()cout<<"顯示編號為_"<<num<<" 重要朋友的數(shù)據(jù)_"<<endl;impx.output();cout<<endl;elsecout<&
25、lt;"n_沒有這個編號的數(shù)據(jù)!n"<<endl; break;case 3: cout<<"請輸入你女(男)朋友的編號_" cin>>num;for(x=0;x<k;x+)if (num=rx.getno()cout<<"顯示編號為_"<<num<<" 朋友的數(shù)據(jù)_"<<endl;rx.output();cout<<endl;elsecout<<"n_沒有這個編號的數(shù)據(jù)!n"<
26、;<endl; break; case 0:break; default :cout<<"代號輸入有誤"<<endl; cout<<endl; break;break; case 0:break; default :cout<<"代號輸入有誤"<<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)成功退出個人約會系統(tǒng)<<<<<<<<<<<<<<<"<<endl;4、功能實現(xiàn)和結(jié)果顯示<a>個人約會管理系統(tǒng)的登錄界面<b>約會管理系統(tǒng)普通朋友類數(shù)據(jù)的輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一級建造師招投標合同范本
- 住建租房合同范本
- 賣身合同范本
- 三年級口算題目練習1000道
- 單位團建合同范本
- 代加工啤酒合同范本
- 2025年陜西省安全員A證考試題庫及答案
- 農(nóng)村花草收購合同范本
- 單體合同范本
- 公司轉(zhuǎn)崗合同范本
- 2024湖北省金口電排站管理處招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 油井供水合同范例
- 2025年人教部編版語文五年級下冊教學計劃(含進度表)
- 全國計算機等級考試一級試題及答案(5套)
- 銀河證券-科創(chuàng)板認知測評題目及答案
- 產(chǎn)品方案設(shè)計模板
- 部隊通訊員培訓
- 物業(yè)公司水浸、水管爆裂事故應(yīng)急處置預案
- 第四章第三節(jié)幼兒的親子關(guān)系(課件)-《幼兒心理學》(人教版第二版)
- 國企投資管理制度
- 部編版三年級下冊語文作業(yè)本參考答案
評論
0/150
提交評論