vc++課程設計--工資管理_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  VC++課程設計</b></p><p><b>  —5.1工資管理</b></p><p><b>  院系:自動化學院</b></p><p>  班級:09101902</p><p><b>  姓名:劉凱強</b>

2、</p><p>  學號:0910190231</p><p><b>  實驗內容:工資管理</b></p><p>  1.1 程序功能介紹:</p><p>  這是一個員工工資管理程序。工資管理的數據文件中存儲有員工姓名和工資,該程序可以錄入、顯示、修改、刪除、查找員工姓名和工資。</p><

3、;p>  1.2 程序設計要求:</p><p>  用類的形式改寫程序,將程序中工資數據用鏈表的形式存放,定義一個鏈表類,封裝主要的操作函數。</p><p>  顯示、修改、刪除數據項時大小寫通用。</p><p>  工資數據按工資值的大小進行排序存放。</p><p>  修改、刪除數據前增加提示信息,用戶確認后才能進一步操作,

4、否則操作取消</p><p>  增加程序的文件輸入輸出功能,在執(zhí)行程序中首先將工資數據從文件中讀出再進行管理,在程序結束時能將工資數據保存在原文件中。</p><p>  源程序結構流程框圖與說明</p><p><b>  基本數據結構</b></p><p><b>  類:</b></

5、p><p>  class CList //定義鏈表類</p><p><b>  {</b></p><p>  protected:</p><p>  CNode *pHead; //鏈表頭結點指針</p><p><b>  public:</b></p>

6、<p>  CList(){pHead=0;} //賦值</p><p>  ~CList(){DeleteList();} //析構函數</p><p>  void AddNode(CNode *pnode); //在首部添加結點</p><p>  CNode *DeleteNode(CNode *); //刪除一個指定的結點,返回該結點

7、的指針</p><p>  CNode *LookUp(CSalary &); //查找一個指定的數據,返回該數據所在結點在鏈表中的指針,若沒找到返回0</p><p>  void ShowList(); //打印整個鏈表</p><p>  void DeleteList(); //刪除整個鏈表</p><p>  CNode

8、 *GetListHead(){return pHead;} //返回鏈表首結點</p><p>  CNode *GetListNextNode(CNode *); //返回鏈表指定結點的下一個結點</p><p>  void Insert(CNode *); //按工資的順序插入一個結點</p><p><b>  };</b>&l

9、t;/p><p>  class CNode //定義結點類</p><p><b>  {</b></p><p><b>  private:</b></p><p>  CSalary * pData; //用于指向數據類的指針,這是每個數據的不同部分</p><p>

10、  CNode *pNext; //指向鏈表的指針</p><p><b>  public:</b></p><p>  CNode(){pData=0;pNext=0;} //結點類構造函數</p><p>  CNode(CNode &node) //用于拷貝的構造函數</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;} //輸入數據</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 //定義數據類</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;} //數據初始化</p><p>  CSalary(char *name,double salar

15、y) //構造函數重載</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 &); //比較姓名,供查找用,比較結果為1,0</p><p>  void Show(); //顯示工資</p><p><b>  };&

17、lt;/b></p><p><b>  成員函數: </b></p><p>  void AddNode(CNode *pnode); //在首部添加結點</p><p>  Node *DeleteNode(CNode *); //刪除一個指定的結點,返回該結點的指針</p><p>  CNode *L

18、ookUp(CSalary &); //查找一個指定的數據,返回該數據所在結點在鏈表中的指針,若沒找到返回0</p><p>  void ShowList(); //打印整個鏈表</p><p>  void DeleteList(); //刪除整個鏈表</p><p>  CNode *GetListHead(){return pHead;} //

19、返回鏈表首結點</p><p>  CNode *GetListNextNode(CNode *); //返回鏈表指定結點的下一個結點</p><p>  void Insert(CNode *); //按工資的順序插入一個結點</p><p>  void AddSalary(CList &SalaryList) //將記錄添加到鏈表中,鏈表是唯一的&

20、lt;/p><p>  void DeleteData(CList &list)//根據姓名找到要刪除的結點,再進行刪除結點操作</p><p>  void LookUpData(CList &list) //尋找所要找的姓名的結點</p><p>  int OpenFile(CList&list)//打開文件并建立有序鏈表對文件中的數據進行

21、排序,最后輸出</p><p>  void main(void)//主函數</p><p>  void Outfun(void)//輸出主菜單</p><p>  int SaveFile(CList & List)//輸入結點,保存文件</p><p>  void SetNewData(CList &list)//修改

22、工資數據</p><p>  void ShowSalary(CList &list)//輸出鏈表中的數據,顯示員工的工資數據</p><p><b>  四.程序設計思想</b></p><p>  數據管理類程序的數據用鏈表的形式存儲,將鏈表定義成一個類,將結點視為類中的數據成員,也即將結點視為一個整體,涉及結點的插入、輸出、刪除等

23、操作。將結點也定義成一個類,涉及結點數據的輸入和輸出、復制等。在結點中,涉及較多的是具體數據的形式,所以將具體的數據形式定義成數據類型的指針,所有針對數據的操作都轉換為對指針的操作,在數據類再具體實現。結點的操作也像鏈表一樣通用。將數據具體形式定義成一個類,涉及數據的輸入、輸出、比較等。那么,針對不同的數據管理,只要改動這部分就可以了。這樣,就實現程序的結構化。</p><p><b>  關于程序的思

