《程序設(shè)計(jì)課程設(shè)計(jì)》設(shè)計(jì)職工信息管理系統(tǒng)

上傳人:仙*** 文檔編號:28024805 上傳時(shí)間:2021-08-22 格式:DOC 頁數(shù):19 大?。?27KB
收藏 版權(quán)申訴 舉報(bào) 下載
《程序設(shè)計(jì)課程設(shè)計(jì)》設(shè)計(jì)職工信息管理系統(tǒng)_第1頁
第1頁 / 共19頁
《程序設(shè)計(jì)課程設(shè)計(jì)》設(shè)計(jì)職工信息管理系統(tǒng)_第2頁
第2頁 / 共19頁
《程序設(shè)計(jì)課程設(shè)計(jì)》設(shè)計(jì)職工信息管理系統(tǒng)_第3頁
第3頁 / 共19頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《程序設(shè)計(jì)課程設(shè)計(jì)》設(shè)計(jì)職工信息管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《《程序設(shè)計(jì)課程設(shè)計(jì)》設(shè)計(jì)職工信息管理系統(tǒng)(19頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、 《程序設(shè)計(jì)課程設(shè)計(jì)》設(shè)計(jì)說明書 題目: 職工信息管理系統(tǒng) 班級: 1301 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)號: ********** 姓名: ***** 上課老師: 張 桂 珠 評定成績: 日期: 2014.5.31 題目: 職工信息管理系統(tǒng) 設(shè)

2、計(jì)要求: 1、要求: 課程設(shè)計(jì)要求采用面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)方法,首先對問題進(jìn)行需求分析,識別類與對象,設(shè)計(jì)合理的類結(jié)構(gòu)與程序結(jié)構(gòu)實(shí)現(xiàn)程序功能(恰當(dāng)應(yīng)用教材所介紹的各種數(shù)據(jù)結(jié)構(gòu)和算法),用c++語言編寫程序;然后設(shè)計(jì)各種可能的數(shù)據(jù)(測試對象)對程序進(jìn)行測試,觀察運(yùn)行結(jié)果是否正確,確保在可見范圍內(nèi)的測試對象都能得到正確結(jié)果。 設(shè)計(jì)合理的程序完成題目要求的功能,輸入輸出信息時(shí)注意輸入輸出的格式,應(yīng)該在輸入前提示輸入的格式和內(nèi)容;將程序的各項(xiàng)信息保存到文件并能打開,用c++的輸入輸出流實(shí)現(xiàn)。 2、題目內(nèi)容: 該系統(tǒng)在磁盤上存儲某單位所有職工的基本信息,對于每一

3、個(gè)職工存儲:職工 編號、姓名、性別、出生年月、職稱、最后學(xué)歷、工資和婚否。 系統(tǒng)功能要求如下: (1)創(chuàng)建存儲該單位職工信息的存儲系統(tǒng)(第一次輸入職工基本信息時(shí)); (2)增加職工信息,增加新職工時(shí)輸入新職工的基本信息; (3)刪除某職工的基本信息(如,死亡或離職); (4)修改某職工(指定職工編號)的某些信息(如,加工資、獲得新學(xué)位、晉升職稱、結(jié)婚或離婚)。 (5)可以輸出符合某種特征的職工信息列表: ①全體職工信息列表; ②某職稱的職工信息列表; ③某年月以后出生的職工信息列表; ④某年月

