版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、河南城建學(xué)院面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)設(shè)計(jì)說明書課程名稱: 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì) 設(shè)計(jì)題目: 企業(yè)人事管理系統(tǒng) 指導(dǎo)教師: 班 級: 學(xué) 號: 學(xué)生姓名: 同組人員: 計(jì)算機(jī)科學(xué)與工程系2011 年 6 月 23 日 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 1 -目 錄第第 1 章章 選選 題題.21.1 題目背景.21.2 系統(tǒng)實(shí)現(xiàn)的具體分工.21.2.1 選題.21.2.2團(tuán)隊(duì)分工.21.3 開發(fā)環(huán)境.3第第 2 章章 設(shè)計(jì)內(nèi)容設(shè)計(jì)內(nèi)容.32.1 實(shí)現(xiàn)功能.32.2 概要設(shè)計(jì)(涉及類的框圖).42.3 界面設(shè)計(jì).4第第 3 章章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn).43.1 涉及知識點(diǎn).43.2 系
2、統(tǒng)運(yùn)行.123.3 源程序清單(關(guān)鍵代碼).15第第 4 章章 測試與實(shí)驗(yàn)結(jié)果測試與實(shí)驗(yàn)結(jié)果.29第第 5 章章 結(jié)束語結(jié)束語.30參考文獻(xiàn)參考文獻(xiàn).30 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 2 -第 1 章 選 題1.1 題目背景隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對人事信息進(jìn)行管理,具有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界
3、接軌的重要條件。因此,開發(fā)這樣一套管理軟件成為很有必要的事情。目前,無論是機(jī)關(guān)、事業(yè)單位、還是企業(yè)單位,人事管理對于組織生存與長遠(yuǎn)發(fā)展所具備的重要性都已經(jīng)有了明確的認(rèn)識,而人事管理水平的提升不僅需要高素質(zhì)的管理人員,而且也需要信息化工具進(jìn)行輔助在現(xiàn)代化的企業(yè)管理中,人事管理系統(tǒng)有著十分重要的作用,然而,用大型軟件系統(tǒng)來于小型的企事業(yè)單位,不啻于“殺雞用牛刀” ,因此小型的的軟件對于這種單位自然有十分重要作用。1.2 系統(tǒng)實(shí)現(xiàn)的具體分工1.2.1 選題此項(xiàng)目是為了適應(yīng)現(xiàn)代化企業(yè)的發(fā)展潮流,從而實(shí)現(xiàn)用計(jì)算機(jī)進(jìn)行企業(yè)人事管理,達(dá)到檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好等功能。一下是項(xiàng)目的功
4、能:1、添加功能:添加一個(gè)職員的基本信息,包括姓名,工作證號,身份證號碼,生日,家庭住址,家庭電話號碼,部門,薪水,性別,職務(wù)。2、刪除功能:能夠?qū)σ粋€(gè)職員的信息進(jìn)行刪除按姓名進(jìn)行刪除。3、刪除全部職員信息:能夠?qū)τ谌柯殕T的信息進(jìn)行刪除!4、顯示功能:顯示所有職員的主要信息包括姓名,身份證號碼,工作證號,生日等。5、查找功能:根據(jù)你鍵入的職員姓名,顯示其詳細(xì)信息!6、修改功能:對職員的信息進(jìn)行修改。7、保存信息對全部信息進(jìn)行保存。8、退出程序 能夠退出程序。1.2.2團(tuán)隊(duì)分工表 1.1 項(xiàng)目分工一覽表角色姓名承擔(dān)的具體任務(wù) 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 3 -組長于嘉構(gòu)架整個(gè)
5、程序的模塊,負(fù)責(zé)部門類于全體職工類的構(gòu)造。組員趙鑫磊已生成文件的方式保存錄入的信息,組織交互界面,調(diào)試程序以及優(yōu)化程序。組員千利穩(wěn)編寫增刪改查的模塊程序,構(gòu)造 base 類。1.3 開發(fā)環(huán)境編程工具:visual c+ 6.0機(jī)型:方正電腦處理器名稱:intel(r)core(tm)2 duo cpu e7200 2.53ghz硬盤驅(qū)動(dòng)器:wdc wd1600aajs-22waao系統(tǒng)內(nèi)存:金士頓內(nèi)存 2gb顯示卡: nvidia geforce 9400 gt顯示器: 方正科技 fg981-w9操作系統(tǒng):microsoft windows xp professional第 2 章 設(shè)計(jì)內(nèi)容2
6、.1 實(shí)現(xiàn)功能1、添加功能:添加一個(gè)職員的基本信息,包括姓名,工作證號,身份證號碼,生日,家庭住址,家庭電話號碼,部門,薪水,性別,職務(wù)。2、刪除功能:能夠?qū)σ粋€(gè)職員的信息進(jìn)行刪除按姓名進(jìn)行刪除。3、刪除全部職員信息:能夠?qū)τ谌柯殕T的信息進(jìn)行刪除!4、顯示功能:顯示所有職員的主要信息包括姓名,身份證號碼,工作證號,生日等。5、查找功能:根據(jù)你鍵入的職員姓名,顯示其詳細(xì)信息!6、修改功能:對職員的信息進(jìn)行修改。7、保存信息對全部信息進(jìn)行保存。8、退出程序 能夠退出程序。 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 4 -2.2 概要設(shè)計(jì)(涉及類的框圖)系統(tǒng)base 類personnel類 m
7、aintain 類員工工作號員工姓名員工身份證號員工性別員工生日員工家庭住址員工電話員工職務(wù)員工薪水員工職務(wù)員工薪水員工工作號員工姓名員工身份證號員工性別員工生日員工家庭住址員工電話2.3 界面設(shè)計(jì)界面設(shè)計(jì)在工作流程上分為結(jié)構(gòu)設(shè)計(jì)、交互設(shè)計(jì)、視覺設(shè)計(jì)三個(gè)部分。結(jié)構(gòu)設(shè)計(jì)也稱概念設(shè)計(jì) (conceptual design) ,是界面設(shè)計(jì)的骨架。該企業(yè)人事管理系統(tǒng)運(yùn)行時(shí)界面上的目錄體系和詞語定義易于用戶理解和操作,例如主界面的目錄體系包括 1 錄入員工信息、2 顯示員工信息、3、查找員工信息 4、刪除員工信息、5 、修改員工信息、6、清空員工信息、7、保存員工信息、8、退出。其中錄入信息會(huì)出現(xiàn) 1、
8、人事部、2、維修部、3、銷售部。第 3 章 系統(tǒng)實(shí)現(xiàn)3.1 涉及知識點(diǎn)類的設(shè)計(jì)與分析為了界面簡潔些,用了幾個(gè)類。一個(gè)類包含員工的基本信息,一個(gè)類包含部門的信息,一個(gè)類繼承了基本信息和部門信息。1base 類class basepublic:int no;int id;string name;string sex;int birthday;string address;int phone;void input()cout輸入員工的工作號:no; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 5 -cout輸入員工的姓名:name;cout輸入員工的性別:sex;cout輸入員工的身分證:id;c
9、out輸入員工的生日:birthday;cout輸入員工的家庭住址:address;cout輸入員工的家庭電話號碼:phone;void output()coutsetiosflags(ios:left)setw(8)nosetw(8)namesetw(6)sexsetw(8)idsetw(10)birthday setw(8)addresssetw(10)phone;base 類說明表名稱屬性說明no數(shù)據(jù)成員記錄員工對象的工作號name數(shù)據(jù)成員記錄員工對象的姓名id數(shù)據(jù)成員記錄員工對象的身分證sex數(shù)據(jù)成員記錄員工對象的性別birthday數(shù)據(jù)成員記錄員工對象的生日address數(shù)據(jù)成員記錄
10、員工對象的家庭住址phone數(shù)據(jù)成員記錄員工對象的電話void input()成員方法成員函數(shù),輸入數(shù)據(jù)void output()成員方法成員函數(shù),輸出數(shù)據(jù)2personnel 類class personnel /人事部public:virtual void show()cout人事部endl;string job;int pay;void input() cout請輸入該員工的職務(wù)job; cout請輸入該員工的薪水pay; void output() coutsetiosflags(ios:left)職務(wù):setw(6)job 薪水:setw(6)payendl;personnel類說明表
11、名稱屬性說明job數(shù)據(jù)成員記錄員工對象的職務(wù)pay數(shù)據(jù)成員記錄員工對象的薪水virtual void show()成員方法虛函數(shù),顯示所在的部門void input()成員方法成員函數(shù),輸入數(shù)據(jù)void output()成員方法成員函數(shù),輸出數(shù)據(jù)3繼承類class maintain:public personnel /維修部public:virtual void show()cout維修部endl;maintain 類說明表名稱屬性說明job數(shù)據(jù)成員記錄員工對象的職務(wù)pay數(shù)據(jù)成員記錄員工對象的薪水virtual void show()成員方法虛函數(shù),顯示所在的部門void input()成員
12、方法成員函數(shù),輸入數(shù)據(jù)void output()成員方法成員函數(shù),輸出數(shù)據(jù)class staff : public base, public branch ;staff 類說明表名稱屬性說明no數(shù)據(jù)成員記錄員工對象的工作號name數(shù)據(jù)成員記錄員工對象的姓名id數(shù)據(jù)成員記錄員工對象的身分證sex數(shù)據(jù)成員記錄員工對象的性別 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 7 -birthday數(shù)據(jù)成員記錄員工對象的生日address數(shù)據(jù)成員記錄員工對象的家庭住址phone數(shù)據(jù)成員記錄員工對象的電話void input()成員方法成員函數(shù),輸入數(shù)據(jù)void output()成員方法成員函數(shù),輸出數(shù)據(jù)j
13、ob數(shù)據(jù)成員記錄員工對象的職務(wù)pay數(shù)據(jù)成員記錄員工對象的薪水virtual void show()成員方法虛函數(shù),顯示所在的部門void input()成員方法成員函數(shù),輸入數(shù)據(jù)void output()成員方法成員函數(shù),輸出數(shù)據(jù)模塊設(shè)計(jì)與分析1錄入員工信息錄入員工信息void insert()/錄入數(shù)據(jù)int n; while(1) cout請輸入部門的代碼: 1-人事部 2-維修部 3銷售部n;if(n=1|n=2|n=3) if(n=1) do staff *p;p=new staff;p-bumen.show();p-input();p-bumen.input();int q;dof
14、or(int i=0;ino=p-no)cout此工作號已存在!請修改!input();p-bumen.input();q+;break; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 8 -while(q!=0);for(int j=0;jn;j+) if(pj=null) pj=p;cout輸入成功!endl;break; coutn;while(n=1);p 申請新的 staff空間,輸入數(shù)據(jù),檢查所輸入的信息是否已經(jīng)存在,存在顯示數(shù)據(jù)已經(jīng)存在,重新輸入新的數(shù)據(jù),再檢查,直到輸入沒有錯(cuò)誤。進(jìn)入保存該正確的數(shù)據(jù),空間要有足夠的空間才能保存數(shù)據(jù),不足就保存失敗。2顯示員工信息顯示員工信息vo
15、id show()/顯示數(shù)據(jù)staff *p;coutoutendl;for(int j=0;joutput();p-bumen.output();只要 p 的空間內(nèi)不為空就輸出數(shù)據(jù)。3查找員工信息查找員工信息 void find()/查找數(shù)據(jù) string n; cout輸入你要查找姓名n; for(int j=0;jname)=n) pj-bumen.show(); coutoutoutput();pj-bumen.output(); break; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 9 - 輸入要查找的名字,循環(huán)空間,空間不為空,而且空間里的名字與輸入的名字對比,符合就輸出該數(shù)
16、據(jù),不符合下一條數(shù)據(jù),直到符合為止。如果全部空間掃描完都沒有找到該信息,就輸出不存在該信息。4刪除員工信息刪除員工信息 void delete()/刪除數(shù)據(jù)string n;int m; cout輸入你要查找姓名n; cout請輸入該員工所在的部門的代碼: 1-人事部 2-維修部 3銷售部m;if(m=1) for(int j=0;jname)=n)coutoutoutput();pj-bumen.output(); pj=null;cout該員工已被刪除!endl;break; 輸入要查找的名字,循環(huán)空間,空間不為空,而且空間里的名字與輸入的名字對比,符合就把該項(xiàng)的數(shù)據(jù)賦為空值,不符合下一條
17、數(shù)據(jù),直到符合為止。如果全部空間掃描完都沒有找到該信息,沒有信息輸出。5修改員工信息修改員工信息 void revise()/修改數(shù)據(jù)string n;int m; cout輸入你要查找姓名n; cout請輸入該員工所在的部門的代碼: 1-人事部 2-維修部 3銷售部m; if(m=1) for(int j=0;jname)=n)coutoutoutput();pj-bumen.output(); 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 10 -pj-input();pj-bumen.input();cout該員工修改成功!;break; 輸入要查找的名字,循環(huán)空間,空間不為空,而且空間
18、里的名字與輸入的名字對比,符合就重新輸入數(shù)據(jù),不符合下一條數(shù)據(jù),直到符合為止。如果全部空間掃描完都沒有找到該信息,就沒有信息輸出。6清空員工信息清空員工信息void clear()/清空數(shù)據(jù) int n,a=1; do cout請輸入密碼 0返回界面n; if(n=a) for(int i=0;in;i+) pi=null; mi=null; si=null; cout所有員工的資料已被刪除!endl;break; else cout輸入密碼失敗!endl; while(n!=0);首先清空全部員工數(shù)據(jù)是要慎重考慮的,所以要設(shè)置密碼,且密碼定義為 1,沒有密碼不能清空全部員工。密碼正確,然后把
19、所有的空間都賦為空值。7保存員工信息保存員工信息void save()/保存數(shù)據(jù)ofstream output_file;ofstream output_file1;ofstream output_file2;ofstream output_file3;cout正在保存中.endl;output_file.open(personnel.txt); if(!output_file) cout保存 personnel 文件失敗!endl; for(int i=0;in;i+) if(pi!=null) 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 11 - output_fileno sex na
20、me id birthday address phone bumen.job bumen.payendl; b1+; output_file2.open(maintain.txt);if(!output_file2) cout保存 maintain 文件失敗!endl; for( i=0;in;i+) if(mi!=null) output_file2no sex name id birthday address phone bumen.job bumen.payendl; b2+; output_file3.open(sell.txt);if(!output_file3) cout保存 se
21、ll 文件失敗!endl; for( i=0;in;i+) if(si!=null) output_file3no sex name id birthday address phone bumen.job bumen.payendl; b3+; 因?yàn)槲矣昧?3 個(gè)數(shù)組來保存 3 個(gè)不同的部門信息,所以就用了 3 個(gè)不同的文件來保存。然后再用一個(gè)文件來保存各個(gè)部門的數(shù)據(jù)的條數(shù),這樣是用來控制讀出文件的條數(shù),防止讀出錯(cuò)誤的信息。8退出程序退出程序 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 12 -3.2 系統(tǒng)運(yùn)行 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 13 - 面向?qū)ο蟪绦蛟O(shè)計(jì) c+
22、課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 14 - 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 15 -圖 3.1 系統(tǒng)主界面3.3 源程序清單(關(guān)鍵代碼)/basic.h#includestring#includeiostream#include iomanipusing namespace std;class basepublic:int no;int id;string name;string sex;int birthday;string address;int phone;void input()cout輸入員工的工作號:no;cout輸入員工的姓名:name;cout輸入員工的性別:sex;cout
23、輸入員工的身分證:id;cout輸入員工的生日:birthday;cout輸入員工的家庭住址:address;cout輸入員工的家庭電話號碼:phone;void output()coutsetiosflags(ios:left)setw(8)nosetw(8)namesetw(6)sexsetw(8)idsetw(10)birthday setw(8)addresssetw(10)phone;/branch.h#includeiostream#includestring#include iomanipusing namespace std; class personnel /人事部publi
24、c:virtual void show()cout人事部endl;string job;int pay;void input() cout請輸入該員工的職務(wù)job; cout請輸入該員工的薪水pay; void output() coutsetiosflags(ios:left)職務(wù):setw(6)job 薪水:setw(6)payendl;class maintain:public personnel /維修部public:virtual void show() 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 17 -cout維修部endl;class sell:public personne
25、l /銷售部public:virtual void show()cout銷售部endl;template class branch public:type bumen;/staff.h#includebasic.h#includebranch.h#includeiostreamusing namespace std;template class staff : public base, public branch ;/頭文件#includestring#include#includestaff.h#includecstdio#includeconio.h#includefstream#incl
26、udeiostream#includestdlib.h#define n 100using namespace std;staff *pn; staff *mn;staff *sn;const int size_char = 5; const char cch = abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 18 -int b1=0,b2=0,b3=0;/導(dǎo)入數(shù)據(jù)條數(shù)string m()/隨機(jī)生字母 char chsize_char + 1 = 0; for (int i = 0; i
27、 size_char; +i) int x = rand() % (sizeof(cch) - 1); chi = cchx; return ch;ostream& out(ostream& stream)/操縱符return stream setiosflags(ios:left)setw(8)工作號setw(8)姓名setw(6)性別setw(8)身分證setw(12)生日setw(8)地址 setw(10)電話 部門 ;void insert()/錄入數(shù)據(jù)int n; while(1) cout請輸入部門的代碼: 1-人事部 2-維修部 3銷售部n;if(n=1|n=2|n=3) if(
28、n=1) do staff *p;p=new staff;p-bumen.show();p-input();p-bumen.input();int q;do for(int i=0;ino=p-no)cout此工作號已存在!請修改!input(); p-bumen.input(); q+; break; while(q!=0);for(int j=0;jn;j+) if(pj=null) pj=p;cout輸入成功!endl; break; coutn; while(n=1);else if(n=2) do staff *a;a=new staff;a-bumen.show(); a-inpu
29、t();a-bumen.input();int q;dofor(int i=0;ino=a-no)cout此工作號已存在!請修改!input(); a-bumen.input(); q+; break; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 20 -while(q!=0);for(int j=0;jn;j+) if(mj=null) mj=a; cout輸入成功!endl; break; coutn; while(n=2);else if(n=3) do staff *s;s=new staff;s-bumen.show(); s-input();s-bumen.input();int
30、 q;dofor(int i=0;ino=s-no)cout此工作號已存在!請修改!input(); s-bumen.input(); q+; break; while(q!=0);for(int j=0;jn;j+) if(sj=null) sj=s; cout輸入成功!endl; break; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 21 - coutn; while(n=3);break;void show()/顯示數(shù)據(jù) int n; while(1) cout請輸入部門的代碼: 1-人事部 2-維修部 3銷售部 n; if(n=1|n=2|n=3) if(n=1) staff *
31、p;coutoutendl;for(int j=0;joutput();p-bumen.output();break;else if(n=2)staff *a;coutoutendl;for(int i=0;ioutput();a-bumen.output(); 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 22 -break;else if(n=3)staff *s;coutoutendl;for(int i=0;ioutput();s-bumen.output(); break; else if(n=0) break; void find()/查找數(shù)據(jù) string n; cout輸入你要
32、查找姓名n; for(int j=0;jname)=n) pj-bumen.show(); coutoutoutput();pj-bumen.output();break; for(j=0;jname)=n) mj-bumen.show(); coutoutoutput();mj-bumen.output(); 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 23 - break; for(j=0;jname)=n) sj-bumen.show();coutoutoutput();sj-bumen.output(); break; void delete()/刪除數(shù)據(jù) string n;int
33、m; cout輸入你要查找姓名n; cout請輸入該員工所在的部門的代碼: 1-人事部 2-維修部 3銷售部m;if(m=1) for(int j=0;jname)=n)coutoutoutput();pj-bumen.output(); pj=null;cout該員工已被刪除!endl;break; if(m=2) for(int j=0;jname)=n)coutoutoutput();mj-bumen.output(); mj=null; cout該員工已被刪除!endl; break; if(m=3) for(int j=0;jname)=n)coutoutoutput();sj-bu
34、men.output(); sj=null; cout該員工已被刪除!endl; break; void revise()/修改數(shù)據(jù) string n;int m; cout輸入你要查找姓名n; cout請輸入該員工所在的部門的代碼: 1-人事部 2-維修部 3銷售部m; if(m=1) for(int j=0;jname)=n)coutoutoutput();pj-bumen.output();pj-input();pj-bumen.input();cout該員工修改成功!;break; if(m=2) 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 25 - for(int j=0;jnam
35、e)=n)coutoutoutput();mj-bumen.output(); mj-input();mj-bumen.input(); cout該員工修改成功!; break; if(m=3) for(int j=0;jname)=n)coutoutoutput();sj-bumen.output(); sj-input();sj-bumen.input(); cout該員工修改成功!; break; void clear()/清空數(shù)據(jù) int n,a=1; do cout請輸入密碼 0返回界面n; if(n=a) for(int i=0;in;i+) pi=null; mi=null; s
36、i=null; cout所有員工的資料已被刪除!endl;break; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 26 - else cout輸入密碼失敗!endl; while(n!=0);void save()/保存數(shù)據(jù)ofstream output_file;ofstream output_file1;ofstream output_file2;ofstream output_file3;cout正在保存中.endl;output_file.open(personnel.txt); if(!output_file) cout保存 personnel 文件失敗!endl; for(in
37、t i=0;in;i+) if(pi!=null) output_fileno sex name id birthday address phone bumen.job bumen.payendl; b1+; output_file2.open(maintain.txt);if(!output_file2) cout保存 maintain 文件失敗!endl; for( i=0;in;i+) if(mi!=null) output_file2no sex name id birthday address phone bumen.job bumen.payendl; b2+; output_fi
38、le3.open(sell.txt);if(!output_file3) cout保存 sell 文件失敗!endl; for( i=0;in;i+) if(si!=null) output_file3no sex name id birthday address phone bumen.job bumen.payendl; b3+; output_file1.open(kongzhi.txt);output_file1b1 b2 b3endl;/保存數(shù)據(jù)條數(shù)output_file1.close();output_file.close();output_file2.close();output
39、_file3.close();cout保存完畢!b1b2b3; input_file.open(personnel.txt); input_file2.open(maintain.txt); input_file3.open(sell.txt); if(!input_file|!input_file2|!input_file3) cout打開文件失敗!endl; cout建立新的數(shù)據(jù)!endl; for(int i=0;in;i+) pi=null; mi=null; si=null; for(i=0;i32;i+) /隨機(jī)生成數(shù)據(jù)pi=new staff;pi-no=100+i;pi-sex
40、=m;pi-name=m();pi-id=1000+rand()%100;pi-birthday=1988000+rand()%100;pi-address=m();pi-phone=13567+rand()%100;pi-bumen.job=m();pi-bumen.pay=2000+rand()%101;mi=new staff;mi-no=100+i;mi-sex=m;mi-name=m();mi-id=1000+rand()%100; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 28 -mi-birthday=1988000+rand()%100;mi-address=m();mi-
41、phone=13567+rand()%100;mi-bumen.job=m();mi-bumen.pay=2000+rand()%101;si=new staff;si-no=100+i;si-sex=m;si-name=m();si-id=1000+rand()%100;si-birthday=1988000+rand()%100;si-address=m();si-phone=13567+rand()%100;si-bumen.job=m();si-bumen.pay=2000+rand()%101; else for(int i=0;ib1;i+) pi=new staff; input
42、_filepi-nopi-sexpi-namepi-idpi-birthdaypi-addresspi-phonepi-bumen.jobpi-bumen.pay; for(i=0;ib2;i+) mi=new staff; input_file2mi-nomi-sexmi-namemi-idmi-birthdaymi-addressmi-phonemi-bumen.jobmi-bumen.pay; for(i=0;ib3;i+) si=new staff; input_file3si-nosi-sexsi-namesi-idsi-birthdaysi-addresssi-phonesi-bu
43、men.jobsi-bumen.pay; cout錄入成功!endl; input_file.close(); input_file1.close(); input_file2.close(); input_file3.close(); char n; while(1) while(1)system(color 006); b1=0,b2=0,b3=0;/清空原先的數(shù)據(jù)條數(shù) cout 人事管理管理系統(tǒng) endl; cout* * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * *
44、 * * * * * * * * * * * * * *endl 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 29 - * * 1: 錄入員工信息 * *endl * * 2: 顯示員工信息 * *endl * * 3: 查找員工信息 * *endl * * 4: 刪除員工信息 * *endl * * 5: 修改員工信息 * *endl * * 6: 清空員工信息 * *endl * * 7: 保存員工信息 * *endl * * 8: 退出系統(tǒng) * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * *
45、 * * * * * * * * * * * * * * * * * * * * * * * * *endl n; if(n!=1|n!=2|n!=3|n!=4|n!=5|n!=6|n!=7|n!=8) break; switch(n) case 1:insert();break; case 2:show();break; case 3:find(); break; case 4:delete(); break; case 5:revise();break; case 6:clear();break; case 7:save();break; case 8:exit(0); default:b
46、reak; getch(); system(cls); 第 4 章 測試與實(shí)驗(yàn)結(jié)果于嘉:由于設(shè)計(jì)者水平有限及時(shí)間等方面的原因,該系統(tǒng)的功能比較簡單,查錯(cuò)能力也不強(qiáng),對于一些不正確的輸入可能會(huì)造成一些難以預(yù)料的結(jié)果,因此,請不要故意輸入錯(cuò)誤信息。這些不足請老師多多諒解。今后設(shè)計(jì)者會(huì)更多的學(xué)習(xí)編程技巧,不斷的提高程序設(shè)計(jì)水平。趙欣磊:在使用讀取功能時(shí),運(yùn)行程序出現(xiàn)錯(cuò)誤,發(fā)現(xiàn)原來沒有申請新的空間,導(dǎo)致運(yùn)行出錯(cuò)。在使用讀取功能時(shí),讀出數(shù)據(jù)成功,可是讀出一些空值,因此在保存數(shù)據(jù)的時(shí)候增加了保存多少條數(shù)據(jù),這樣用來控制讀出數(shù)據(jù)的條數(shù),以免讀出空值;但是經(jīng)過不斷的改進(jìn)最終實(shí)現(xiàn)了預(yù)期的功能千利穩(wěn):在使用錄入功
47、能時(shí),如果輸入與已經(jīng)存在的數(shù)據(jù)時(shí)不會(huì)出現(xiàn)提示,最后要用到循環(huán)來檢查數(shù)據(jù)是否相同。開始的時(shí)候用到全局變量來控制循環(huán),然后再用到局部變量來覆蓋全部變量,導(dǎo)致不能判斷數(shù)據(jù)是否相同。經(jīng)過修改。在循環(huán)那里在重新賦值就可以成功判斷。 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 30 -第 5 章 結(jié)束語經(jīng)過一個(gè)星期的課程設(shè)計(jì),時(shí)間挺緊,任務(wù)繁重,但是仍能一絲不茍的將一個(gè)管理系統(tǒng)設(shè)計(jì)完成,我很欣慰,也感覺很有成就感。通過這次課程我更加認(rèn)識到團(tuán)隊(duì)的重要性,使我們更加的團(tuán)結(jié)的去面對問題,使我們的個(gè)人能力得到了更大的提高。不僅是這樣,通過本次的課程設(shè)計(jì),一下的幾個(gè)方面也得到了很大的提高。深刻剖析了本次題目,在遇
48、到困難時(shí),敢于去解決。而且更重要的是懂得了如何把書本上學(xué)到的和實(shí)際制作聯(lián)系到一起。更進(jìn)一步熟悉了 vc+6.0 的應(yīng)用,以及對代碼的熟練書寫。一直對軟件的開發(fā)很好奇,曾經(jīng)很想學(xué)會(huì)一門編程課程,然后自己編寫軟件,可愿望總為能達(dá)成,而通過這次的課程設(shè)計(jì),達(dá)到了自己的愿望,也解開了對軟件設(shè)計(jì)的神秘面紗。參考文獻(xiàn)1錢能. c+程序設(shè)計(jì)教程(第一版).清華大學(xué)出版社2 錢能. c+程序設(shè)計(jì)教程(第二版).清華大學(xué)出版社3 c+入門經(jīng)典(清華大學(xué)出版)ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqozxuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbftoxvrffn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海師范大學(xué)天華學(xué)院《溝通技巧》2023-2024學(xué)年第一學(xué)期期末試卷
- 醫(yī)院個(gè)人述職報(bào)告范文
- 課題申報(bào)書:高校戰(zhàn)略規(guī)劃實(shí)施模式及績效評估研究
- 課題申報(bào)書:高校輔導(dǎo)員名師工作室建設(shè)有效路徑研究
- 課題申報(bào)書:多重風(fēng)險(xiǎn)沖擊下玉米供應(yīng)鏈韌性治理及安全水平提升策略研究
- 課題申報(bào)書:多維信息嵌合視角下居民綠色消費(fèi)行為形成、擴(kuò)散與激勵(lì)策略研究
- 2023-2024屆高考模擬作文寫作“距離”
- 上海紐約大學(xué)《工程力學(xué)A2》2023-2024學(xué)年第一學(xué)期期末試卷
- 統(tǒng)編教材八年級上冊語文第7課我的母親 公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 上海南湖職業(yè)技術(shù)學(xué)院《機(jī)械工程測試技術(shù)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國高血壓防治指南(2024年修訂版)核心要點(diǎn)解讀
- 湖州師范學(xué)院《中學(xué)歷史教學(xué)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年人教版八年級語文上冊期末考試卷(附答案)
- 汽車乘員仿真RAMSIS操作指南
- 遼寧省大連市2023-2024學(xué)年高三上學(xué)期雙基測試(期末考試) 物理 含解析
- 2024網(wǎng)絡(luò)數(shù)據(jù)安全管理?xiàng)l例全文解讀課件
- 2024年刑法知識考試題庫含答案(綜合卷)
- 移動(dòng)裝維工技能理論考試題庫及答案(新版)
- 既有線換枕施工方案
- 2024版【教科版】小學(xué)綜合實(shí)踐活動(dòng)四年級上冊教案
- 小學(xué)英語試卷分析存在問題及整改措施4篇
評論
0/150
提交評論