版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 課程設(shè)計(jì)題目:</b></p><p><b> 人員管理系統(tǒng)公司</b></p><p><b> 學(xué)生姓名: </b></p><p><b> 班
2、級(jí): </b></p><p><b> 學(xué) 號(hào): </b></p><p> 專 業(yè):信息管理與信息系統(tǒng)</p><p><b> 指導(dǎo)教師: </b></p><p> 2011年11月10日</p><p><b> 目錄&l
3、t;/b></p><p> 第一章 緒論……………………………………………………………3</p><p> 第二章 需求分析………………………………………………………4</p><p> 第三章 總體設(shè)計(jì)………………………………………………………5</p><p> 第四章 詳細(xì)設(shè)計(jì)(個(gè)人負(fù)責(zé)的模塊)………………………………6
4、</p><p> 第五章 程序代碼(個(gè)人負(fù)責(zé)的部分)………………………………8</p><p> 第六章 系統(tǒng)程序結(jié)果…………………………………………………11</p><p> 第七章 課程設(shè)計(jì)總結(jié)…………………………………………………13</p><p> 第九章 參考文獻(xiàn)………………………………………………………14</
5、p><p><b> 第一章 緒 論</b></p><p> 本章簡(jiǎn)單介紹公司員工管理系統(tǒng)的有關(guān)基礎(chǔ)理論知識(shí),這是深入了解后續(xù)內(nèi)容的必要準(zhǔn)備。</p><p> 1公司員工管理系統(tǒng)概述</p><p> 1.1 管理信息系統(tǒng)的概念</p><p> 管理信息系統(tǒng)(Management I
6、nformation Systems,簡(jiǎn)稱MIS),是一個(gè)不斷發(fā)展的新型學(xué)科,MIS的定義隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的進(jìn)步也在不斷更新,在現(xiàn)階段普遍認(rèn)為MIS 是人為或計(jì)算機(jī)設(shè)備以及其他信息處理手段組成并用于管理信息的系統(tǒng)。包括以下幾個(gè)基本概念:</p><p> (1) MIS的對(duì)象就是信息。信息是經(jīng)過(guò)加工的對(duì)決策者有價(jià)值的數(shù)據(jù)。信息的主要特征是來(lái)源分散,數(shù)量龐大。信息來(lái)源于生產(chǎn)第一線、社會(huì)環(huán)境、市場(chǎng)以及行政管
7、理等部門(mén)。信息具有時(shí)間性。</p><p> (2) 系統(tǒng)是由相互聯(lián)系、相互作用的若干要素按一定的規(guī)則組成并具有一定功能的整體。 系統(tǒng)由輸入、處理、輸出、反饋、控制等五個(gè)基本要素組成。</p><p> (3) 管理信息由信息的采集、信息的傳遞、信息的儲(chǔ)存、信息的加工、信息的維護(hù)和信息的使用等五個(gè)方面組成。 </p><p> MIS包括計(jì)算機(jī)、網(wǎng)絡(luò)通信設(shè)備等
8、硬件成分,也包括操作系統(tǒng)、應(yīng)用軟件包等軟件成分,并隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展還會(huì)出現(xiàn)更多的內(nèi)容。</p><p><b> 1.2 課題背景</b></p><p> 該項(xiàng)目開(kāi)發(fā)的軟件為公司員工信息管理系統(tǒng)軟件,是鑒于目前公司對(duì)員工的管理越來(lái)越來(lái)要求高,員工信息呈爆炸性增長(zhǎng)的前提下,公司對(duì)員工信息管理的自動(dòng)化與準(zhǔn)確化的要求日益強(qiáng)烈的背景下構(gòu)思出來(lái)的。&l
9、t;/p><p> 目前社會(huì)上信息管理系統(tǒng)發(fā)展飛快,各個(gè)企事業(yè)單位都引入了信息管理軟件來(lái)管理自己日益增長(zhǎng)的各種信息,商業(yè)化的員工信息管理軟件也不少.但本系統(tǒng)完全獨(dú)立開(kāi)發(fā),力求使系統(tǒng)功能簡(jiǎn)潔明了,但功能齊全且易于操作</p><p> 1.3 目的背景與意義</p><p> 員工信息管理系統(tǒng)是一個(gè)公司不可缺少的部分。一個(gè)功能齊全、簡(jiǎn)單易用的信息管理系統(tǒng)不但能有效
10、地減輕公司相關(guān)工作人員的工作負(fù)擔(dān),它的內(nèi)容對(duì)于公司的決策者和管理者來(lái)說(shuō)都至關(guān)重要。所以員工信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以?lái)人們使用傳統(tǒng)人工的方式管理文件檔案、統(tǒng)計(jì)和查詢數(shù)據(jù),這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,人工的大量浪費(fèi);另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少困難。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)
11、社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著來(lái)越重要的作用。</p><p> 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)校的各類(lèi)信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查詢方便、效率高、可靠性好、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高員工信息管理的效率,也是一個(gè)單位科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。</p><p> 1.4 程序開(kāi)發(fā)的目標(biāo) </p&g
12、t;<p> 建立員工信息管理系統(tǒng),采用計(jì)算機(jī)對(duì)員工信息進(jìn)行管理,進(jìn)一步提高管理效益和現(xiàn)代化水平。幫助廣大公司提高工作效率,實(shí)現(xiàn)員工信息管理工作流程的系統(tǒng)化、規(guī)范化和自動(dòng)化。</p><p><b> 第二章 需求分析</b></p><p> 隨著信息時(shí)代的到來(lái),各行各業(yè)都需要對(duì)信息進(jìn)行有效快速的處理,當(dāng)然公司的員工管理尤其需要。有一個(gè)好的管理系
13、統(tǒng),是任何一個(gè)公司對(duì)其業(yè)務(wù)進(jìn)行分析及平時(shí)日常管理的必要條件。</p><p> 在進(jìn)行管理得方法和手段方面,最有效得工具就是電腦管理了。傳統(tǒng)的人力管理存在著許多無(wú)法避免的問(wèn)題,針對(duì)這些問(wèn)題需要設(shè)計(jì)出運(yùn)用計(jì)算機(jī)管理的信息系統(tǒng)。系統(tǒng)實(shí)現(xiàn)員工管理的信息記錄和存儲(chǔ),進(jìn)行全面自動(dòng)管理,大幅度提高了信息管理得效率,使得公司對(duì)員工的管理更為輕松。</p><p> 本應(yīng)用程序?qū)崿F(xiàn)的是Visual C
14、++的功能,用戶進(jìn)入該程序后,可以在用戶界面進(jìn)行有效的操作。用戶開(kāi)始登錄界面后,可以在文本框中輸入信息,在此過(guò)程中,可以對(duì)員工進(jìn)行查詢、修改、增加、刪除等操作,若系統(tǒng)處理后,根據(jù)自己的需要,用戶可以對(duì)其進(jìn)行保存。</p><p> 開(kāi)發(fā)工具:Microsoft Visual C++ 6.0</p><p><b> 第三章 總體設(shè)計(jì)</b></p>
15、<p><b> 系統(tǒng)總體框架</b></p><p> 使用面向?qū)ο蟮某绦蛟O(shè)計(jì)思想進(jìn)行分析,整個(gè)系統(tǒng)涉及兩大類(lèi)信息和操作,公司,人員。所以系統(tǒng)主要涉及兩個(gè)大類(lèi):公司類(lèi)Company、人員類(lèi)Person。系統(tǒng)的總體框架就是公司類(lèi),人員類(lèi)的定義;主函數(shù)中定義一個(gè)公司對(duì)象,循環(huán)顯示主菜單并根據(jù)用戶選擇調(diào)用公司類(lèi)的相應(yīng)方法(成員函數(shù))。</p><p>
16、(1)公司類(lèi)Company:考慮系統(tǒng)操作的人員信息的數(shù)量具有不確定性,所以考慮使用鏈表保存、處理人員信息。公司類(lèi)包含:所有人員信息的一個(gè)不帶頭結(jié)點(diǎn)的鏈表(作為數(shù)據(jù)成員)及可以對(duì)人員信息進(jìn)行增,刪,改,查詢經(jīng)營(yíng)信息,基礎(chǔ)數(shù)據(jù)設(shè)置,數(shù)據(jù)存盤(pán),數(shù)據(jù)裝入等操作的相關(guān)模塊(Add,Delete,Modify,Query,Set,Save,Load)作為成員函數(shù)。</p><p> (2)人員類(lèi)Person:所有人員都具有
17、的公共信息及操作可以使用人員類(lèi)進(jìn)行描述。由于系統(tǒng)具有4類(lèi)人員且4類(lèi)人員數(shù)據(jù),操作有所不同,如銷(xiāo)售員包含銷(xiāo)售額,而技術(shù)人員包含工作小時(shí)數(shù)且計(jì)算工資的方法不同,所以應(yīng)當(dāng)為4類(lèi)人員創(chuàng)建相應(yīng)的Person類(lèi)的派生類(lèi)。</p><p> (3)為了使公司類(lèi)可以方便處理人員信息,可以考慮將公司類(lèi)確定為人員類(lèi)的友元類(lèi)或者人員類(lèi)提供公共的方法以便公司類(lèi)進(jìn)行操作。為了公司類(lèi)可以用共同方法操作人員類(lèi),可以將人員類(lèi)的方法確定為虛函數(shù)
18、。</p><p><b> 類(lèi)的層次圖</b></p><p><b> Person</b></p><p> { No,Name,Duty,Earning,next,Person(),CalcSalary(),Output()}</p><p> Manager Sale
19、s SalesManager Technician</p><p> { Manager(), {Amount, {Amount, { t,</p><p> CalcSalary(), Sales(),GetAmount(), SalesManager(), Technician(
20、),</p><p> Output()} SetAmount(), SetAmount(), GetT(),SetT(),</p><p> CalcSalary(), CalcSalary(), CalcSalary(),</p><p> Output()} Output
21、()} Output()}</p><p><b> 其中:</b></p><p> (1)Person 類(lèi)的No-人員編號(hào),Name-人員姓名,Duty-人員類(lèi)別,Earning-工資,next-指向下一個(gè)人員的指針;Person 類(lèi)的CalcSalary(),Output()定義為純虛函數(shù)分別表示要計(jì)算人員工資和輸出人員信息,由于定義純虛
22、函數(shù),所以Person是抽象類(lèi),具體計(jì)算工資,輸出人員信息由派生類(lèi)完成。</p><p> ?。?)各個(gè)派生的類(lèi),包含本類(lèi)對(duì)象特有的數(shù)據(jù),Sales::Amount-銷(xiāo)售員銷(xiāo)售額,SalesManager::Amount-銷(xiāo)售經(jīng)理的總銷(xiāo)售額(系統(tǒng)統(tǒng)計(jì)各個(gè)銷(xiāo)售員銷(xiāo)售額得到銷(xiāo)售經(jīng)理的總銷(xiāo)售額),Technician::t-技術(shù)人員工作小時(shí)數(shù)。</p><p><b> Compan
23、y </b></p><p> {Person *Worker,</p><p> Clear(),Company(),~Company(),Add(),Delete(),Modify(),</p><p> Query(),Set(),Save(),Load()}</p><p><b> 其中:</b&
24、gt;</p><p> ?。?)Worker就是人員鏈表。</p><p> (2)Clear()用于清除人員鏈表所有結(jié)點(diǎn)。</p><p> (3)Add(),Delete(),Modify(),Query(),Set(),Save(),Load()分別表示系統(tǒng)各個(gè)功能模塊:增加人員,刪除人員,修改人員,查詢本月經(jīng)營(yíng)信息,基礎(chǔ)數(shù)據(jù)設(shè)置,數(shù)據(jù)存盤(pán),數(shù)據(jù)裝入。&
25、lt;/p><p> 第四章 詳細(xì)設(shè)計(jì)(個(gè)人負(fù)責(zé)模塊)</p><p> 我主要負(fù)責(zé)增加函數(shù)模塊。</p><p><b> 1、錄入函數(shù)</b></p><p><b> (1)主函數(shù)流程</b></p><p> (2) Company::Add()</p&
26、gt;<p> 第五章 程序代碼(個(gè)人負(fù)責(zé)的部分)</p><p> 我主要負(fù)責(zé)的代碼部分有錄入函數(shù)、顯示函數(shù)和清空函數(shù),如下:</p><p><b> 錄入函數(shù)代碼:</b></p><p> #include <iostream.h></p><p> #include <
27、;fstream.h></p><p> #include <ctype.h></p><p> #include <string.h></p><p><b> //全局?jǐn)?shù)據(jù),對(duì)象</b></p><p> double ManagerSalary; //經(jīng)理固定月薪&
28、lt;/p><p> double SalesManagerSalary; //銷(xiāo)售經(jīng)理固定月薪</p><p> double SalesManagerPercent; //銷(xiāo)售經(jīng)理提成%</p><p> double SalesPercent; //銷(xiāo)售人員提成%</p><p> double WagePerHou
29、r; //技術(shù)人員小時(shí)工資</p><p> int ID; //員工標(biāo)識(shí)(要保證唯一)</p><p> class Person //員工類(lèi)</p><p><b> {</b></p><p> protected:</p><p
30、> int No; //編號(hào)</p><p> char Name[20]; //姓名</p><p> int Duty; //崗位</p><p> double Earning; //收入</p><p> Person *next;</p><p><b> publ
31、ic:</b></p><p> Person(char ID,char *Name,int Duty)</p><p><b> {</b></p><p> this->Duty=Duty;</p><p> strcpy(this->Name,Name);</p>&l
32、t;p> this->No=ID;</p><p><b> }</b></p><p> virtual void CalcSalary()=0; </p><p> virtual void Output()=0;</p><p> friend class Company;</p>
33、<p><b> };</b></p><p> class Manager:public Person //經(jīng)理類(lèi)</p><p><b> {</b></p><p><b> public:</b></p><p> Manager(char I
34、D,char *Name,int Duty):Person(ID,Name,Duty){}</p><p> void CalcSalary(){Earning=ManagerSalary;}</p><p> void Output()</p><p><b> {</b></p><p> CalcSalar
35、y();</p><p> cout<<No<<"\t"<<Name<<"\t經(jīng)理\t"<<Earning<<endl;</p><p><b> }</b></p><p><b> };</b><
36、/p><p> class SalesManager:public Person //銷(xiāo)售經(jīng)理類(lèi)</p><p><b> {</b></p><p><b> private:</b></p><p> double Amount;</p><p><b>
37、 public:</b></p><p> SalesManager(char ID,char *Name,int Duty):Person(ID,Name,Duty){}</p><p> void SetAmount(double s)</p><p><b> {</b></p><p><
38、;b> Amount=s;</b></p><p><b> }</b></p><p> void CalcSalary()</p><p><b> {</b></p><p> Earning=SalesManagerSalary+Amount*SalesManag
39、erPercent/100;</p><p><b> }</b></p><p> void Output()</p><p><b> {</b></p><p> CalcSalary();</p><p> cout<<No<<&qu
40、ot;\t"<<Name<<"\t銷(xiāo)售經(jīng)理\t"<<Earning<<endl;</p><p><b> }</b></p><p><b> };</b></p><p> class Technician:public Person
41、 //技術(shù)員類(lèi)</p><p><b> {</b></p><p><b> private:</b></p><p><b> double t;</b></p><p><b> public:</b></p><p>
42、; Technician(char ID,char *Name,int Duty,double T):Person(ID,Name,Duty)</p><p><b> {</b></p><p> this->t=T;</p><p><b> }</b></p><p> dou
43、ble GetT()</p><p><b> {</b></p><p><b> return t;</b></p><p><b> }</b></p><p> void SetT(double T)</p><p><b>
44、 {</b></p><p> this->t=T;</p><p><b> }</b></p><p> void CalcSalary()</p><p><b> {</b></p><p> Earning=WagePerHour*t;&
45、lt;/p><p><b> }</b></p><p> void Output()</p><p><b> {</b></p><p> CalcSalary();</p><p> cout<<No<<"\t"<
46、<Name<<"\t技術(shù)員\t"<<t<<"\t"<<Earning<<endl;</p><p><b> }</b></p><p><b> };</b></p><p> class Sales:publ
47、ic Person //銷(xiāo)售員類(lèi)</p><p><b> {</b></p><p><b> private:</b></p><p> double Amount;</p><p><b> public:</b></p><p> S
48、ales(char ID,char *Name,int Duty,double Amount):Person(ID,Name,Duty)</p><p><b> {</b></p><p> this->Amount=Amount;</p><p><b> }</b></p><p>
49、; double GetAmount()</p><p><b> {</b></p><p> return Amount;</p><p><b> }</b></p><p> void SetAmount(double Amount)</p><p><
50、;b> {</b></p><p> this->Amount=Amount;</p><p><b> }</b></p><p> void CalcSalary()</p><p><b> {</b></p><p> Earnin
51、g=SalesPercent/100*Amount;</p><p><b> }</b></p><p> void Output()</p><p><b> {</b></p><p> CalcSalary();</p><p> cout<<N
52、o<<"\t"<<Name<<"\t銷(xiāo)售員\t"<<Amount<<"\t"<<Earning<<endl;</p><p><b> }</b></p><p><b> };</b></p&
53、gt;<p> class Company //公司類(lèi)</p><p><b> {</b></p><p><b> private:</b></p><p> Person *Worker; //員工表</p><p> void Clear(); //清除內(nèi)存中數(shù)
54、據(jù)</p><p><b> public:</b></p><p><b> Company()</b></p><p><b> {</b></p><p> Worker=0; </p><p><b> Load()
55、;</b></p><p><b> }</b></p><p> ~Company()</p><p><b> {</b></p><p> Person *p;</p><p><b> p=Worker;</b></p
56、><p><b> while(p)</b></p><p><b> {</b></p><p> p=p->next;</p><p> delete Worker;</p><p><b> Worker=p;</b></p>
57、;<p><b> }</b></p><p><b> Worker=0;</b></p><p><b> }</b></p><p> void Add(); //增加人員</p><p> void Delete(); //刪除人員&l
58、t;/p><p> void Modify(); //修改人員</p><p> void Query(); //查詢?nèi)藛T</p><p> void Set(); //基礎(chǔ)數(shù)據(jù)設(shè)置</p><p> void Save(); //數(shù)據(jù)存盤(pán)(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù))</p><p> void
59、 Load(); //數(shù)據(jù)裝入(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù))</p><p><b> };</b></p><p> void Company::Clear() //清除內(nèi)存中人員數(shù)據(jù)(內(nèi)部使用)</p><p><b> {</b></p><p> Person* p=Worker
60、;</p><p><b> while(p)</b></p><p><b> {</b></p><p> Worker=p->next;</p><p><b> delete p;</b></p><p><b> p=
61、Worker;</b></p><p><b> }</b></p><p><b> }</b></p><p> void Company::Add()</p><p><b> {</b></p><p> Person *p
62、; //新結(jié)點(diǎn)指針</p><p> int Duty; </p><p> char Name[20];</p><p> double Amount,T;</p><p> cout<<"\n** 新增員工 **\n"; </p><p><b> //輸入
63、員工信息</b></p><p><b> ID++;</b></p><p> cout<<"輸入崗位(1-經(jīng)理2-銷(xiāo)售經(jīng)理3-銷(xiāo)售員4-技術(shù)員):"; cin>>Duty;</p><p> cout<<"輸入姓名:"; cin>>
64、Name;</p><p> if(Duty==3)</p><p><b> {</b></p><p> cout<<"本月銷(xiāo)售額:"; cin>>Amount;</p><p><b> }</b></p><p>
65、 else if(Duty==4)</p><p><b> {</b></p><p> cout<<"本月工作小時(shí)數(shù)(0-168):"; </p><p><b> cin>>T;</b></p><p><b> }</b
66、></p><p><b> //創(chuàng)建新員工結(jié)點(diǎn)</b></p><p> switch(Duty)</p><p><b> {</b></p><p> case 1:p=new Manager(ID,Name,Duty); break;</p><p>
67、 case 2:p=new SalesManager(ID,Name,Duty); break;</p><p> case 3:p=new Sales(ID,Name,Duty,Amount); break;</p><p> case 4:p=new Technician(ID,Name,Duty,T); break;</p><p><b&g
68、t; }</b></p><p> p->next=0;</p><p> //員工結(jié)點(diǎn)加入鏈表</p><p> if(Worker) //若已經(jīng)存在結(jié)點(diǎn)</p><p><b> {</b></p><p> Person *p2;</p><
69、;p> p2=Worker;</p><p> while(p2->next) //查找尾結(jié)點(diǎn)</p><p><b> {</b></p><p> p2=p2->next;</p><p><b> }</b></p><p> p2-&g
70、t;next=p; //連接</p><p><b> }</b></p><p> else //若不存在結(jié)點(diǎn)(表空)</p><p><b> {</b></p><p> Worker=p; //連接</p><p><b> } </
71、b></p><p><b> }</b></p><p> else if(Duty==4)</p><p><b> {</b></p><p> cout<<"本月工作小時(shí)數(shù)(0-168):"; </p><p><
72、b> cin>>T;</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p><b> char c;</b></p><p>
73、 Company a;</p><p><b> do</b></p><p><b> {</b></p><p> cout<<"\n*** 公司人員管理系統(tǒng) ***\n";</p><p> cout<<"1-增加人員\n&quo
74、t;;</p><p><b> cin>>c;</b></p><p><b> switch(c)</b></p><p><b> {</b></p><p> case '1': a.Add(); break;</p>
75、;<p><b> }</b></p><p> }while(c!='8');</p><p><b> }</b></p><p> 第六章 系統(tǒng)程序結(jié)果</p><p> 第七章 課程設(shè)計(jì)總結(jié)</p><p> 通過(guò)完成本次
76、面向?qū)ο蟪绦蛟O(shè)計(jì)的任務(wù),使我熟練和掌握了這學(xué)期所學(xué)的有關(guān)visual c++中的一些主要知識(shí)點(diǎn)和應(yīng)用點(diǎn),如類(lèi)的定義,類(lèi)的實(shí)現(xiàn),對(duì)象的定義,類(lèi)的繼承等等。可以所學(xué)有所學(xué),所有所用,不至于自己所學(xué)知識(shí)由于沒(méi)有經(jīng)歷可用過(guò)程,而放棄對(duì)它的興趣。</p><p> 面向?qū)ο蟪绦蛟O(shè)計(jì)作為一門(mén)軟件設(shè)計(jì)的課程,具有極強(qiáng)的實(shí)踐性,使我加強(qiáng)了靈活應(yīng)用理論知識(shí)的能力及面向?qū)ο蟪绦蛟O(shè)計(jì)技能。</p><p>
77、 此次,應(yīng)用程序的設(shè)計(jì)和創(chuàng)建,經(jīng)歷了平時(shí)在課堂中和考試中,決不會(huì)有的重重難題和問(wèn)題。而這些問(wèn)題,又都是課本上很少提到的、更深一層的知識(shí)領(lǐng)域和應(yīng)用領(lǐng)域。這些問(wèn)題,并不是我們平時(shí)只靠課本,就可以輕易解決的。所以,鍛煉了我們面對(duì)難題,自己思索,自己探索,自己查資料發(fā)現(xiàn)問(wèn)題、解決問(wèn)題的獨(dú)斷能力。</p><p> 當(dāng)然,此次任務(wù)的完成,也體現(xiàn)出同學(xué)之間的團(tuán)結(jié)精神。所遇種種難以解決的問(wèn)題,大家都會(huì)把它當(dāng)作共同遇到的問(wèn)題,
78、在一起共同探討,共同發(fā)揮自己所學(xué)和所知,投入式的互相幫助和解決困難。</p><p> “實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”。沒(méi)有實(shí)踐,就不會(huì)發(fā)現(xiàn)和深刻體會(huì)它的真實(shí)所在。只有通過(guò)檢驗(yàn)的真理,在自己的心里,才會(huì)認(rèn)可它的真實(shí)性。面向?qū)ο蟪绦蛟O(shè)計(jì)的完成,使我們懂得了真理的重要性,理論和實(shí)際的相結(jié)合,才能真正把握所學(xué)和所掌握的知識(shí)。</p><p> 理論的擁有并不能代表我們的實(shí)力和能力,一切的事件和
79、其成功都是理論和實(shí)踐的結(jié)合。總之,我們學(xué)習(xí)和掌握的知識(shí),只有通過(guò)實(shí)際應(yīng)用,才能真正的理解和掌握,才能更好的去應(yīng)用。</p><p> 第八章 源代碼 </p><p> /*本程序有關(guān)的兩個(gè)數(shù)據(jù)文件:</p><p> base.txt-基礎(chǔ)數(shù)據(jù)文件(必須存在,且按規(guī)定格式保存)<
80、/p><p> person.txt-人員信息文件(可選)</p><p><b> */</b></p><p> #include <iostream.h></p><p> #include <fstream.h></p><p> #include <c
81、type.h></p><p> #include <string.h></p><p><b> //全局?jǐn)?shù)據(jù),對(duì)象</b></p><p> double ManagerSalary; //經(jīng)理固定月薪</p><p> double SalesManagerSalary; /
82、/銷(xiāo)售經(jīng)理固定月薪</p><p> double SalesManagerPercent; //銷(xiāo)售經(jīng)理提成%</p><p> double SalesPercent; //銷(xiāo)售人員提成%</p><p> double WagePerHour; //技術(shù)人員小時(shí)工資</p><p> int ID;
83、 //員工標(biāo)識(shí)(要保證唯一)</p><p> class Person //員工類(lèi)</p><p><b> {</b></p><p> protected:</p><p> int No; //編號(hào)</p><p> char Name
84、[20]; //姓名</p><p> int Duty; //崗位</p><p> double Earning; //收入</p><p> Person *next;</p><p><b> public:</b></p><p> Person(char ID,
85、char *Name,int Duty)</p><p><b> {</b></p><p> this->Duty=Duty;</p><p> strcpy(this->Name,Name);</p><p> this->No=ID;</p><p><b&
86、gt; }</b></p><p> virtual void CalcSalary()=0; </p><p> virtual void Output()=0;</p><p> friend class Company;</p><p><b> };</b></p><p
87、> class Manager:public Person //經(jīng)理類(lèi)</p><p><b> {</b></p><p><b> public:</b></p><p> Manager(char ID,char *Name,int Duty):Person(ID,Name,Duty){}</p
88、><p> void CalcSalary(){Earning=ManagerSalary;}</p><p> void Output()</p><p><b> {</b></p><p> CalcSalary();</p><p> cout<<No<<&q
89、uot;\t"<<Name<<"\t經(jīng)理\t"<<Earning<<endl;</p><p><b> }</b></p><p><b> };</b></p><p> class SalesManager:public Person
90、 //銷(xiāo)售經(jīng)理類(lèi)</p><p><b> {</b></p><p><b> private:</b></p><p> double Amount;</p><p><b> public:</b></p><p> SalesMana
91、ger(char ID,char *Name,int Duty):Person(ID,Name,Duty){}</p><p> void SetAmount(double s)</p><p><b> {</b></p><p><b> Amount=s;</b></p><p><
92、;b> }</b></p><p> void CalcSalary()</p><p><b> {</b></p><p> Earning=SalesManagerSalary+Amount*SalesManagerPercent/100;</p><p><b> }<
93、/b></p><p> void Output()</p><p><b> {</b></p><p> CalcSalary();</p><p> cout<<No<<"\t"<<Name<<"\t銷(xiāo)售經(jīng)理\t"
94、<<Earning<<endl;</p><p><b> }</b></p><p><b> };</b></p><p> class Technician:public Person //技術(shù)員類(lèi)</p><p><b> {</b>&
95、lt;/p><p><b> private:</b></p><p><b> double t;</b></p><p><b> public:</b></p><p> Technician(char ID,char *Name,int Duty,double T)
96、:Person(ID,Name,Duty)</p><p><b> {</b></p><p> this->t=T;</p><p><b> }</b></p><p> double GetT()</p><p><b> {</b&g
97、t;</p><p><b> return t;</b></p><p><b> }</b></p><p> void SetT(double T)</p><p><b> {</b></p><p> this->t=T;<
98、;/p><p><b> }</b></p><p> void CalcSalary()</p><p><b> {</b></p><p> Earning=WagePerHour*t;</p><p><b> }</b></p>
99、;<p> void Output()</p><p><b> {</b></p><p> CalcSalary();</p><p> cout<<No<<"\t"<<Name<<"\t技術(shù)員\t"<<t<<
100、;"\t"<<Earning<<endl;</p><p><b> }</b></p><p><b> };</b></p><p> class Sales:public Person //銷(xiāo)售員類(lèi)</p><p><b> {&
101、lt;/b></p><p><b> private:</b></p><p> double Amount;</p><p><b> public:</b></p><p> Sales(char ID,char *Name,int Duty,double Amount):Per
102、son(ID,Name,Duty)</p><p><b> {</b></p><p> this->Amount=Amount;</p><p><b> }</b></p><p> double GetAmount()</p><p><b>
103、 {</b></p><p> return Amount;</p><p><b> }</b></p><p> void SetAmount(double Amount)</p><p><b> {</b></p><p> this->
104、Amount=Amount;</p><p><b> }</b></p><p> void CalcSalary()</p><p><b> {</b></p><p> Earning=SalesPercent/100*Amount;</p><p><
105、b> }</b></p><p> void Output()</p><p><b> {</b></p><p> CalcSalary();</p><p> cout<<No<<"\t"<<Name<<"\t
106、銷(xiāo)售員\t"<<Amount<<"\t"<<Earning<<endl;</p><p><b> }</b></p><p><b> };</b></p><p> class Company //公司類(lèi)</p><
107、;p><b> {</b></p><p><b> private:</b></p><p> Person *Worker; //員工表</p><p> void Clear(); //清除內(nèi)存中數(shù)據(jù)</p><p><b> public:</b>&
108、lt;/p><p><b> Company()</b></p><p><b> {</b></p><p> Worker=0; </p><p><b> Load();</b></p><p><b> }</b&
109、gt;</p><p> ~Company()</p><p><b> {</b></p><p> Person *p;</p><p><b> p=Worker;</b></p><p><b> while(p)</b></p&
110、gt;<p><b> {</b></p><p> p=p->next;</p><p> delete Worker;</p><p><b> Worker=p;</b></p><p><b> }</b></p><p
111、><b> Worker=0;</b></p><p><b> }</b></p><p> void Add(); //增加人員</p><p> void Delete(); //刪除人員</p><p> void Modify(); //修改人員</p&g
112、t;<p> void Query(); //查詢?nèi)藛T</p><p> void Set(); //基礎(chǔ)數(shù)據(jù)設(shè)置</p><p> void Save(); //數(shù)據(jù)存盤(pán)(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù))</p><p> void Load(); //數(shù)據(jù)裝入(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù))</p><p>
113、;<b> };</b></p><p> void Company::Clear() //清除內(nèi)存中人員數(shù)據(jù)(內(nèi)部使用)</p><p><b> {</b></p><p> Person* p=Worker;</p><p><b> while(p)</b>
114、</p><p><b> {</b></p><p> Worker=p->next;</p><p><b> delete p;</b></p><p><b> p=Worker;</b></p><p><b> }&
115、lt;/b></p><p><b> }</b></p><p> void Company::Add()</p><p><b> {</b></p><p> Person *p; //新結(jié)點(diǎn)指針</p><p> int Duty; </p&
116、gt;<p> char Name[20];</p><p> double Amount,T;</p><p> cout<<"\n** 新增員工 **\n"; </p><p><b> //輸入員工信息</b></p><p><b> ID++;
117、</b></p><p> cout<<"輸入崗位(1-經(jīng)理2-銷(xiāo)售經(jīng)理3-銷(xiāo)售員4-技術(shù)員):"; cin>>Duty;</p><p> cout<<"輸入姓名:"; cin>>Name;</p><p> if(Duty==3)</p>
118、<p><b> {</b></p><p> cout<<"本月銷(xiāo)售額:"; cin>>Amount;</p><p><b> }</b></p><p> else if(Duty==4)</p><p><b> {
119、</b></p><p> cout<<"本月工作小時(shí)數(shù)(0-168):"; </p><p><b> cin>>T;</b></p><p><b> }</b></p><p><b> //創(chuàng)建新員工結(jié)點(diǎn)</b
120、></p><p> switch(Duty)</p><p><b> {</b></p><p> case 1:p=new Manager(ID,Name,Duty); break;</p><p> case 2:p=new SalesManager(ID,Name,Duty); break;&l
121、t;/p><p> case 3:p=new Sales(ID,Name,Duty,Amount); break;</p><p> case 4:p=new Technician(ID,Name,Duty,T); break;</p><p><b> }</b></p><p> p->next=0;
122、</p><p> //員工結(jié)點(diǎn)加入鏈表</p><p> if(Worker) //若已經(jīng)存在結(jié)點(diǎn)</p><p><b> {</b></p><p> Person *p2;</p><p> p2=Worker;</p><p> while(p2-&
123、gt;next) //查找尾結(jié)點(diǎn)</p><p><b> {</b></p><p> p2=p2->next;</p><p><b> }</b></p><p> p2->next=p; //連接</p><p><b> }<
124、;/b></p><p> else //若不存在結(jié)點(diǎn)(表空)</p><p><b> {</b></p><p> Worker=p; //連接</p><p><b> } </b></p><p><b> }</b><
125、;/p><p> void Company::Delete() //刪除人員</p><p><b> {</b></p><p><b> int No;</b></p><p> cout<<"\n** 刪除員工 **\n";</p><
126、p> cout<<"ID:"; cin>>No;</p><p> //查找要?jiǎng)h除的結(jié)點(diǎn)</p><p> Person *p1,*p2; p1=Worker;</p><p><b> while(p1)</b></p><p><b> {&l
127、t;/b></p><p> if(p1->No==No)</p><p><b> break;</b></p><p><b> else</b></p><p><b> {</b></p><p><b> p2=
128、p1;</b></p><p> p1=p1->next;</p><p><b> }</b></p><p><b> }</b></p><p><b> //刪除結(jié)點(diǎn)</b></p><p> if(p1!=NULL)
129、//若找到結(jié)點(diǎn),則刪除</p><p><b> {</b></p><p> if(p1==Worker) //若要?jiǎng)h除的結(jié)點(diǎn)是第一個(gè)結(jié)點(diǎn)</p><p><b> {</b></p><p> Worker=p1->next;</p><p> dele
130、te p1;</p><p><b> }</b></p><p> else //若要?jiǎng)h除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn)</p><p><b> {</b></p><p> p2->next=p1->next;</p><p> delete p1;</
131、p><p><b> }</b></p><p> cout<<"找到并刪除\n";</p><p><b> }</b></p><p> else //未找到結(jié)點(diǎn)</p><p> cout<<"未找到!\n&
132、quot;;</p><p><b> }</b></p><p> void Company::Modify()</p><p><b> {</b></p><p> int No,Duty;</p><p> char Name[20]; </p>
133、;<p> double Amount,T;</p><p> cout<<"\n** 修改員工 **\n";</p><p> cout<<"ID:"; cin>>No;</p><p> //查找要修改的結(jié)點(diǎn)</p><p> Perso
134、n *p1,*p2; p1=Worker;</p><p><b> while(p1)</b></p><p><b> {</b></p><p> if(p1->No==No)</p><p><b> break;</b></p><
135、p><b> else</b></p><p><b> {</b></p><p><b> p2=p1;</b></p><p> p1=p1->next;</p><p><b> }</b></p><p&
136、gt;<b> }</b></p><p><b> //修改結(jié)點(diǎn)</b></p><p> if(p1!=NULL)//若找到結(jié)點(diǎn)</p><p><b> {</b></p><p> p1->Output();</p><p>
137、cout<<"調(diào)整崗位(1-經(jīng)理2-銷(xiāo)售經(jīng)理3-銷(xiāo)售員4-技術(shù)員):"; cin>>Duty;</p><p> if(p1->Duty!=Duty) //若崗位發(fā)生變動(dòng)</p><p><b> { </b></p><p><b> //修改其它數(shù)據(jù)</b&g
138、t;</p><p> cout<<"輸入姓名:"; cin>>Name; </p><p> if(Duty==3)</p><p><b> {</b></p><p> cout<<"本月銷(xiāo)售額:"; cin>&
139、gt;Amount;</p><p><b> }</b></p><p> else if(Duty==4)</p><p><b> {</b></p><p> cout<<"本月工作小時(shí)數(shù)(0-168):"; </p><p>
140、;<b> cin>>T;</b></p><p><b> }</b></p><p><b> //創(chuàng)建新員工結(jié)點(diǎn)</b></p><p> Person *p3;</p><p> switch(Duty)</p><p>&
141、lt;b> {</b></p><p> case 1:p3=new Manager(p1->No,Name,Duty); break;</p><p> case 2:p3=new SalesManager(p1->No,Name,Duty); break;</p><p> case 3:p3=new Sales(p1-&
142、gt;No,Name,Duty,Amount); break;</p><p> case 4:p3=new Technician(p1->No,Name,Duty,T); break;</p><p><b> }</b></p><p> //員工結(jié)點(diǎn)替換到鏈表</p><p> p3->n
143、ext=p1->next;</p><p> if(p1==Worker) //若要替換的結(jié)點(diǎn)是第一個(gè)結(jié)點(diǎn)</p><p> Worker=p3;</p><p> else //若要?jiǎng)h除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn)</p><p> p2->next=p3;</p><p> //刪除原來(lái)的員工結(jié)點(diǎn)&l
144、t;/p><p> delete p1;</p><p><b> }</b></p><p> else //若崗位沒(méi)有變動(dòng)</p><p><b> {</b></p><p> cout<<"輸入姓名:"; cin>>
145、;p1->Name;</p><p> if(Duty==3)</p><p><b> {</b></p><p> cout<<"本月銷(xiāo)售額:";cin>>Amount; ((Sales *)p1)->SetAmount(Amount);</p><p>
146、<b> }</b></p><p> else if(Duty==4)</p><p><b> {</b></p><p> cout<<"本月工作小時(shí)數(shù)(0-168):";cin>>T; ((Technician *)p1)->SetT(T);</p&g
147、t;<p><b> }</b></p><p><b> }</b></p><p> cout<<"修改成功!\n";</p><p><b> }</b></p><p> else //未找到結(jié)點(diǎn)</p&g
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)--人員管理系統(tǒng)公司
- c++課程設(shè)計(jì)--公司人員管理系統(tǒng)
- c++課程設(shè)計(jì)---公司人員信息管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---公司人員管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告--高校人員管理系統(tǒng)
- c++課程設(shè)計(jì)--公司職員管理系統(tǒng)
- c++課程設(shè)計(jì)---公司人事管理系統(tǒng)
- c++酒店管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--某公司的庫(kù)存管理系統(tǒng)
- c++酒店管理系統(tǒng)課程設(shè)計(jì)
- 銷(xiāo)售管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告--公司設(shè)備管理系統(tǒng)
- 《c++》課程設(shè)計(jì)倉(cāng)庫(kù)管理系統(tǒng)
- c++課程設(shè)計(jì)-學(xué)生管理系統(tǒng)
- c++學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--酒店管理系統(tǒng)
- c++課程設(shè)計(jì)--小型公司工資管理系統(tǒng)
- ”小型公司工資管理系統(tǒng)設(shè)計(jì)“c++課程設(shè)計(jì)
- 小型公司工資管理系統(tǒng)設(shè)計(jì) c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論