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