4、以前出生的職工信息列表; ⑤未婚職工信息列表。 3、開發(fā)環(huán)境: Code::Blocks 10.05 設(shè)計(jì)思路: 1、定義結(jié)構(gòu)體birth存儲年月日數(shù)據(jù),再定義結(jié)構(gòu)體worker存儲職工的數(shù)據(jù)。 2、定義類operate,它包含3個(gè)私有數(shù)據(jù)成員 1、職工數(shù)據(jù)worker a[HUMAN_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、

5、void cout_all();全體數(shù)據(jù)輸出函數(shù), 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

6、 cout_ifmarry();輸出所有未婚的職工數(shù)據(jù)函數(shù), 11、void change_salary();改變某個(gè)職工的工資函數(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);改變類中的數(shù)據(jù)長度lengh函數(shù), 16、void amend();修改職工數(shù)據(jù)的函數(shù),包含了11,12,13,14

7、,這4個(gè)函數(shù),通過顯示操作類型,選擇讀取11,12,13,14中某個(gè)或多個(gè)函數(shù),退出操作室對出該函數(shù), 17、void output();輸出職工數(shù)據(jù)函數(shù),包含了7,8,9,10,這4個(gè)函數(shù),通過顯示操作類型,選擇讀取7,8,9,10中某個(gè)或多個(gè)函數(shù),退出操作室對出該函數(shù), 18、void save();將職工數(shù)據(jù)存儲在已定義文件中函數(shù), 19、int load_data();將已存儲在文件中的數(shù)據(jù)讀取進(jìn)入程序中來函數(shù), 4、 在main()函數(shù)中,定義類worker的對象man, 1、第一部分操作:顯示可以對對象man進(jìn)行的操作(讀取,創(chuàng)建,退

8、出)和對輸入的操作進(jìn)行讀取判斷,選擇調(diào)用函數(shù)cin_all(),loat_data()或退出(退出創(chuàng)建過程)。 2、第二部分操作:顯示可以對對象man進(jìn)行的操作(添加,刪除,修改,輸出,退出),對輸入的操作的判斷進(jìn)行讀取判斷,選擇調(diào)用函數(shù)add_one(),delete_one(),amend(),out_put()或退出(退出系統(tǒng))。 程序代碼: #include #include #include #include #define true 1 #define flase 0

9、#define HUMAN_NUMBER 50 #define ADD 10 using namespace std; //出生日期儲存 typedef struct{ int year; int month; int day; }birth; //職工數(shù)據(jù)儲存 typedef struct{ long number;//職工編號 string name;//姓名 string sex;//性別 birth birthday;//出生年月 string position;//職稱 string

10、educate;//最后學(xué)歷 float salary;//工資 int marry;//婚否 }worker; //儲存系統(tǒng) class operate{ private: worker a[HUMAN_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();

11、 void cout_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();

12、 int load_data(); }; // //第一次建立 void operate::set_first(){ for(int j=0;j!=HUMAN_NUMBER-1;j++){ a[j].birthday.year=0; a[j].birthday.month=0; a[j].birthday.day=0; a[j].educate="未知"; a[j].marry=0; a[j].name="未知"; a[j].number

13、=0; a[j].position="未知"; a[j].salary=0; a[j].sex="未知"; } a[0].number=0; lengh=0; size=HUMAN_NUMBER; } //第一次所有數(shù)據(jù)輸入 void operate::cin_all(){ cout<<"輸入(編號為負(fù)時(shí)結(jié)束)"<

14、>a[i].number; if(a[i].number<0){ cout<<"職工數(shù)據(jù)輸入完成。"<>a[i].name; cout<<" 性別: ";cin>>a[i].sex; cout<<" 出生日期: "<>a[i].birthday.year;cout<<" 月:";cin>>a[i].birthday.month;cout<<" 日:";ci

15、n>>a[i].birthday.day; cout<<" 職稱:";cin>>a[i].position; cout<<" 最后學(xué)歷:";cin>>a[i].educate; cout<<" 工資:"; cin>>a[i].salary; cout<<" 是否結(jié)婚(是:1,不是:-1):";cin>>a[i].marry; cout<

16、 a[i].number=-1; save(); } //輸出所有數(shù)據(jù) void operate::cout_all(){ cout<

17、 出生年月:"<=0){ cout<<"結(jié)婚"<

18、 else cout<<"未婚"<

19、rthday.day<=0){ cout<<"結(jié)婚"<

20、:cout_after_time(){ system("cls"); birth t; cout<<"輸入要求在某個(gè)時(shí)間出生以后的職工的那個(gè)時(shí)間:"; cout<<"出生日期: "<>t.year;cout<<"月:";cin>>t.month;cout<<"日:";cin>>t.day; int s=0; for(int i=0;it.year){ if(s==0) cout<<"輸出

21、在時(shí)間"<t.month){ if(s==0) cout<<"輸出在時(shí)間"<

22、t.day){ if(s==0) cout<<"輸出在時(shí)間"<

23、(i); s++; } } } if(a[i+1].number<=0) break; } if(s==0) cout<<" 沒有在"<

24、 cout<<"輸入要求在某個(gè)時(shí)間出生以前的職工的那個(gè)時(shí)間:"; cout<<"出生日期: "<>t.year;cout<<"月:";cin>>t.month;cout<<"日:";cin>>t.day; int s=0; for(int i=0;i

25、endl; cout_one(i); s++; } else if(a[i].birthday.year==t.year){ if(a[i].birthday.month

26、 s++; } else if(a[i].birthday.month==t.month){ if(a[i].birthday.day

27、 } } if(a[i+1].number<=0) break; } if(s==0) cout<<" 沒有在"<>p; cout<

