《程序設計課程設計》設計職工信息管理系統(tǒng)_第1頁
《程序設計課程設計》設計職工信息管理系統(tǒng)_第2頁
《程序設計課程設計》設計職工信息管理系統(tǒng)_第3頁
《程序設計課程設計》設計職工信息管理系統(tǒng)_第4頁
《程序設計課程設計》設計職工信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、程序設計課程設計設計說明書 題目: 職工信息管理系統(tǒng) 班級: 1301 專業(yè): 計算機科學與技術 學號: * 姓名: * 上課老師: 張 桂 珠 評定成績: 日期: 2014.5.31題目: 職工信息管理系統(tǒng)設計要求: 1、要求: 課程設計要求采用面向?qū)ο笙到y(tǒng)分析與設計方法,首先對問題進行需求分析,識別類與對象,設計合理的類結構與程序結構實現(xiàn)程序功能(恰當應用教材所介紹的各種數(shù)據(jù)結構和算法),用c+語言編寫程序;然后設計各種可能的數(shù)據(jù)(測試對象)對程序進行測試,觀察運行結果是否正確,確保在可見范圍內(nèi)的測試對象都能得到正確結果。設計合理的程序完成題目要求的功能,輸入輸出信息時注意輸入輸出的格式,

2、應該在輸入前提示輸入的格式和內(nèi)容;將程序的各項信息保存到文件并能打開,用c+的輸入輸出流實現(xiàn)。 2、題目內(nèi)容: 該系統(tǒng)在磁盤上存儲某單位所有職工的基本信息,對于每一個職工存儲:職工編號、姓名、性別、出生年月、職稱、最后學歷、工資和婚否。 系統(tǒng)功能要求如下: (1)創(chuàng)建存儲該單位職工信息的存儲系統(tǒng)(第一次輸入職工基本信息時); (2)增加職工信息,增加新職工時輸入新職工的基本信息; (3)刪除某職工的基本信息(如,死亡或離職); (4)修改某職工(指定職工編號)的某些信息(如,加工資、獲得新學位、晉升職稱、結婚或離婚)。 (5)可以輸出符合某種特征的職工信息列表: 全體職工信息列表; 某職稱的職

3、工信息列表; 某年月以后出生的職工信息列表; 某年月以前出生的職工信息列表;未婚職工信息列表。 3、開發(fā)環(huán)境: code:blocks 10.05設計思路:1、定義結構體birth存儲年月日數(shù)據(jù),再定義結構體worker存儲職工的數(shù)據(jù)。2、定義類operate,它包含3個私有數(shù)據(jù)成員 1、職工數(shù)據(jù)worker ahuman_number, 2、已存數(shù)據(jù)長度lengh, 3、a的總體長度siae,3、類中包含19公有函數(shù): 1、void set_first();對所有數(shù)據(jù)的初始化函數(shù), 2、void cin_all();全體數(shù)據(jù)輸入函數(shù), 3、void cout_all();全體數(shù)據(jù)輸出函數(shù),

4、4、void cout_one(int i);一個職工數(shù)據(jù)的輸出函數(shù), 5、void elete_one();一個職工數(shù)據(jù)的刪除函數(shù), 6、void add_one();一個職工數(shù)據(jù)的添加函數(shù), 7、void cout_after_time();輸出在某個時間后出生的所有職工數(shù)據(jù)函數(shù), 8、void cout_before_time();輸出在某個時間前出生的所有職工數(shù)據(jù)函數(shù), 9、void cout_position();輸出某個職稱的所有的職工數(shù)據(jù)函數(shù), 10、void cout_ifmarry();輸出所有未婚的職工數(shù)據(jù)函數(shù), 11、void change_salary();改變某個職工

5、的工資函數(shù), 12、void change_educate();改變某個職工的最高學歷函數(shù), 13、void change_marry();改變某個職工的婚姻狀態(tài)函數(shù), 14、void change_position();改變某個職工職稱函數(shù), 15、void chang_lengh(int i);改變類中的數(shù)據(jù)長度lengh函數(shù), 16、void amend();修改職工數(shù)據(jù)的函數(shù),包含了11,12,13,14,這4個函數(shù),通過顯示操作類型,選擇讀取11,12,13,14中某個或多個函數(shù),退出操作室對出該函數(shù), 17、void output();輸出職工數(shù)據(jù)函數(shù),包含了7,8,9,10,這4

