



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、程序設(shè)計(jì)基礎(chǔ)實(shí)踐報(bào)告福建師范大學(xué)閩南科技學(xué)院程序設(shè)計(jì)基礎(chǔ)實(shí)踐報(bào)告題目職工工資信息管理系統(tǒng)學(xué)生姓名陳顯澤學(xué)院信息科學(xué)與工程學(xué)院專業(yè)班級(jí)土木工程1班完成時(shí)間 2017.4.20指導(dǎo)教師褚若波 目錄 一、課程設(shè)計(jì)目的和要求.二、課程設(shè)計(jì)基本內(nèi)容.三、程序功能簡(jiǎn)介.四、主體內(nèi)容.4.1 設(shè)計(jì)分析.4.2 程序結(jié)構(gòu).4.3 模塊的功能及程序說明.4.4 相關(guān)模塊源程序.4.5 操作方法(流程).4.6 試驗(yàn)結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果).4.7 設(shè)計(jì)體會(huì).4.8 參考文獻(xiàn).五、用戶使用說明.六、對(duì)本設(shè)計(jì)過程及方法、手段的改進(jìn)建議. 一、課程設(shè)計(jì)的目的和要求 本次課程設(shè)計(jì),是基于“面向?qū)ο缶幊蹋╟+)”課
2、程學(xué)習(xí)內(nèi)容的重要實(shí)踐環(huán)節(jié),其主要目的在于通過綜合程序課程設(shè)計(jì),培養(yǎng)和提高學(xué)生的獨(dú)立分析問題、解決實(shí)際問題的能力和計(jì)算機(jī)語言編程能力。本次課程設(shè)計(jì)時(shí)間為2周,要求每位同學(xué)在為期兩周的時(shí)間段內(nèi),在編程環(huán)境下,用面向?qū)ο蟪绦蛟O(shè)計(jì)思想進(jìn)行c+程序設(shè)計(jì)、功能模塊調(diào)試,在正確、合理的軟件功能規(guī)劃的基礎(chǔ)上,實(shí)現(xiàn)公用接口與私有實(shí)現(xiàn)的分離,獨(dú)立完成相關(guān)設(shè)計(jì)題所規(guī)定的任務(wù)、進(jìn)行課程設(shè)計(jì)報(bào)告編寫與整理。而且也是為了培養(yǎng)從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高從別人經(jīng)驗(yàn)中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。對(duì)掌握知識(shí)的深度、運(yùn)用理論去處理問題的能力、實(shí)驗(yàn)?zāi)芰?、課程設(shè)計(jì)能力、書面及口頭表達(dá)能力進(jìn)行
3、考核。課程設(shè)計(jì)結(jié)束時(shí),要求進(jìn)行設(shè)計(jì)成果演示(由指導(dǎo)老師驗(yàn)收相關(guān)程序運(yùn)行成果并打分);每人須對(duì)相關(guān)電子文檔進(jìn)行整理上交(包括:程序文件、幫助說明文檔);交課程設(shè)計(jì)報(bào)告一份(紙質(zhì)打印稿)。二、課程設(shè)計(jì)的內(nèi)容設(shè)計(jì)一個(gè)職工信息管理案例,實(shí)現(xiàn)不同類別職工的工資數(shù)據(jù)。職工的種類包括:正式職工和臨時(shí)工。定義一個(gè)基本的職工類,基本信息包括:編號(hào)、姓名、性別、年齡、家庭住址、基本職務(wù)工資。派生出正式職工類,增加的屬性包括:崗位津貼、養(yǎng)老金、住房公積金、所得稅、醫(yī)療保險(xiǎn)、實(shí)發(fā)工資;臨時(shí)工增加的屬性包括:獎(jiǎng)金、所得稅、實(shí)發(fā)工資。1.正式職工:實(shí)發(fā)工資=基本職務(wù)工資+崗位津貼-養(yǎng)老金-住房公積金-所得稅-醫(yī)療保險(xiǎn);2
4、.臨時(shí)工:實(shí)發(fā)工資=基本職務(wù)工資+獎(jiǎng)金-所得稅;基本功能與技術(shù)要求1、數(shù)據(jù)文件管理功能:利用輸入輸出流創(chuàng)建新文件、打開文件、保存文件。2、計(jì)算與統(tǒng)計(jì)功能:采用靜態(tài)數(shù)據(jù)成員與成員函數(shù)完成記錄中相關(guān)數(shù)據(jù)的統(tǒng)計(jì);1)能夠打開已存在的數(shù)據(jù)表文件,對(duì)數(shù)據(jù)表中與某關(guān)鍵字匹配的相關(guān)記錄進(jìn)行數(shù)據(jù)統(tǒng)計(jì)(包括:工資總額、平均值) 2)計(jì)算每個(gè)職工的實(shí)發(fā)工資。 3、記錄管理功能:利用繼承與派生思想創(chuàng)建不同的類;記錄的管理采用鏈表或者指針數(shù)組實(shí)現(xiàn);采用抽象類、虛函數(shù)等實(shí)現(xiàn)對(duì)象與函數(shù)的動(dòng)態(tài)關(guān)聯(lián),體現(xiàn)多態(tài)性。1)輸入添加/插入記錄:利用重載運(yùn)算符“”完成對(duì)任意一條記錄輸入、添加或插入數(shù)據(jù)表中,并保存到數(shù)據(jù)文件中。2)查詢
5、、顯示記錄:能夠打開已存在的數(shù)據(jù)表文件,根據(jù)用戶要求按所給記錄關(guān)鍵字查詢一個(gè)或多個(gè)相關(guān)聯(lián)記錄的各項(xiàng)信息。利用重載運(yùn)算符“3)修改記錄:能夠打開已存在的數(shù)據(jù)表文件,并對(duì)確定的任意記錄進(jìn)行修改,在修改過程中,應(yīng)顯示記錄信息,給出確認(rèn)提示,并對(duì)更新的記錄信息進(jìn)行文件保存。4)刪除記錄:能夠打開已存在的數(shù)據(jù)表文件,可以刪除數(shù)據(jù)表中的任一記錄,要求具備邏輯刪除(具有恢復(fù)功能)和物理刪除功能,并對(duì)新的數(shù)據(jù)表信息進(jìn)行文件保存。三、程序功能簡(jiǎn)介數(shù)據(jù)文件管理功能:利用輸入輸出流創(chuàng)建新文件、打開文件、保存文件。計(jì)算與統(tǒng)計(jì)功能:用靜態(tài)數(shù)據(jù)成員與成員函數(shù)完成記錄中相關(guān)數(shù)據(jù)的統(tǒng)計(jì);記錄管理功能:實(shí)現(xiàn)輸入,插入,刪除,恢
6、復(fù)等功能。四、主體內(nèi)容4.1 設(shè)計(jì)分析設(shè)置基本類staff,并由此派生出正式職工類formal和臨時(shí)工類casual.由于在派生類中都要用到同名的同功能函數(shù),所以在基類中定義了虛函數(shù),以實(shí)現(xiàn)對(duì)象與函數(shù)的動(dòng)態(tài)關(guān)聯(lián)。在整個(gè)程序中定義了三個(gè)函數(shù)string inputnormalinfo(istream &input,string tip, char type);(用于直到輸入正確類型的數(shù)據(jù)才返回)void savetofile(fstream &file,staff *s);(用于保存信息到指定文件)void readfromfile(fstream &file,staff *s);(用于從文件讀
7、取信息), inputnormalinfo函數(shù)用于對(duì)測(cè)試過程中一些由輸入錯(cuò)誤引起的錯(cuò)誤的糾正。 最后在主函數(shù)中用switch語句實(shí)現(xiàn)了對(duì)文件,信息的相關(guān)操作。為了體現(xiàn)c+工程性的特點(diǎn),本程序中的類,函數(shù)單獨(dú)作為頭文件和cpp文件,最后在主程序中調(diào)用即可。即為了實(shí)現(xiàn)面向?qū)ο笾械墓媒杩谂c私有實(shí)現(xiàn)的分離。4.2 程序結(jié)構(gòu) 4.3 各模塊的功能及程序說明 a.函數(shù)模塊(作為三個(gè)頭文件)string inputnormalinfo(istream &input,string tip, char type);用于直到輸入正確類型的數(shù)據(jù)才返回。執(zhí)行過程中用戶可能會(huì)由于不小心輸入錯(cuò)誤,而是系統(tǒng)終止運(yùn)行,系統(tǒng)
8、就會(huì)出錯(cuò)。用這個(gè)函數(shù)檢查用戶的輸入是否正確,提高程序的可行性。void savetofile(fstream &file,staff *s);用于保存信息到指定文件。此函數(shù)執(zhí)行對(duì)職工數(shù)據(jù)的保存。void readfromfile(fstream &file,staff *s); 用于從文件讀取信息。b.主函數(shù)模塊(作為最終的主程序)創(chuàng)建主菜單界面,以供用戶選擇。用switch語句和鏈表實(shí)現(xiàn)相關(guān)操作。職工信息文件模塊:case 1:(新建)case 2:(打開)case 3:(保存)case 4:(另存為)職工信息輸入模塊:case 5:(輸入信息)職工信息插入模塊:case 6:(插入信息)職
9、工信息顯示模塊:case 7:(顯示信息)職工信息查詢模塊: case 8:(查詢信息)職工信息統(tǒng)計(jì)關(guān)鍵字模塊: case 9:(統(tǒng)計(jì)關(guān)鍵字(工資總額,平均值))職工信息刪除模塊: case a:(刪除信息)職工信息恢復(fù)模塊:case b:(恢復(fù)信息)退出系統(tǒng)模塊:case q:(退出程序)c.類模塊(每個(gè)類作為一個(gè)頭文件,類的函數(shù)作為cpp文件)staff基本職工類:class staff定義了職工的基本信息,數(shù)據(jù)包括編號(hào),姓名,年齡等。設(shè)置輸入輸出重載友元函數(shù),計(jì)算工資的虛函數(shù)。formal正式職工類:class formal:public class staff增加正式職工的其他數(shù)據(jù),比
10、如保險(xiǎn)之類的。明確定義計(jì)算工資函數(shù)casual臨時(shí)工類:class casual:public class staff增加臨時(shí)工的附加信息。明確定義計(jì)算工資函數(shù)。 4.4 相關(guān)模塊源程序 a.函數(shù)模塊inputnormalinfo函數(shù)cpp文件源程序#includestaff.h#includeformal.h#includecasual.hstring inputnormalinfo(istream &input, string tip, char type) /用于直到輸入正確類型的數(shù)據(jù)才返回string str; /臨時(shí)變量while (1)bool wrong = false; /記錄
11、是否輸入錯(cuò)誤cout if (int = type)cout else if (decimal = type)cout cout.put(:);getline(input, str);if (int = type) /整數(shù)for (auto iter = str.cbegin(); iter != str.cend(); iter+) /使用迭代器檢查是否輸入的都是整數(shù)if (!isdigit(*iter) /不是數(shù)字wrong = true;break; else if (decimal = type) /小數(shù)bool point = false; /記錄是否已經(jīng)讀取到小數(shù)點(diǎn)for (aut
12、o iter = str.cbegin(); iter != str.cend(); iter+) /使用迭代器檢查是否輸入的是小數(shù)if (!isdigit(*iter) /不是數(shù)字if (. = *iter & !point) /第一次讀取到小數(shù)點(diǎn)point = true; /已經(jīng)讀取小數(shù)點(diǎn)continue;/否則輸入錯(cuò)誤wrong = true;break;/判斷輸入是否錯(cuò)誤if (!wrong)return str;savetofile函數(shù)cpp文件源程序#includestaff.h #includecasual.h void savetofile(fstream &file, sta
13、ff *s) /用于保存信息到指定文件if (&file = &cout)staff *p = s;while (p)cout p = p-next;elsefstream temp;temp.open(path, ios:out);staff *p = s;while (p)temp p = p-next;temp.close();readfromfile函數(shù)cpp文件源程序#includestaff.h#includeformal.h void readfromfile(fstream &file, staff *s) /用于從文件讀取信息 file.seekg(0, ios:beg);i
14、f (*s) /如果已有信息delete *s;*s = null;string input; /記錄讀取到的一行staff *p = null;staff *tail = null; /記錄鏈表尾部do /讀取標(biāo)題getline(file, input);if (-正式工- = input)p = new formal;else if (-臨時(shí)工- = input)p = new casual;elsecontinue;file *p;/清除多余的信息if (!*s) /第一次讀入tail = *s = p;elsetail = tail-next = p; while (file.good();file.clear(); b.主函數(shù)模塊cpp文件源程序/ 職工工資信息系統(tǒng).cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。#include stdafx.h#include#include#include#includeformal.h#includestaff.h#includecasual.hfstream file; /文件流string
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)門前硬化施工方案
- 工地項(xiàng)目草坪施工方案
- 架空線施工方案
- 杭州灣大橋 施工方案
- 板房墻面翻新施工方案
- 爬架專項(xiàng)施工方案
- 筒易 施工方案
- 民國(guó)風(fēng)建筑施工方案
- 2025年度車貸抵押貸款合同保密條款
- 二零二五年度股份協(xié)議書:股權(quán)分紅與收益分配
- 《創(chuàng)傷失血性休克中國(guó)急診專家共識(shí)(2023)》解讀課件
- 2024年全國(guó)體育單招英語考卷和答案
- 河北省邯鄲市磁縣2024屆中考數(shù)學(xué)模試卷含解析
- 2024上海市高三英語一模各區(qū)《完形填空》分類匯編
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考?xì)v史試卷(5年真題+答案解析)
- 企業(yè)解散清算公告模板
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)帶答案
- GB/T 43977-2024電子氣體八氟環(huán)丁烷
- (人衛(wèi)版第九版第十六章種植義齒)課件全新
- 2024年廊坊市財(cái)信投資集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 以案促改整改方案整改目標(biāo)
評(píng)論
0/150
提交評(píng)論