28、<"輸出職稱為"<0;j++){ if(a[j].position==p){ cout_one(j); s++; } } if(s==0){ cout<<"沒有職稱為"<

29、stem("cls"); cout<<"輸出所有未婚的職工數(shù)據(jù):"<

30、delete_one(){ int i=0,n; system("cls"); cout<<"輸入要刪除職工的編號:"; cin>>n; for(;i0;i++){ a[i]=a[i+1]; } save

31、(); lengh--; cout<>a

32、[i].number; cout<<" 姓名:";cin>>a[i].name; cout<<" 性別: ";cin>>a[i].sex; cout<<" 出生日期: "<>a[i].birthday.year; cout<<" 月:"; cin>>a[i].birthday.month; cout<<" 日:"; cin>>a[i].birthday.day; cout<<" 職稱:";

33、 cin>>a[i].position; cout<<" 最后學(xué)歷:"; cin>>a[i].educate; cout<<" 工資:"; cin>>a[i].salary; cout<<" 是否結(jié)婚(是:1,不是(否):-1):";cin>>a[i].marry; cout<

34、" 姓名:"<=0){ c

35、out<<"結(jié)婚"<>num; int x=0;

36、 for(;x>a[x].salary; cout<<"職工"<

37、ary<>num; int x=0; for(;x

38、"沒有編號為"<>a[x].educate; cout<<"職工"<

39、num; cin>>num; int x=0; for(;x0){ cout<<"編號為"<

40、-1;} else { cout<<"編號為"<>num; int x=0; for(;x

41、 break; } system("cls"); if(x==lengh) cout<<"沒有編號為"<>a[x].position; cout<<"職工"<

42、e(){ ofstream file("F:\\c++實(shí)驗(yàn)\\data.txt",ios_base::out|ios_base::trunc); for(int i=0;i

43、day.day<<" "; file<

44、 file>>a[i].number; file>>a[i].name; file>>a[i].sex; file>>a[i].birthday.year>>a[i].birthday.month>>a[i].birthday.day; file>>a[i].position; file>>a[i].educate; file>>a[i].salary; file>>a[i].marry; } lengh=i; file.close(); system("cls"); cout<<"讀取成功。"<

45、return 1; } void operate::amend(){ int in;int key=1; system("cls"); while(key) { cout<<"輸入要修改的職工項(xiàng)目(輸入數(shù)字):"<>in; switch(i

46、n) { 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:

47、 change_marry(); save();break; default: cout<<"輸入錯(cuò)誤,請重新輸入."<

48、表" <>in; switch(in){ case 1: system("cls"); cout_all();break;

49、 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

50、: cout<<"輸入錯(cuò)誤,請重新輸入."<

51、讀取后不再創(chuàng)建。)"<>in; switch(in){ case 1: key=0;break; case 2: man.cin_all(); man.save();break; case 3: man.load_data();break; default: cout<<"輸入錯(cuò)誤,請重新輸入."<

52、k; } } system("cls"); key=1; while(key){ cout<<"請輸入想要進(jìn)行的操作(輸入數(shù)字):"<>in; switch(in){ case 1: key

53、=0; cout<<"退出系統(tǒng),謝謝使用該系統(tǒng)。";break; case 2: man.add_one();man.save();break; case 3: man.delete_one();man.save();break; case 4: man.amend();break; case 5: man.output();break; default: cout<<"輸入錯(cuò)誤,請重新輸入."<

54、 } }return 0; } 運(yùn)行結(jié)果: 1、讀取已儲存在文件的數(shù)據(jù): 2、對數(shù)據(jù)進(jìn)行添加,刪除、修改和輸出: 3、輸出的想要輸出的對象: 4、輸出所有對象的數(shù)據(jù): 5、退出職工系統(tǒng): 安裝使用說明:所有的操作都必須輸入數(shù)字、根據(jù)顯示屏的顯示進(jìn)行操作。 在開發(fā)過程中所遇到的問題及其解決辦法: 1、數(shù)據(jù)第一次初始化時(shí),結(jié)構(gòu)體中每個(gè)數(shù)據(jù)的類型未做好。解決辦法:重新對結(jié)構(gòu)體worker中的數(shù)據(jù)的類型進(jìn)行定義。 2、在功能(4)修改某職工(指定職工編號)的某些信息的程序編寫時(shí),對a[]

55、中的編號理解錯(cuò)誤,導(dǎo)致修改數(shù)據(jù)的不成功。解決辦法:再定義一個(gè)用來保存a[]中的數(shù)組編號,而用num保存輸入的職工編號數(shù)據(jù)。 3、屏幕上數(shù)據(jù)太多顯示非常繁瑣。解決辦法:在網(wǎng)上查找刷屏函數(shù)system(“cls”)并了解其使用方法 4、對顯示界面的刷屏函數(shù)使用時(shí)出現(xiàn)了顯示屏沒有操作指令的情況。解決辦法:重新對所有的的刷屏函數(shù)進(jìn)行排列和增添對顯示屏上輸出。 小結(jié):在這個(gè)職工管理系統(tǒng)中,從最開始的結(jié)構(gòu)體的編寫,到最后的程序調(diào)試,都是慢慢的進(jìn)行的,思路很清晰。在編寫過程中對程序進(jìn)行了很多的改變和結(jié)構(gòu)的調(diào)節(jié)。像程序中的刷屏函數(shù),文件的讀取,寫入函數(shù)等都是通過網(wǎng)絡(luò)的查找,從而對其有了更好的了解,才能將其寫入這個(gè)程序中。代碼長度越大,寫代碼的時(shí)候的越要有很清晰的思路和所有函數(shù)之間的數(shù)據(jù)類型的兼容。

展開閱讀全文
溫馨提示:
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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!