第一篇:c++程序?qū)嵙?xí)報告
針對我們這學(xué)期學(xué)的c++,假期進(jìn)行了五天的實習(xí)。第一天聽老師講實習(xí)內(nèi)容和提示的時候覺得思路挺明確的一個程序,哪有傳說中的那么難。下午和同學(xué)討論的時候覺得很有目的,只要按部就班的完成各步操作就可以了,有難度的也只是第二步。這一步要進(jìn)行判斷,這就需要多個輸出函數(shù);還要冒泡法給工作排序,工資的計算不是在類中完成的——挺棘手的一個問題。
第二天上機(jī)的時候也很快完成了第一步,覺得還行,慢慢來五天完全可以完成。后來也就沒怎么好好思考,沒想到第二天遇到麻煩了,編不出第二步了。第三天下午也沒調(diào)試好,第一步輸入的數(shù)據(jù)在第二步統(tǒng)計的時候怎么也數(shù)不出來,我從頭至尾研究了多次,沒發(fā)現(xiàn)一點問題,請舍友幫我檢查也說沒錯,到了傍晚還是看不出來。哎!又找一個人給我看了看,竟然錯得那么幼稚,類外定義了全局對象,在數(shù)據(jù)輸入put()函數(shù)里又重新定義了對象,這樣在put()輸入的數(shù)據(jù)無法用到其他函數(shù)中,自然統(tǒng)計的時候都是默認(rèn)值了。
就這么一個小小的錯誤整得我一天一晚上寢食難安。
編程序時深深感受到要不得半點馬虎,有時少一個“}”或“<”都會導(dǎo)致程序語法錯誤;由于編程序經(jīng)常要變換輸入法,很容易輸進(jìn)中文字符,這也會導(dǎo)致語法錯誤;調(diào)用類里重名函數(shù)時要注明屬于哪個類的。
第三天的時候第二步基本都編出來了,傍晚那時我沒檢查出錯誤來的時候,實在是把我急壞了,借了臺電腦,在那安靜專心的研究程序,舍友幫我檢查出錯誤來之后,編程序有了感覺,那時已經(jīng)22:00多了,竟然沒有一絲睡意。
后來舍友們陸續(xù)睡覺了,可我就是不愿睡??赡苁浅鲇谧宰鹦男枰?,別人都編出來了,自己編不出來,讓我無法接受;也可能是第二步出來了急于盡快搞定。從19:00到凌晨4:00一直在那兒編程序了,一次次地聽到鈴聲響竟然沒有上床睡覺的沖動,滿腦袋只有一個想法:認(rèn)真編程序,爭取晚上搞定。后來差不多了,只有備份不怎么完善,當(dāng)時電腦已經(jīng)用了好長時間了,實在不忍心一直用人家的電腦,只好關(guān)機(jī)睡覺了。
這幾天可以說是兩耳不聞窗外事,一心只顧編程序了,電話都懶得打,只想盡快把程序搞定,晚上沒有電腦用,我們?nèi)齻€女生就去網(wǎng)吧,只是那兒沒有vusual-c++,只好作罷。
雖然我們一直在編程序,覺得挺累的,其實還有比我們更累的——我們的老師。我們是每天只有半天的實習(xí)時間,可是老師卻整天在機(jī)房里,看得出來,老師連坐下休息的時間都沒有,剛要喝點水,立馬就被一個同學(xué)叫去了,實習(xí)完那天下午看見老師都不想走路了。太累了,一天站7小時,還一直給別人檢查程序,太忙了。想想老師這么認(rèn)真,我們還有什么理由不認(rèn)真呢?
只有五天的實習(xí),卻讓我受益匪淺:這不僅是一次對我們的c++掌握和運(yùn)用的熟練程度的檢查,更是一次磨練我們耐性、培養(yǎng)認(rèn)真態(tài)度的機(jī)會。這次實習(xí)讓我深刻體會到“細(xì)節(jié)決定成敗,態(tài)度決定一切”;更讓我 從 老師身上學(xué)到了很多在以后工作中需要的優(yōu)秀品質(zhì)。相信這會在我今后的學(xué)習(xí)和以后的工作很有幫助。
通過完成本次面向?qū)ο蟪绦蛟O(shè)計的任務(wù),使我熟練和掌握了上學(xué)期所學(xué)的有關(guān)visual c++中的一些主要知識點和應(yīng)用點,如類的定義,類的實現(xiàn),對象的定義,類的繼承等等。可以所學(xué)有所學(xué),所有所用,不至于自己所學(xué)知識由于沒有經(jīng)歷可用過程,而放棄對它的興趣。
第一天上課時候聽老師講,第一反應(yīng)是這可怎么做了。當(dāng)時有些迷茫。但是事在人為,下午回去之后在宿舍苦心研究,終于在整體上有了一定的把握。我們可以先定義一個基類,再派生三個子類,然后在類外定義函數(shù)。有人數(shù)規(guī)定,我們就定義相應(yīng)長度的對象數(shù)組,最后在實現(xiàn)程序功能時,用函數(shù)調(diào)用就行。
于是當(dāng)晚很快就完成了第二天的預(yù)習(xí)報告,上機(jī)調(diào)試時也沒什么大問題,就這樣第二天順利通過。
雖說接下來的統(tǒng)計沒那么容易,但就順著數(shù)據(jù)順利輸入的喜悅心情,我還是較好的完成了這個任務(wù)。在類外定義一個函數(shù)用來輸出雇員的基本情況,表頭,表尾直接在統(tǒng)計函數(shù)中輸出,也就是在統(tǒng)計函數(shù)中調(diào)用函數(shù)。打印與統(tǒng)計有異曲同工之妙,所以在統(tǒng)計做出之后,打印自然而然的也就很快完成了。
接下來的數(shù)據(jù)備份中,遇到了一個小問題,一開始以為也是函數(shù)中調(diào)用打印函數(shù)中用的那函數(shù)。其實不然,如若那樣,又變成了打印。那我們就直接輸出,但詳細(xì)資料是受保護(hù)的,不能直接輸出,那還得調(diào)用函數(shù)。于是在每個類中的公共成員中定義了直接返回的函數(shù),接下來順利完成了備份。調(diào)用頭文件
里的exit(int)函數(shù),可以用if()語句進(jìn)行判斷是否確定退出。程序順利完成。
面向?qū)ο蟪绦蛟O(shè)計作為一門軟件設(shè)計的課程,具有極強(qiáng)的實踐性,使我加強(qiáng)了靈活應(yīng)用理論知識的能力及面向?qū)ο蟪绦蛟O(shè)計技能。
此次,應(yīng)用程序的設(shè)計和創(chuàng)建,經(jīng)歷了平時在課堂中和考試中,決不會有的重重難題和問題。而這些問題,又都是課本上很少提到的、更深一層的知識領(lǐng)域和應(yīng)用領(lǐng)域。這些問題,并不是我們平時只靠課本,就可以輕易解決的。所以,鍛煉了我們面對難題,自己思索,自己探索,自己查資料發(fā)現(xiàn)問題、解決問題的獨斷能力。
當(dāng)然,此次任務(wù)的完成,也體現(xiàn)出同學(xué)之間的團(tuán)結(jié)精神。所遇種種難以解決的問題,大家都會把它當(dāng)作共同遇到的問題,在一起共同探討,共同發(fā)揮自己所學(xué)和所知,投入式的互相幫助和解決困難。
第二篇:c++程序畢業(yè)實習(xí)報告
針對我們這學(xué)期學(xué)的c++,假期進(jìn)行了五天的實習(xí)。第一天聽老師講實習(xí)內(nèi)容和提示的時候覺得思路挺明確的一個程序,哪有傳說中的那么難。下午和同學(xué)討論的時候覺得很有目的,只要按部就班的完成各步操作就可以了,有難度的也只是第二步。這一步要進(jìn)行判斷,這就需要多個輸出函數(shù);還要冒泡法給工作排序,工資的計算不是在類中完成的——挺棘手的一個問題。
第二天上機(jī)的時候也很快完成了第一步,覺得還行,慢慢來五天完全可以完成。后來也就沒怎么好好思考,沒想到第二天遇到麻煩了,編不出第二步了。第三天下午也沒調(diào)試好,第一步輸入的數(shù)據(jù)在第二步統(tǒng)計的時候怎么也數(shù)不出來,我從頭至尾研究了多次,沒發(fā)現(xiàn)一點問題,請舍友幫我檢查也說沒錯,到了傍晚還是看不出來。哎!又找一個人給我看了看,竟然錯得那么幼稚,類外定義了全局對象,在數(shù)據(jù)輸入put()函數(shù)里又重新定義了對象,這樣在put()輸入的數(shù)據(jù)無法用到其他函數(shù)中,自然統(tǒng)計的時候都是默認(rèn)值了。
就這么一個小小的錯誤整得我一天一晚上寢食難安。
編程序時深深感受到要不得半點馬虎,有時少一個“}”或“<”都會導(dǎo)致程序語法錯誤;由于編程序經(jīng)常要變換輸入法,很容易輸進(jìn)中文字符,這也會導(dǎo)致語法錯誤;調(diào)用類里重名函數(shù)時要注明屬于哪個類的。
第三天的時候第二步基本都編出來了,傍晚那時我沒檢查出錯誤來的時候,實在是把我急壞了,借了臺電腦,在那安靜專心的研究程序,舍友幫我檢查出錯誤來之后,編程序有了感覺,那時已經(jīng)22:00多了,竟然沒有一絲睡意。
后來舍友們陸續(xù)睡覺了,可我就是不愿睡??赡苁浅鲇谧宰鹦男枰?,別人都編出來了,自己編不出來,讓我無法接受;也可能是第二步出來了急于盡快搞定。從19:00到凌晨4:00一直在那兒編程序了,一次次地聽到鈴聲響竟然沒有上床睡覺的沖動,滿腦袋只有一個想法:認(rèn)真編程序,爭取晚上搞定。后來差不多了,只有備份不怎么完善,當(dāng)時電腦已經(jīng)用了好長時間了,實在不忍心一直用人家的電腦,只好關(guān)機(jī)睡覺了。
這幾天可以說是兩耳不聞窗外事,一心只顧編程序了,電話都懶得打,只想盡快把程序搞定,晚上沒有電腦用,我們?nèi)齻€女生就去網(wǎng)吧,只是那兒沒有vusual-c++,只好作罷。
雖然我們一直在編程序,覺得挺累的,其實還有比我們更累的——我們的老師。我們是每天只有半天的實習(xí)時間,可是老師卻整天在機(jī)房里,看得出來,老師連坐下休息的時間都沒有,剛要喝點水,立馬就被一個同學(xué)叫去了,實習(xí)完那天下午看見老師都不想走路了。太累了,一天站7小時,還一直給別人檢查程序,太忙了。想想老師這么認(rèn)真,我們還有什么理由不認(rèn)真呢?
只有五天的實習(xí),卻讓我受益匪淺:這不僅是一次對我們的c++掌握和運(yùn)用的熟練程度的檢查,更是一次磨練我們耐性、培養(yǎng)認(rèn)真態(tài)度的機(jī)會。這次實習(xí)讓我深刻體會到“細(xì)節(jié)決定成敗,態(tài)度決定一切”;更讓我從老師身上學(xué)到了很多在以后工作中需要的優(yōu)秀品質(zhì)。相信這會在我今后的學(xué)習(xí)和以后的工作很有幫助。
通過完成本次面向?qū)ο蟪绦蛟O(shè)計的任務(wù),使我熟練和掌握了上學(xué)期所學(xué)的有關(guān)visual c++中的一些主要知識點和應(yīng)用點,如類的定義,類的實現(xiàn),對象的定義,類的繼承等等??梢运鶎W(xué)有所學(xué),所有所用,不至于自己所學(xué)知識由于沒有經(jīng)歷可用過程,而放棄對它的興趣。
第一天上課時候聽老師講,第一反應(yīng)是這可怎么做了。當(dāng)時有些迷茫。但是事在人為,下午回去之后在宿舍苦心研究,終于在整體上有了一定的把握。我們可以先定義一個基類,再派生三個子類,然后在類外定義函數(shù)。有人數(shù)規(guī)定,我們就定義相應(yīng)長度的對象數(shù)組,最后在實現(xiàn)程序功能時,用函數(shù)調(diào)用就行。
于是當(dāng)晚很快就完成了第二天的預(yù)習(xí)報告,上機(jī)調(diào)試時也沒什么大問題,就這樣第二天順利通過。
雖說接下來的統(tǒng)計沒那么容易,但就順著數(shù)據(jù)順利輸入的喜悅心情,我還是較好的完成了這個任務(wù)。在類外定義一個函數(shù)用來輸出雇員的基本情況,表頭,表尾直接在統(tǒng)計函數(shù)中輸出,也就是在統(tǒng)計函數(shù)中調(diào)用函數(shù)。打印與統(tǒng)計有異曲同工之妙,所以在統(tǒng)計做出之后,打印自然而然的也就很快完成了。
接下來的數(shù)據(jù)備份中,遇到了一個小問題,一開始以為也是函數(shù)中調(diào)用打印函數(shù)中用的那函數(shù)。其實不然,如若那樣,又變成了打印。那我們就直接輸出,但詳細(xì)資料是受保護(hù)的,不能直接輸出,那還得調(diào)用函數(shù)。于是在每個類中的公共成員中定義了直接返回的函數(shù),接下來順利完成了備份。調(diào)用頭文件
面向?qū)ο蟪绦蛟O(shè)計作為一門軟件設(shè)計的課程,具有極強(qiáng)的實踐性,使我加強(qiáng)了靈活應(yīng)用理論知識的能力及面向?qū)ο蟪绦蛟O(shè)計技能。
此次,應(yīng)用程序的設(shè)計和創(chuàng)建,經(jīng)歷了平時在課堂中和考試中,決不會有的重重難題和問題。而這些問題,又都是課本上很少提到的、更深一層的知識領(lǐng)域和應(yīng)用領(lǐng)域。這些問題,并不是我們平時只靠課本,就可以輕易解決的。所以,鍛煉了我們面對難題,自己思索,自己探索,自己查資料發(fā)現(xiàn)問題、解決問題的獨斷能力。
當(dāng)然,此次任務(wù)的完成,也體現(xiàn)出同學(xué)之間的團(tuán)結(jié)精神。所遇種種難以解決的問題,大家都會把它當(dāng)作共同遇到的問題,在一起共同探討,共同發(fā)揮自己所學(xué)和所知,投入式的互相幫助和解決困難。
第三篇:C++程序筆記
一:'CRecordset' : base class undefined
解決方法:在工程的StdAfx.h頭文件中添加:#include
二: m_dlg.m_database.Open(_T(“addresslist”));// 這個在編譯時會出現(xiàn)錯誤,解決辦法:可以同上:#include
三:建了一個控件,但想在類向?qū)Ю锩娑x該控件的函數(shù)時找不到控件ID號(原因:是因為修改了主對話框的ID號)
主對話框.h 中把emun{中改成相應(yīng)的ID_Dlg}
四:設(shè)置窗體背景的顏色:
在主窗體APP文件里代碼:SetDialogBkColor(RGB(200,223,200),RGB(0,0,255));
五:CAddressDlg::OnClose()
這個函數(shù)里面有KillTimer(0).六:連接數(shù)據(jù)庫,m_recordset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);//從數(shù)據(jù)庫中查找,輸入的密碼是否正確
七:當(dāng)控件在類向?qū)Ю餂]有顯示其ID號時,將其屬性里的組勾選即可~
說明:這里跟三不同
八:不能訪問類查看信息文件 解決辦法
解決辦法為:刪除掉目錄中clw及ncb文件,再打開,就可以了。
九:當(dāng)單擊右鍵沒看到“Add Windows Message Handler”時,更換.clw/.ncb文件即可
十:單步調(diào)試到RefreshData()時總是出現(xiàn)“FROM 語法錯誤”
解決辦法:完成MainDlg()里面的顯示工作區(qū)表格的代碼后,這個問題沒有了。
十一:Visual Assist X這是一個軟件,可以幫助C++有個更友好的顯示界面。
十二:實現(xiàn)窗體的伸縮功能:
OnRadioSearch();SizeWindow();
十三:Address工程里,當(dāng)點擊右邊修改記錄時,會出現(xiàn)系統(tǒng)報錯
解決辦法:
對修改記錄所需彈出的窗口進(jìn)行完整,像在類向?qū)Ю锩嫣砑犹幚砀鞣N消息的函數(shù)
十四:AboutDlg彈出窗口設(shè)計一直說AboutDlg
最后新建了一個CAboutdlg1,并修改源代碼,最后功能實現(xiàn)了
初步查找原因:元工程里面缺少的類CAboutDlg定義在AddressDlg.cpp里面,這才是原因,CAboutDlg應(yīng)該需要定在Aboutdlg.h里面才行~
嗯!驗證了,就是這個原因。
其實沒有這么復(fù)雜:只要按照錯誤的提示建立自己的類啊、頭文件啊、CPP文件就好了~~~
十五:AddInfo窗體錄入數(shù)據(jù)出錯:說“姓名一定要填寫!然后出現(xiàn)系統(tǒng)錯誤”解決辦法:
一下兩個地方的 // NOTE: the ClassWizard will add member initialization here需要填寫?。。?/p>
1.CAddInfoDlg::CAddInfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAddInfoDlg::IDD, pParent)
2.void CAddInfoDlg::DoDataExchange(CDataExchange* pDX)
這里如果缺少1,會出現(xiàn)下面的系統(tǒng)錯誤:
由于將在索引、主關(guān)鍵字、或關(guān)系中創(chuàng)建重復(fù)的值,請求對表的改變沒有成功。改變該字段中的或包含重復(fù)數(shù)據(jù)的字段中的數(shù)據(jù),刪除索引或重新定義索引以允許重復(fù)的值并再試一次。
十六:模糊查詢及精確查詢均用不了:都顯示“請輸入關(guān)鍵字”
在差錯過程中完整如下代碼后出現(xiàn)系統(tǒng)錯誤
BOOL CMainDlg::PreTranslateMessage(MSG* pMsg)
十七:組合框設(shè)置默認(rèn)值實現(xiàn)不了~
可實現(xiàn)的方法(但是在我的程序里沒用!)
//默認(rèn)“姓名”項被選中
m_ctrlfield.SetCurSel(0);
成功實現(xiàn),關(guān)鍵:將SetCurSel()函數(shù)放在AddString()后面就可以了
十八:當(dāng)加入DoDataExchange(CDataExchange* pDX)時中的代碼時,運(yùn)行報系統(tǒng)錯誤,編譯沒問題,已移植問題文件夾~
相關(guān)發(fā)現(xiàn):在定義整形變量時有一種整形變量的description是:
int with validation(FOREIGN VALIABLE)這種變量的定義方法是
在DoDataExchange()函數(shù)中使用如下語句:
DDX_FieldText(pDX, IDC_CATNUM, m_pSet2->m_cat, m_pSet2);
當(dāng)在CTestDBDoc.h文件中申明CMyRSet m_MyRSet;后便可以定義上述變量。
十八_2: DDX_FieldText()不知道怎么產(chǎn)生;
十九:ADOTest窗口彈不出來
解決方法:在建立MFC工程的時候?qū)⑦x項里的Base類由CView改為CFormView
二十:如何定義_ConnectionPtr型變量
在stdafx.h文件中加入代碼:#import “c:program filescommon filessystemadomsado15.dll” no_namespace rename(“EOF”,“adoEOF”)
見博客:#post
二十一:當(dāng)寫到try{}是出現(xiàn)錯誤
解決方法:在后面添加catch{}代碼,因為try與catch對應(yīng)__try與__finally;try模塊后面要跟上catch
二十二:ADOTest連接數(shù)據(jù)庫失敗
原因:ADOTest1.cpp中
hr = m_pConnection->Open(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb”,“",”",adModeUnknown);///連接數(shù)據(jù)庫
數(shù)據(jù)庫test.mdb沒有建立。
二十三:ADOTest刪除按鍵為灰色框扭按不下去。無語了:原來是沒有選中要被刪除的選項
不過要將OnItemchangedUserlist()中的代碼添加完全
二十四:Address的Login對話框類中的消息處理函數(shù)WM_Close有什么用WM_CLOSE是可選的,可以給你一個機(jī)會決定關(guān)不關(guān)
WM_DESTROY你沒有得選擇,因為DestroyWindow已經(jīng)調(diào)用,窗口已經(jīng)開始銷毀。
二十五:使用CDataBase類定義對象時出現(xiàn)問題,原因是沒有定義這個類在添加CPersonSet類后問題很多很多:有26個此類錯誤
見“一”
二十六:出現(xiàn)如:'m_database' : is not a member of 'CAddInfoDlg'的錯誤提示時應(yīng)在CAddInfoDlg中定義m_database量
二十七:點擊查詢后沒有反應(yīng),不管精確查詢還是模糊查詢
原來是OnRadio1()中的 m_bsearchflag沒有賦值
第四篇:C++程序設(shè)計實習(xí)報告
目錄
一、實習(xí)內(nèi)容…………………………………………………………………………1
二、設(shè)計思路…………………………………………………………………………2
三、程序清單…………………………………………………………………………3
四、運(yùn)行結(jié)果…………………………………………………………………………15
五、程序使用說明……………………………………………………………………20
六、總結(jié)及心得體會…………………………………………………………………21
課程設(shè)計的題目:《小型公司工資管理系統(tǒng)》設(shè)計
設(shè)計說明:公司主要有四類人員:經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。程序要求存儲這些人的職工號、姓名、月工資、年齡、性別等信息。并且應(yīng)用程序中要求給出菜單,用于選擇各項功能。
一、程序要求實現(xiàn)的功能即菜單目錄有:
1、數(shù)據(jù)輸入:輸入各種數(shù)據(jù);
2、數(shù)據(jù)統(tǒng)計:統(tǒng)計各銷售經(jīng)理下屬銷售員的銷售額及銷售額之和;銷售經(jīng)理工資進(jìn)行冒泡排序;
3、數(shù)據(jù)打印:打印各類員工的數(shù)據(jù)信息;
4、數(shù)據(jù)備份:把各類員工的數(shù)據(jù)信息寫入文件中保存;
5、退出:退出本系統(tǒng),即結(jié)束程序的運(yùn)行。
二、工資的計算方法
A:經(jīng)理:固定月薪為8000元;B:技術(shù)員:工作時間*小時工資(100元/小時);C:銷售員:銷售額* 4%提成;D:銷售經(jīng)理:底薪(5000)+所轄部門銷售額總額* 0.5%。
三、類的層次結(jié)構(gòu)大體如下
雇員類
↑
技術(shù)員類
經(jīng)理類
銷售員類
↓ 銷售經(jīng)理類
二、設(shè)計思路
1.(1)首先我們要搞清楚各類之間的繼承關(guān)系,設(shè)置基類employee,其派生類manager,technician,salesman。再以manager類為基類,再派生一個salesmanager類,將各類的數(shù)據(jù)成員設(shè)計成protected,方便派生類對基類的繼承;
(2)在public里編寫數(shù)據(jù)輸入的函數(shù),在主函數(shù)中輸出菜單并定義各類的對象,通過對象來調(diào)用數(shù)據(jù)輸入函數(shù); 2.
(1)在基類employee中補(bǔ)充幾個返回各類數(shù)據(jù)的函數(shù)以用于返回輸入的各類值;
(2)在主函數(shù)內(nèi)用冒泡法對銷售經(jīng)理的工資進(jìn)行排序,定義一個wage[]來將各銷售經(jīng)理下面的銷售員的銷售額進(jìn)行儲存,定義一個all用于計算銷售經(jīng)理的銷售總額,以便于下面對其進(jìn)行工資的計算 ;
(3)第2,3,4步都用大量的for循環(huán)進(jìn)行輸出,以實現(xiàn)表格的形成還有表格中數(shù)據(jù)的輸入;在主函數(shù)內(nèi)定義各類的對象,然后都是直接通過類的對象調(diào)用類內(nèi)的函數(shù),運(yùn)用for循環(huán)進(jìn)行打印,統(tǒng)計; 3.
備份參照課本格式,選擇路徑及格式,運(yùn)用for循環(huán)備份;就是那個fstream之類的東西;、退出系統(tǒng)用exit(5)函數(shù)實現(xiàn);
4.主函數(shù)運(yùn)用switch語句,將上述功能編為case 1~5,每個case后添加break;5.程序結(jié)束。
以上是我所認(rèn)為的該程序的幾個要點…………………………………..三、程序清單
#include
//基類,雇傭者 { protected:
string name;char sex;int age;public:
virtual void display()
{
cout<<“其姓名:”;
cin>>name;cout<<“性別(m/w):”;cin>>sex;cout<<“年齡:”;
cin>>age;} string nam(){return name;} char se(){return sex;} int ag(){return age;} };
// class technician: public employee
//技術(shù)員類 { public:
int worktime;int number1;public:
void display1()
{
} int time(){return worktime;} int numb1(){return number1;} cout<<“技術(shù)員的編號:”;cin>>number1;employee::display();cout<<“工作時間”;cin>>worktime;};
// class manager : public employee
//經(jīng)理類 {protected:
int number2;
public:
void display2(){
} int numb2(){return number2;} cout<<“經(jīng)理的編號:”;cin>>number2;employee::display();};
// class salesman : public employee
//銷售員類 { protected:
int total;int boss;int number3;public:
};
//
class salesmanager : public manager
//銷售經(jīng)理類 {protected:
int number4;public: void display4(){ void display3(){
cout<<“銷售員的編號:”;cin>>number3;employee::display();
cout<<“銷售額:”;
} int hismanager(){return boss;} int xiaoshoue(){return total;} int numb3(){return number3;} cin>>total;cout<<“所屬銷售經(jīng)理的編號:”;cin>>boss;
cout<<“銷售經(jīng)理的編號:”;
cin>>number4;
employee::display();} int numb4(){return number4;} };
//
void form(){ cout<<“★★小型公司工資管理系統(tǒng)★★”< 請選擇您所需的操作 │”< 數(shù)據(jù)輸入:1,并按回車鍵 │”< 數(shù)據(jù)統(tǒng)計:2,并按回車鍵 │”< 數(shù)據(jù)打?。?,并按回車鍵 │”< 數(shù)據(jù)備份:4,并按回車鍵 │”< 退出系統(tǒng):5,并按回車鍵 │”< int main(){ int i,j,k,g,m,all,t; char shuzi; int wage[N]; technician t1[N]; //提示表格 manager m1[N]; salesman s1[2*N],s2[2*N]; salesmanager sm1[N],f; for(t=1;;t++){ form();cin>>shuzi;switch(shuzi){ case '1':{ //功能1 for(i=0;i t1[i].display1();cout<<“.......................................”< for(i=0;i m1[i].display2();cout<<“.......................................”< for(i=0;i<2*N;i++) s1[i].display3();cout<<“.......................................”< for(i=0;i sm1[i].display4();cout<<“.......................................”< //功能2 for(i=0;i cout<<“│職工號 │姓名 │銷售額 │”< for(m=0;m<2*N;m++){if(s1[m].hismanager()==sm1[i].numb4()){ wage[i]=wage[i]+0.005*(s1[m].xiaoshoue());all=all+s1[m].xiaoshoue(); cout<<“├─────┼────┼─────┤”< cout<<“├─────┼────┴─────┤”< cout<<“│銷售額總計│”< for(j=0;j for(k=0;k if(wage[k] //冒泡 wage[k]=wage[k+1];wage[k+1]=t;f=sm1[k];sm1[k]=sm1[k+1];sm1[k+1]=f;} cout<<“銷售經(jīng)理按工資排序為:”< │姓名 │性別 │年齡 │工資 │”< │ ”< │”< break; //功能3 case '3': cout<<“請等待............”< cout<<“┌─────┬────┬────┬────┬────┐”< cout<<“│職工號 │姓名 │性別 │年齡 │工資 │”< for(i=0;i │ ”< │”< cout<<”.......................................................“< cout<<”┌─────┬────┬────┬────┬────┐“< cout<<”│職工號 │姓名 │性別 │年齡 │工資 │“< for(i=0;i │ “< │“< } cout<<”└─────┴────┴────┴────┴────┘“< //經(jīng)理表 cout<<”.......................................................“< cout<<”┌─────┬────┬────┬────┬────┐“< cout<<”│職工號 │姓名 │性別 │年齡 │工資 │“< for(g=0;g cout<<”├─────┼────┼────┼────┼────┤“< cout<<” │ “< “< ││“< cout<<”└─────┴────┴────┴────┴────┘“< //銷售經(jīng)理表 cout<<”銷售員“< cout<<”┌─────┬────┬────┬────┬────┬────────┐“< cout<<”│職工號 │姓名 │性別 │年齡 │工資 │所屬部門經(jīng)理編號│“< for(i=0;i<(2*N);i++){ cout<<”├─────┼────┼────┼────┼────┼────────┤“< │ “< │“< ────────┘“< //經(jīng)理表 cout<<”...............................................................................“< break;case '4': cout<<”數(shù)據(jù)備份“< outfile.open(”E:sjq.txt“,ios::in|ios::out|ios::trunc); outfile<<”技術(shù)員“< outfile<<”┌─────┬────┬────┬────┬────┐“< outfile<<”│職工號 │姓名 │性別 │年齡 │工資 │“< for(i=0;i │ “< │“< outfile<<”.......................................................“< outfile<<”┌─────┬────┬────┬────┬────┐“< outfile<<”│職工號 │姓名 │性別 │年齡 │工資 │“< for(i=0;i │ │ “< “< ││“< } outfile<<”└─────┴────┴────┴────┴────┘“< //經(jīng)理表 outfile<<”.......................................................“< outfile<<”┌─────┬────┬────┬────┬────┐“< outfile<<”│職工號 │姓名 │性別 │年齡 │工資 │“< for(g=0;g { outfile<<”├─────┼────┼────┼────┼────┤“< outfile<<” │ “< “< ││“< outfile<<”└─────┴────┴────┴────┴────┘“< //銷售經(jīng)理表 outfile<<”銷售員“< outfile<<”┌─────┬────┬────┬────┬────┬────────┐“< outfile<<”│職工號 │姓名 │性別 │年齡 │工資 │所屬部門經(jīng)理編號│“< for(i=0;i<(2*N);i++){ outfile<<”├─────┼────┼────┼────┼────┼────────┤“< │ “< │“< ┴────────┘“< //經(jīng)理表 outfile<<”...............................................................................“< case '5':cout<<”確定退出系統(tǒng)嗎?“< cout<<”是:1,否:2“< default :cout<<”error"< } return 0;} } 四、運(yùn)行結(jié)果 數(shù)據(jù)備份內(nèi)容…………………………………………….1.從鍵盤輸入1,按回車鍵,可進(jìn)行各類數(shù)據(jù)的輸入,此步驟必須執(zhí)行; 2.從鍵盤輸入2,按回車鍵,即可進(jìn)行數(shù)據(jù)統(tǒng)計,得到統(tǒng)計列表; 3.從鍵盤輸入3,按回車鍵,可打印出各類成員的基本信息; 4.從鍵盤輸入4,按回車鍵,可進(jìn)行數(shù)據(jù)備份; 5.從鍵盤輸入5,按回車鍵,出現(xiàn)提示信息,若退出系統(tǒng)輸入1否則輸入2。 六、總結(jié)及心得體會 從9月2號,我們開始了為期一周的C++程序設(shè)計實習(xí)——《小型工資管理系統(tǒng)》,每天下午去機(jī)房調(diào)試程序,上午編寫下一天的程序代碼。 剛開始的時候,腦袋里一點思路都沒有,因為以前沒有接觸過這么大的程序。所以剛開始的時候,心里只有一個字能形容就是怕。怕自己便不好,怕這門課程完成不了,很多很多。去做一件事情,最忌諱的就是這一點。失敗者和成功者最大的區(qū)別就是面對困難時的心態(tài),我深知這一點。所以,我沉下心來思考了很多。做一個程序,最重要的就是大體思路,得有全局的思考,我承認(rèn),這一點我做的不是很好,因為我第2天的程序做了大改動,也許是我基本功不扎實,但是我所能想到的就是大改動了,可能有其他簡便的方法,所以這對于我而言,是一個重大的警告。在第二天的晚上,我花了一晚的時間來重新整理思路,以防止在接下來的幾天里再出現(xiàn)那樣的錯誤,那就很讓人糾結(jié)了。第1天時完成數(shù)據(jù)的輸入以及類的設(shè)計。這個還不是很難,就是定義一個基類employee,然后派生下來幾個子類。然后在類內(nèi)編寫返回值的函數(shù),以及數(shù)據(jù)輸入的函數(shù)等等,數(shù)據(jù)成員都設(shè)置成protected。在類外在編幾個數(shù)組,用來調(diào)用類內(nèi)函數(shù)。 第2天是完成數(shù)據(jù)統(tǒng)計,排序功能。排序的話用冒泡法,用數(shù)組進(jìn)行數(shù)據(jù)的排序。但是問題出現(xiàn)了,第一天我是把輸入功能獨立變成一個void函數(shù)在主函數(shù)前面的,但是我發(fā)現(xiàn)數(shù)據(jù)無法存儲下來。所以第2天我就把第一步的內(nèi)容全改了,搬到了類內(nèi),這樣才解決了問題。 第三天時完成數(shù)據(jù)的輸出顯示,這個地方的難點就是設(shè)計表格,這個就涉及到了那個輸入內(nèi)容寬度的設(shè)計,以及制表鍵盤的。然后數(shù)據(jù)的輸出就是在主函數(shù)內(nèi)定義類對象數(shù)組,以此來實現(xiàn)數(shù)據(jù)的調(diào)用。 然后剩下的就是備份以及推出功能的實現(xiàn)了。這些都是在網(wǎng)上查了相關(guān)資料然后學(xué)會如何編寫的,剛開始覺得很深奧,學(xué)了之后,就覺得,嗯,還行。所以其他的任務(wù)在半天內(nèi)就完成了??粗约壕幊龅某绦?,真心覺得一切都值了,很有成就感的樣子,我想這就是編程員的歡喜吧。整個實習(xí)過程讓我明白了幾點: 1.設(shè)計一個程序時需要從整體考慮,不能分散到最后結(jié)合不到一起; 2.有些貌似簡單的功能的實現(xiàn)其程序?qū)崿F(xiàn)不一定簡單,但也不能畏首畏尾,不敢嘗試,要勇于挑戰(zhàn)自己,相信自己一定可以; 3. 1.需要具有刻苦鉆研的精神,注意總結(jié),遇到問題認(rèn)真思考,力求得到結(jié)果; 2.同時也不能忽略團(tuán)隊的力量,遇到實在個人解決不了的問題可以通過與同學(xué)商量解決,并且結(jié)合別人和自己的觀點,從多方面考慮,在眾多方案中找出最優(yōu)化的; 3.遇到一些問題時要有耐心進(jìn)行更正,因為可能有時候一個很小的錯誤會導(dǎo)致整個程序運(yùn)行失常。 我感覺這一周的實習(xí)非常充實,謝謝這一周給我指導(dǎo)的老師,以及各位同學(xué)的陪伴。 #include { public: int get1();string get2();char get3();int get4();protected: int num,age; string name;double pay;char sex;};int employee::get1(){return num;} string employee::get2(){return name;} char employee::get3(){return sex;} int employee::get4(){return age;} class technician:public employee { protected: int hour;public: void display1(){cout<<“技術(shù)員編號:”;cin>>num; cout<<“技術(shù)員姓名:”;cin>>name;cout<<“技術(shù)員年齡:”;cin>>age; cout<<“技術(shù)員性別(m/w):”;cin>>sex;cout<<“技術(shù)員工作時間:”;cin>>hour; } double get_pay();int get_time();};double technician::get_pay(){ pay=100*hour;return pay;} int technician::get_time(){return hour;} class manager:public employee {public: void display2(){ cout<<“經(jīng)理編號:”;cin>>num; cout<<“經(jīng)理姓名:”;cin>>name; cout<<“經(jīng)理性別(m/w):”;cin>>sex; cout<<“經(jīng)理年齡:”;cin>>age; } double get_pay(){pay=8000;return pay;} };class salesman:public employee { protected: int number;double sales_volume;public: void display3(){cout<<“銷售員編號:”;cin>>num; cout<<“銷售員姓名:”;cin>>name; cout<<“銷售員性別(m/w):”;cin>>sex; cout<<“銷售員年齡:”;cin>>age; cout<<“銷售員的銷售額:”;cin>>sales_volume; cout<<“所屬銷售經(jīng)理的編號:”;cin>>number; } int numb(){return number;} double sa(){return sales_volume;} double get_pay(){return sales_volume*0.04;} };class salesmanager:public manager { public: void display4(){cout<<“銷售經(jīng)理的編號:”;cin>>num; cout<<“銷售經(jīng)理的姓名:”;cin>>name; cout<<“銷售經(jīng)理的性別(m/w):”;cin>>sex; cout<<“銷售經(jīng)理的年齡:”;cin>>age; } };void excel(){ cout<<“ ★★小型公司工資管理系統(tǒng)★★”< ┌─────────────┐”< │ 請選擇您所需的操作 │”< cout<<“ │ 數(shù)據(jù)輸入:1,并按回車鍵 │ ”< │ 數(shù)據(jù)統(tǒng)計:2,并按回車鍵 │”< cout<<“ │ 數(shù)據(jù)打?。?,并按回車鍵 │”< cout<<“ │ 數(shù)據(jù)備份:4,并按回車鍵 │”< cout<<“ │ 退出系統(tǒng):5,并按回車鍵 │”< cout<<“ └─────────────┘”< void main(){int i,j,x,k,y;char a;double mo[4],mone[4];excel();technician t[4];manager m[4]; salesman s[8]; salesmanager sm[4]; cin>>j;while(j==1||j==2||j==3||j==4||j==5){switch(j){case 1: {for(i=0;i<4;i++){t[i].display1(); cout<<“-------------”< cout<<“-------------”< {s[i].display3(); cout<<“-------------”< {sm[i].display4(); cout<<“-------------”< excel(); cin>>j;} break;case 2: { for(i=0;i<4;i++){cout<<“職工號為”< cout<<“┌─────┬─────┬─────┐”< cout<<“│ 職工號 │ 姓名 │ 銷售額 │”< cout<<“├─────┼─────┼─────┤”< double money=0; for(x=0;x<8;x++) { if(s[x].numb()==sm[i].get1()) { money=money+s[x].sa(); mone[i]=money*0.005+5000; mo[i]=money*0.005+5000; cout<<“│”< cout<<”├─────┼─────┴─────┤“< } } cout<<”│銷售額總計│“< cout<<”└─────┴───────────┘“< cout<<”│ 職工號 │ 姓名 │ 性別 │ 年齡 │ 工資 │“< cout<<”├─────┼─────┼─────┼────┼────┤“< │ break;} case 3: { {cout<<”請等待…“< cout<<”職工基本情況一覽表如下“< cout<<”技術(shù)員“< cout<<”┌────┬────┬────┬────┬────┐“< cout<<”│ 職工號│ 姓名 │ 性別 │ 年齡 │ 工資 │“< for(x=0;x<4;x++) { cout<<”├────┼────┼────┼────┼────┤“< cout<<”│“< } cout<<”└────┴────┴────┴────┴────┘“< cout<<”經(jīng)理“< cout<<”┌────┬────┬────┬────┬────┐“< cout<<”│ 職工號│ 姓名 │ 性別 │ 年齡 │ 工資 │“< for(x=0;x<4;x++) { cout<<”├────┼────┼────┼────┼────┤“<第五篇:中國石油大學(xué)c++程序?qū)嵙?xí)第四天(最后一天)程序