6、個函數(shù),通過顯示操作類型,選擇讀取7,8,9,10中某個或多個函數(shù),退出操作室對出該函數(shù), 18、void save();將職工數(shù)據(jù)存儲在已定義文件中函數(shù), 19、int load_data();將已存儲在文件中的數(shù)據(jù)讀取進入程序中來函數(shù),4、 在main()函數(shù)中,定義類worker的對象man, 1、第一部分操作:顯示可以對對象man進行的操作(讀取,創(chuàng)建,退出)和對輸入的操作進行讀取判斷,選擇調(diào)用函數(shù)cin_all(),loat_data()或退出(退出創(chuàng)建過程)。 2、第二部分操作:顯示可以對對象man進行的操作(添加,刪除,修改,輸出,退出),對輸入的操作的判斷進行讀取判斷,選擇調(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;/出生日期儲存typedef struct int year; int month; int day;birth;/職工數(shù)據(jù)儲存typedef struct long number;/職工編號 string name;/姓名 string se

8、x;/性別 birth birthday;/出生年月 string position;/職稱 string educate;/最后學歷 float salary;/工資 int marry;/婚否worker;/儲存系統(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輸入(編號為負時結束)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輸入(編號為負時結束)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 職工編號:ai.numberendl; cout 姓名:endl; cout 性別:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birthday.month.ai.birthday.dayendl; cout 職稱:ai.positionendl; cout 最后學歷:cateendl; cout 工資:ai.salaryendl; cou

13、t=0) cout結婚endlendl; else cout未婚endlendl; coutendlendl;/輸出一個職工數(shù)據(jù)void operate:cout_one(int i) cout 職工編號:ai.numberendl; cout 姓名:endl; cout 性別:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birthday.month.ai.birthday.dayendl; cout 職稱:ai.positionendl; cout 最后學歷:cateendl; cout 工資:ai.salaryendl; c

14、out=0) cout結婚endl; else cout未婚endl; coutendlendl;/輸出一個時間出生后的職工數(shù)據(jù)void operate:cout_after_time() system(cls); birth t; cout輸入要求在某個時間出生以后的職工的那個時間:; cout出生日期: endlt.year;coutt.month;coutt.day; int s=0; for(int i=0;it.year) if(s=0) cout輸出在時間t.year年t.month月t.day以后出生的職工數(shù)據(jù):t.month) if(s=0) cout輸出在時間t.year年t

15、.month月t.day以后出生的職工數(shù)據(jù):t.day) if(s=0) cout輸出在時間t.year年t.month月t.day以后出生的職工數(shù)據(jù):endl; cout_one(i); s+; if(ai+1.number=0) break; if(s=0) cout 沒有在t.year:t.month:t.day以后出生的職工.endlendl;/輸出一個時間出生前的職工數(shù)據(jù)void operate:cout_before_time() system(cls); birth t; cout輸入要求在某個時間出生以前的職工的那個時間:; 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輸出在時間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輸出在時間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輸出在時間t.year年t.month月t.day以前出生的職工數(shù)據(jù):endl; cout_one(i); s+; if(ai+1.number=0) break; if(s=0) cout 沒有在t.year:t.month:t.day以前出生的職工.endlendl;/輸出某個職稱的職工數(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沒有職稱為p的職工endlendl; else return;/輸出沒有結婚的職工數(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沒有未婚的職工endl; /刪除某個職工數(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沒有編號為n的職工.0;i+) ai=ai+1; save(); lengh-; coutendl; system(cls); cout編號為n的職工的數(shù)據(jù)已刪除.endl; /增加一個職工數(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 職工編號:ai.numberendl; cout 姓名:endl; cout 性別:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birth

21、day.month.alengh.birthday.dayendl; cout 最后學歷:cateendl; cout 工資:ai.salaryendl; cout=0) cout結婚endl; else cout未婚endl; coutendlendl; lengh+; coutendl;/修改工資void operate:chang_lengh(int i) lengh=i;void operate:change_salary() system(cls); cout輸入要修改工資的職工編號:num; int x=0; for(;xlengh;x+) if(ax.number=n

22、um) break; system(cls); if(x=lengh) cout沒有編號為num的職工endlendl; else cout輸入職工num修改后的工資:ax.salary; cout職工num的工資被修改為:ax.salaryendlendl; /修改學位void operate:change_educate() system(cls); cout輸入要修改學位的職工編號:num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout沒有編號為num的職工endl; els

23、e cout輸入職工num修改后的學位:cate; cout職工num的學位被修改為:cateendlendl; /修改結婚狀態(tài)void operate:change_marry() system(cls); cout輸入要修改婚姻的職工編號:num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout沒有編號為num的職工endl0) cout編號為num的職工婚姻狀態(tài)改為未婚endlendl; ax.marry=-1; else cout編號為num的

24、職工婚姻狀態(tài)改為已婚endlendl; ax.marry=1;/修改職稱void operate:change_position() system(cls); cout輸入要修改職稱的職工編號:num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout沒有編號為num的職工endlendl; else cout輸入職工num修改后的職稱:ax.position; cout職工num的職稱被修改為:ax.positionendlendl; /寫入文件void operate:save()

25、ofstream file(f:c+實驗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();/讀寫文件int ope

26、rate:load_data() int i=0; ifstream file(f:c+實驗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輸入要修改的職工項目(輸入數(shù)字):endl 1,退出(退出修改函數(shù))、endl 2,職稱, endl 3,最后學歷,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輸入錯誤,請重新輸入.endl;break; system(cls);void operate:output() int in;int key=1; system(cls); while(key) cout輸入要輸出的對象(輸入數(shù)字代號):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輸入錯誤,請重新輸入.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),進入操作系統(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論