版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> VC++課程設(shè)計(jì)</b></p><p><b> —5.1工資管理</b></p><p><b> 院系:自動(dòng)化學(xué)院</b></p><p> 班級(jí):09101902</p><p><b> 姓名:劉凱強(qiáng)</b>
2、</p><p> 學(xué)號(hào):0910190231</p><p><b> 實(shí)驗(yàn)內(nèi)容:工資管理</b></p><p> 1.1 程序功能介紹:</p><p> 這是一個(gè)員工工資管理程序。工資管理的數(shù)據(jù)文件中存儲(chǔ)有員工姓名和工資,該程序可以錄入、顯示、修改、刪除、查找員工姓名和工資。</p><
3、;p> 1.2 程序設(shè)計(jì)要求:</p><p> 用類的形式改寫程序,將程序中工資數(shù)據(jù)用鏈表的形式存放,定義一個(gè)鏈表類,封裝主要的操作函數(shù)。</p><p> 顯示、修改、刪除數(shù)據(jù)項(xiàng)時(shí)大小寫通用。</p><p> 工資數(shù)據(jù)按工資值的大小進(jìn)行排序存放。</p><p> 修改、刪除數(shù)據(jù)前增加提示信息,用戶確認(rèn)后才能進(jìn)一步操作,
4、否則操作取消</p><p> 增加程序的文件輸入輸出功能,在執(zhí)行程序中首先將工資數(shù)據(jù)從文件中讀出再進(jìn)行管理,在程序結(jié)束時(shí)能將工資數(shù)據(jù)保存在原文件中。</p><p> 源程序結(jié)構(gòu)流程框圖與說(shuō)明</p><p><b> 基本數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 類:</b></
5、p><p> class CList //定義鏈表類</p><p><b> {</b></p><p> protected:</p><p> CNode *pHead; //鏈表頭結(jié)點(diǎn)指針</p><p><b> public:</b></p>
6、<p> CList(){pHead=0;} //賦值</p><p> ~CList(){DeleteList();} //析構(gòu)函數(shù)</p><p> void AddNode(CNode *pnode); //在首部添加結(jié)點(diǎn)</p><p> CNode *DeleteNode(CNode *); //刪除一個(gè)指定的結(jié)點(diǎn),返回該結(jié)點(diǎn)
7、的指針</p><p> CNode *LookUp(CSalary &); //查找一個(gè)指定的數(shù)據(jù),返回該數(shù)據(jù)所在結(jié)點(diǎn)在鏈表中的指針,若沒(méi)找到返回0</p><p> void ShowList(); //打印整個(gè)鏈表</p><p> void DeleteList(); //刪除整個(gè)鏈表</p><p> CNode
8、 *GetListHead(){return pHead;} //返回鏈表首結(jié)點(diǎn)</p><p> CNode *GetListNextNode(CNode *); //返回鏈表指定結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)</p><p> void Insert(CNode *); //按工資的順序插入一個(gè)結(jié)點(diǎn)</p><p><b> };</b>&l
9、t;/p><p> class CNode //定義結(jié)點(diǎn)類</p><p><b> {</b></p><p><b> private:</b></p><p> CSalary * pData; //用于指向數(shù)據(jù)類的指針,這是每個(gè)數(shù)據(jù)的不同部分</p><p>
10、 CNode *pNext; //指向鏈表的指針</p><p><b> public:</b></p><p> CNode(){pData=0;pNext=0;} //結(jié)點(diǎn)類構(gòu)造函數(shù)</p><p> CNode(CNode &node) //用于拷貝的構(gòu)造函數(shù)</p><p><b&g
11、t; {</b></p><p> pData=node.pData; //私有成員的互相賦值</p><p> pNext=node.pNext; //私有成員的互相賦值</p><p><b> }</b></p><p> void InputData(CSalary *pSal){pDa
12、ta=pSal;} //輸入數(shù)據(jù)</p><p> void ShowNode(){pData->Show();}</p><p> CSalary *GetData(){return pData;} //返回工資地址</p><p> friend class CList; //定義鏈表類為友元類</p><p><
13、b> };</b></p><p> class CSalary //定義數(shù)據(jù)類</p><p><b> {</b></p><p><b> private:</b></p><p> char szName[20]; //存放姓名</p><
14、;p> double dlSalary; //工資</p><p><b> public:</b></p><p> CSalary(){ strcpy(szName,"\0");dlSalary=0.0;} //數(shù)據(jù)初始化</p><p> CSalary(char *name,double salar
15、y) //構(gòu)造函數(shù)重載</p><p><b> {</b></p><p> strcpy(szName,name);dlSalary=salary; //賦值</p><p><b> }</b></p><p> void SetSalary(char *,double); //
16、置工資與姓名</p><p> double GetSal(){return dlSalary;} //返回工資</p><p> int Compare(CSalary &); //比較姓名,供查找用,比較結(jié)果為1,0</p><p> void Show(); //顯示工資</p><p><b> };&
17、lt;/b></p><p><b> 成員函數(shù): </b></p><p> void AddNode(CNode *pnode); //在首部添加結(jié)點(diǎn)</p><p> Node *DeleteNode(CNode *); //刪除一個(gè)指定的結(jié)點(diǎn),返回該結(jié)點(diǎn)的指針</p><p> CNode *L
18、ookUp(CSalary &); //查找一個(gè)指定的數(shù)據(jù),返回該數(shù)據(jù)所在結(jié)點(diǎn)在鏈表中的指針,若沒(méi)找到返回0</p><p> void ShowList(); //打印整個(gè)鏈表</p><p> void DeleteList(); //刪除整個(gè)鏈表</p><p> CNode *GetListHead(){return pHead;} //
19、返回鏈表首結(jié)點(diǎn)</p><p> CNode *GetListNextNode(CNode *); //返回鏈表指定結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)</p><p> void Insert(CNode *); //按工資的順序插入一個(gè)結(jié)點(diǎn)</p><p> void AddSalary(CList &SalaryList) //將記錄添加到鏈表中,鏈表是唯一的&
20、lt;/p><p> void DeleteData(CList &list)//根據(jù)姓名找到要?jiǎng)h除的結(jié)點(diǎn),再進(jìn)行刪除結(jié)點(diǎn)操作</p><p> void LookUpData(CList &list) //尋找所要找的姓名的結(jié)點(diǎn)</p><p> int OpenFile(CList&list)//打開(kāi)文件并建立有序鏈表對(duì)文件中的數(shù)據(jù)進(jìn)行
21、排序,最后輸出</p><p> void main(void)//主函數(shù)</p><p> void Outfun(void)//輸出主菜單</p><p> int SaveFile(CList & List)//輸入結(jié)點(diǎn),保存文件</p><p> void SetNewData(CList &list)//修改
22、工資數(shù)據(jù)</p><p> void ShowSalary(CList &list)//輸出鏈表中的數(shù)據(jù),顯示員工的工資數(shù)據(jù)</p><p><b> 四.程序設(shè)計(jì)思想</b></p><p> 數(shù)據(jù)管理類程序的數(shù)據(jù)用鏈表的形式存儲(chǔ),將鏈表定義成一個(gè)類,將結(jié)點(diǎn)視為類中的數(shù)據(jù)成員,也即將結(jié)點(diǎn)視為一個(gè)整體,涉及結(jié)點(diǎn)的插入、輸出、刪除等
23、操作。將結(jié)點(diǎn)也定義成一個(gè)類,涉及結(jié)點(diǎn)數(shù)據(jù)的輸入和輸出、復(fù)制等。在結(jié)點(diǎn)中,涉及較多的是具體數(shù)據(jù)的形式,所以將具體的數(shù)據(jù)形式定義成數(shù)據(jù)類型的指針,所有針對(duì)數(shù)據(jù)的操作都轉(zhuǎn)換為對(duì)指針的操作,在數(shù)據(jù)類再具體實(shí)現(xiàn)。結(jié)點(diǎn)的操作也像鏈表一樣通用。將數(shù)據(jù)具體形式定義成一個(gè)類,涉及數(shù)據(jù)的輸入、輸出、比較等。那么,針對(duì)不同的數(shù)據(jù)管理,只要改動(dòng)這部分就可以了。這樣,就實(shí)現(xiàn)程序的結(jié)構(gòu)化。</p><p><b> 關(guān)于程序的思
24、考</b></p><p> 輸入密碼的時(shí)候是不是可以把輸入的字符都顯示為“*”。</p><p> 還要想想和其他函數(shù)間的關(guān)系,有的函數(shù)可以調(diào)用,那就很方便,少編一些代碼,還會(huì)減少出錯(cuò)的幾率。</p><p> 整個(gè)過(guò)程中對(duì)類的封裝性進(jìn)行了充分了解,特別是在調(diào)試的時(shí)候,對(duì)象成員的調(diào)用、參數(shù)的傳遞、函數(shù)的銜接遇到了不少麻煩。鏈表部分還是不太清楚。&
25、lt;/p><p> 要輸入數(shù)字的地方輸入字母會(huì)出現(xiàn)錯(cuò)誤。</p><p><b> 附源程序</b></p><p> #include<string.h></p><p> #include<iostream.h></p><p> #include<fst
26、ream.h></p><p> #include<stdlib.h></p><p> void Menu(void) </p><p><b> {</b></p><p> cout<<"**************************************\n
27、";</p><p> cout<<"* 歡迎使用工資管理程序 *\n";</p><p> cout<<"* *\n";</p><p> cout<<"*
28、 請(qǐng)選擇以下功能 *\n";</p><p> cout<<"* *\n";</p><p> cout<<"* a:新增工資記錄 *\n";</p><
29、;p> cout<<"* l:查看工資記錄 *\n";</p><p> cout<<"* f:按姓名查詢工資 *\n";</p><p> cout<<"* d:按姓名刪除工資 *\
30、n";</p><p> cout<<"* e:按姓名修改工資 *\n";</p><p> cout<<"* q:退出系統(tǒng) *\n";</p><p> cout<<"******
31、********************************\n";</p><p> cout<<" 0910190231 劉凱強(qiáng) \n";</p><p> cout<<"\n";</p><p> cout<<"請(qǐng)輸入
32、功能代碼:";</p><p><b> }</b></p><p><b> //數(shù)據(jù)類:</b></p><p> class CSalary //定義數(shù)據(jù)類</p><p><b> {</b></p><p><b&g
33、t; private:</b></p><p> char szName[20]; //存放姓名</p><p> double dlSalary; //工資</p><p><b> public:</b></p><p> CSalary(){ strcpy(szName,"\0&
34、quot;);dlSalary=0.0;} //數(shù)據(jù)初始化</p><p> CSalary(char *name,double salary) //構(gòu)造函數(shù)重載</p><p><b> {</b></p><p> strcpy(szName,name);dlSalary=salary; //賦值</p><
35、p><b> }</b></p><p> void SetSalary(char *,double); //置工資與姓名</p><p> double GetSal(){return dlSalary;} //返回工資</p><p> int Compare(CSalary &); //比較姓名,供查找用,比較
36、結(jié)果為1,0</p><p> void Show(); //顯示工資</p><p><b> };</b></p><p> void CSalary::SetSalary(char *name,double salary=0.0)</p><p><b> {</b></p&g
37、t;<p> strcpy(szName,name); </p><p> dlSalary=salary; </p><p><b> }</b></p><p> int CSalary::Compare(CSalary &Salary)</p><p><b> {&l
38、t;/b></p><p> CSalary sal1,sal2; </p><p> strcpy(sal1.szName,szName); </p><p> strcpy(sal2.szName,Salary.szName); </p><p> strlwr(sal1.szName); </p>
39、<p> strlwr(sal2.szName); </p><p> if (strcmp(sal1.szName,sal2.szName)==0 ) </p><p><b> {</b></p><p> Salary.dlSalary=dlSalary; </p><p><b&g
40、t; return 1;</b></p><p><b> }</b></p><p> else return 0;</p><p><b> }</b></p><p> void CSalary::Show()</p><p><b>
41、 {</b></p><p> cout<<"姓名: "<<szName<<'\n'<<"工資: "<<dlSalary<<endl; </p><p><b> }</b></p><p><
42、b> //結(jié)點(diǎn)類</b></p><p> class CNode //定義結(jié)點(diǎn)類</p><p><b> {</b></p><p><b> private:</b></p><p> CSalary * pData; //用于指向數(shù)據(jù)類的指針,這是每個(gè)數(shù)據(jù)的不
43、同部分</p><p> CNode *pNext; //指向鏈表的指針</p><p><b> public:</b></p><p> CNode(){pData=0;pNext=0;} //結(jié)點(diǎn)類構(gòu)造函數(shù)</p><p> CNode(CNode &node) //用于拷貝的構(gòu)造函數(shù)<
44、/p><p><b> {</b></p><p> pData=node.pData; //私有成員的互相賦值</p><p> pNext=node.pNext; //私有成員的互相賦值</p><p><b> }</b></p><p> void Inpu
45、tData(CSalary *pSal){pData=pSal;} //輸入數(shù)據(jù)</p><p> void ShowNode(){pData->Show();}</p><p> CSalary *GetData(){return pData;} //返回工資地址</p><p> friend class CList; //定義鏈表類為友元類&
46、lt;/p><p><b> };</b></p><p><b> //鏈表類</b></p><p> class CList //定義鏈表類</p><p><b> {</b></p><p> protected:</p>
47、<p> CNode *pHead; //鏈表頭結(jié)點(diǎn)指針</p><p><b> public:</b></p><p> CList(){pHead=0;} //賦值</p><p> ~CList(){DeleteList();} //析構(gòu)函數(shù)</p><p> void AddNode
48、(CNode *pnode); //在首部添加結(jié)點(diǎn)</p><p> CNode *DeleteNode(CNode *); //刪除一個(gè)指定的結(jié)點(diǎn),返回該結(jié)點(diǎn)的指針</p><p> CNode *LookUp(CSalary &); //查找一個(gè)指定的數(shù)據(jù),返回該數(shù)據(jù)所在結(jié)點(diǎn)在鏈表中的指針,若沒(méi)找到返回0</p><p> void ShowL
49、ist(); //打印整個(gè)鏈表</p><p> void DeleteList(); //刪除整個(gè)鏈表</p><p> CNode *GetListHead(){return pHead;} //返回鏈表首結(jié)點(diǎn)</p><p> CNode *GetListNextNode(CNode *); //返回鏈表指定結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)</p>
50、<p> void Insert(CNode *); //按工資的順序插入一個(gè)結(jié)點(diǎn)</p><p><b> };</b></p><p> CNode *CList::DeleteNode(CNode *node)</p><p><b> {</b></p><p> C
51、Node *pnode,*p1,*p2; </p><p> pnode=pHead; </p><p> if(pHead==node) </p><p><b> {</b></p><p> p1=pHead; </p><p> pHead=pHead->pNext
52、; </p><p> delete p1->pData;delete p1; </p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> p2=p1=p
53、Head; </p><p> while(p2!=node&&p2->pNext!=0) </p><p><b> {</b></p><p><b> p1=p2; </b></p><p> p2=p2->pNext; </p>&l
54、t;p><b> }</b></p><p> if(p2==node) </p><p><b> {</b></p><p> p1->pNext=p2->pNext; </p><p> delete p2->pData;delete p2; </
55、p><p><b> }</b></p><p> else cout<<"無(wú)節(jié)點(diǎn)"; </p><p><b> }</b></p><p> return node; </p><p><b> }</b>&l
56、t;/p><p> CNode *CList::LookUp(CSalary &salary)</p><p><b> {</b></p><p> CNode *pnode; </p><p> pnode=pHead; </p><p> while(pnode) <
57、;/p><p><b> {</b></p><p> if(pnode->pData->Compare(salary))return pnode;</p><p> pnode=pnode->pNext;</p><p><b> }</b></p><p
58、> return 0; </p><p><b> }</b></p><p> void CList::ShowList()</p><p><b> {</b></p><p> CNode *plist; </p><p> plist=pHead
59、; </p><p> if(plist==0){ </p><p> cout<<"沒(méi)有數(shù)據(jù),請(qǐng)先添加數(shù)據(jù)!\n";</p><p> cout<<"\n";</p><p><b> }</b></p><p> w
60、hile(plist)</p><p><b> { </b></p><p> plist->ShowNode(); </p><p> plist=plist->pNext; </p><p><b> }</b></p><p><b&
61、gt; }</b></p><p> void CList::DeleteList()</p><p><b> {</b></p><p> CNode *P1,*P2; </p><p> P2=pHead; </p><p><b> while(P2)&
62、lt;/b></p><p><b> {</b></p><p> delete P2->pData; </p><p><b> P1=P2; </b></p><p> P2=P2->pNext; </p><p> delete P1
63、;</p><p><b> }</b></p><p><b> }</b></p><p> CNode * CList::GetListNextNode(CNode *pnode)</p><p><b> {</b></p><p>
64、return pnode->pNext; //返回鏈表指定結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)</p><p><b> }</b></p><p> void CList::Insert(CNode*node)</p><p><b> {</b></p><p> CNode *p1,*p2; &l
65、t;/p><p> if(pHead==0) </p><p><b> { </b></p><p> pHead=node; </p><p> node->pNext=0; </p><p><b> return;</b></p>&
66、lt;p><b> }</b></p><p> if(pHead->pData->GetSal()>=node->pData->GetSal()) </p><p><b> {</b></p><p> node->pNext=pHead; </p>
67、<p> pHead=node; </p><p><b> return;</b></p><p><b> }</b></p><p> p2=p1=pHead; </p><p> while(p2->pNext&&p2->pData->
68、;GetSal()<node->pData->GetSal()) </p><p><b> {</b></p><p><b> p1=p2; </b></p><p> p2=p2->pNext; </p><p><b> }</b>
69、</p><p> if(p2->pData->GetSal()<node->pData->GetSal()) </p><p><b> {</b></p><p> p2->pNext=node; </p><p> node->pNext=0; </p&g
70、t;<p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> node->pNext=p2; </p><p> p1->pNext=node; </p&g
71、t;<p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p> int OpenFile(CList&list)</p><p><b> {</b>
72、;</p><p> ifstream file("EMP.txt",ios::binary,ios::nocreate); //以二進(jìn)制讀取方式打開(kāi)已存在文件EMP.txt</p><p> if(!file) //打開(kāi)文件發(fā)生錯(cuò)誤,程序退出</p><p><b> {</b></p><p
73、> cout<<" 打開(kāi)失敗!\n";</p><p><b> return 0;</b></p><p><b> }</b></p><p> CNode *pnode; //定義一個(gè)結(jié)點(diǎn)類的對(duì)象指針</p><p> CSalary *sal
74、ary; //定義一個(gè)數(shù)據(jù)類的對(duì)象</p><p> long curpos, length; //記錄文件長(zhǎng)度的變量</p><p> curpos=file.tellg(); //文件指針當(dāng)前位置(頭文件)</p><p> file.seekg(0L,ios::end); //將文件指針移到文件尾</p><p&g
75、t; length=file.tellg(); //文件指針當(dāng)前位置(文件尾),length為文件長(zhǎng)度</p><p> file.seekg(0L,ios::beg); //文件指針移到文件頭</p><p> long num=length/sizeof(*salary); //數(shù)據(jù)個(gè)數(shù)</p><p> for(long l=0;l<
76、num;l++) //循環(huán)查找</p><p><b> {</b></p><p> pnode=new CNode; //動(dòng)態(tài)開(kāi)辟一個(gè)結(jié)點(diǎn)</p><p> salary=new CSalary; //動(dòng)態(tài)開(kāi)辟一個(gè)數(shù)據(jù)類的對(duì)象</p><p> file.read((char*)salary,sizeo
77、f(*salary)); //讀取數(shù)據(jù)salary</p><p> pnode->InputData(salary); //結(jié)點(diǎn)賦值</p><p> list.Insert(pnode); //把結(jié)點(diǎn)插入鏈表</p><p><b> }</b></p><p> file.close(); /
78、/關(guān)閉文件</p><p><b> return 1;</b></p><p><b> }</b></p><p> int SaveFile(CList & List)</p><p><b> {</b></p><p>
79、ofstream file("EMP.txt",ios::binary); //以二進(jìn)制寫入方式打開(kāi)文件EMP.txt</p><p> if(!file) </p><p><b> {</b></p><p> cout<<"保存失敗!\n";</p><p&
80、gt;<b> return 0;</b></p><p><b> }</b></p><p> CNode *pnode=List.GetListHead(); //將鏈表頭指針賦給pnode</p><p> CSalary *salary; </p><p> while(pn
81、ode) </p><p><b> {</b></p><p> salary=pnode->GetData(); //取出結(jié)點(diǎn)類指針</p><p> file.write((char*)salary,sizeof(*salary)); //寫入數(shù)據(jù)salary</p><p> pnode=Li
82、st.GetListNextNode(pnode); //取下一個(gè)結(jié)點(diǎn),形成循環(huán)</p><p><b> }</b></p><p> file.close(); </p><p> cout<<"文件已保存!\n";</p><p><b> return 1;&
83、lt;/b></p><p><b> }</b></p><p> void AddSalary(CList &SalaryList) </p><p><b> {</b></p><p> CNode *pNode; </p><p> CS
84、alary *pSal; </p><p> char szName[20]; </p><p> double dlPlaceSalary; </p><p> cout<<"添加工資記錄\n";</p><p> cout<<"\n";</p>&
85、lt;p> cout<<"姓名(輸入0結(jié)束): ";</p><p> cin.getline(szName,20); </p><p> while(strcmp(szName,"0")) </p><p><b> {</b></p><p>
86、 cout<<"工資: ";</p><p> cin>>dlPlaceSalary; </p><p> cin.ignore(); </p><p> pSal=new CSalary; </p><p> pSal->SetSalary(szName,dlPlaceSal
87、ary); </p><p> pNode=new CNode; </p><p> pNode->InputData(pSal); </p><p> SalaryList.Insert(pNode); </p><p> cout<<"姓名(輸入0結(jié)束): ";</p>&
88、lt;p> cin.getline(szName,20); </p><p><b> }</b></p><p> cout<<'\n';</p><p><b> }</b></p><p> void ShowSalary(CList &l
89、ist)</p><p><b> {</b></p><p> cout<<"顯示工資記錄\n";</p><p> list.ShowList(); </p><p><b> }</b></p><p> void LookU
90、pData(CList &list)</p><p><b> {</b></p><p> cout<<"根據(jù)姓名查找工資\n";</p><p> char szName[20]; </p><p> cout<<"請(qǐng)輸入要查找人的姓名(輸入0結(jié)
91、束): ";</p><p> cin.getline(szName,20); </p><p> while(strcmp(szName,"0")) </p><p><b> {</b></p><p> CNode *pNode; </p><p&g
92、t; CSalary pSal; </p><p> pSal.SetSalary(szName,0); </p><p> pNode=list.LookUp(pSal); </p><p> if(pNode) pNode->ShowNode(); </p><p> else cout<<"
93、您要找的人不存在\n";</p><p> cout<<"請(qǐng)輸入姓名(輸入0結(jié)束): ";</p><p> cin.getline(szName,20); </p><p><b> }</b></p><p><b> }</b></p&
94、gt;<p> void DeleteData(CList &list)</p><p><b> {</b></p><p> cout<<"根據(jù)姓名刪除工資\n";</p><p> char name[20];</p><p> cout<<
95、;"請(qǐng)輸入要?jiǎng)h除人的姓名(輸入0結(jié)束): ";</p><p> cin.getline(name,20); </p><p> while(strcmp(name,"0")) </p><p><b> {</b></p><p> CNode *pNode;
96、</p><p> CSalary pSal; </p><p><b> char a;</b></p><p> pSal.SetSalary(name,0); </p><p> pNode=list.LookUp(pSal); </p><p> cout<<&
97、quot;是(Y)否(N)確定刪除?\n"; </p><p><b> cin>>a; </b></p><p> cin.get(); //跳過(guò)回車鍵</p><p> if((a=='Y'||a=='y')&&pNode==0) cout<<&qu
98、ot;您要找的人不存在\n"; </p><p> if((a=='Y'||a=='y')&&pNode!=0) </p><p><b> { </b></p><p> list.DeleteNode(pNode); </p><p> pNode
99、=list.GetListNextNode(pNode); </p><p> cout<<"數(shù)據(jù)已刪除!\n";</p><p><b> }</b></p><p> cout<<"請(qǐng)輸入姓名(輸入0結(jié)束): ";</p><p> cin.g
100、etline(name,20); </p><p><b> }</b></p><p><b> }</b></p><p> void SetNewData(CList &list)</p><p><b> {</b></p><p&
101、gt; cout<<"根據(jù)姓名修改工資\n";</p><p> char name[20];</p><p><b> char a;</b></p><p> cout<<"請(qǐng)輸入要修改的人的姓名(輸入0結(jié)束): ";</p><p> ci
102、n.getline(name,20); </p><p> while(strcmp(name,"0")) </p><p><b> {</b></p><p> CNode *pNode; </p><p> CSalary *pSal; </p><p&
103、gt; pSal=new CSalary; </p><p> pSal->SetSalary(name,0); </p><p> pNode=list.LookUp(*pSal); </p><p> cout<<"是(Y)否(N)確定修改?\n"; </p><p><b>
104、; cin>>a; </b></p><p> cin.get(); //跳過(guò)回車鍵</p><p> if((a=='Y'||a=='y')&&pNode==0)cout<<"您要找的人不存在\n";</p><p> if((a=='Y
105、9;||a=='y')&&pNode!=0)</p><p><b> {</b></p><p> list.DeleteNode(pNode); </p><p> cout<<"請(qǐng)輸入新的工資:";</p><p> double dlsal
106、;</p><p> cin>>dlsal; </p><p> cin.ignore(); //跳過(guò)回車鍵</p><p> pSal->SetSalary(name,dlsal); </p><p> pNode->InputData(pSal); </p><p> l
107、ist.Insert(pNode); </p><p> cout<<"修改已完成!\n";</p><p><b> }</b></p><p> cout<<"請(qǐng)輸入要修改的人的姓名(輸入0結(jié)束): ";</p><p> cin.getlin
108、e(name,20); </p><p><b> }</b></p><p><b> }</b></p><p> void main(void)</p><p><b> {</b></p><p><b> int co
109、de;</b></p><p><b> int i=0;</b></p><p> loop1:cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p
110、><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<
111、;'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<"\t\t請(qǐng)輸入操作密碼:\n";</p><p> cin>>code;</p>
112、;<p> if(code!=123)</p><p><b> {</b></p><p> cout<<"密碼錯(cuò)誤!\n";i++;</p><p> if(i==4)exit(0);</p><p> goto loop1;</p><p&
113、gt;<b> }</b></p><p><b> else</b></p><p> {cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';<
114、/p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<&
115、lt;'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';}</p>
116、<p> loop2:char c;</p><p> CList list; </p><p> if(!OpenFile(list))cout<<"沒(méi)有數(shù)據(jù)文件,請(qǐng)先添加數(shù)據(jù)!";</p><p><b> do</b></p><p><b> {
117、</b></p><p><b> Menu(); </b></p><p><b> cin>>c; </b></p><p> cin.get(); </p><p> cout<<"\n";</p><p&
118、gt; cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n'
119、;;</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cou
120、t<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p
121、><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<
122、;'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> cout<<'\n';</p><p> switch(c) </p><p><b&g
123、t; {</b></p><p> case 'a':AddSalary(list); </p><p><b> break;</b></p><p> case 'l':ShowSalary(list); </p><p><b> break;&l
124、t;/b></p><p> case 'f':LookUpData(list); </p><p><b> break;</b></p><p> case 'd':DeleteData(list); </p><p><b> break;</b&g
125、t;</p><p> case 'e':SetNewData(list); </p><p><b> break;</b></p><p><b> case 'q':</b></p><p><b> break; </b>&l
126、t;/p><p><b> default:</b></p><p> cout<<"選擇錯(cuò)誤!\n";</p><p><b> }</b></p><p> }while(c!='q'); </p><p> cout
127、<<"\n是否保存文件?(y/n)\n";</p><p><b> char x;</b></p><p><b> cin>>x;</b></p><p> if(x=='y'||x=='Y')</p><p>
128、 SaveFile(list); //保存文件</p><p> cout<<"\n是否繼續(xù)?(y/n)\n";</p><p><b> cin>>x;</b></p><p> if(x=='y'||x=='Y')</p><p>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- vc++課程設(shè)計(jì)--工資管理
- VC++課程設(shè)計(jì)--工資管理.doc
- vc++課程設(shè)計(jì)-- 餐飲管理系統(tǒng)
- vc++課程設(shè)計(jì)報(bào)告
- vc++課程設(shè)計(jì)報(bào)告---球員管理系統(tǒng)
- 工資管理系統(tǒng)課程設(shè)計(jì)
- 工資管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-工資管理系統(tǒng)
- 工資管理系統(tǒng)課程設(shè)計(jì)
- 工資管理系統(tǒng)課程設(shè)計(jì)
- 工資管理系統(tǒng)(課程設(shè)計(jì))
- vc++軟件課程設(shè)計(jì)報(bào)告
- vc++庫(kù)函數(shù)課程設(shè)計(jì)
- 企業(yè)工資管理系統(tǒng)課程設(shè)計(jì)
- 企業(yè)工資管理系統(tǒng)課程設(shè)計(jì)
- 工資管理課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)-- 企業(yè)工資管理系統(tǒng)
- 企業(yè)工資管理系統(tǒng)課程設(shè)計(jì)
- 工資管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- vc++課程設(shè)計(jì)報(bào)告----對(duì)抗游戲
評(píng)論
0/150
提交評(píng)論