版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程表C++課程設(shè)計(jì)優(yōu)質(zhì)資料(可以直接使用,可編輯優(yōu)質(zhì)資料,歡迎下載)
高校課程表設(shè)計(jì)課程表C++課程設(shè)計(jì)優(yōu)質(zhì)資料(可以直接使用,可編輯優(yōu)質(zhì)資料,歡迎下載)課程設(shè)計(jì)的的題目:高校課程表設(shè)計(jì)功能說明:學(xué)生課表建立系統(tǒng)是學(xué)生日常生活中必不可少的實(shí)用型小工具,它對于學(xué)生平時(shí)的學(xué)習(xí)生活有著相當(dāng)重要的幫助作用。便于操作、顯示精確、短小實(shí)用就是它的明顯特點(diǎn)。本次課程設(shè)計(jì)目的:通過一個(gè)課程表建立系統(tǒng),使學(xué)生的學(xué)業(yè)及其他事物的時(shí)間安排更加合理,從而達(dá)到提高日常工作、學(xué)習(xí)效率。使學(xué)生掌握一門高級(jí)程序設(shè)計(jì)語言,了解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念與方法,進(jìn)而學(xué)會(huì)利用C++語言學(xué)會(huì)解決一般應(yīng)用問題,并為后續(xù)的專業(yè)課程奠定程序設(shè)計(jì)基礎(chǔ)。系統(tǒng)的基本模塊:根據(jù)系統(tǒng)功能的要求,課程表建立系統(tǒng)可以分為課程信息的輸入,課程表的處理及建立等模塊。通過分析可以知道該軟件主要有以下功能模塊:學(xué)生課程名稱顯示總學(xué)周時(shí)間顯示教師顯示地點(diǎn)顯示星期顯示一天中具體時(shí)間顯示其中本次課程設(shè)計(jì)實(shí)現(xiàn)的檔案模塊又分為如下子模塊:登陸界面:主要是增加系統(tǒng)的人性化,使用戶舒心信息錄入:主要是將課程相關(guān)信息錄入信息處理顯示項(xiàng)目:對學(xué)生課程信息進(jìn)行處理、列表、顯示。系統(tǒng)結(jié)構(gòu)圖1如下:系統(tǒng)系統(tǒng)用戶進(jìn)入課程信息輸入名稱教師教室總周數(shù)星期第幾堂信息處理信息顯示圖1系統(tǒng)結(jié)構(gòu)圖類的.設(shè)計(jì):各類的具體說明及描述kecheng類的設(shè)計(jì)為了實(shí)現(xiàn)管理系統(tǒng)的各功能首先定義了一個(gè)kecheng類,用來定義各種數(shù)據(jù)成員,聲明這些功能函數(shù)。比如:說明為什么要這樣設(shè)計(jì)setvalue(),showke()等,同時(shí)聲明一些私有成員。classkecheng{public:voidsetvalue();voidshowke();stringming[16];stringjiao[16];stringdi[16];intqi[16];intjie[16];intxing[16];inttang[16];};關(guān)鍵功能的實(shí)現(xiàn)(1)信息的輸入setvalue()函數(shù)用來輸入相關(guān)信息,包括課程名稱、教師名稱、教室地點(diǎn)、課程起始周、課程結(jié)束周、上課的星期、上課的具體時(shí)間。輸入一次信息之后可選擇是否繼續(xù)添加新的課程。此函數(shù)代碼如下:1.基本信息輸入voidkecheng::setvalue(){for(inti=0;i<16;i++){cout<<"*請輸入課程名稱(請簡寫不要超過6個(gè)字)"<<endl;cin>>ming[i];cout<<"*請輸入課程教師"<<endl;cin>>jiao[i];cout<<"*請輸入教室"<<endl;cin>>di[i];cout<<"*請輸入課程的起始周"<<endl;cin>>qi[i];2.如果輸入錯(cuò)誤,系統(tǒng)會(huì)自檢,提示錯(cuò)誤cout<<"*請輸入課程的結(jié)束周"<<endl;cin>>jie[i];if(jie[i]>20){cout<<"輸入錯(cuò)誤!請重新輸入"<<endl;cin>>jie[i];}3.程序會(huì)對一課程多節(jié)課的現(xiàn)象進(jìn)行處理cout<<"*請輸入課程一周有幾天有"<<endl;ints;cin>>s;{for(intu=0;u<s;u++){ming[i+u]=ming[i];jiao[i+u]=jiao[i];di[i+u]=di[i];qi[i+u]=qi[i];jie[i+u]=jie[i];cout<<"*請輸入第"<<u+1<<"次課是星期幾"<<endl;cin>>xing[i+u];if(xing[i+u]>7){cout<<"輸入錯(cuò)誤!請重新輸入"<<endl;cin>>xing[i+u];}cout<<"*請輸入課程是第幾堂"<<endl;cin>>tang[i+u];if(tang[i+u]>5){cout<<"輸入錯(cuò)誤!請重新輸入"<<endl;cin>>tang[i+u];}}}i=i+s;4.輸完一門課程之后,系統(tǒng)會(huì)自動(dòng)提示是否進(jìn)行下一課程的輸入cout<<"*請問是否繼續(xù)下一個(gè)課程?(Y/N)"<<endl;charnum;cin>>num;if(num=='Y'||num=='y')continue;elsebreak;}}(2)信息的處理與輸出showke()函數(shù),此部分用來實(shí)現(xiàn)課程相關(guān)信息的排序,包括表格的建立與信息的對應(yīng)輸出,此函數(shù)用來顯示課程表的界面,用了一些“——”號(hào)建立表格,在程序重的最后,通過for來實(shí)現(xiàn)整個(gè)程序的循環(huán),并且使用了switch選擇分支結(jié)構(gòu),使功能更容易實(shí)現(xiàn)。基本課表表頭的輸出此函數(shù)代碼如下:voidkecheng::showke(){cout<<"http:////////////////////////////////"<<endl;cout<<"http://課程表//"<<endl;cout<<"http:////////////////////////////////"<<endl;cout<<"_____________________________________________________________________________________________________"<<endl;cout<<"|一|二|三|四|五|六|日|"<<endl;cout<<"_____________________________________________________________________________________________________"<<endl;對一天時(shí)間(1~10節(jié))的格式輸出此函數(shù)代碼如下:for(inti=1;i<6;i++){intl;switch(i){case1:cout<<"一(1-2)|";break;case2:cout<<"二(3-4)|";break;case3:cout<<"三(5-6)|";break;case4:cout<<"四(7-8)|";break;case5:cout<<"五(9-10)|";break;}循環(huán)輸出課程信息,這里采用雙循環(huán),用于控制表格位置的對號(hào)輸出及信息的循環(huán)輸出此函數(shù)代碼如下:for(intj=1;j<8;j++){l=0;for(intn=0;n<16;n++){if(tang[n]==i&&xing[n]==j){cout<<setw(12)<<ming[n]<<"|";l=1;}}if(l==0){cout<<"|";}}cout<<endl;cout<<"|";cout<<"_____________________________________________________________________________________________________"<<endl;}}軟件測試與調(diào)試進(jìn)入本程序如圖2所示圖2登陸界面系統(tǒng)會(huì)提示輸入相關(guān)信息,課程是星期幾、第幾堂是必須輸入的,輸入一次信息之后可選擇是否繼續(xù)添加新的課程如圖3所示。圖3顯示輸入界面如果選擇不繼續(xù)系統(tǒng)就會(huì)顯示結(jié)果如圖4所示圖4顯示輸出界面程序在執(zhí)行時(shí)經(jīng)常會(huì)出現(xiàn)一些違反設(shè)計(jì)期望的異常情況(如數(shù)值過大),一些大型的應(yīng)用系統(tǒng)的開發(fā)人員提出,可以在允許的范圍內(nèi)由應(yīng)用程序自身來處理一般性的程序運(yùn)行錯(cuò)誤。C++語言異常處理由三個(gè)部分構(gòu)成。異常檢測的觸發(fā)、異常檢測的捕獲和異常檢測的處理。在這里我通過添加檢測函數(shù)來確保程序的正常運(yùn)行代碼如下:if(xing[i+u]>7){cout<<"輸入錯(cuò)誤!請重新輸入"<<endl;cin>>xing[i+u];}結(jié)束語經(jīng)過1周多的設(shè)計(jì)和開發(fā),學(xué)生課程表建立基本開發(fā)完畢。其功能基本符合用戶需求,能夠完成信息完整輸入以及各類報(bào)表的打印。對于數(shù)據(jù)的一致性的問題也通過程序進(jìn)行了有效的解決。
但是由于課程設(shè)計(jì)時(shí)間較短,所以該系統(tǒng)還有許多不足之處:比如系統(tǒng)維護(hù)功能,還不能讓用戶進(jìn)行數(shù)據(jù)備份和恢復(fù);用戶界面不夠美觀;這些都有待進(jìn)一步改善。附錄:要注釋源程序清單#include<iostream>#include<string>#include<iomanip>usingnamespacestd;classkecheng//模塊一{public://公有數(shù)據(jù)voidsetvalue();//輸入函數(shù)voidshowke();//處理、輸出函數(shù)stringming[16];//課程名stringjiao[16];//教師名stringdi[16];//教室地點(diǎn)intqi[16];//課程起始周intjie[16];//課程結(jié)束周intxing[16];//星期inttang[16];//第幾堂};voidkecheng::setvalue()//模塊二{for(inti=0;i<16;i++)//for循環(huán)控制輸入{cout<<"*請輸入課程名稱(請簡寫不要超過6個(gè)字)"<<endl;cin>>ming[i];cout<<"*請輸入課程教師"<<endl;cin>>jiao[i];cout<<"*請輸入教室"<<endl;cin>>di[i];cout<<"*請輸入課程的起始周"<<endl;cin>>qi[i];if(qi[i]>20){cout<<"輸入錯(cuò)誤!請重新輸入"<<endl;//錯(cuò)誤判斷cin>>qi[i];//重新輸入}cout<<"*請輸入課程的結(jié)束周"<<endl;cin>>jie[i];if(jie[i]>20)//錯(cuò)誤判斷{cout<<"輸入錯(cuò)誤!請重新輸入"<<endl;cin>>jie[i];//重新輸入}cout<<"*請輸入課程一周有幾天有"<<endl;//一門課一周幾節(jié)的處理ints;cin>>s;//輸入節(jié)數(shù){for(intu=0;u<s;u++)//for循環(huán)控制多節(jié)輸入{ming[i+u]=ming[i];jiao[i+u]=jiao[i];di[i+u]=di[i];qi[i+u]=qi[i];jie[i+u]=jie[i];cout<<"*請輸入第"<<u+1<<"次課是星期幾"<<endl;cin>>xing[i+u];if(xing[i+u]>7){cout<<"輸入錯(cuò)誤!請重新輸入"<<endl;cin>>xing[i+u];}cout<<"*請輸入課程是第幾堂"<<endl;cin>>tang[i+u];if(tang[i+u]>5){cout<<"輸入錯(cuò)誤!請重新輸入"<<endl;cin>>tang[i+u];}}}i=i+s;cout<<"*請問是否繼續(xù)下一個(gè)課程?(Y/N)"<<endl;//是否繼續(xù)輸入charnum;cin>>num;if(num=='Y'||num=='y')continue;//繼續(xù)下一個(gè)elsebreak;//結(jié)束輸入}}voidkecheng::showke()//模塊三{cout<<"http:////////////////////////////////"<<endl;//課表的頁眉cout<<"http://課程表//"<<endl;cout<<"http:////////////////////////////////"<<endl;cout<<"_____________________________________________________________________________________________________"<<endl;cout<<"|一|二|三|四|五|六|日|"<<endl;cout<<"_____________________________________________________________________________________________________"<<endl;for(inti=1;i<6;i++){intl;//用l來檢測此項(xiàng)是否有內(nèi)容輸出switch(i)//課表的一天節(jié)數(shù)輸出{case1:cout<<"一(1-2)|";break;case2:cout<<"二(3-4)|";break;case3:cout<<"三(5-6)|";break;case4:cout<<"四(7-8)|";break;case5:cout<<"五(9-10)|";break;}for(intj=1;j<8;j++){l=0;for(intn=0;n<16;n++){if(tang[n]==i&&xing[n]==j){cout<<setw(12)<<ming[n]<<"|";//課名輸出l=1;}}if(l==0){cout<<"|";//若沒有則輸出空格}}cout<<endl;cout<<"|";for(j=1;j<8;j++){l=0;for(intn=0;n<16;n++){if(tang[n]==i&&xing[n]==j){cout<<setw(10)<<jiao[n]<<"|";//教師輸出l=1;}}if(l==0){cout<<"|";//若沒有則輸出空格}}cout<<endl;cout<<"|";for(j=1;j<8;j++){l=0;for(intn=0;n<16;n++){if(tang[n]==i&&xing[n]==j){cout<<setw(11)<<di[n]<<"|";//地點(diǎn)輸出l=1;}}if(l==0){cout<<"|";//若沒有則輸出空格}}cout<<endl;cout<<"|";for(j=1;j<8;j++){l=0;for(intn=0;n<16;n++){if(tang[n]==i&&xing[n]==j){cout<<"("<<setw(2)<<qi[n]<<"-"<<setw(2)<<jie[n]<<")周";//總周數(shù)輸出cout<<"|";l=1;}}if(l==0){cout<<setw(12)<<"";//若沒有則輸出空格cout<<"|";}}cout<<endl;cout<<"_____________________________________________________________________________________________________"<<endl;}}intmain()//模塊四{cout<<"***************歡迎使用課程表建立系統(tǒng)^-^***************"<<endl<<endl;;//系統(tǒng)進(jìn)入kechengke;cout<<"***************請輸入相關(guān)課程信息***************"<<endl<<endl;;ke.setvalue();//若沒有則輸出空格用ke.showke();return0;}高校課程表設(shè)計(jì)課程設(shè)計(jì)的的題目:高校課程表設(shè)計(jì)功能說明:學(xué)生課表建立系統(tǒng)是學(xué)生日常生活中必不可少的實(shí)用型小工具,它對于學(xué)生平時(shí)的學(xué)習(xí)生活有著相當(dāng)重要的幫助作用。便于操作、顯示精確、短小實(shí)用就是它的明顯特點(diǎn)。本次課程設(shè)計(jì)目的:通過一個(gè)課程表建立系統(tǒng),使學(xué)生的學(xué)業(yè)及其他事物的時(shí)間安排更加合理,從而達(dá)到提高日常工作、學(xué)習(xí)效率.使學(xué)生掌握一門高級(jí)程序設(shè)計(jì)語言,了解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念與方法,進(jìn)而學(xué)會(huì)利用C++語言學(xué)會(huì)解決一般應(yīng)用問題,并為后續(xù)的專業(yè)課程奠定程序設(shè)計(jì)基礎(chǔ)。系統(tǒng)的基本模塊:根據(jù)系統(tǒng)功能的要求,課程表建立系統(tǒng)可以分為課程信息的輸入,課程表的處理及建立等模塊.通過分析可以知道該軟件主要有以下功能模塊:學(xué)生課程名稱顯示總學(xué)周時(shí)間顯示教師顯示地點(diǎn)顯示星期顯示一天中具體時(shí)間顯示其中本次課程設(shè)計(jì)實(shí)現(xiàn)的檔案模塊又分為如下子模塊:登陸界面:主要是增加系統(tǒng)的人性化,使用戶舒心信息錄入:主要是將課程相關(guān)信息錄入信息處理顯示項(xiàng)目:對學(xué)生課程信息進(jìn)行處理、列表、顯示.系統(tǒng)結(jié)構(gòu)圖1如下:系統(tǒng)系統(tǒng)用戶進(jìn)入課程信息輸入名稱教師教室總周數(shù)星期第幾堂信息處理信息顯示圖1系統(tǒng)結(jié)構(gòu)圖類的.設(shè)計(jì):各類的具體說明及描述kecheng類的設(shè)計(jì)為了實(shí)現(xiàn)管理系統(tǒng)的各功能首先定義了一個(gè)kecheng類,用來定義各種數(shù)據(jù)成員,聲明這些功能函數(shù).比如:說明為什么要這樣設(shè)計(jì)setvalue(),showke()等,同時(shí)聲明一些私有成員.classkecheng{public:voidsetvalue();voidshowke();stringming[16];stringjiao[16];stringdi[16];intqi[16];intjie[16];intxing[16];inttang[16];};關(guān)鍵功能的實(shí)現(xiàn)(1)信息的輸入setvalue()函數(shù)用來輸入相關(guān)信息,包括課程名稱、教師名稱、教室地點(diǎn)、課程起始周、課程結(jié)束周、上課的星期、上課的具體時(shí)間.輸入一次信息之后可選擇是否繼續(xù)添加新的課程。此函數(shù)代碼如下:1.基本信息輸入voidkecheng::setvalue(){for(inti=0;i<16;i++){cout〈〈"*請輸入課程名稱(請簡寫不要超過6個(gè)字)”<<endl;cin>>ming[i];cout〈<"*請輸入課程教師”〈〈endl;cin〉>jiao[i];cout〈<”*請輸入教室"〈<endl;cin〉〉di[i];cout<〈”*請輸入課程的起始周"〈〈endl;cin>〉qi[i];2.如果輸入錯(cuò)誤,系統(tǒng)會(huì)自檢,提示錯(cuò)誤cout<<”*請輸入課程的結(jié)束周"〈〈endl;cin〉>jie[i];if(jie[i]>20){cout<〈”輸入錯(cuò)誤!請重新輸入”〈<endl;cin〉>jie[i];}3.程序會(huì)對一課程多節(jié)課的現(xiàn)象進(jìn)行處理cout〈〈"*請輸入課程一周有幾天有”〈〈endl;ints;cin〉>s;{for(intu=0;u〈s;u++){ming[i+u]=ming[i];jiao[i+u]=jiao[i];di[i+u]=di[i];qi[i+u]=qi[i];jie[i+u]=jie[i];cout〈<”*請輸入第"〈<u+1<<"次課是星期幾”<<endl;cin>>xing[i+u];if(xing[i+u]〉7){cout〈〈"輸入錯(cuò)誤!請重新輸入"〈<endl;cin〉>xing[i+u];}cout〈<”*請輸入課程是第幾堂"<〈endl;cin〉〉tang[i+u];if(tang[i+u]>5){cout<<”輸入錯(cuò)誤!請重新輸入”〈〈endl;cin>>tang[i+u];}}}i=i+s;4.輸完一門課程之后,系統(tǒng)會(huì)自動(dòng)提示是否進(jìn)行下一課程的輸入cout〈<”*請問是否繼續(xù)下一個(gè)課程?(Y/N)”〈<endl;charnum;cin〉〉num;if(num==’Y’||num==’y’)continue;elsebreak;}}(2)信息的處理與輸出showke()函數(shù),此部分用來實(shí)現(xiàn)課程相關(guān)信息的排序,包括表格的建立與信息的對應(yīng)輸出,此函數(shù)用來顯示課程表的界面,用了一些“——”號(hào)建立表格,在程序重的最后,通過for來實(shí)現(xiàn)整個(gè)程序的循環(huán),并且使用了switch選擇分支結(jié)構(gòu),使功能更容易實(shí)現(xiàn)?;菊n表表頭的輸出此函數(shù)代碼如下:voidkecheng::showke(){cout<<"http:////////////////////////////////”<<endl;cout<<”//課程表//”〈<endl;cout<〈"http:////////////////////////////////”<<endl;cout<<"_____________________________________________________________________________________________________”<<endl;cout〈<”|一|二|三|四|五|六|日|"<<endl;cout<<”_____________________________________________________________________________________________________”<<endl;對一天時(shí)間(1~10節(jié))的格式輸出此函數(shù)代碼如下:for(inti=1;i<6;i++){intl;switch(i){case1:cout〈<"一(1-2)|";break;case2:cout<<"二(3—4)|”;break;case3:cout<<"三(5—6)|”;break;case4:cout〈〈”四(7—8)|”;break;case5:cout<〈”五(9-10)|";break;}循環(huán)輸出課程信息,這里采用雙循環(huán),用于控制表格位置的對號(hào)輸出及信息的循環(huán)輸出此函數(shù)代碼如下:for(intj=1;j<8;j++){l=0;for(intn=0;n<16;n++){if(tang[n]==i&&xing[n]==j){cout<〈setw(12)〈〈ming[n]〈〈"|”;l=1;}}if(l==0){cout〈〈"|";}}cout〈<endl;cout<<”|”;cout〈<”_____________________________________________________________________________________________________"〈<endl;}}軟件測試與調(diào)試進(jìn)入本程序如圖2所示圖2登陸界面系統(tǒng)會(huì)提示輸入相關(guān)信息,課程是星期幾、第幾堂是必須輸入的,輸入一次信息之后可選擇是否繼續(xù)添加新的課程如圖3所示。圖3顯示輸入界面如果選擇不繼續(xù)系統(tǒng)就會(huì)顯示結(jié)果如圖4所示圖4顯示輸出界面程序在執(zhí)行時(shí)經(jīng)常會(huì)出現(xiàn)一些違反設(shè)計(jì)期望的異常情況(如數(shù)值過大),一些大型的應(yīng)用系統(tǒng)的開發(fā)人員提出,可以在允許的范圍內(nèi)由應(yīng)用程序自身來處理一般性的程序運(yùn)行錯(cuò)誤。C++語言異常處理由三個(gè)部分構(gòu)成。異常檢測的觸發(fā)、異常檢測的捕獲和異常檢測的處理。在這里我通過添加檢測函數(shù)來確保程序的正常運(yùn)行代碼如下:if(xing[i+u]>7){cout〈<”輸入錯(cuò)誤!請重新輸入"<<endl;cin〉〉xing[i+u];}結(jié)束語經(jīng)過1周多的設(shè)計(jì)和開發(fā),學(xué)生課程表建立基本開發(fā)完畢。其功能基本符合用戶需求,能夠完成信息完整輸入以及各類報(bào)表的打印。對于數(shù)據(jù)的一致性的問題也通過程序進(jìn)行了有效的解決.
但是由于課程設(shè)計(jì)時(shí)間較短,所以該系統(tǒng)還有許多不足之處:比如系統(tǒng)維護(hù)功能,還不能讓用戶進(jìn)行數(shù)據(jù)備份和恢復(fù);用戶界面不夠美觀;這些都有待進(jìn)一步改善。附錄:要注釋源程序清單#include〈iostream>#include<string>#include〈iomanip〉usingnamespacestd;classkecheng//模塊一{public://公有數(shù)據(jù)voidsetvalue();//輸入函數(shù)voidshowke();//處理、輸出函數(shù)stringming[16];//課程名stringjiao[16];//教師名stringdi[16];//教室地點(diǎn)intqi[16];//課程起始周intjie[16];//課程結(jié)束周intxing[16];//星期inttang[16];//第幾堂};voidkecheng::setvalue()//模塊二{for(inti=0;i<16;i++)//for循環(huán)控制輸入{cout<〈”*請輸入課程名稱(請簡寫不要超過6個(gè)字)"<<endl;cin>〉ming[i];cout〈<”*請輸入課程教師"<〈endl;cin〉〉jiao[i];cout〈〈"*請輸入教室”<<endl;cin〉〉di[i];cout〈〈”*請輸入課程的起始周"〈〈endl;cin>>qi[i];if(qi[i]〉20){cout〈<"輸入錯(cuò)誤!請重新輸入”〈<endl;//錯(cuò)誤判斷cin〉〉qi[i];//重新輸入}cout〈〈”*請輸入課程的結(jié)束周”<〈endl;cin〉〉jie[i];if(jie[i]〉20)//錯(cuò)誤判斷{cout<〈"輸入錯(cuò)誤!請重新輸入"〈<endl;cin>〉jie[i];//重新輸入}cout〈〈"*請輸入課程一周有幾天有”〈〈endl;//一門課一周幾節(jié)的處理ints;cin>>s;//輸入節(jié)數(shù){for(intu=0;u<s;u++)//for循環(huán)控制多節(jié)輸入{ming[i+u]=ming[i];jiao[i+u]=jiao[i];di[i+u]=di[i];qi[i+u]=qi[i];jie[i+u]=jie[i];cout<<"*請輸入第”<〈u+1<〈"次課是星期幾”〈〈endl;cin>>xing[i+u];if(xing[i+u]〉7){cout<〈"輸入錯(cuò)誤!請重新輸入"<<endl;cin〉>xing[i+u];}cout〈〈”*請輸入課程是第幾堂"<<endl;cin〉>tang[i+u];if(tang[i+u]〉5){cout<〈”輸入錯(cuò)誤!請重新輸入”<〈endl;cin>〉tang[i+u];}}}i=i+s;cout<<”*請問是否繼續(xù)下一個(gè)課程?(Y/N)"<<endl;//是否繼續(xù)輸入charnum;cin〉>num;if(num==’Y'||num==’y’)continue;//繼續(xù)下一個(gè)elsebreak;//結(jié)束輸入}}voidkecheng::showke()//模塊三{cout〈〈”////////////////////////////////"〈〈endl;//課表的頁眉cout<<"http://課程表//"〈<endl;cout〈<”////////////////////////////////"〈<endl;cout〈<”_____________________________________________________________________________________________________”〈<endl;cout<〈”|一|二|三|四|五|六|日|”〈<endl;cout<<”_____________________________________________________________________________________________________"<<endl;for(inti=1;i<6;i++){intl;//用l來檢測此項(xiàng)是否有內(nèi)容輸出switch(i)//課表的一天節(jié)數(shù)輸出{case1:cout〈〈”一(1—2)|”;break;case2:cout<<”二(3—4)|";break;case3:cout〈<”三(5—6)|";break;case4:cout<〈"四(7-8)|";break;case5:cout〈<”五(9—10)|";break;}for(intj=1;j〈8;j++){l=0;for(intn=0;n<16;n++){if(tang[n]==i&&xing[n]==j){cout〈<setw(12)<<ming[n]<〈"|”;//課名輸出l=1;}}if(l==0){cout<<"|”;//若沒有則輸出空格}}cout<<endl;cout<<”|”;for(j=1;j<8;j++){l=0;for(intn=0;n<16;n++){if(tang[n]==i&&xing[n]==j){cout<〈setw(10)〈<jiao[n]〈<"|”;//教師輸出l=1;}}if(l==0){cout<<"|";//若沒有則輸出空格}}cout<<endl;cout<<"|”;for(j=1;j〈8;j++){l=0;for(intn=0;n〈16;n++){if(tang[n]==i&&xing[n]==j){cout〈〈setw(11)<<di[n]<<”|”;//地點(diǎn)輸出l=1;}}if(l==0){cout〈〈”|”;//若沒有則輸出空格}}cout〈<endl;cout<<"|";for(j=1;j<8;j++){l=0;for(intn=0;n〈16;n++){if(tang[n]==i&&xing[n]==j){cout<<"("<<setw(2)〈〈qi[n]〈〈"—”<〈setw(2)〈<jie[n]〈<")周”;//總周數(shù)輸出cout〈〈”|";l=1;}}if(l==0){cout〈<setw(12)<〈”";//若沒有則輸出空格cout〈<"|";}}cout〈〈endl;cout<<”_____________________________________________________________________________________________________”〈〈endl;}}intmain()//模塊四{cout〈〈"***************?dú)g迎使用課程表建立系統(tǒng)^—^***************"<<endl〈<endl;;//系統(tǒng)進(jìn)入kechengke;cout〈〈"***************請輸入相關(guān)課程信息***************"<〈endl<<endl;;ke.setvalue();//若沒有則輸出空格用ke.showke();return0;}北華航天工業(yè)學(xué)院《基于C++的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例》實(shí)踐報(bào)告報(bào)告題目:車輛管理系統(tǒng)設(shè)計(jì)作者所在系部:計(jì)算機(jī)科學(xué)與工程系作者所在專業(yè):網(wǎng)絡(luò)工程作者所在班級(jí):B12522作者學(xué)號(hào):作者姓名:妖YYYao指導(dǎo)教師姓名:李瑛完成時(shí)間:2021年6月北華航天工業(yè)學(xué)院教務(wù)處制摘要在當(dāng)前的市場經(jīng)濟(jì)體制下,企業(yè)要想提高市場的競爭力,取得好的經(jīng)濟(jì)效益,不但要有好的產(chǎn)品,同時(shí)也要有好的管理方式,所以必須擁有一套完善的并且適合自身特點(diǎn)的信息化管理系統(tǒng),以實(shí)現(xiàn)企業(yè)降低成本、及時(shí)反饋市場信息、完善服務(wù)質(zhì)量、提高經(jīng)濟(jì)效益、分析市場需求、制定銷售計(jì)劃和目標(biāo)等管理目的.本文利用VisualC++6。0編寫程序,實(shí)現(xiàn)了用戶對公司車輛的編號(hào)、車牌號(hào)、車輛制造公司、車輛購買時(shí)間、車輛型號(hào)(大客車、小轎車和卡車)、總公里數(shù)、耗油量/公里、基本維護(hù)費(fèi)用、養(yǎng)路費(fèi)、累計(jì)總費(fèi)用等信息的管理。本系統(tǒng)主要實(shí)現(xiàn)了對車輛的添加,查詢,顯示,編輯,刪除,統(tǒng)計(jì),存盤,讀出。主要運(yùn)用了類的繼承等編程方法來實(shí)現(xiàn)對這些車輛的管理.已經(jīng)過全面的系統(tǒng)測試,能夠很好的運(yùn)行,達(dá)到了預(yù)期的效果。關(guān)鍵詞:系統(tǒng)設(shè)計(jì)車輛管理類的繼承目錄摘要Ⅰ第1章緒論11。1課程設(shè)計(jì)的目的11。2課程設(shè)計(jì)的背景及意義11.2.1課程設(shè)計(jì)的背景11。2。2課程設(shè)計(jì)的意義11。3課程設(shè)計(jì)環(huán)境1第2章系統(tǒng)需求分析22。1問題描述22。2功能分析22。3問題的解決方案3第3章系統(tǒng)設(shè)計(jì)43.1數(shù)據(jù)設(shè)計(jì)43.1.1類設(shè)計(jì)43.1.2類之間的關(guān)系43.1.3函數(shù)設(shè)計(jì)43.2結(jié)構(gòu)設(shè)計(jì)53.2.1系統(tǒng)流程圖53.2.2界面設(shè)計(jì)6系統(tǒng)實(shí)現(xiàn)84.1類實(shí)現(xiàn)84.2函數(shù)實(shí)現(xiàn)104.3主函數(shù)實(shí)現(xiàn)14系統(tǒng)測試165.1模塊測試165.2課程設(shè)計(jì)過程中遇到的問題18總結(jié)19致謝20參考文獻(xiàn)21第一章緒論1.1課程設(shè)計(jì)的目的要求學(xué)生能夠熟練掌握C++語言的基本知識(shí)和技能。加班掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法.能夠利用所學(xué)的基本知識(shí)和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題。1.2課程設(shè)計(jì)的背景和意義1.2.1課程設(shè)計(jì)的背景1.理論研究基礎(chǔ)(1)C++在C的基礎(chǔ)上增加了面向?qū)ο蟮臋C(jī)制。(2)充分運(yùn)用面向?qū)ο髾C(jī)制中的繼承性與多態(tài)性實(shí)現(xiàn)函數(shù)的設(shè)計(jì).2.技術(shù)層面的支持運(yùn)用系統(tǒng)為C++面向?qū)ο蟪绦蛟O(shè)計(jì)提供的各種設(shè)計(jì)方法和VC++系統(tǒng)提供的庫函數(shù)實(shí)現(xiàn)項(xiàng)目的開發(fā).1.2.2課程設(shè)計(jì)的意義通過設(shè)計(jì)此系統(tǒng),熟練掌握C++語言的基本知識(shí)和技能,基本掌握面向?qū)ο蟪绦蜷_發(fā)的基本思路和方法,培養(yǎng)學(xué)生的動(dòng)手操作能力,提高自主學(xué)習(xí)能力,能夠利用所學(xué)的基本知識(shí)和技能,進(jìn)行簡單應(yīng)用程序設(shè)計(jì)。1.3課程設(shè)計(jì)環(huán)境VisualC++6。0第二章需求分析2.1問題描述車輛管理系統(tǒng)主要負(fù)責(zé)各種車輛的常規(guī)信息管理工作。系統(tǒng)中的車輛主要有大客車、小轎車和卡車.每種車輛有車輛編號(hào)、車牌號(hào)、車輛制造公司、車輛購買時(shí)間、車輛型號(hào)(大客車、小轎車和卡車)、總公里數(shù)、耗油量/公里、基本維護(hù)費(fèi)用、養(yǎng)路費(fèi)、累計(jì)總費(fèi)用等信息。大客車還有載客量(最大載客數(shù))信息,小轎車還有箱數(shù)(兩廂或三廂)信息,卡車還有載重量等信息。每臺(tái)車輛當(dāng)月總費(fèi)用=油價(jià)*耗油量/公里+基本維護(hù)費(fèi)用?;揪S護(hù)費(fèi)用:客車:2000元/月,小轎車:1000元/月,卡車:1500元/月2.2功能要求(1)添加車輛:主要完成車輛信息的添加,要求編號(hào)唯一.當(dāng)添加了重復(fù)的編號(hào)時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加;當(dāng)車輛信息庫已滿,則提示不能再添加新的數(shù)據(jù)。(2)查詢車輛:可按照三種方式來查詢物品,分別為:按車輛制造公司查詢:輸入車輛制造公司,輸出所查詢的信息,若不存在該記錄,則提示“該車輛制造公司不存在!";按編號(hào)查詢:輸入編號(hào),輸出所查詢的信息,若不存在該記錄,則提示“該編號(hào)不存在!”;按類別查詢:輸入類別,輸出所查詢的信息,若不存在記錄,則提示“該類別沒有車輛!".(3)顯示車輛信息庫:輸出當(dāng)前車輛信息庫中所有車輛信息,每條記錄占據(jù)一行。(4)編輯功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意編號(hào)的唯一性.(5)刪除車輛:主要完成車輛信息的刪除.如果當(dāng)前車輛信息庫為空,則提示“車輛信息庫為空!”,并返回操作;否則,輸入要?jiǎng)h除的編號(hào),根據(jù)編號(hào)刪除該車輛的記錄,如果該編號(hào)不在車輛信息庫庫中,則提示“該編號(hào)不存在”.(6)統(tǒng)計(jì)信息:輸出當(dāng)前車輛信息庫中總物品數(shù),以及按車輛類別,統(tǒng)計(jì)出當(dāng)前車輛信息庫中各類別的物品數(shù)并顯示。(7)車輛信息存盤:將當(dāng)前程序中的車輛信息存入文件中。(8)讀出車輛信息:從文件中將車輛信息讀入程序.2.3問題的解決方案根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);(2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;(3)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次;(4)完成類層次中各個(gè)類的描述;(5)完成類中各個(gè)成員函數(shù)的定義;(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報(bào)告。第三章系統(tǒng)設(shè)計(jì)3.1數(shù)據(jù)設(shè)計(jì)3.1.1類設(shè)計(jì)日期類Date車輛類Vehicle車輛管理類ManyVehicle3.1.2類之間的關(guān)系Date日期類:基類(2)Vehicle車輛類:公有繼承Date類(3)ManyVehicle車輛數(shù)組類:公有繼承Vehicle類3.1.3函數(shù)設(shè)計(jì)添加函數(shù):添加一個(gè)新數(shù)據(jù).如信息庫已滿,顯示“信息庫已滿!不能添加新的數(shù)據(jù)!”并退出添加;如編號(hào)重復(fù)則顯示“數(shù)據(jù)添加重復(fù)!取消添加!”并退出添加;如可以添加,提示用戶“當(dāng)前信息庫未滿!可以添加……”,在輸入車輛信息后顯示“數(shù)據(jù)添加成功!”并保存當(dāng)前添加數(shù)據(jù),信息庫車輛總數(shù)加一.查詢函數(shù):查詢車輛信息并顯示。系統(tǒng)提示按車輛制造公司查詢、按編號(hào)查詢、按類別查詢?nèi)N查詢方式,通過輸入序號(hào)選擇查詢方式。如果所查詢的制造公司,編號(hào),或類別下沒有車輛信息,則提示用戶索要查詢的信息不存在,并退出查詢;如信息存在則顯示出所要查詢的車輛信息,顯示完成后提示用戶“查詢完畢!”,并退出查詢。顯示函數(shù):將所有車輛信息顯示出來.編輯函數(shù):修改已有的車輛信息。用戶輸入編號(hào),若沒有該編號(hào),提示用戶“該編號(hào)不存在!”并退出編輯;否則提示用戶“請重新輸入車輛信息……",用戶輸入新的信息后,系統(tǒng)進(jìn)行保存并退出編輯。編輯時(shí)不能對編號(hào)進(jìn)行修改。刪除函數(shù):將已有車輛信息刪除。用戶輸入車輛編號(hào),若沒有該編號(hào),提示用戶“操作失?。≡摼幪?hào)不存在!"并退出刪除;否則刪除該編號(hào)下的車輛信息,提示用戶“操作成功!車輛已從數(shù)據(jù)庫中刪除!"并保存,信息庫車輛總數(shù)減一.統(tǒng)計(jì)函數(shù):將信息庫內(nèi)的車輛信息分類。分別統(tǒng)計(jì)出大客車,小轎車,卡車的數(shù)量以及車輛總數(shù),并進(jìn)行輸出。保存函數(shù):將信息保存為txt文件,保存成功后提示用戶“信息保存成功!”;否則顯示“信息文件保存失敗!”。讀出函數(shù):從txt文件中將車輛信息讀入程序.退出函數(shù):提示用戶退出系統(tǒng),顯示結(jié)束界面。3.2結(jié)構(gòu)設(shè)計(jì)調(diào)用公有繼承公有繼承Main函數(shù)調(diào)用公有繼承公有繼承Main函數(shù)Date(日期類)Vehicle(車輛類)ManyVehicele(車輛數(shù)組類)顯顯示顯添加顯查詢顯統(tǒng)計(jì)顯刪除顯存盤顯編輯顯讀出菜主菜單調(diào)用圖3-1.流程圖3.2.2界面設(shè)計(jì)(1)歡迎界面:按Enter鍵清屏并顯示主菜單。圖圖3-2.歡迎界面(2)主菜單:通過輸入序號(hào)進(jìn)行相應(yīng)的操作。輸入0退出系統(tǒng)。圖圖3-3.主菜單圖3-4.查詢菜單(3)查詢菜單:主菜單下的子菜單。在主菜單下輸入“2”圖3-4.查詢菜單第四章系統(tǒng)實(shí)現(xiàn)4.1類實(shí)現(xiàn)類名日期類Date數(shù)據(jù)成員intyear;intmonth;intday;//年,月,日成員函數(shù)intGetYear();intGetMonth();intGetDay();//返回year,month,dayvoidInput_Date();//輸入日期voidShow_Date();//輸出日期類名車輛類Vehicle數(shù)據(jù)成員stringnum;stringplate;stringmake;//車輛編號(hào),車牌號(hào),制造公司Datetime;//車輛購買時(shí)間stringtype;//車輛型號(hào)doublekilometres;//總公里數(shù)Doubleoil,maintenance;//耗油量/公里,基本維護(hù)費(fèi)用doubleroad;doublemoney;//養(yǎng)路費(fèi),累計(jì)總費(fèi)用intpeople;intbox;intheavy;//載客量,箱數(shù),載重量成員函數(shù)stringGetNum();stringGetMake();stringGetType();//傳遞voidNum();//車輛編號(hào)輸入doubleMaintenance();doubleMoney();//基本維護(hù)費(fèi)用,累計(jì)總費(fèi)用voidInput();//輸入車輛信息voidShow();//輸出車輛信息voidShow_txt();//輸出文件信息friendostream&operator<<(ostream&,Vehicle&);//輸出表4-2.Vehicle類表4-2.Vehicle類表表4-1.Date類類名車輛數(shù)組類ManyVehicle數(shù)據(jù)成員Vehiclev[N];//定義車輛數(shù)組inttop;//數(shù)組內(nèi)信息數(shù)量成員函數(shù)ManyVehicle(){top=0;}//構(gòu)造voidAdd();//添加車輛voidFind();//查詢車輛voidFind1();//按制造公司查詢voidFind2();//按編號(hào)查詢voidFind3();//按類別查詢voidTop();//首行格式voidShow();//顯示車輛信息庫voidEdit();//編輯車輛voidDelete();//刪除車輛voidStatistics();//統(tǒng)計(jì)信息voidSave();//車輛信息存盤voidRead();//讀出車輛信息voidQuit();//退出表表4-3.ManyVehicle類4.2函數(shù)實(shí)現(xiàn)添加函數(shù):voidManyVehicle::Add(){Vehiclev1;if(top>=N){cout〈<"信息庫已滿!不能添加新的數(shù)據(jù)!"<〈endl<<endl;return;}cout〈<"請輸入您想要添加的";v1。Vehicle::Num();for(inti=0;i<top;i++)if(v1.GetNum()==v[i].Vehicle::GetNum()){cout<<"數(shù)據(jù)添加重復(fù)!取消添加!”〈<endl〈<endl;return;}cout<<"當(dāng)前信息庫未滿!可以添加……”〈<endl;v1。Vehicle::Input();v[top]=v1;cout〈<”數(shù)據(jù)添加成功!"<<endl〈<endl;top++;ofstreamoutfile("車輛信息庫.txt",ios::out);for(intk=0;k〈top;k++)outfile〈〈v[k]〈〈endl;outfile.close();}運(yùn)行結(jié)果:圖圖4-1.主菜單實(shí)現(xiàn)刪除函數(shù):voidManyVehicle::Delete(){Vehiclev3;cout〈〈”請輸入您所要?jiǎng)h除的";v3。Vehicle::Num();for(inti=0;i〈top;i++)if(v3.Vehicle::GetNum()==v[i]。Vehicle::GetNum())break;if(i>=top){cout<〈endl<〈"操作失敗!該編號(hào)不存在!"<<endl〈<endl;return;}Vehiclevt;for(intj=0;j〈top;j++)if(v3。Vehicle::GetNum()==v[j].Vehicle::GetNum())v[j]=v[j+1];top——;cout<〈endl<<”操作成功!編號(hào)"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46913-2025養(yǎng)老機(jī)構(gòu)感染預(yù)防與控制規(guī)范
- GB/Z 46984.4-2026光伏電池第4部分:晶體硅光伏電池光熱誘導(dǎo)衰減試驗(yàn)方法
- 財(cái)務(wù)咨詢公司制度
- 落實(shí)監(jiān)理現(xiàn)場旁站制度
- 國際公法考試試題及答案
- 2026云南昆明市昆華實(shí)驗(yàn)中學(xué)招聘10人參考考試題庫附答案解析
- 2026廣東佛山市順德區(qū)容桂幸福陳占梅小學(xué)招募實(shí)習(xí)教師8人備考考試試題附答案解析
- 2026廣東中山市起鳳環(huán)社區(qū)居民委員會(huì)公益性崗位招聘2人參考考試題庫附答案解析
- 2026年上半年云南省科學(xué)技術(shù)廳直屬事業(yè)單位公開招聘人員(8人)備考考試試題附答案解析
- 2026年普洱學(xué)院公開招聘碩士附以上人員(12人)備考考試試題附答案解析
- 兒童組織細(xì)胞壞死性淋巴結(jié)炎診斷與治療專家共識(shí)解讀 2
- T∕ZZB 0623-2018 有機(jī)溶劑型指甲油
- 2025體彩知識(shí)考試題及答案
- 機(jī)械企業(yè)安全生產(chǎn)風(fēng)險(xiǎn)評估報(bào)告
- 馬匹性能智能評估-洞察及研究
- 中職班會(huì)課主題課件
- 政務(wù)服務(wù)大廳安全隱患排查
- 土建資料管理課件
- 鈑金檢驗(yàn)作業(yè)指導(dǎo)書
- 公司安全大講堂活動(dòng)方案
- 2025年江蘇省無錫市梁溪區(qū)八下英語期末統(tǒng)考模擬試題含答案
評論
0/150
提交評論