24、考</b></p><p>  輸入密碼的時候是不是可以把輸入的字符都顯示為“*”。</p><p>  還要想想和其他函數間的關系,有的函數可以調用,那就很方便,少編一些代碼,還會減少出錯的幾率。</p><p>  整個過程中對類的封裝性進行了充分了解,特別是在調試的時候,對象成員的調用、參數的傳遞、函數的銜接遇到了不少麻煩。鏈表部分還是不太清楚。&

25、lt;/p><p>  要輸入數字的地方輸入字母會出現錯誤。</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、 請選擇以下功能 *\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 劉凱強 \n";</p><p>  cout<<"\n";</p><p>  cout<<"請輸入

32、功能代碼:";</p><p><b>  }</b></p><p><b>  //數據類:</b></p><p>  class CSalary //定義數據類</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;} //數據初始化</p><p>  CSalary(char *name,double salary) //構造函數重載</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、結果為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>  //結點類</b></p><p>  class CNode //定義結點類</p><p><b>  {</b></p><p><b>  private:</b></p><p>  CSalary * pData; //用于指向數據類的指針,這是每個數據的不

43、同部分</p><p>  CNode *pNext; //指向鏈表的指針</p><p><b>  public:</b></p><p>  CNode(){pData=0;pNext=0;} //結點類構造函數</p><p>  CNode(CNode &node) //用于拷貝的構造函數<

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;} //輸入數據</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; //鏈表頭結點指針</p><p><b>  public:</b></p><p>  CList(){pHead=0;} //賦值</p><p>  ~CList(){DeleteList();} //析構函數</p><p>  void AddNode

48、(CNode *pnode); //在首部添加結點</p><p>  CNode *DeleteNode(CNode *); //刪除一個指定的結點,返回該結點的指針</p><p>  CNode *LookUp(CSalary &); //查找一個指定的數據,返回該數據所在結點在鏈表中的指針,若沒找到返回0</p><p>  void ShowL

49、ist(); //打印整個鏈表</p><p>  void DeleteList(); //刪除整個鏈表</p><p>  CNode *GetListHead(){return pHead;} //返回鏈表首結點</p><p>  CNode *GetListNextNode(CNode *); //返回鏈表指定結點的下一個結點</p>

50、<p>  void Insert(CNode *); //按工資的順序插入一個結點</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<<"無節(jié)點"; </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<<"沒有數據,請先添加數據!\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; //返回鏈表指定結點的下一個結點</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); //以二進制讀取方式打開已存在文件EMP.txt</p><p>  if(!file) //打開文件發(fā)生錯誤,程序退出</p><p><b>  {</b></p><p

73、>  cout<<" 打開失敗!\n";</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  CNode *pnode; //定義一個結點類的對象指針</p><p>  CSalary *sal

74、ary; //定義一個數據類的對象</p><p>  long curpos, length; //記錄文件長度的變量</p><p>  curpos=file.tellg(); //文件指針當前位置(頭文件)</p><p>  file.seekg(0L,ios::end); //將文件指針移到文件尾</p><p&g

75、t;  length=file.tellg(); //文件指針當前位置(文件尾),length為文件長度</p><p>  file.seekg(0L,ios::beg); //文件指針移到文件頭</p><p>  long num=length/sizeof(*salary); //數據個數</p><p>  for(long l=0;l<

76、num;l++) //循環(huán)查找</p><p><b>  {</b></p><p>  pnode=new CNode; //動態(tài)開辟一個結點</p><p>  salary=new CSalary; //動態(tài)開辟一個數據類的對象</p><p>  file.read((char*)salary,sizeo

77、f(*salary)); //讀取數據salary</p><p>  pnode->InputData(salary); //結點賦值</p><p>  list.Insert(pnode); //把結點插入鏈表</p><p><b>  }</b></p><p>  file.close(); /

78、/關閉文件</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); //以二進制寫入方式打開文件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(); //取出結點類指針</p><p>  file.write((char*)salary,sizeof(*salary)); //寫入數據salary</p><p>  pnode=Li

82、st.GetListNextNode(pnode); //取下一個結點,形成循環(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結束): ";</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結束): ";</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<<"根據姓名查找工資\n";</p><p>  char szName[20]; </p><p>  cout<<"請輸入要查找人的姓名(輸入0結

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<<"請輸入姓名(輸入0結束): ";</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<<"根據姓名刪除工資\n";</p><p>  char name[20];</p><p>  cout<<

95、;"請輸入要刪除人的姓名(輸入0結束): ";</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(); //跳過回車鍵</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<<"數據已刪除!\n";</p><p><b>  }</b></p><p>  cout<<"請輸入姓名(輸入0結束): ";</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<<"根據姓名修改工資\n";</p><p>  char name[20];</p><p><b>  char a;</b></p><p>  cout<<"請輸入要修改的人的姓名(輸入0結束): ";</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(); //跳過回車鍵</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<<"請輸入新的工資:";</p><p>  double dlsal

106、;</p><p>  cin>>dlsal; </p><p>  cin.ignore(); //跳過回車鍵</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<<"請輸入要修改的人的姓名(輸入0結束): ";</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請輸入操作密碼:\n";</p><p>  cin>>code;</p>

112、;<p>  if(code!=123)</p><p><b>  {</b></p><p>  cout<<"密碼錯誤!\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<<"沒有數據文件,請先添加數據!";</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<<"選擇錯誤!\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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論