版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、程序設(shè)計(jì)課程設(shè)計(jì)設(shè)計(jì)說(shuō)明書(shū) 題目: 職工信息管理系統(tǒng) 班級(jí): 1301 專(zhuān)業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)號(hào): * 姓名: * 上課老師: 張 桂 珠 評(píng)定成績(jī): 日期: 2014.5.31題目: 職工信息管理系統(tǒng)設(shè)計(jì)要求: 1、要求: 課程設(shè)計(jì)要求采用面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)方法,首先對(duì)問(wèn)題進(jìn)行需求分析,識(shí)別類(lèi)與對(duì)象,設(shè)計(jì)合理的類(lèi)結(jié)構(gòu)與程序結(jié)構(gòu)實(shí)現(xiàn)程序功能(恰當(dāng)應(yīng)用教材所介紹的各種數(shù)據(jù)結(jié)構(gòu)和算法),用c+語(yǔ)言編寫(xiě)程序;然后設(shè)計(jì)各種可能的數(shù)據(jù)(測(cè)試對(duì)象)對(duì)程序進(jìn)行測(cè)試,觀察運(yùn)行結(jié)果是否正確,確保在可見(jiàn)范圍內(nèi)的測(cè)試對(duì)象都能得到正確結(jié)果。設(shè)計(jì)合理的程序完成題目要求的功能,輸入輸出信息時(shí)注意輸入輸出的格式,
2、應(yīng)該在輸入前提示輸入的格式和內(nèi)容;將程序的各項(xiàng)信息保存到文件并能打開(kāi),用c+的輸入輸出流實(shí)現(xiàn)。 2、題目?jī)?nèi)容: 該系統(tǒng)在磁盤(pán)上存儲(chǔ)某單位所有職工的基本信息,對(duì)于每一個(gè)職工存儲(chǔ):職工編號(hào)、姓名、性別、出生年月、職稱、最后學(xué)歷、工資和婚否。 系統(tǒng)功能要求如下: (1)創(chuàng)建存儲(chǔ)該單位職工信息的存儲(chǔ)系統(tǒng)(第一次輸入職工基本信息時(shí)); (2)增加職工信息,增加新職工時(shí)輸入新職工的基本信息; (3)刪除某職工的基本信息(如,死亡或離職); (4)修改某職工(指定職工編號(hào))的某些信息(如,加工資、獲得新學(xué)位、晉升職稱、結(jié)婚或離婚)。 (5)可以輸出符合某種特征的職工信息列表: 全體職工信息列表; 某職稱的職
3、工信息列表; 某年月以后出生的職工信息列表; 某年月以前出生的職工信息列表;未婚職工信息列表。 3、開(kāi)發(fā)環(huán)境: code:blocks 10.05設(shè)計(jì)思路:1、定義結(jié)構(gòu)體birth存儲(chǔ)年月日數(shù)據(jù),再定義結(jié)構(gòu)體worker存儲(chǔ)職工的數(shù)據(jù)。2、定義類(lèi)operate,它包含3個(gè)私有數(shù)據(jù)成員 1、職工數(shù)據(jù)worker ahuman_number, 2、已存數(shù)據(jù)長(zhǎng)度lengh, 3、a的總體長(zhǎng)度siae,3、類(lèi)中包含19公有函數(shù): 1、void set_first();對(duì)所有數(shù)據(jù)的初始化函數(shù), 2、void cin_all();全體數(shù)據(jù)輸入函數(shù), 3、void cout_all();全體數(shù)據(jù)輸出函數(shù),
4、4、void cout_one(int i);一個(gè)職工數(shù)據(jù)的輸出函數(shù), 5、void elete_one();一個(gè)職工數(shù)據(jù)的刪除函數(shù), 6、void add_one();一個(gè)職工數(shù)據(jù)的添加函數(shù), 7、void cout_after_time();輸出在某個(gè)時(shí)間后出生的所有職工數(shù)據(jù)函數(shù), 8、void cout_before_time();輸出在某個(gè)時(shí)間前出生的所有職工數(shù)據(jù)函數(shù), 9、void cout_position();輸出某個(gè)職稱的所有的職工數(shù)據(jù)函數(shù), 10、void cout_ifmarry();輸出所有未婚的職工數(shù)據(jù)函數(shù), 11、void change_salary();改變某個(gè)職工
5、的工資函數(shù), 12、void change_educate();改變某個(gè)職工的最高學(xué)歷函數(shù), 13、void change_marry();改變某個(gè)職工的婚姻狀態(tài)函數(shù), 14、void change_position();改變某個(gè)職工職稱函數(shù), 15、void chang_lengh(int i);改變類(lèi)中的數(shù)據(jù)長(zhǎng)度lengh函數(shù), 16、void amend();修改職工數(shù)據(jù)的函數(shù),包含了11,12,13,14,這4個(gè)函數(shù),通過(guò)顯示操作類(lèi)型,選擇讀取11,12,13,14中某個(gè)或多個(gè)函數(shù),退出操作室對(duì)出該函數(shù), 17、void output();輸出職工數(shù)據(jù)函數(shù),包含了7,8,9,10,這4
6、個(gè)函數(shù),通過(guò)顯示操作類(lèi)型,選擇讀取7,8,9,10中某個(gè)或多個(gè)函數(shù),退出操作室對(duì)出該函數(shù), 18、void save();將職工數(shù)據(jù)存儲(chǔ)在已定義文件中函數(shù), 19、int load_data();將已存儲(chǔ)在文件中的數(shù)據(jù)讀取進(jìn)入程序中來(lái)函數(shù),4、 在main()函數(shù)中,定義類(lèi)worker的對(duì)象man, 1、第一部分操作:顯示可以對(duì)對(duì)象man進(jìn)行的操作(讀取,創(chuàng)建,退出)和對(duì)輸入的操作進(jìn)行讀取判斷,選擇調(diào)用函數(shù)cin_all(),loat_data()或退出(退出創(chuàng)建過(guò)程)。 2、第二部分操作:顯示可以對(duì)對(duì)象man進(jìn)行的操作(添加,刪除,修改,輸出,退出),對(duì)輸入的操作的判斷進(jìn)行讀取判斷,選擇調(diào)用
7、函數(shù)add_one(),delete_one(),amend(),out_put()或退出(退出系統(tǒng))。程序代碼:#include #include #include #include#define true 1#define flase 0#define human_number 50#define add 10using namespace std;/出生日期儲(chǔ)存typedef struct int year; int month; int day;birth;/職工數(shù)據(jù)儲(chǔ)存typedef struct long number;/職工編號(hào) string name;/姓名 string se
8、x;/性別 birth birthday;/出生年月 string position;/職稱 string educate;/最后學(xué)歷 float salary;/工資 int marry;/婚否worker;/儲(chǔ)存系統(tǒng)class operateprivate: worker ahuman_number; int lengh; int size;public: void set_first(); void cin_all(); void cout_all(); void cout_one(int i); void delete_one(); void add_one(); void cout_
9、after_time(); void cout_before_time(); void cout_position(); void cout_ifmarry(); void change_salary(); void change_educate(); void change_marry(); void change_position(); void chang_lengh(int i); void amend(); void output(); void save(); int load_data();/第一次建立void operate:set_first() for(int j=0;j!
10、=human_number-1;j+) aj.birthday.year=0; aj.birthday.month=0; aj.birthday.day=0; cate=未知; aj.marry=0; =未知; aj.number=0; aj.position=未知; aj.salary=0; aj.sex=未知; a0.number=0; lengh=0; size=human_number;/第一次所有數(shù)據(jù)輸入void operate:cin_all() cout輸入(編號(hào)為負(fù)時(shí)結(jié)束)endl; int i=lengh; for(;isize;i+) coutai
11、.number; if(ai.number0) cout職工數(shù)據(jù)輸入完成。endl; break; ; coutai.sex; cout 出生日期: endl;coutai.birthday.year;coutai.birthday.month;coutai.birthday.day; coutai.position; cate; coutai.salary; coutai.marry; coutendl; system(cls); cout輸入(編號(hào)為負(fù)時(shí)結(jié)束)endl; lengh=i; ai.number=-1; save();/輸出所有數(shù)據(jù)vo
12、id operate:cout_all() coutendl輸出所有職工數(shù)據(jù):endl; for(int i=0;ilengh;i+) if(ai.number=0) break; cout 職工編號(hào):ai.numberendl; cout 姓名:endl; cout 性別:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birthday.month.ai.birthday.dayendl; cout 職稱:ai.positionendl; cout 最后學(xué)歷:cateendl; cout 工資:ai.salaryendl; cou
13、t=0) cout結(jié)婚endlendl; else cout未婚endlendl; coutendlendl;/輸出一個(gè)職工數(shù)據(jù)void operate:cout_one(int i) cout 職工編號(hào):ai.numberendl; cout 姓名:endl; cout 性別:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birthday.month.ai.birthday.dayendl; cout 職稱:ai.positionendl; cout 最后學(xué)歷:cateendl; cout 工資:ai.salaryendl; c
14、out=0) cout結(jié)婚endl; else cout未婚endl; coutendlendl;/輸出一個(gè)時(shí)間出生后的職工數(shù)據(jù)void operate:cout_after_time() system(cls); birth t; cout輸入要求在某個(gè)時(shí)間出生以后的職工的那個(gè)時(shí)間:; cout出生日期: endlt.year;coutt.month;coutt.day; int s=0; for(int i=0;it.year) if(s=0) cout輸出在時(shí)間t.year年t.month月t.day以后出生的職工數(shù)據(jù):t.month) if(s=0) cout輸出在時(shí)間t.year年t
15、.month月t.day以后出生的職工數(shù)據(jù):t.day) if(s=0) cout輸出在時(shí)間t.year年t.month月t.day以后出生的職工數(shù)據(jù):endl; cout_one(i); s+; if(ai+1.number=0) break; if(s=0) cout 沒(méi)有在t.year:t.month:t.day以后出生的職工.endlendl;/輸出一個(gè)時(shí)間出生前的職工數(shù)據(jù)void operate:cout_before_time() system(cls); birth t; cout輸入要求在某個(gè)時(shí)間出生以前的職工的那個(gè)時(shí)間:; cout出生日期: endlt.year;coutt
16、.month;coutt.day; int s=0; for(int i=0;ilengh;i+) if(ai.birthday.yeart.year) if(s=0) cout輸出在時(shí)間t.year年t.month月t.day以前出生的職工數(shù)據(jù):endl; cout_one(i); s+; else if(ai.birthday.year=t.year) if(ai.birthday.montht.month) if(s=0) cout輸出在時(shí)間t.year年t.month月t.day以前出生的職工數(shù)據(jù):endl; cout_one(i); s+; else if(ai.birthday.m
17、onth=t.month) if(ai.birthday.dayt.day) if(s=0) cout輸出在時(shí)間t.year年t.month月t.day以前出生的職工數(shù)據(jù):endl; cout_one(i); s+; if(ai+1.number=0) break; if(s=0) cout 沒(méi)有在t.year:t.month:t.day以前出生的職工.endlendl;/輸出某個(gè)職稱的職工數(shù)據(jù)void operate:cout_position() system(cls); int s=0;string p; cout輸入要求的職稱:p; cout輸出職稱為p的職工數(shù)據(jù)0;j+) if(aj
18、.position=p) cout_one(j); s+; if(s=0) cout沒(méi)有職稱為p的職工endlendl; else return;/輸出沒(méi)有結(jié)婚的職工數(shù)據(jù)void operate:cout_ifmarry() system(cls); cout輸出所有未婚的職工數(shù)據(jù):endl; int s=0; for(int i=0;i=lengh;i+)if(ai.number=0)break; if(ai.marry0) cout_one(i); s+; if(s=0) cout沒(méi)有未婚的職工endl; /刪除某個(gè)職工數(shù)據(jù)void operate:delete_one() int i=0
19、,n; system(cls); coutn; for(;ilengh;i+) if(ai.number=n) break; if(i=lengh) cout沒(méi)有編號(hào)為n的職工.0;i+) ai=ai+1; save(); lengh-; coutendl; system(cls); cout編號(hào)為n的職工的數(shù)據(jù)已刪除.endl; /增加一個(gè)職工數(shù)據(jù)void operate:add_one() cout輸入要添加的職工數(shù)據(jù):endl; int i=0; for(;i50;i+) if(ai.number=0) break; coutai.number; ; coutai.
20、sex; cout 出生日期: endl; coutai.birthday.year; coutai.birthday.month; coutai.birthday.day; coutai.position; cate; coutai.salary; coutai.marry; coutendl; save(); system(cls); cout添加的職工數(shù)據(jù):endl; cout 職工編號(hào):ai.numberendl; cout 姓名:endl; cout 性別:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birth
21、day.month.alengh.birthday.dayendl; cout 最后學(xué)歷:cateendl; cout 工資:ai.salaryendl; cout=0) cout結(jié)婚endl; else cout未婚endl; coutendlendl; lengh+; coutendl;/修改工資void operate:chang_lengh(int i) lengh=i;void operate:change_salary() system(cls); cout輸入要修改工資的職工編號(hào):num; int x=0; for(;xlengh;x+) if(ax.number=n
22、um) break; system(cls); if(x=lengh) cout沒(méi)有編號(hào)為num的職工endlendl; else cout輸入職工num修改后的工資:ax.salary; cout職工num的工資被修改為:ax.salaryendlendl; /修改學(xué)位void operate:change_educate() system(cls); cout輸入要修改學(xué)位的職工編號(hào):num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout沒(méi)有編號(hào)為num的職工endl; els
23、e cout輸入職工num修改后的學(xué)位:cate; cout職工num的學(xué)位被修改為:cateendlendl; /修改結(jié)婚狀態(tài)void operate:change_marry() system(cls); cout輸入要修改婚姻的職工編號(hào):num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout沒(méi)有編號(hào)為num的職工endl0) cout編號(hào)為num的職工婚姻狀態(tài)改為未婚endlendl; ax.marry=-1; else cout編號(hào)為num的
24、職工婚姻狀態(tài)改為已婚endlendl; ax.marry=1;/修改職稱void operate:change_position() system(cls); cout輸入要修改職稱的職工編號(hào):num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout沒(méi)有編號(hào)為num的職工endlendl; else cout輸入職工num修改后的職稱:ax.position; cout職工num的職稱被修改為:ax.positionendlendl; /寫(xiě)入文件void operate:save()
25、ofstream file(f:c+實(shí)驗(yàn)data.txt,ios_base:out|ios_base:trunc); for(int i=0;ilengh;i+) if(ai.number=0) break; fileai.number ; ; fileai.sex ; fileai.birthday.year ai.birthday.month ai.birthday.day ; fileai.position ; cate ; fileai.salary ; fileai.marry endl; file.close();/讀寫(xiě)文件int ope
26、rate:load_data() int i=0; ifstream file(f:c+實(shí)驗(yàn)data.txt);for(;ai-1.number=0|iai.number;;fileai.sex;fileai.birthday.yearai.birthday.monthai.birthday.day;fileai.position;cate;fileai.salary;fileai.marry;lengh=i;file.close();system(cls);cout讀取成功。endlendl;return 1;void operate:amend()
27、 int in;int key=1; system(cls); while(key) cout輸入要修改的職工項(xiàng)目(輸入數(shù)字):endl 1,退出(退出修改函數(shù))、endl 2,職稱, endl 3,最后學(xué)歷,endl 4,工資,endl 5,婚姻in; switch(in) case 1: key=0;break; case 2: change_position(); save();break; case 3: change_educate(); save();break; case 4: change_salary(); save();break; case 5: change_marry
28、(); save();break; default: cout輸入錯(cuò)誤,請(qǐng)重新輸入.endl;break; system(cls);void operate:output() int in;int key=1; system(cls); while(key) cout輸入要輸出的對(duì)象(輸入數(shù)字代號(hào)):endl 1、全體職工信息表 endl 2、某職稱的職工信息表endl 3、某年月以后出生的職工信息表 endl 4、某年月以前出生的職工信息表endl 5、未婚職工信息表,endl 6、退出(退出輸出函數(shù))in; switch(in) case 1: system(cls); cout_all(
29、);break; case 2: cout_position();break; case 3: cout_after_time();break; case 4: cout_before_time();break; case 5: cout_ifmarry();break; case 6: key=0; system(cls);break; default: cout輸入錯(cuò)誤,請(qǐng)重新輸入.endl;break; int main() operate man;int in;int key=1,i=0; man.set_first(); while(key) cout輸入操作(輸入數(shù)字):endl 1、退出(退出創(chuàng)建系統(tǒng),進(jìn)入操作系統(tǒng))endl 2、創(chuàng)建(第一次輸入職工基本信息,創(chuàng)建后不再讀取。)endl 3、讀?。ㄗx取文件中的數(shù)據(jù),讀取后不再創(chuàng)建。)in; switch(in) case 1: key=0;break; case 2: man.cin_all(); man.save();break; case 3:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度床墊行業(yè)展會(huì)參展商采購(gòu)合同3篇
- 2024版航天器發(fā)射與數(shù)據(jù)服務(wù)合同
- 2024版臨時(shí)工合同協(xié)議書(shū)范文
- 2024年軟件開(kāi)發(fā)購(gòu)銷(xiāo)合同
- 個(gè)人借款協(xié)議模板2024專(zhuān)業(yè)版版B版
- 二零二五版二手房買(mǎi)賣(mài)合同公證服務(wù)合同規(guī)范與執(zhí)行2篇
- 2024版股權(quán)激勵(lì)合同2篇
- 二零二五版房屋買(mǎi)賣(mài)更名與配套設(shè)施移交協(xié)議3篇
- 二零二五年度環(huán)保項(xiàng)目墊資合同范本2篇
- 2024幼兒園幼兒教師聘任與勞動(dòng)合同書(shū)3篇
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2025年浙江杭州市西湖區(qū)專(zhuān)職社區(qū)招聘85人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《數(shù)學(xué)廣角-優(yōu)化》說(shuō)課稿-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- “懂你”(原題+解題+范文+話題+技巧+閱讀類(lèi)素材)-2025年中考語(yǔ)文一輪復(fù)習(xí)之寫(xiě)作
- 2025年景觀照明項(xiàng)目可行性分析報(bào)告
- 2025年江蘇南京地鐵集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2025年度愛(ài)讀書(shū)學(xué)長(zhǎng)參與的讀書(shū)項(xiàng)目投資合同
- 電力系統(tǒng)分析答案(吳俊勇)(已修訂)
- 化學(xué)-河北省金太陽(yáng)質(zhì)檢聯(lián)盟2024-2025學(xué)年高三上學(xué)期12月第三次聯(lián)考試題和答案
- 期末復(fù)習(xí)試題(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué) 北師大版
評(píng)論
0/150
提交評(píng)論