C語言課程設(shè)計(jì)工資管理系統(tǒng).doc
《C語言課程設(shè)計(jì)工資管理系統(tǒng).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語言課程設(shè)計(jì)工資管理系統(tǒng).doc(58頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 東北大學(xué)信息科學(xué)與工程學(xué)院 程序?qū)嵺`報(bào)告 題目 工資管理系統(tǒng) 課題組長(zhǎng) 劉誠(chéng)陽 課題組成員 張鵬舉 于文鑫 專業(yè)名稱 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí) 計(jì)算機(jī)1405 指導(dǎo)教師 張曉紅 2015 年 4月 目錄 1.課題概述 - 3 - 1.1課題任務(wù):工資管理系統(tǒng) - 3 - 1.2課題原理 - 3 - 1.3 課題實(shí)踐目的 - 3 - 1.4 相關(guān)知識(shí) - 4 - 2.需求分析 - 4 - 2.1課題調(diào)研 - 4 - 2.2用戶需求分析 - 5 - 3.方案設(shè)計(jì) - 5 - 3.1總體功能設(shè)計(jì) - 5 -
2、3.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) - 6 - 3.3函數(shù)原型設(shè)計(jì) - 7 - 3.4主算法設(shè)計(jì) - 12 - 3.5用戶界面設(shè)計(jì) - 13 - 3.6程序特色設(shè)計(jì) - 13 - 4.方案實(shí)踐 - 14 - 4.1開發(fā)環(huán)境與工具 - 14 - 4.2程序設(shè)計(jì)關(guān)鍵技術(shù) - 14 - 4.3個(gè)人設(shè)計(jì)實(shí)現(xiàn) - 14 - 4.3.1劉誠(chéng)陽設(shè)計(jì)實(shí)現(xiàn) - 14 - 4.3.2張鵬舉設(shè)計(jì)實(shí)現(xiàn) - 22 - 4.3.3于文鑫設(shè)計(jì)實(shí)現(xiàn) 25 5.測(cè)試與調(diào)試 27 5.1個(gè)人測(cè)試 27 5.1.1劉誠(chéng)陽測(cè)試 27 5.1.2張鵬舉測(cè)試 37 5.1.3于文鑫測(cè)試 42 5.2組裝與系統(tǒng)測(cè)試 46
3、 5.3系統(tǒng)運(yùn)行 49 6. 課題總結(jié) 50 6.1課題評(píng)價(jià) 50 6.2團(tuán)隊(duì)協(xié)作 50 6.3個(gè)人設(shè)計(jì)小結(jié) 51 6.3.1劉誠(chéng)陽設(shè)計(jì)小結(jié) 51 6.3.2張鵬舉設(shè)計(jì)小結(jié) 52 6.3.3于文鑫設(shè)計(jì)小結(jié) 52 6.4參考資料 53 7.附錄A和附錄B 54 附錄A 課題任務(wù)分工 54 A-1 課題程序設(shè)計(jì)分工 54 A-2 課題報(bào)告分工 55 附錄B 課題設(shè)計(jì)文檔 56 1.課題概述 1.1課題任務(wù):工資管理系統(tǒng) 1) 以結(jié)構(gòu)體/共用體設(shè)計(jì)數(shù)據(jù)的結(jié)構(gòu),采用動(dòng)態(tài)鏈表、文件存儲(chǔ)方式,結(jié)構(gòu)化、模塊化程序設(shè)計(jì)方法,設(shè)計(jì)一個(gè)功能完善的系統(tǒng)
4、 ,要有功能菜單。 2) 本系統(tǒng)應(yīng)具有數(shù)據(jù)維護(hù)(包括數(shù)據(jù)錄入、添加、修改、刪除),數(shù)據(jù)查詢(可按 編號(hào)、姓名、基本工資、崗位工資、績(jī)效工資 、房改補(bǔ)助、獎(jiǎng)勵(lì)、應(yīng)發(fā)工資、公積金、扣稅、實(shí)發(fā)工資等進(jìn)行查詢,也可進(jìn)行組合查詢),排序,統(tǒng)計(jì),輸出,系統(tǒng)維護(hù)(包括數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)、口令維護(hù)),幫助,退出等功能。 3) 本系統(tǒng)要有通用性、界面美觀、操作方便。要考慮系統(tǒng)安全。 4) 可增加其他有用的功能。 1.2課題原理 1) 利用結(jié)構(gòu)體的數(shù)據(jù)結(jié)構(gòu),采用動(dòng)態(tài)鏈表,實(shí)現(xiàn)對(duì)數(shù)據(jù)的即時(shí)增刪。 2) 使用文件存儲(chǔ)方式,對(duì)數(shù)據(jù)進(jìn)行有效的存取。 3) 采用結(jié)構(gòu)化、模塊化的設(shè)計(jì)方式,每個(gè).C文件僅包含一個(gè)
5、或一類函數(shù),實(shí)現(xiàn)模塊化的設(shè)計(jì)開發(fā)模式。 4) 使用C語言的順序、選擇、循環(huán)三種基本語句,實(shí)現(xiàn)函數(shù)所需功能。 5) 運(yùn)用函數(shù)定義、聲明和調(diào)用等基本知識(shí),實(shí)現(xiàn)數(shù)值、地址的傳遞,進(jìn)行數(shù)據(jù)計(jì)算。 6) 運(yùn)用C語言獨(dú)特的指針功能,對(duì)數(shù)據(jù)地址進(jìn)行處理,實(shí)現(xiàn)相應(yīng)操作。 1.3 課題實(shí)踐目的 1) 通過程序?qū)嵺`,強(qiáng)化計(jì)算機(jī)應(yīng)用技能,驗(yàn)證、鞏固和充實(shí)所學(xué)的理論知識(shí),加深對(duì)相關(guān)內(nèi)容的理解,拓寬知識(shí)面,培養(yǎng)創(chuàng)新精神和實(shí)踐能力。 2) 進(jìn)一步掌握C的數(shù)據(jù)類型、基本結(jié)構(gòu)、結(jié)構(gòu)體、文件、鏈表、結(jié)構(gòu)化、模塊化設(shè)計(jì)等知識(shí)點(diǎn)。 3) 進(jìn)一步熟悉基本流程控制結(jié)構(gòu)——實(shí)現(xiàn)分支的if…else語句、switch語句和
6、實(shí)現(xiàn)循環(huán)的for、while…、do…while語句、break、continue等。 4) 掌握C語言程序設(shè)計(jì)的基本思想,了解簡(jiǎn)單的系統(tǒng)分析和了解數(shù)據(jù)庫(kù)系統(tǒng)的理論。 5) 掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的基本方法,熟悉數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟。 6) 進(jìn)一步鞏固、加深所學(xué)專業(yè)課程《C語言程序設(shè)計(jì)》的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)綜合分析問題,解決問題的能力。 7) 利用所學(xué)知識(shí),開發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用C語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。 1.4 相關(guān)知識(shí) 1) C語言的數(shù)據(jù)類型、基本結(jié)構(gòu)知識(shí)。 2) 基本流程控制結(jié)構(gòu)——實(shí)現(xiàn)分支的if…else語句、s
7、witch語句和實(shí)現(xiàn)循環(huán)的for、while…、do…while語句、break、continue等。 3) 數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)。 4) 系統(tǒng)分析和數(shù)據(jù)庫(kù)系統(tǒng)的理論及設(shè)計(jì)知識(shí)。 5) 結(jié)構(gòu)體的建立和基本操作。 6) 動(dòng)態(tài)鏈表的建立與基本操作。 7) 文件操作——對(duì)數(shù)據(jù)進(jìn)行輸入和輸出 8) 多文件的項(xiàng)目管理應(yīng)用。 9) 開發(fā)程序所用的結(jié)構(gòu)化、模塊化設(shè)計(jì)等知識(shí)點(diǎn)。 2.需求分析 2.1課題調(diào)研 隨著企業(yè)的快速發(fā)展,企業(yè)規(guī)模越來越大,員工的數(shù)量也越來越多,企業(yè)工資管理更加的復(fù)雜。 工資管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作,工資計(jì)算、發(fā)放、核算的工作量很大,一般不允許出錯(cuò),
8、如果實(shí)行手工操作,每月發(fā)放工資須手工填制大量的表格,這就會(huì)耗費(fèi)工作人員大量的時(shí)間和精力。 通過計(jì)算機(jī)進(jìn)行工資發(fā)放工作,不僅能夠保證工資核算準(zhǔn)確無誤、快速輸出,而且還可以利用計(jì)算機(jī)對(duì)有關(guān)工資的各種信息進(jìn)行統(tǒng)計(jì),服務(wù)于財(cái)務(wù)部門其他方面的核算和財(cái)務(wù)處理。 同時(shí)計(jì)算機(jī)具有著手工管理所無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事工資管理的效率,也是企業(yè)科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。 這就對(duì)企業(yè)工資管理提出了新的要求,用計(jì)算機(jī)管理系統(tǒng)來管理工資已經(jīng)成為目前的趨勢(shì),使用計(jì)算機(jī)可以高速,快捷地完成以上工作。 工資管理系
9、統(tǒng)便是以計(jì)算機(jī)為工具,通過對(duì)工資管理所需的信息管理,不僅把管理人員從繁瑣的數(shù)據(jù)計(jì)算處理中解脫出來,而且優(yōu)化了管理體系,使其高效化,簡(jiǎn)易化,智能化,也提高了透明度和互動(dòng)性。 專門的管理人員可以輕松地通過工資管理系統(tǒng)對(duì)員工的工資進(jìn)行錄入,查看與修改;而且公司高層也可以通過管理員身份了解公司的薪資情況,從而作出一些列財(cái)務(wù)方面的重要決策;普通員工也可以通過自己的用戶名和密碼登陸工資管理系統(tǒng),對(duì)自己每個(gè)月的工資情況進(jìn)行查詢,一目了然,方便快捷。 因此,工資管理系統(tǒng)是各個(gè)企業(yè)部門必不可少的工具,具有很好市場(chǎng)前景與用戶需求。 2.2用戶需求分析 1) 功能需求: 登陸功能,顯示主菜單功能,職工信息
10、輸入、輸出、修改、刪除功能,職工工資查詢、排序、統(tǒng)計(jì)功能,系統(tǒng)備份、還原功能,數(shù)據(jù)初始化功能,幫助,退出等。 2) 性能需求: 此工資管理系統(tǒng)對(duì)工資數(shù)據(jù)精度的錄入、計(jì)算、統(tǒng)計(jì)和儲(chǔ)存能精確到小數(shù)點(diǎn)后一位小數(shù)。當(dāng)用戶向服務(wù)器發(fā)出命令請(qǐng)求(對(duì)數(shù)據(jù)更新處理、工資數(shù)據(jù)的查詢檢索)時(shí),要求系統(tǒng)響應(yīng)時(shí)間不會(huì)超過1秒。 3) 安全需求: 為保障系統(tǒng)數(shù)據(jù)的安全性,系統(tǒng)采用用戶密碼登陸機(jī)制,未授權(quán)者不能進(jìn)入系統(tǒng)。而且登錄人員分為管理員和員工,安全性能通過安全口令得以保證。由于軟件運(yùn)行數(shù)據(jù)放在數(shù)據(jù)庫(kù)中,所以參數(shù)不容易被錯(cuò)改、破壞,萬一參數(shù)受到破壞也不會(huì)影響源程序。 4) 其他需求: 系統(tǒng)提供了完善的數(shù)據(jù)
11、備份與恢復(fù)功能,不會(huì)出現(xiàn)系統(tǒng)崩潰,因此具有較強(qiáng)健壯性。該系統(tǒng)是在Windows7操作系統(tǒng)下運(yùn)行,運(yùn)行可行性是很高的。 5) 約束條件: 硬件環(huán)境:處理器(CPU)Pentium Ⅲ以上;內(nèi)存容量(RAM)256M或更高。軟件環(huán)境:Windows7/8/XP/Vista/2000/98操作系統(tǒng)。 3.方案設(shè)計(jì) 3.1總體功能設(shè)計(jì) 該職工工資管理系統(tǒng)總共分為四大功能和輔助功。 四大功能: 1.工資查詢功能:工資排序、查找、統(tǒng)計(jì) 2數(shù)據(jù)處理功能:工資添加、修改、刪除、輸出到文本文件 3.系統(tǒng)維護(hù)功能:數(shù)據(jù)備份、恢復(fù)、清空,修改參數(shù),修改口令 4.員工編號(hào)登記功能.
12、輔助功能: 1.幫助 2.重選年月 3.切換用戶 4.安全退出 職工工資管理系統(tǒng) 雙入口登陸功能 年月選擇功能 職工工資信息輸入 職工工資信息輸出 職工工資信息添加 計(jì)算 職工工資信息修改 職工工資信息刪除 生成職工工資文本 工資信息排序 工資信息查詢 工資計(jì)算 工資信息統(tǒng)計(jì) 數(shù)據(jù)恢復(fù) 數(shù)據(jù)備份 修改參數(shù) 數(shù)據(jù)清空 修改口令 幫助 重選年月 退出 3.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 分別定義了兩個(gè)結(jié)構(gòu)體,一個(gè)對(duì)員工工資信息進(jìn)行儲(chǔ)存,另外一個(gè)對(duì)員工編號(hào)進(jìn)行登記(只有經(jīng)過管理員登記過的員工才能登陸該系
13、統(tǒng))。并使用動(dòng)態(tài)鏈表的方式對(duì)數(shù)據(jù)進(jìn)行儲(chǔ)存和查找,員工的各類信息會(huì)被以二進(jìn)制的形式寫入文件內(nèi)進(jìn)行保存,系統(tǒng)從文件中以二進(jìn)制形式讀入數(shù)據(jù)。結(jié)構(gòu)體如下: struct person { char num[20]; //編號(hào) char name[20]; //姓名 char sex[10];//性別 int age;//年齡 float postsalary;//崗位工資 float basepay; //基本工資 float meritpay;//績(jī)效工資 float subsidy;//住房補(bǔ)貼 float bonus;//獎(jiǎng)金 float gotpaid;//應(yīng)發(fā)工資
14、float insurance;//社會(huì)保險(xiǎn)公積金 float tax;//稅金 float realpaid; //實(shí)發(fā)工資 struct person *next; }; struct staff { char num[20];//員工登記編號(hào) struct staff *latter; }; 3.3函數(shù)原型設(shè)計(jì) A A.1 鏈表的建立,數(shù)據(jù)輸入、輸出、顯示、添加、修改、刪除函數(shù) 1) struct person *Creat(int n) 建立員工工資信息的鏈表,先通過傳遞的形式參數(shù)n來判斷需要建立多少組數(shù)據(jù),再通過鍵盤輸入生成相應(yīng)數(shù)量的動(dòng)態(tài)鏈表數(shù)據(jù) 2
15、) struct staff *Creat_num(int n) 建立員工登記編號(hào)的鏈表 3) int Creat_number(void) 向*Creat函數(shù)傳遞數(shù)值的函數(shù),即需要錄入幾組數(shù)據(jù) 4) struct person *Input(void) 讀取員工工資信息的函數(shù),從文件中讀取信息并以動(dòng)態(tài)鏈表方式保存到結(jié)構(gòu)體中 5) struct staff *Input_num(void) 讀取員工登記編號(hào)的函數(shù) 6) void Output(struct person *head) 輸出員工工資數(shù)據(jù)到文件 7) void Output_num(struct staff *
16、head) 輸出員工編號(hào)到文件 8) void Output_txt() 生成員工信息的文本文件 9) void Print(void) 將鏈表中員工的工資信息輸出到屏幕上 10) void Print_num(void) 將鏈表中員工的登記編號(hào)輸出到屏幕上 11) int Insert(struct person *head) 員工數(shù)據(jù)添加函數(shù),使用方式:Insert(Creat(Creat_number())),先確定添加數(shù)據(jù)的組數(shù),然后通過動(dòng)態(tài)鏈表添加數(shù)據(jù)到結(jié)構(gòu)體,最后通過該函數(shù)將數(shù)據(jù)加到文件尾部,實(shí)現(xiàn)數(shù)據(jù)添加。 12) int Insert_num(struct s
17、taff *head) 員工編號(hào)添加函數(shù),使用方式同上,用于管理員向系統(tǒng)中登記員工編號(hào),只有登記過的員工才可以登陸該系統(tǒng) 13) int Modify() 修改員工信息函數(shù) 14) int Delete() 刪除員工工資信息的函數(shù) 15) int Delete_num() 刪除員工登記編號(hào)的函數(shù) A.2 數(shù)據(jù)備份、清空、恢復(fù) 1) struct person *Empty(void) 清空該年月份所有員工工資信息數(shù)據(jù)的函數(shù) 2) void Output_b(struct person *head) 員工工資信息備份,輸出信息到自定名稱的文件 3) struct per
18、son *Input_b(void) 系統(tǒng)還原函數(shù),將備份文件中的信息拷貝到以當(dāng)前年月命名的文件中,從而還原上一次備份的數(shù)據(jù) A.3 統(tǒng)計(jì)函數(shù) 1) void Statistics() 員工工資統(tǒng)計(jì)函數(shù),統(tǒng)計(jì)數(shù)據(jù)中所有員工工資的最小值和最大值,并計(jì)算平均數(shù),輸出到屏幕 A.4 輔助函數(shù) 1) int main() 主函數(shù) 2) int Exit() 退出函數(shù),顯示感謝使用該系統(tǒng),并正確結(jié)束運(yùn)行 3) void Choose_month() 管理員登陸時(shí)用來選擇年月份的函數(shù),系統(tǒng)中員工各個(gè)年月份的工資分別保存在以該年月命名的不同文件下,以該函數(shù)判斷系統(tǒng)需要打開哪個(gè)文件。
19、4) void Choose_month_num() 員工登陸時(shí)用來選擇年月份的函數(shù),功能同上,是兩個(gè)不同的登陸口 5) float post(int a) 崗位工資獲取函數(shù),崗位級(jí)別作為參數(shù)傳遞到該函數(shù),該函數(shù)返回對(duì)應(yīng)的崗位工資金額 6) void Return() 返回主菜單的函數(shù) A.5 各類菜單函數(shù) 1) void Defined() 修改參數(shù)菜單 2) void Help() 幫助菜單,提供幫助信息、設(shè)計(jì)人員信息和版本信息 3) void Menu() 管理員的主菜單,內(nèi)含工資查詢,數(shù)據(jù)處理,系統(tǒng)維護(hù),編號(hào)登記,幫助,重選年月,切換用戶,退出等功能選項(xiàng) 4)
20、 void Menu_num() 員工的主菜單 5) void Menu2() 工資查詢菜單,內(nèi)含員工工資查找,工資排序,工資統(tǒng)計(jì)等功能選項(xiàng) 6) void Menu3() 員工工資數(shù)據(jù)處理菜單,內(nèi)含數(shù)據(jù)添加,修改,刪除,輸出等功能選項(xiàng) 7) void Menu4() 系統(tǒng)維護(hù)菜單,內(nèi)含數(shù)據(jù)備份,清空,恢復(fù),修改參數(shù)、口令等功能選項(xiàng) 8) void menu_print_out(void) 輸出數(shù)據(jù)時(shí)顯示在最上面的表頭 9) void Menu_Register() 修改在冊(cè)員工編號(hào)的分菜單 10) void Inquire() 員工工資查找分菜單 11) void
21、 Sort() 排序菜單,內(nèi)含從小到大、從大到小排序的功能選項(xiàng) 12) int Sort_menu_down_up() 排序分菜單——從小到大,內(nèi)含各類排序種類 13) int Sort_menu_up_down() 排序分菜單——從大到小,內(nèi)含各類排序種類 B B.1 登陸判斷函數(shù) 1) void password() 用戶登錄函數(shù),通過輸入的用戶名檢測(cè)該用戶是管理員或者員工還是未登記用戶,從而進(jìn)行不同的登錄方式 B.2 修改參數(shù)、密碼類函數(shù) 1) int ChangePassword() 密碼修改函數(shù),用于修改管理員密碼 2) int ChangePassword
22、_num() 密碼修改函數(shù),用于修改員工密碼 3) float ChangePostsalary() 用于修改初始參數(shù)中的崗位工資參數(shù),將1-5個(gè)崗位級(jí)別分別對(duì)應(yīng)不同的崗位工資 4) float Subsidy_in() 從文件中讀取住房補(bǔ)貼參數(shù) 5) float ChangeSubsidy() 用于修改初始參數(shù)中的住房補(bǔ)貼參數(shù),得到一個(gè)固定的住房補(bǔ)貼金額,數(shù)據(jù)保存到文件 B.3 計(jì)算稅金的函數(shù) 1) float Tax(float a) 計(jì)算稅金的函數(shù),將工資做參數(shù)傳遞進(jìn)去,返回應(yīng)繳稅金金額 C C.1查詢類函數(shù) 1) int Inquire_age() 查詢員工
23、信息函數(shù),以年齡查詢 2) int Inquire_basepay() 查詢員工信息函數(shù),以基本工資查詢 3) int Inquire_bonus() 查詢員工信息函數(shù),以獎(jiǎng)金查詢 4) int Inquire_gotpaid() 查詢員工信息函數(shù),以應(yīng)得工資查詢 5) int Inquire_meritpay() 查詢員工信息函數(shù),以績(jī)效工資查詢 6) int Inquire_name() 查詢員工信息函數(shù),以姓名查詢 7) int Inquire_num() 查詢員工信息函數(shù),以編號(hào)查詢 8) int Inquire_postsalary() 查詢員工信息函數(shù),
24、以崗位工資查詢 9) int Inquire_realpaid() 查詢員工信息函數(shù),以實(shí)發(fā)工資查詢 10) int Inquire_tax() 查詢員工信息函數(shù),以稅金查詢 11) void Inquire_undefined(void) 查詢員工信息函數(shù),編號(hào)、姓名、性別組合查詢 C.2 排序類函數(shù) 1) int Neaten() 數(shù)據(jù)整理,將員工信息按編號(hào)從小到大排列 2) int Neaten_num() 數(shù)據(jù)整理,將登記的員工編號(hào)從小到大排列 3) int Sort_down_up_num() 編號(hào)排序,升序 4) int Sort_down_up_age
25、() 年齡排序,升序 5) int Sort_down_up_basepay() 基本工資排序,升序 6) int Sort_down_up_bonus() 獎(jiǎng)金排序,升序 7) int Sort_down_up_gotpaid() 應(yīng)得工資排序,升序 8) int Sort_down_up_meritpay() 績(jī)效工資排序,升序 9) int Sort_down_up_postsalary() 崗位工資排序,升序 10) int Sort_down_up_realpaid() 實(shí)發(fā)工資排序,升序 11) int Sort_down_up_tax() 稅金排序,
26、升序 12) int Sort_up_down_age() 年齡排序,降序 13) int Sort_up_down_basepay() 基本工資排序,降序 14) int Sort_up_down_bonus() 獎(jiǎng)金排序,降序 15) int Sort_up_down_gotpaid() 應(yīng)得工資排序,降序 16) int Sort_up_down_meritpay() 績(jī)效工資排序,降序 17) int Sort_up_down_num() 編號(hào)排序,降序 18) int Sort_up_down_postsalary() 崗位工資排序,降序 19) int
27、 Sort_up_down_realpaid() 實(shí)發(fā)工資排序,降序 20) int Sort_up_down_tax() 稅金排序,降序 3.4主算法設(shè)計(jì) 用戶登錄 1 開始 年月選擇 5 4 3 2 修改密碼 員工界面 結(jié)束 幫助 管理員界面 1 2 3 4 5 6 7 輸出工資信息 1 2 3 4 工資排序 工資查找 工資統(tǒng)計(jì) 1 2 3 4 8 工資添加 工資整理 工資修改 5 6 工資刪除 生成文本 1 2 3 4 數(shù)據(jù)備份 數(shù)據(jù)恢復(fù) 數(shù)據(jù)清空 5 6 修改參數(shù) 修改口令
28、1 2 3 4 編號(hào)添加 編號(hào)整理 編號(hào)刪除 3.5用戶界面設(shè)計(jì) 1) 兩個(gè)操作界面。根據(jù)登陸人員不同,分為管理員的操作界面和員工的查詢界面,使界面顯示項(xiàng)更加專門化和清晰化。 2) 采用選擇式的功能菜單。屏幕上顯示功能菜單的功能項(xiàng),根據(jù)菜單上提供的數(shù)字按相應(yīng)的鍵去執(zhí)行相應(yīng)的子程序,執(zhí)行后返回功能菜單。 3) 用戶界面采取相同的樣式進(jìn)行設(shè)計(jì),主界面上會(huì)顯示當(dāng)前操作的是哪個(gè)年月的員工工資,菜單的選擇功能利用switch函數(shù)實(shí)現(xiàn)。 4) 通過printf函數(shù)輸出各種裝飾符號(hào),Windows自帶函數(shù)調(diào)節(jié)背景色和字體顏色,以達(dá)到優(yōu)化操作界面的目的。 3.6程序
29、特色設(shè)計(jì) 1) 多入口登陸。分成管理員登陸和員工登陸兩個(gè)入口:管理員登陸之后可以查看全體員工的工資信息,并對(duì)其進(jìn)行增添刪改、排序、備份清空、輸出打印等處理;員工登陸之后只能看到自己的個(gè)人信息和工資情況。極大地保證了管理層和員工層不同的需求,以及個(gè)人信息的安全性。 2) 以文件形式輸入和輸出。程序中所有的數(shù)據(jù)在每次變動(dòng)后都會(huì)通過輸出函數(shù)以二進(jìn)制形式輸出到文件內(nèi),而且每次調(diào)用數(shù)據(jù)時(shí)都是從文件中輸入,從而保證了系統(tǒng)數(shù)據(jù)的可靠性,不易丟失性。 3) 自動(dòng)計(jì)算功能。輸入員工工資信息時(shí)不用輸入全部信息,例如,輸入員工的崗位級(jí)別,即可獲得員工在該崗位應(yīng)得的工資數(shù),員工的應(yīng)得工資、實(shí)發(fā)工資以及應(yīng)該繳納的
30、社會(huì)保險(xiǎn)、公積金和稅金都是通過函數(shù)直接計(jì)算,無需手動(dòng)輸入。 4) 基本參數(shù)的設(shè)置。管理員可以修改崗位級(jí)別所對(duì)應(yīng)的崗位工資金額,從而實(shí)現(xiàn)了程序的靈活性,滿足公司崗位薪資調(diào)整的需求。 5) 員工注冊(cè)功能。只有管理員可以對(duì)員工進(jìn)行注冊(cè)登記,只有經(jīng)過登記的員工才可以使用自己的員工編號(hào)登陸該系統(tǒng),從而防止了外部人員對(duì)公司財(cái)務(wù)情況的獲取。各員工的初始登陸密碼與編號(hào)相同,登陸后可以自行修改密碼,從而保證了個(gè)人信息的安全性。 6) 嚴(yán)密的非法輸入檢測(cè)和糾錯(cuò)功能。程序中任何一個(gè)地方都考慮了非法輸入,以保證程序不會(huì)崩潰或跳出。例如,登陸時(shí)如果輸入錯(cuò)誤用戶名會(huì)得到不存在用戶名的提示,并要求重新輸入;在菜單選擇
31、時(shí),如果輸入的不是數(shù)字編號(hào),而是字母或字母與數(shù)字的組合,系統(tǒng)仍會(huì)提示輸入錯(cuò)誤,請(qǐng)重新輸入,不會(huì)出現(xiàn)崩潰或跳出;當(dāng)在屏幕中輸出數(shù)據(jù)時(shí),如果保存數(shù)據(jù)的文件丟失、不存在,系統(tǒng)會(huì)提示錯(cuò)誤,文件不存在;在程序中沒有任何數(shù)據(jù)的情況下選擇排序、修改、刪除數(shù)據(jù)的功能,會(huì)提示“沒有數(shù)據(jù),無法進(jìn)行操作!”,不會(huì)出現(xiàn)程序崩潰。 7) 工資按月份存取功能。考慮到該系統(tǒng)應(yīng)該可以儲(chǔ)存員工每個(gè)月的工資信息,因此建立多個(gè)以年月份命名的文件,用來儲(chǔ)存不同月份的員工工資,用戶只需要在登陸后輸入相應(yīng)的年月就可以獲取到該年月下的工資信息。 4.方案實(shí)踐 4.1開發(fā)環(huán)境與工具 Windows 7 CodeBlocks
32、 Visual C++ 6.0 4.2程序設(shè)計(jì)關(guān)鍵技術(shù) 1) 建立動(dòng)態(tài)鏈表,通過結(jié)構(gòu)體對(duì)員工信息進(jìn)行管理,包括員工信息的輸入、輸出、添加、修改、刪除和統(tǒng)計(jì)等功能 2) 以文件形式輸入和輸出員工信息 3) 建立管理員和員工兩個(gè)登陸通道,實(shí)現(xiàn)員工工資查詢和管理員對(duì)員工工資管理的分級(jí)機(jī)制 4) 將數(shù)據(jù)儲(chǔ)存在不同月份文件下,實(shí)現(xiàn)工資按月錄入與查詢 5) 員工基本信息和工資錄入后,可以調(diào)用函數(shù)自動(dòng)計(jì)算崗位工資,應(yīng)得工資,應(yīng)繳納稅金,應(yīng)交保險(xiǎn)和公積金,和實(shí)發(fā)工資 6) 查找和排序算法,用來對(duì)數(shù)據(jù)進(jìn)行查找和排序 7) 稅金計(jì)算算法,通過工資計(jì)算出應(yīng)繳納的稅金金額 8) 統(tǒng)計(jì)算法,計(jì)算各組
33、數(shù)據(jù)的最大值、最小值和平均數(shù)據(jù) 9) 登錄系統(tǒng),區(qū)別不同賬號(hào),并且對(duì)用戶密碼進(jìn)行驗(yàn)證 4.3個(gè)人設(shè)計(jì)實(shí)現(xiàn) 4.3.1劉誠(chéng)陽設(shè)計(jì)實(shí)現(xiàn) a) Insert(Creat(Creat_number( ) ) ) 開始 N Y < i? 計(jì)算崗位工資Post(a),稅金Tax(m),應(yīng)發(fā)、實(shí)發(fā)工資 指針指到表頭 指向下一個(gè)節(jié)點(diǎn) 輸入添加數(shù)據(jù)個(gè)數(shù)i 輸入職工信息 調(diào)用Print( ) 顯示信息 Output( )函數(shù)輸出 結(jié)束 b) Print() 開始 N Y (Pt=Input())==NULL? 指
34、向下一個(gè)節(jié)點(diǎn) 提示無數(shù)據(jù)! 結(jié)束 輸出信息到屏幕 c) Output( ) 開始 N Y 無數(shù)據(jù)? 向文件寫入數(shù)據(jù) 指向下一個(gè)節(jié)點(diǎn) 提示存儲(chǔ)失?。? 打開文件讀取當(dāng)前年月,關(guān)閉 結(jié)束 打開以年月命名的文件,寫入 鏈表不為空? N Y d) Input( ) 開始 N Y 存在? 指針指到表頭 結(jié)束 打開文件讀取當(dāng)前年月,關(guān)閉 打開以年月命名的文件 指針未到末尾? Y 內(nèi)容不為空? Y 讀取數(shù)據(jù) 返回表頭指針,關(guān)閉文件 N N e) Delete() 開始 N Y NU
35、LL? Pt2=Pt1->next head=pt1 Output(Pt2),i=1 提示無數(shù)據(jù)! Pt1=Input( ) 結(jié)束 i=1,Print( ) Pt2!=NULL? N Y 輸入刪除編號(hào) Strcmp(Pt1->num,strnum)==0? Y 指針后移 i!=1? Strcmp(Pt2->num,strnum)==0? N Y Pt1->next=Pt2->next Output(head),i=1 N N Y 提示查詢不到! f) Modify() 開始 N Y P==NULL? 計(jì)算崗位工資Post(a)
36、,稅金Tax(m),應(yīng)發(fā)、實(shí)發(fā)工資 提示無數(shù)據(jù)! P=Input( ),i=0 結(jié)束 Print( ) i!=1? N Y 輸入修改編號(hào) Strcmp(P->num,strnum)==0? P!=NULL? Y 無相同編號(hào)修改數(shù)據(jù)! N Y 輸入員工信息 Output( ),i=1 N P=P->next g) Statistics()開始 N Y P==NULL? i=1 i++,sum=sum+money 提示無數(shù)據(jù)! P=Input( ) i=0,sum=0 結(jié)束 P->next==NULL? N Y
37、
P!=NULL?
Y
N
輸出max,min,sum/i
P->money>money
P->money
38、 4.3.2張鵬舉設(shè)計(jì)實(shí)現(xiàn) a) Password() 開始 輸入用戶名并判斷是否為管理員 是 進(jìn)入管理員操作系統(tǒng) 否 讀出文件password并且將它存入數(shù)組key中,并關(guān)閉文件 輸入密碼并存入數(shù)組Password中 判斷密碼是否與數(shù)組password中是否一致 是 否 是 進(jìn)入函數(shù)Welcome和Choose_month 進(jìn)入員工操作系統(tǒng) 定義鏈表指針并指向
39、數(shù)組NUM的第一個(gè)數(shù)據(jù) 判斷數(shù)據(jù)是否與name數(shù)組中數(shù)據(jù)相等 否 不存在該員工編號(hào) 輸入密碼并與Password是否相等 是 是 否 對(duì)不起密碼錯(cuò)誤 57 b) Changepassword( ) 開始 讀取文件password.text 輸入原始密碼password 將文件中的密碼讀取出來并且存入數(shù)組x中 進(jìn)入while循環(huán) 調(diào)用strcmp函數(shù),并且
40、將數(shù)組x與psaaword比較是否相等 是 否 請(qǐng)重新輸入密碼password 輸入新密碼并且存入數(shù)組a中 再次輸入新密碼并且存入數(shù)組b中 調(diào)用strcmp函數(shù)比較數(shù)組a與b是否相等 否 是 重新讀取文件password,并且將數(shù)組a中的密碼存入password中 輸出密碼修改成功 結(jié)束 c) Tax( ) 開始 N Y Salary<=0? Salary=a-3500 結(jié)束 Tax=0
41、
0 42、ary*0.35-5505
4.3.3于文鑫設(shè)計(jì)實(shí)現(xiàn)
a) Inquire_num( )
開始
數(shù)組內(nèi)容有?
輸入編號(hào)
有相同編號(hào)?
N
Y
Y
沒有查詢到數(shù)據(jù)
N
輸出工資信息
沒有數(shù)據(jù),無法進(jìn)行查詢,請(qǐng)先出入員工工資信息
返回Inquire()
結(jié)束
b) Sort_down_up_num()
開始
N
Y
!=NULL?
p-min=p,min=p->next
p-min-> 43、next=min->next
head=Print()
結(jié)束
For循環(huán),p=head,min=head,指針下指,!=NULL?
N
Y
Strcmp<0?
Y
N
first=NULL?
Y
first=min,tail=min
min==head?
Y
head=head->next
N
first!=NULL?
head=first
Output(head)
Print( )
N
tail->next=min
tail=min
N
Y
tail->next=NULL
5.測(cè)試與調(diào)試
5.1個(gè)人測(cè)試
5.1. 44、1劉誠(chéng)陽測(cè)試
1) 主界面
管理人員界面:
員工界面:
2) 非法輸入檢測(cè)
3) 顯示函數(shù),輸出員工工資信息到屏幕
4) 員工工資信息統(tǒng)計(jì)
5) 員工工資信息添加
添加前:
函數(shù)通過崗位級(jí)別自動(dòng)給出相應(yīng)崗位工資,并計(jì)算應(yīng)發(fā)工資,社保&公積金,稅金和實(shí)發(fā)工資,自動(dòng)輸出保存到文件。添加后:
6) 員工工資信息修改
修改前:
修改后:
7) 員工工資信息刪除
刪除前:
刪除后:
8) 輸出員工工資信息到文本文件
輸出前:
輸出后:
9) 數(shù)據(jù)備份、清空與恢復(fù)
對(duì)數(shù)據(jù)進(jìn)行備份:
以二進(jìn)制形式備份成功:
45、
系統(tǒng)中數(shù)據(jù)清空前:
清空數(shù)據(jù):
清空后:
通過之前備份的文件對(duì)系統(tǒng)中數(shù)據(jù)進(jìn)行恢復(fù):
恢復(fù)成功:
5.1.2張鵬舉測(cè)試
1) 登陸測(cè)試
輸入不存在編號(hào),會(huì)提示,并返回登陸界面:
輸入錯(cuò)誤密碼,提示密碼輸入錯(cuò)誤和剩余嘗試次數(shù):
連續(xù)輸錯(cuò)密碼三次,程序結(jié)束運(yùn)行:
輸入正確密碼,成功登陸,進(jìn)入年月選擇界面:
2) 崗位級(jí)別與對(duì)應(yīng)崗位工資修改
3) 住房補(bǔ)貼參數(shù)修改
4) 用戶密碼修改
首先驗(yàn)證原始密碼,密碼錯(cuò)誤系統(tǒng)會(huì)一直提示“原始密碼輸入錯(cuò)誤,請(qǐng)重新輸入”。原始密碼正確后,請(qǐng)輸入新密碼,如兩次新密碼輸入不一致,則會(huì) 46、提示重新輸入第二次密碼,一致后,密碼修改成功。
修改密碼之后再登陸:
使用新密碼登陸成功!
5.1.3于文鑫測(cè)試
1) 員工工資信息排序——從高到低——按編號(hào)
排序之前:
選擇工資信息排序,并選擇從高到低排序:
選擇按編號(hào)排序:
排序之后:
2) 員工工資信息排序——從高到低——按獎(jiǎng)金
3) 員工工資信息查詢
按員工編號(hào)查詢:
按獎(jiǎng)金查詢:
組合模糊查詢——關(guān)鍵字查詢:
5.2組裝與系統(tǒng)測(cè)試
由于之前并沒有進(jìn)行過模塊化的程序設(shè)計(jì),所以剛開始將各個(gè).C文件鏈接時(shí)出現(xiàn)了很多問題。最嚴(yán)重的問題就是在一個(gè).C文件中沒有對(duì)所調(diào)用的 47、另一個(gè).C文件中的函數(shù)進(jìn)行聲明,出現(xiàn)了找不到該函數(shù)的定義,程序各個(gè)模塊無法連接的問題。經(jīng)過查閱課本和資料,建立了一些.H頭文件,并在預(yù)處理中包含這些頭文件,解決了這一問題。
另外一些小的問題也是層出不斷,例如函數(shù)名稱由于疏忽,增加或丟掉了個(gè)別字母,導(dǎo)致前后函數(shù)名不一致,調(diào)用時(shí)候出現(xiàn)錯(cuò)誤,或者出現(xiàn)重復(fù)定義的問題。經(jīng)過細(xì)心仔細(xì)地檢查,解決了這些小的毛病,最終還算順利地實(shí)現(xiàn)了各個(gè)模塊的拼接,程序最終在Windows7平臺(tái)上成功運(yùn)行。
系統(tǒng)測(cè)試記錄
操作名稱
操作流程
操作結(jié)果和輸出
登錄系統(tǒng)
打開登錄頁(yè)面:
1.輸入正確用戶名和正確密碼,登陸;
2.輸入正確用戶名和 48、錯(cuò)誤密碼,登陸;
3.輸入錯(cuò)誤用戶名。
1.成功登陸,從登錄系統(tǒng)到系統(tǒng)信息顯示完成,花費(fèi)2秒時(shí)間,基本滿足了系統(tǒng)顯示要求;
2.提示密碼輸入錯(cuò)誤,請(qǐng)重新輸入,三次輸入錯(cuò)誤后退出系統(tǒng);
3.提示不存在用戶名,請(qǐng)重新輸入。
月份選擇
進(jìn)入選擇界面,輸入年份,回車,月份,回車
進(jìn)入操作主界面,并在上方顯示當(dāng)前年月
全部用戶信息輸出
無需操作,在相應(yīng)選擇下自動(dòng)輸出到屏幕
用列表的方式顯示出了所有的用戶記錄,用時(shí)小于1秒,符合要求。
查詢工資信息
1.選擇查詢方式,例如選擇按編號(hào)查詢,則輸入編號(hào),回車即可;
2.輸入不存在編號(hào);
3.系統(tǒng)中無數(shù)據(jù)時(shí)選擇該功能。
1.用列表的 49、方式顯示出了所有符合的用戶記錄,用時(shí)小于1秒,符合要求;
2.提示查詢不到信息;
3.提示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
工資信息排序
1.選擇排序方式,例如選擇按降序、編號(hào)排序,則選擇降序、按編號(hào)即可;
2.系統(tǒng)中無數(shù)據(jù)時(shí)選擇該功能。
1.用列表的方式顯示出了排序后的所有用戶記錄,用時(shí)小于1秒,符合要求;
2.提示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
工資信息統(tǒng)計(jì)
1.選擇該功能;
2.無數(shù)據(jù)時(shí)選擇該功能。
1.從崗位工資、基本工資、績(jī)效工資、獎(jiǎng)金、應(yīng)發(fā)工資、稅金、實(shí)發(fā)工資等幾個(gè)方面顯示現(xiàn)有數(shù)據(jù)的最小值、最大值和平均值。
2.提示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
數(shù)據(jù)添加
50、
輸入需要添加信息的員工個(gè)數(shù),然后按步驟輸入員工編號(hào)、姓名、性別、年齡、崗位級(jí)別、基本工資和績(jī)效工資
提示數(shù)據(jù)添加成功,并將數(shù)據(jù)寫入文件。
數(shù)據(jù)整理
1.選擇該功能;
2.無數(shù)據(jù)時(shí)選擇該功能。
1.對(duì)數(shù)據(jù)按編號(hào)從小到大排列并輸出到屏幕;
2.提示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
數(shù)據(jù)修改
1.選擇需要修改的員工編號(hào),按步驟輸入員工編號(hào)、姓名、性別、年齡、崗位級(jí)別、基本工資和績(jī)效工資;
2.無數(shù)據(jù)時(shí)選擇該功能。
1.將該員工編號(hào)的員工信息修改后輸出到屏幕,并保存到文件,時(shí)間小于1秒,基本滿足要求;
2.提示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
數(shù)據(jù)刪除
1.輸入需要?jiǎng)h除的員工編 51、號(hào);2.輸入不存在員工編號(hào);3.系統(tǒng)中無數(shù)據(jù)時(shí)選擇該操作。
1.刪除該員工編號(hào)的員工信息,并存儲(chǔ),在屏幕上顯示操作后的全部員工信息;
2.提示系統(tǒng)中沒有需要?jiǎng)h除的數(shù)據(jù);
3.提示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
輸出數(shù)據(jù)到文本文件
1.選擇該功能;
2.無數(shù)據(jù)時(shí)選擇該功能。
1.生成一個(gè)txt文本文件,里面有所有員工的工資信息;
2. 提示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
數(shù)據(jù)備份
選擇該功能
將當(dāng)前數(shù)據(jù)存儲(chǔ)到一個(gè)二進(jìn)制文件中
數(shù)據(jù)清空
選擇該功能
系統(tǒng)中所有數(shù)據(jù)被清空。
數(shù)據(jù)還原
選擇該功能
將備份的信息輸出到屏幕,并存儲(chǔ)到當(dāng)前文件。
修改崗位工資參數(shù)
按步 52、驟輸入崗位工資
將崗位級(jí)別對(duì)應(yīng)的崗位工資存儲(chǔ)到文件
修改住房補(bǔ)貼參數(shù)
輸入新的住房補(bǔ)貼金額
將住房補(bǔ)貼金額存儲(chǔ)到文件
修改管理員或個(gè)人密碼
1.輸入舊密碼,輸入新密碼,再次輸入新密碼;
2.輸入錯(cuò)誤的舊密碼;
3.輸入舊密碼,輸入新密碼,再次輸入不同新密碼。
1.提示密碼修改成功,并存儲(chǔ)到文件;
2.提示密碼錯(cuò)誤,請(qǐng)重新輸入;
3.提示兩次輸入密碼不同,請(qǐng)重新輸入。
員工編號(hào)添加
輸入編號(hào)進(jìn)行添加
編號(hào)添加成功,以列表形式顯示,并存儲(chǔ)在文件中。
員工編號(hào)整理
1.選擇該功能;
2.系統(tǒng)中沒有數(shù)據(jù)時(shí),選擇該功能。
1.將員工編號(hào)從小到大排列,并儲(chǔ)存;
2.提 53、示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
員工編號(hào)刪除
1.選擇該功能,輸入員工編號(hào),回車;
2.輸入不存在員工編號(hào);
3.系統(tǒng)中沒有數(shù)據(jù)時(shí),選擇該功能。
1.刪除該員工編號(hào)的記錄,并存儲(chǔ),在屏幕上顯示操作后的全部員工編號(hào);
2.提示系統(tǒng)中沒有需要?jiǎng)h除的數(shù)據(jù);
3.提示系統(tǒng)中無數(shù)據(jù),無法使用該功能。
重選年月
選擇該功能
返回選擇年月份的界面,用時(shí)小于1秒。
切換用戶
選擇該功能
返回用戶登錄界面,用時(shí)小于1秒。
幫助
選擇該功能
輸出系統(tǒng)功能介紹、制作人名單和產(chǎn)品信息。
個(gè)人信息輸出
無需操作,在相應(yīng)選擇下自動(dòng)輸出到屏幕
輸出個(gè)人的全部信息到屏幕。
5.3系統(tǒng) 54、運(yùn)行
系統(tǒng)可以在Windows平臺(tái)上平穩(wěn)運(yùn)行,各項(xiàng)功能都達(dá)到了預(yù)期效果,界面簡(jiǎn)潔,操作便捷。運(yùn)行過程中不會(huì)出現(xiàn)出錯(cuò)崩潰的情況。
對(duì)于一些需要完善的功能,我們?cè)谶\(yùn)行程序,并進(jìn)行檢測(cè)后,又再一次對(duì)相應(yīng)功能進(jìn)行了完善與增強(qiáng),并對(duì)系統(tǒng)的界面進(jìn)行了精心的布局,調(diào)整了各個(gè)提示語句的輸出位置,使之達(dá)到最好的用戶體驗(yàn)效果。
6. 課題總結(jié)
6.1課題評(píng)價(jià)
工資管理系統(tǒng)對(duì)于公司的管理者和員工來說,都至關(guān)重要,所以工資管理系統(tǒng)應(yīng)該能夠給使用者提供充足的信息和簡(jiǎn)單快速的查詢方法。
使用計(jì)算機(jī)對(duì)工資信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存 55、儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高工資管理的效率,也是科學(xué)化、正規(guī)化管理的重要條件。
本課題就是為了滿足這種需求,實(shí)現(xiàn)公司員工工資的計(jì)算機(jī)化管理。
該工資管理系統(tǒng)經(jīng)過我們整個(gè)設(shè)計(jì)開發(fā)團(tuán)隊(duì)的不懈努力,強(qiáng)有力地實(shí)現(xiàn)了課題的基本要求和所有目標(biāo),并增設(shè)了很多切實(shí)有用的創(chuàng)意和功能,全方面體現(xiàn)了我們團(tuán)隊(duì)的設(shè)計(jì)思想,完全達(dá)到了預(yù)期的效果。
首先,該工資管理系統(tǒng)具有全面細(xì)致的功能選項(xiàng),可以滿足用戶各方面信息的管理與查詢,而且分為兩個(gè)入口,可以滿足公司不同層級(jí)的人員需求,面向群體廣泛。
其次,該工資管理系統(tǒng)具有良好的健壯性和安全性,運(yùn)行穩(wěn)定,數(shù)據(jù)不易丟失,密碼登陸,安全可靠 56、。而且系統(tǒng)代碼的每個(gè)函數(shù)中都嵌入了非法輸入和非法操作檢測(cè)機(jī)制,確保系統(tǒng)不會(huì)在運(yùn)行中跳出或者崩潰。
最后,該工資管理系統(tǒng)具有良好的界面,簡(jiǎn)單清新,使用方便,操作快捷。
總體來說,經(jīng)過三周的設(shè)計(jì)與實(shí)踐,最終我們團(tuán)隊(duì)圓滿地完成了本次工資管理系統(tǒng)的設(shè)計(jì)任務(wù),達(dá)到了在實(shí)踐中鞏固并真正運(yùn)用自己所學(xué)知識(shí)的目的。本次課題設(shè)計(jì)順利實(shí)現(xiàn)。
6.2團(tuán)隊(duì)協(xié)作
我們團(tuán)隊(duì)在組團(tuán)完成后,即刻就課題題目的選擇問題進(jìn)行了深刻的討論,經(jīng)由組長(zhǎng)建議和組員的一致同意,我們最終選定了“職工工資管理系統(tǒng)”這個(gè)設(shè)計(jì)課題。
選定課題之后,第二天,我們組便進(jìn)行了整體框架和具體功能的討論與研究。組長(zhǎng)提出了該系統(tǒng)應(yīng)該具有的功能并做記錄, 57、與組員們進(jìn)行討論,綜合建議和信息,制定了總體的設(shè)計(jì)框架和系統(tǒng)具備的功能。
回去后,組長(zhǎng)查閱了與員工工資相關(guān)的資料,并繪制了所設(shè)計(jì)系統(tǒng)的功能圖,以及在網(wǎng)上參考了別人設(shè)計(jì)的同類型的工資管理系統(tǒng),并且將這些資料一并發(fā)給了組員,大家課余時(shí)間自行研究,最后再匯總交流經(jīng)驗(yàn)與想法。
隔日,大家一起進(jìn)行了詳細(xì)的分工明確,確定了我們的設(shè)計(jì)最終要實(shí)現(xiàn)什么樣的功能,并進(jìn)一步細(xì)致化,分類成一個(gè)個(gè)的函數(shù),將函數(shù)的設(shè)計(jì)分配給每一個(gè)人。劉誠(chéng)陽作為組長(zhǎng),負(fù)責(zé)整個(gè)程序的走向,函數(shù)設(shè)計(jì)包括界面的設(shè)計(jì),與動(dòng)態(tài)鏈表相關(guān)的一切數(shù)據(jù)設(shè)計(jì),文件輸入輸出的設(shè)計(jì),以及對(duì)鏈表中數(shù)據(jù)求最小值、最大值和平局?jǐn)?shù)的函數(shù)設(shè)計(jì)等等;張鵬舉作為重要組員, 58、負(fù)責(zé)的函數(shù)設(shè)計(jì)包括用戶的登錄系統(tǒng),修改密碼和基本參數(shù),計(jì)算稅金并返回?cái)?shù)值;于文鑫作為重要組員,主要負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行查找和排序的設(shè)計(jì)。任務(wù)分工完成后,大家都回去查找相關(guān)資料,潛心研究,獨(dú)立完成各自的設(shè)計(jì)任務(wù)。
每人都進(jìn)行了自己所承擔(dān)任務(wù)的研究,設(shè)計(jì)了相關(guān)的算法,繪制了實(shí)現(xiàn)目標(biāo)函數(shù)的流程圖,經(jīng)過組內(nèi)商討與研究,修改糾正,最終確立了較為完善的總體程序設(shè)計(jì)樣板。
每次上機(jī)課的時(shí)候,我們都會(huì)在一起討論研究,進(jìn)一步明確設(shè)計(jì)所要實(shí)現(xiàn)的具體目標(biāo),解決代碼編寫過程中的編寫錯(cuò)誤或者是當(dāng)時(shí)設(shè)計(jì)時(shí)出現(xiàn)的紕漏。
經(jīng)過組內(nèi)人員的共同努力,最后我們順利地完成了此次程序設(shè)計(jì)任務(wù),設(shè)計(jì)開發(fā)出了令人滿意的職工工資管理系統(tǒng)。更 59、為珍貴的是,通過團(tuán)隊(duì)合作,我們學(xué)會(huì)了團(tuán)隊(duì)開發(fā)模式,注重交流,分享經(jīng)驗(yàn),從彼此身上學(xué)到了很多,也為自己能在團(tuán)隊(duì)中貢獻(xiàn)一份力量感到由衷的開心。
6.3個(gè)人設(shè)計(jì)小結(jié)
6.3.1劉誠(chéng)陽設(shè)計(jì)小結(jié)
在開發(fā)工資管理系統(tǒng)的三周時(shí)光中,我深刻地體會(huì)到了自學(xué)能力的重要性。著手程序的總體設(shè)計(jì)時(shí),我發(fā)現(xiàn)課堂上學(xué)習(xí)的知識(shí)還遠(yuǎn)遠(yuǎn)不夠,很多東西都需要自己臨時(shí)查閱并學(xué)以致用。而且第一次進(jìn)行實(shí)驗(yàn)設(shè)計(jì),整個(gè)設(shè)計(jì)過程并不清楚,因此很多不懂的地方都是靠自己的不斷嘗試與摸索,憑借老師和同學(xué)的幫助,才最終完成了這個(gè)實(shí)驗(yàn)設(shè)計(jì)。
在該工資管理系統(tǒng)中,我作為組長(zhǎng),首要任務(wù)是組織好組員,確立工資管理系統(tǒng)的大體框架和主要功能,建立需要的主 60、要函數(shù),并進(jìn)行明確的分工。我所主要負(fù)責(zé)的是工資管理系統(tǒng)的界面設(shè)計(jì)和用動(dòng)態(tài)鏈表對(duì)數(shù)據(jù)進(jìn)行處理的所有函數(shù)的設(shè)計(jì)以及數(shù)據(jù)輸入、輸出的設(shè)計(jì)。
由于我們還沒有學(xué)數(shù)據(jù)結(jié)構(gòu),所以使用動(dòng)態(tài)鏈表對(duì)于我來說是一項(xiàng)很大的挑戰(zhàn),在使用動(dòng)態(tài)鏈表進(jìn)行數(shù)據(jù)添加的過程中,出現(xiàn)了很多錯(cuò)誤,程序各種崩潰。經(jīng)過了好幾天的嘗試,才最終實(shí)現(xiàn)了利用動(dòng)態(tài)鏈表添加數(shù)據(jù)的功能,過程十分的曲折,好在功夫不負(fù)有心人。
對(duì)于如何將動(dòng)態(tài)鏈表中的數(shù)據(jù)輸出的屏幕上,我也是做了一番研究才最終設(shè)計(jì)出了數(shù)據(jù)輸出函數(shù),現(xiàn)在想來只是將指針從頭節(jié)點(diǎn)遍歷到尾節(jié)點(diǎn),絲毫不難理解,但是當(dāng)初設(shè)計(jì)的時(shí)候也是在網(wǎng)上查閱了很多資料,看了很多別人的設(shè)計(jì),才最終完成。
對(duì)于數(shù)據(jù) 61、的輸入和輸出設(shè)計(jì)就相對(duì)來說簡(jiǎn)單了許多,查閱課本,確定好存儲(chǔ)方式和類型,按格式打開文件,操作后將文件關(guān)閉,這部分的設(shè)計(jì)相對(duì)來說比較容易。另外利用將數(shù)據(jù)從文件中輸入和輸出,我還設(shè)計(jì)了對(duì)員工編號(hào)的注冊(cè),還有按月份查詢工資的功能,系統(tǒng)可以將用戶在登陸時(shí)從鍵盤輸入的年月保存到文件中,登陸進(jìn)去后,相關(guān)函數(shù)會(huì)從文件中讀取這個(gè)年月,并打開相應(yīng)年月名稱的文件,獲取該年月的員工信息。這個(gè)按年月存取是第三周程序快要驗(yàn)收的時(shí)候我才加上的,因?yàn)榭紤]到實(shí)際情況,該管理系統(tǒng)不可能只進(jìn)行員工一個(gè)月工資的儲(chǔ)存,應(yīng)該可以儲(chǔ)存一個(gè)人多個(gè)月份的工資。這也算是對(duì)該系統(tǒng)的進(jìn)一步完善了。
對(duì)于多入口登陸這個(gè)功能,也是我后來思考后進(jìn)行的添 62、加修改。登錄系統(tǒng)雖然不是我設(shè)計(jì)的,但是后來我考慮到該系統(tǒng)如果只能供管理員使用而員工不能使用的話,會(huì)有很大的局限性,真正更合適的系統(tǒng)應(yīng)該是二者可以兼?zhèn)?。于是我在登陸系統(tǒng)的函數(shù)中加了一部分判斷,即可以區(qū)分登錄用戶是管理員還是員工,或者是不存在的用戶;與此同時(shí),額外設(shè)計(jì)了一個(gè)員工登記功能,用來輔助多入口登陸的實(shí)現(xiàn)。這樣,整個(gè)工資管理系統(tǒng)就顯得更加完善了,也更加貼合實(shí)際情況,滿足用戶需求。
此外,對(duì)于員工工資是如何計(jì)算的這個(gè)問題,我是經(jīng)過了百度各方面資料,才進(jìn)行了數(shù)據(jù)運(yùn)算方面的設(shè)計(jì),像五險(xiǎn)一金和稅金這些東西都應(yīng)該是在輸入基本工資等基礎(chǔ)信息后,系統(tǒng)自行運(yùn)算得出結(jié)果,并進(jìn)行儲(chǔ)存,而不是人工操作。對(duì)崗位工 63、資的獲取也是通過輸入崗位級(jí)別后系統(tǒng)自動(dòng)對(duì)照。這一系列的設(shè)計(jì)雖然并不復(fù)雜,但是也確實(shí)繁瑣,從查閱相關(guān)資料,到最后設(shè)計(jì)出完整的數(shù)據(jù)運(yùn)算,并以正確形式輸入、輸出,著實(shí)花了不少時(shí)間和功夫,也進(jìn)一步提升了自己對(duì)數(shù)據(jù)處理的能力和加強(qiáng)了自己對(duì)相關(guān)知識(shí)的掌握與運(yùn)用。
最后感謝在程序設(shè)計(jì)中給予我?guī)椭耐瑢W(xué)們和老師們,有了你們的建議和指導(dǎo),我們這個(gè)團(tuán)隊(duì)才能不斷完善設(shè)計(jì),找到程序的Bug,并最終設(shè)計(jì)出一個(gè)相對(duì)完備的工資管理系統(tǒng)。
6.3.2張鵬舉設(shè)計(jì)小結(jié)
通過這個(gè)程序系統(tǒng)設(shè)計(jì),我明白了C語言究竟是怎么樣運(yùn)用的,以及一系列函數(shù)和數(shù)據(jù)處理。就我自己做的登錄界面和修改密碼來說我運(yùn)用到了鏈表和文件處理,這是我以前上機(jī) 64、課從沒有過的實(shí)踐,自己也明白了許多方法的使用。
從一個(gè)個(gè)函數(shù)到整體系統(tǒng)的運(yùn)用,讓我明白了它的原理,讓我對(duì)程序設(shè)計(jì)有了新的認(rèn)識(shí)。就我做的那些個(gè)函數(shù)來看,首先數(shù)據(jù)必然很重要,什么類型,該怎么用它,怎樣用很少的代碼,運(yùn)行處更多的程序,是一個(gè)很有意思的問題,也是個(gè)很有挑戰(zhàn)的問題。
從這次實(shí)踐我學(xué)到了,怎么更好的用選擇結(jié)構(gòu)來進(jìn)行對(duì)輸入的判斷,怎樣修改文件中的數(shù)據(jù),怎樣把輸入的東西經(jīng)過修改再存入文件中。
總之這是個(gè)很好的經(jīng)歷,也是個(gè)很不錯(cuò)的實(shí)踐,對(duì)我來說很有價(jià)值。
6.3.3于文鑫設(shè)計(jì)小結(jié)
通過這幾個(gè)多星期的課程設(shè)計(jì),我學(xué)到了很多很多。不僅是在知識(shí)上,也表現(xiàn)在了各個(gè)方面。
首先,在設(shè)計(jì)的過程 65、中,我發(fā)現(xiàn)我已經(jīng)遺忘了很多上星期學(xué)習(xí)過的C語言知識(shí),也發(fā)現(xiàn)了原來學(xué)習(xí)中的不少漏洞。有不少地方的樹葉還是新的,那方面的知識(shí)自然還沒有吃透。比如結(jié)構(gòu)體的定義已經(jīng)不是很熟,字符串?dāng)?shù)組也不太能熟練運(yùn)用了,還有就是指向數(shù)組和字符串的指針也不是很熟了。在編寫項(xiàng)目程序的過程中,我不斷的發(fā)現(xiàn)自己的不足并努力提高,在原來的基礎(chǔ)上對(duì)C語言有了更進(jìn)一步的理解。
在開發(fā)這個(gè)工資管理系統(tǒng)過程中我深刻地體會(huì)到了自學(xué)能力的重要性。畢竟在學(xué)校學(xué)習(xí)到的知識(shí)是有限的而在開發(fā)系統(tǒng)的過程中僅憑原有的一點(diǎn)點(diǎn)知識(shí)是遠(yuǎn)遠(yuǎn)夠的,只有翻閱大量的資料才能學(xué)到更多的知識(shí),才能實(shí)現(xiàn)其預(yù)期的功能。在開發(fā)過程中,遇到困難是在所難免的,開發(fā)一 66、個(gè)系統(tǒng),恒心和 毅力也是不可缺少的,如果一遇到難題就心慌,想要放棄,那這樣就不可能完成系統(tǒng)。同樣,在開發(fā)過程當(dāng)中,細(xì)心也是非常重要的,由于很多事項(xiàng)都要很注意才行,如果沒有做到這一點(diǎn),就會(huì)出錯(cuò)。在開發(fā)過程當(dāng)中,我學(xué)到很多,明白了做任何事情都要有始有終,要敢于同困難作斗爭(zhēng),要養(yǎng)成獨(dú)立思考的習(xí)慣。在以后的工作和生活當(dāng)中,我將繼續(xù)發(fā)揚(yáng)這些好的作風(fēng)。
在程序編寫中,出現(xiàn)了不少的問題,比如指針地址錯(cuò)誤,文件無法保存;還有,經(jīng)常我會(huì)忘在語句結(jié)尾處帶分號(hào),經(jīng)常VC會(huì)在這方面報(bào)錯(cuò);
當(dāng)然,圖書館也是查找資源的好地方,我也感謝那些在冬日里坐在那里的圖書館管理人員,是他們及時(shí)的借到相著圖書,讓我們的信息查找更為方便快捷。最后,我再一次感謝我的老師們,謝謝你們的諄諄教誨,沒有你們的言傳身教,就沒有我課程設(shè)計(jì)的順利完成,謝謝您們。
6.4參考資料
譚浩強(qiáng).《C程序設(shè)計(jì)》.清華大學(xué)出版社.第四版
譚浩強(qiáng).《C程序設(shè)計(jì)學(xué)習(xí)輔導(dǎo)》.清華大學(xué)出版社.第四版
Brian W.Kernighan & Dennis M.Ritchie.《C程序設(shè)計(jì)語言》.
機(jī)械工業(yè)出版社.第2版
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)部控制評(píng)價(jià)體系概述
- 班組長(zhǎng)專題培訓(xùn)資料
- 來電來人接聽接待技巧
- 兒童青少年心理健康
- 作文修改符號(hào)講解
- 模塊5 三維的應(yīng)用教學(xué)課件 After Effects CC影視后期合成案例教程
- 工信版Photoshop平面圖像處理實(shí)例教程第2章
- 機(jī)制工藝08
- 果樹整形修剪——主要樹形課件
- 心臟重癥的理論支撐點(diǎn)和臨床實(shí)踐ppt課件
- 醫(yī)藥行業(yè)信息化首選時(shí)空智友
- 物聯(lián)網(wǎng)層次結(jié)構(gòu)PPT課件
- 中糧集團(tuán)戰(zhàn)略十步法
- 寶潔產(chǎn)品組合中文
- (精品)平面設(shè)計(jì)23