




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、一、設(shè)計題目(問題)描述和要求1 題目:人事管理系統(tǒng)2 問題描述: 某小型公司,主要有四類人員:經(jīng)理、兼職技術(shù)人員、銷售經(jīng)理和兼職推銷 員。現(xiàn)在,需要存儲這些人員的姓名、編號、級別、當(dāng)月薪水,計算月薪總額并 顯示全部信息。要求:( 1) 其中,人員編號在生成人員信息時同時生成, 每輸入一個人員信息編號順 序加 1。( 2) 程序?qū)λ腥藛T有提升級別的功能( 3) 月薪的計算方法是: 經(jīng)理拿固定月薪, 兼職技術(shù)人員按工作小時數(shù)領(lǐng)取月 薪,兼職推銷員的報酬按該推銷員當(dāng)月銷售額提成 , 銷售經(jīng)理既拿固定月 薪也領(lǐng)取銷售提成。( 4) 能按姓名或者編號顯示、查找、增加、刪除和保存各類人員的信息二、系統(tǒng)
2、分析與模塊設(shè)計 根據(jù)問題描述和要求,系統(tǒng)要求能夠按姓名或者編號顯示、查找、增加、刪 除和保存各類人員的信息。確定程序至少應(yīng)該具備如下功能: “查詢?nèi)藛T”、“增 加人員”、“刪除人員”、“數(shù)據(jù)存盤”基本模塊。系統(tǒng)既然具有“數(shù)據(jù)存盤”功能人員數(shù)據(jù)可以保存到磁盤文件,那么也就 意味著今后可以從磁盤文件讀出人員數(shù)據(jù), 所以系統(tǒng)增加了 “人員數(shù)據(jù)裝入” 模 塊,以方便用戶使用、避免數(shù)據(jù)重復(fù)錄入。考慮到系統(tǒng)實現(xiàn)簡捷,人員數(shù)據(jù)文件 采用文本文件,人員數(shù)據(jù)文件名: Person.txt 。做為一個完整系統(tǒng),除了具有增加人員,刪除人員信息模塊,還應(yīng)該具有修 改人員相關(guān)信息的功能,所以本系統(tǒng)設(shè)計時考慮增加“修改人
3、員”模塊。考慮到根據(jù)編號查找人員信息功能在“刪除人員” 、“修改人員”等模塊都使 用,所以可以考慮設(shè)置為一個模塊??紤]到系統(tǒng)要求人員編號在生成人員信息時同時生成,每輸入一個人員信息編號順序加 1。這樣就要求人員編號在增加人員時自動生成 ( 增加 1)且不重復(fù)。 根據(jù)這個要求,可以考慮設(shè)置一個全局量: “當(dāng)前最大編號”,每增加一個人員, 當(dāng)前最大編號自動增 1,然后新增加人員使用這個編號。為了保證系統(tǒng)能記憶這 個編號,可以使用一個數(shù)據(jù)文件保存當(dāng)前這個編號。 系統(tǒng)每次開始運行前從文件 讀入這個編號, 隨著人員增加, 編號自動增加, 系統(tǒng)每次運行結(jié)束時將這個編號 寫入文件。本系統(tǒng)將初值 ( 沒有一個
4、用戶時 )設(shè)置為 0??紤]到人員的許多固定信息如:經(jīng)理、銷售經(jīng)理的固定月薪,銷售經(jīng)理、銷 售人員提成, 技術(shù)人員小時工資等都是一些不需要每個人員都要輸入的信息, 所 以可以將這些信息都保存在一個數(shù)據(jù)文件中, 本系統(tǒng)為了方便起見, 將這些信息 與“最大編號”全部保存在一個文件中,并使用“基礎(chǔ)數(shù)據(jù)設(shè)置”模塊進(jìn)行設(shè)置 和管理?;A(chǔ)數(shù)據(jù)文件也采用文本文件,基礎(chǔ)數(shù)據(jù)文件名: Base.txt 。本系統(tǒng)還提供“查詢本月經(jīng)營信息”幫助計算銷售總額,工資總額,并按照 公式計算本月盈虧。綜合考慮系統(tǒng)具有下面 8 項功能模塊:增加人員,刪除人員,修改人員,查 詢本月經(jīng)營信息,基礎(chǔ)數(shù)據(jù)設(shè)置,數(shù)據(jù)存盤,數(shù)據(jù)裝入。系統(tǒng)
5、使用的數(shù)據(jù)文件格式如下:Base.txt: (格式:項目 數(shù)據(jù) ) 經(jīng)理固定月薪 3000 銷售經(jīng)理固定月薪 1000 銷售經(jīng)理提成 1 銷售人員提成 2 技術(shù)人員小時工資 20ID 6Person.txt:(格式:編號,姓名,人員類別,其它數(shù)據(jù),銷售員銷售額,技術(shù)人員工作小時)2 wang 31000003 liu 14 wu 4 1005 huang 26 tao 3150000注:人員類型編號 1經(jīng)理; 2銷售經(jīng)理; 3銷售員; 4技術(shù)人員三、系統(tǒng)設(shè)計1. 系統(tǒng)總體框架使用面向?qū)ο蟮某绦蛟O(shè)計思想進(jìn)行分析,整個系統(tǒng)涉及兩大類信息和操作,公司,人員。所以系統(tǒng)主要涉及兩個大類:公司類 Comp
6、any人員類Person。系統(tǒng)的總體框架就是公司類,人員類的定義;主函數(shù)中定義一個公司對象,循環(huán)顯 示主菜單并根據(jù)用戶選擇調(diào)用公司類的相應(yīng)方法 (成員函數(shù))。公司類Company考慮系統(tǒng)操作的人員信息的數(shù)量具有不確定性,所以考慮 使用鏈表保存、處理人員信息。公司類包含:所有人員信息的一個不帶頭結(jié)點的 鏈表(作為數(shù)據(jù)成員)及可以對人員信息進(jìn)行增,刪,改,查詢經(jīng)營信息,基礎(chǔ) 數(shù)據(jù)設(shè)置,數(shù)據(jù)存盤,數(shù)據(jù)裝入等操作的相關(guān)模塊 (Add,Delete,Modify,Query,Set,Save,Load)作為成員函數(shù)。人員類Person :所有人員都具有的公共信息及操作可以使用人員類進(jìn)行描 述。由于系統(tǒng)具
7、有4類人員且4類人員數(shù)據(jù),操作有所不同,如銷售員包含銷售 額,而技術(shù)人員包含工作小時數(shù)且計算工資的方法不同,所以應(yīng)當(dāng)為4類人員創(chuàng)建相應(yīng)的Person類的派生類。(3)為了使公司類可以方便處理人員信息,可以考慮將公司類確定為人員類的友 元類或者人員類提供公共的方法以便公司類進(jìn)行操作。為了公司類可以用共同方法操作人員類,可以將人員類的方法確定為虛函數(shù)。2. 類的層次圖Person No,Name,Duty,Earni ng, next,Perso n( ),CalcSalary(),Output() Ma nager(), Amou nt,Amou nt, t,CalcSalary(), Sale
8、s(),GetAmou nt(), SalesMa nager(),Tech nicia n(),Output()SetAmou nt(),SetAmou nt(),GetT(),SetT(),CalcSalary(), CalcSalary(), CalcSalary(),Output() Output() Output()Tech ni cia n其中:(1) Person類的No-人員編號,Name人員姓名,Duty-人員類別,Earning-工 資,next-指向下一個人員的指針;Person類的CalcSalary() ,Output()定義為 純虛函數(shù)分別表示要計算人員工資和輸出人
9、員信息,由于定義純虛函數(shù),所以Person是抽象類,具體計算工資,輸出人員信息由派生類完成。(2) 各個派生的類,包含本類對象特有的數(shù)據(jù),Sales:Amount-銷售員銷售額,SalesManager:Amount-銷售經(jīng)理的總銷售額(系統(tǒng)統(tǒng)計各個銷售員銷售額得到 銷售經(jīng)理的總銷售額),Technician:t-技術(shù)人員工作小時數(shù)。Compa nyPerson *Worker,Clear(),Compa ny(),Compa ny(),Add(),Delete(),Modify(),Query(),Set(),Save(),Load()其中:(1) Worker就是人員鏈表。(2) Clea
10、r()用于清除人員鏈表所有結(jié)點。(3) Add(),Delete(),Modify(),Query(),Set(),Save(),Load()分別表示系統(tǒng)各個功能模塊:增加人員,刪除人員,修改人員,查詢本月經(jīng)營信息,基礎(chǔ)數(shù)據(jù)設(shè)置,數(shù)據(jù)存盤,數(shù)據(jù)裝入。3. 系統(tǒng)關(guān)鍵算法流程圖(1)主函數(shù)流程開始創(chuàng)建公司對象顯示菜單 接受輸入根據(jù)輸入執(zhí)行公司操作 Compa ny:Add() Compa ny:Delete()開始I輸入員工ID查找要刪除結(jié)點匚、.結(jié)點存在?二q F片鏈表刪除員工結(jié)點提示未找到1結(jié)束 Compa ny:Modify(5) Compa ny:Query()遍歷統(tǒng)計銷售額遍歷統(tǒng)計工資總
11、額計算盈虧打印本月經(jīng)營信息結(jié)束(6)Compa ny:Save()(7) Compa ny:Load()四、源程序清單參見附錄五、系統(tǒng)測試(列出各功能具體的輸入數(shù)據(jù)及對應(yīng)的輸出結(jié)果,說明其是否符合設(shè)計要求)六、小結(jié)(設(shè)計過程心得體會)課設(shè)計題目:超市進(jìn)銷存管理系統(tǒng)二、設(shè)計的目的通過課程設(shè)計,學(xué)生在下述各方面的能力應(yīng)該得到鍛煉: 鞏固面向?qū)ο蟪?序設(shè)計課程的基本知識和方法,通過該系統(tǒng)的實現(xiàn),進(jìn)一步培養(yǎng)學(xué)生理論聯(lián)系 實際、綜合分析和解決問題的能力;掌握自頂而下的結(jié)構(gòu)化程序設(shè)計的方法; 進(jìn)步掌握在集成環(huán)境中程序調(diào)試的方法。設(shè)計內(nèi)容用面向?qū)ο蟪绦蛟O(shè)計方法實現(xiàn)一個簡單的超市進(jìn)銷存管理系統(tǒng)。系統(tǒng)的主要功能
12、是:完成超市進(jìn)銷存管理。公司內(nèi)有若干種商品:? 商品代碼(num)? 商品名稱(name?產(chǎn)地(address)?單價(price)? 該類商品的庫存數(shù)量(count)要求完成以下功能:商品基本信息管理:商品的增加、修改和刪除等。 商品的查詢與統(tǒng)計:按商品名稱查詢基本信息、統(tǒng)計庫存商品數(shù)量及總價值等。四、設(shè)計要求課程設(shè)計最終要求有三個方面:完成軟件設(shè)計開發(fā),運行得到正確的結(jié)果; 撰寫課程設(shè)計報告、課程設(shè)計答辯。1. 軟件設(shè)計開發(fā):提供源代碼清單。2. 課程設(shè)計報告撰寫:撰寫要求及格式參見課程設(shè)計報告模板。課程設(shè)計結(jié)束,在 WOR中以A4大小排版,并嚴(yán)格按照統(tǒng)一封面進(jìn) 行填寫和打?。粵]有條件的同
13、學(xué),統(tǒng)一用稿紙手寫,做到字跡工整,排列清晰,繪 圖細(xì)致。嚴(yán)禁抄襲程序或報告,否則以零分計。3. 答辯工作由指導(dǎo)教師根據(jù)情況安排。五、進(jìn)度安排按教學(xué)計劃規(guī)定,該課程設(shè)計總學(xué)時數(shù)為 12,其進(jìn)度及時間大致分配如下:序號設(shè)計內(nèi)容學(xué)時數(shù)1需求分析、流程圖的繪制22編寫程序、上機(jī)調(diào)試63撰寫課程設(shè)計報告34答辯總結(jié)及成績評定1總計12說明:需求分析、流程圖的繪制、編寫程序、撰寫課程設(shè)計報告等過程在時 間緊張的情況下,可由學(xué)生在課外補充完成。六、答辯與成績評定1.課程設(shè)計的程序代碼及相關(guān)文檔保存在一個文件夾中并上報給指導(dǎo)教師, 文件夾名稱為學(xué)生姓名及學(xué)號的組合。有以下情況的學(xué)生不能參加答辯:設(shè)計報告未經(jīng)指
14、導(dǎo)教師審閱?;蛟O(shè)計內(nèi)容不全(有設(shè)計報告而無設(shè)計程序、 有設(shè)計程序而無設(shè)計報告)未經(jīng)指導(dǎo)教師許可或無故不到者,缺勤率達(dá) 50%勺學(xué)生。答辯時,設(shè)計者在5分鐘內(nèi)闡述自己的設(shè)計過程和最終結(jié)果, 突出設(shè)計中遇 到的主要問題和解決方法,然后回答教師提問。每位學(xué)生答辯總時間一般不超過 10分鐘。2課程設(shè)計成績的評定:根據(jù)設(shè)計的完成情況、程序的編制質(zhì)量、獨立設(shè) 計能力以及答辯情況綜合衡量,由答辯小組討論決定。原則上按以下公式計算:課程設(shè)計成績=考勤X 10%k報告X 20%k答辯X 20%b程序X 50%七、教學(xué)參考書目1、李龍澍:C+4程序設(shè)計指導(dǎo)教師教研室主任院長簽名魯書喜執(zhí)行日期2009年5月清華大學(xué)
15、出版社2、錢能:C+g序設(shè)計基礎(chǔ) 清華大學(xué)出版社#i nclude#in clude#in clude#i nclude#i ncludeint n=0;class Goodsprotected:char n ame20; double num;char address30;/全局?jǐn)?shù)據(jù),結(jié)點數(shù)量/商品名稱/商品代碼/商品產(chǎn)地int price;/商品單價double count;/ 該類商品庫存量Goods *next;public:Goods(double num,char*name,char*address,int price,double count) this-num=num; str
16、cpy(this-name,name);strcpy(this-address,address);this-price=price; this-count=count;void Output() coutnum:num name:name address:address price:price count:countnext;delete goods; goods=p;goods=NULL;void Add();/ 增加商品void Delete();/ 刪除商品void Modify();/ 修改商品void Query();/ 查詢商品void Add_up();/ 統(tǒng)計商品void Sa
17、ve();/ 基礎(chǔ)數(shù)據(jù)存盤/ 基礎(chǔ)數(shù)據(jù)裝入/ 清除內(nèi)存中商品數(shù)據(jù)(內(nèi)部使用)void Load();void Supermarket:Clear() Goods* p;p=goods;while(p) goods=p-next;delete p; p=goods;void Supermarket:Add() Goods *p;double num,count;char name20,address30;int price;coutn 請輸入新增商品信息: n;coutnum;coutname;coutaddress;coutprice;coutcount;/ 創(chuàng)建新商品類結(jié)點p=new Goo
18、ds(num,name,address,price,count);p-next=NULL;if(goods=NULL) goods=p;n+;elseGoods *p2=goods;while(p2-next)p2=p2-next;p2-next=p;n+;void Supermarket:Delete() / 刪除商品 char name20;coutname;/ 查找要刪除的結(jié)點Goods *p1,*p2; p1=goods;while(p1) if(strcmp(p1-name,name)=0) break;else p2=p1;p1=p1-next;/ 刪除結(jié)點/ 若找到結(jié)點,則刪除/
19、 若要刪除的結(jié)點是第一個結(jié)點/ 若要刪除的結(jié)點是后續(xù)結(jié)點if(p1!=NULL) if(p1=goods) goods=p1-next;delete p1;n-;else p2-next=p1-next;delete p1;n-;cout 找到并刪除 n;else/ 未找到結(jié)點coutSorry, 未找到 !n;void Supermarket:Modify() / 修改商品信息 double num,count;char name20,address30;int price;n;coutn 修改商品,請輸入要查的商品名稱: coutname;/ 查找要修改的結(jié)點Goods *p1,*p2;
20、p1=goods;while(p1) if(strcmp(p1-name,name)=0) break;else p2=p1;p1=p1-next;/ 修改結(jié)點if(p1!=NULL) / 若找到結(jié)點 p1-Output();couta;switch(a) case 1:coutnum;strcpy(name,p1-name);strcpy(addressp1-address);price=p1-price;co unt=p1-count; break;case 2:coutnamenum=p1-num;strcpy(address,p1-address);price=p1-price;cou
21、nt=p1 -count; break; case 3:coutaddress;num=p1-num;strcpy(name,p1-name);price=p1-price;count=p1-count; break;case 4:coutprice;num=p1-num;strcpy(name,p1-name);strcpy(address,p1-address);count=p1-count; break;case 5:coutcount;num=p1-num;strcpy(name,p1-name);strcpy(address,p1-address);pri ce=p1-price;
22、break;case 6:cout 請輸入新信息: n;coutnum;coutname;coutaddress;coutprice;coutcount; break;/ 創(chuàng)建新商品結(jié)點Goods *p3;p3=new Goods(num,name,address,price,count);/ 員工結(jié)點替換到鏈表p3-next=p1-next;if(p1=goods) / 若要替換的結(jié)點是第一個結(jié)點goods=p3;else / 若要替換的結(jié)點是后續(xù)結(jié)點p2-next=p3;delete p1; / 刪除原來的商品結(jié)點cout 修改成功 !n;else / 未找到結(jié)點coutSorry, 未找
23、到 !n;void Supermarket:Query()coutn* 查詢商品 *n;char name20;coutname;Goods *p1=goods;while(p1)if(strcmp(p1-name,name)=0) break;else p1=p1-next;if(p1!=NULL) / 若找到結(jié)點coutn 要查詢的信息如下: n;該類商品名該類商品單cout 該 類 商 品 代 碼 :tnumt nametn;cout 該類商品產(chǎn)地 :taddresstpricevtn;cout 該類商品庫存量 :tcountt;else / 未找到結(jié)點coutnSorry, 未找到該類
24、商品 !n; / 統(tǒng)計超市商品總數(shù)量于void Supermarket:Add_up()價值coutn* 商品統(tǒng)計 *n;double Amount=0,Value=0;char name20;coutname;Goods *p1;p1=goods;while(p1) if(strcmp(p1-name,name)=0) break;else p1=p1-next;if(p1)while(p1)Amount+=p1-count;Value+=p1-count*p1-price;p1=p1-next;cout 商品總數(shù)量是: n; coutAmount;coutn 商品總價值是: n;coutValue;elsecoutnSorry, 未找到該類商品 !n;/ 數(shù)據(jù)存盤void Supermarket:Save()couta;if(a=n)return;if(a=y|a=Y)ofstream outfile(base.txt,ios:out);if(!outfile)cerropen error!;exit
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45220-2025大規(guī)模定制多主體畫像系統(tǒng)參考架構(gòu)
- 臨沭租房合同范本
- 2025年梧州貨運從業(yè)資格考題
- 2025年景德鎮(zhèn)貨運從業(yè)資格仿真考題
- 醫(yī)院食堂押金合同范本
- 個人和工廠合作合同范本
- 保健品定購合同范本
- 加工類工程合同范本
- 農(nóng)業(yè)倉庫出租合同范本
- 債務(wù)繼承協(xié)議合同范例
- 2024-2025學(xué)年重慶市渝中區(qū)四年級(上)期末數(shù)學(xué)試卷
- 2025年人教版中考英語一輪復(fù)習(xí):七年級下冊考點測試卷(含答案)
- 四川省成都市2025年中考數(shù)學(xué)模擬試卷五套附參考答案
- 國家安全網(wǎng)絡(luò)教育
- 垃圾發(fā)電廠汽輪機(jī)培訓(xùn)
- 《浙江省應(yīng)急管理行政處罰裁量基準(zhǔn)適用細(xì)則》知識培訓(xùn)
- 2024年全國職業(yè)院校技能大賽高職組(康復(fù)治療技術(shù)賽項)考試題庫(含答案)
- 2025年山東健康集團(tuán)招聘筆試參考題庫含答案解析
- 《中外廣播電視史》課件
- 手術(shù)室突然停電應(yīng)急演練
- 微信公眾號運營
評論
0/150
提交評論