C小型公司員工信息標準管理專業系統設計方案報告要點_第1頁
C小型公司員工信息標準管理專業系統設計方案報告要點_第2頁
C小型公司員工信息標準管理專業系統設計方案報告要點_第3頁
C小型公司員工信息標準管理專業系統設計方案報告要點_第4頁
C小型公司員工信息標準管理專業系統設計方案報告要點_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

高職學院C++程序設計語言上學期課程設計報告(-第1學期)課程設計類型:C語言程序設計題目:人員信息管理系統學號:姓名:專業:計算機應用基礎指導老師:課程設計日期:.12.23-.12.27.目錄TOC\o"1-2"\h\z1.問題分析 12.總體設計 12.1功效分析 13.具體設計 23.1程序結構圖 23.2程序類結構圖 23.3程序類結構圖 34.功效測試 44.1本系統主界面 44.2錄入功效主界面 44.3顯示功效主界面 54.4查找功效主界面 54.5修改功效主界面 64.6刪除功效主界面 64.7清理功效主界面 74.8退出功效主界面 75.課設小結 7參考文獻 8附錄:源代碼清單 81.問題分析1.1問題描述1.題目《人員信息管理系統》設計2.設計說明和要求企業關鍵有4類人員:經理、技術人員、銷售員、銷售經理,要求存放這些人姓名、年紀、工資信息。工資計算方法經理:固定為8000元;技術員:工作時間*每小時酬金(100RMB);銷售員:4%分成;銷售經理:1%分成+固定工資(5000RMB);實現功效錄入:輸入多種數據,并錄入TXT文件保留;顯示:顯示職員數據信息;查找:查找職員數據信息;修改:修改職員數據信息;刪除:刪除職員數據信息;退出:退出本系統;清理存放文件:清理系統產生TXT文件;2.總體設計2.1功效分析使用面向對象程序設計思想進行分析,整個系統包含兩大類信息和操作,企業,人員。所以系統關鍵包含兩個大類:企業類business、人員類person。系統總體框架就是企業類,人員類定義;主函數中定義一個企業對象,循環顯示主菜單并依據用戶選擇調用企業類對應方法(組員函數)。3.具體設計3.1程序結構圖雇員類雇員類技術員類經理類銷售員類類銷售經理類3.2程序類結構圖PPerson類charname[20];charpost[20];charhour[20];intage;intnumber;voidin;voidpay;voidout;Sell類intphpay;intmonthpay;;voidin;voidpay;voidout;Technician類inthourlyRate;intworkHours;voidin;voidpay;voidout;Business類inttime;voidin;voidpay;voidout;Sell類intphpay;intmonthpay;voidin;voidpay;voidout;Bagman類intphpay;voidin;voidpay;voidout;3.3程序類結構圖開始開始輸入選擇Switch(c)Case6結束刪除職員信息Case1Case4Case2Case5Case3Case0修改職員信息查找職員信息顯示職員信息錄入職員信息刪除存放文件4.功效測試4.1本系統主界面4.2錄入功效主界面4.3顯示功效主界面4.4查找功效主界面4.5修改功效主界面4.6刪除功效主界面4.7清理功效主界面4.8退出功效主界面5.課設小結依據課程設計要求,我思索出了自己課題,我用本學期所學C++面向對象知識來編寫程序。我利用面向對象方法和C++編程思想來完成系統設計,在設計過程中,建立清楚層次,當然在調試過程中我也碰到了很多問題。本程序由雇員這個基類派生出多個派生類,而且調用多個函數。主函數關鍵利用選擇結構。派生類中保護類數據要經過定義公有類型函數來從類外調用。和部分相當復雜算法,自己看了全部亂,頭全部暈。不過,我相信,不經歷風雨怎么能見彩虹。在處理了這一切后,我有一個:天將降大任于斯人也,必先勞其筋骨,餓其體膚感覺!參考文獻錢能主編,C++程序設計教程,清華大學出版社,.11戴鋒編著,VisualC++程序設計基礎,清華大學出版社,.4施平安主編,C++程序設計教程(第四版),清華大學出版社,.3林麗閩主編,標準C++程序設計教程,電子工業出版社,.6.1譚浩強主編,C++程序設計,清華大學出版社,.6附錄:源代碼清單#include<iostream.h>#include<fstream.h>#include<string.h>#include<stdlib.h>#include<stdio.h>classperson{public: charname[20],post[20],hour[20];intage,number;};classbusiness:publicperson{public:inttime;};//經理classmgr:publicperson{public:intmonthpay;mgr::mgr(){monthpay=8000;}voidout(){cout<<"請輸入職員編號:";cin>>number;cout<<"請輸入職員姓名:";cin>>name;cout<<"請輸入職員年紀:";cin>>age;cout<<"該職員月薪為:"<<monthpay<<endl;}voidin(){cout<<"編號:"<<number<<''<<"姓名:"<<name<<''<<"年紀:"<<age<<''<<"職稱:"<<"經理"<<''<<"月薪:"<<monthpay<<endl;}};//技術人員classtechnician:publicperson{public: inthourlyRate;//每小時酬金 intworkHours;//當月工作時數intpay; technician::technician(){hourlyRate=100;};voidin(){ cout<<"編號:"<<number<<''<<"姓名:"<<name<<''<<"年紀:"<<age<<''<<"職稱:"<<"技術人員"<<''<<"月薪:"<<pay<<endl;}voidout(){cout<<"請輸入職員編號:";cin>>number;cout<<"請輸入職員名字:";cin>>name;cout<<"請輸入工作小時:";cin>>workHours;cout<<"請輸入職員年紀:";cin>>age;pay=hourlyRate*workHours;cout<<"該職員月薪為:"<<pay<<endl;}};//銷售經理classsell:publicbusiness{public:intphpay,monthpay;sell::sell(){phpay=1,monthpay=5000;}voidin(){cout<<"編號:"<<number<<""<<"姓名:"<<name<<""<<"銷售額:"<<time<<""<<"年紀:"<<age<<""<<"職稱:"<<"銷售經理"<<""<<"月薪:"<<pay()<<endl;}intpay(){return(phpay*time+monthpay);}voidout(){cout<<"請輸入職員編號:";cin>>number;cout<<"請輸入職員名字:";cin>>name;cout<<"請輸入銷售額:";cin>>time;cout<<"請輸入職員年紀:";cin>>age;cout<<"職員月薪為:"<<pay()<<endl;}};//推銷員classbagman:publicbusiness{public:intphpay;bagman::bagman(){phpay=4;}voidin(){cout<<"編號:"<<number<<""<<"姓名:"<<name<<""<<"銷售額:"<<time<<""<<"年紀:"<<age<<""<<"職稱:"<<"推銷員"<<""<<"年薪:"<<pay()<<endl;}intpay(){return(phpay*time);}voidout(){cout<<"請輸入職員編號:";cin>>number;cout<<"請輸入職員名字:";cin>>name;cout<<"請輸入銷售額:";cin>>time;cout<<"請輸入職員年紀:";cin>>age;cout<<"該職員月薪為:"<<pay()<<endl; }};//輸入函數voidwrite1(){ mgrp; p.out(); ofstreammyfile("f1.txt",ios::binary|ios::ate); myfile.write((char*)&p,sizeofp);myfile.close();}voidwrite2(){technicianp;p.out();ofstreammyfile("f2.txt",ios::binary|ios::ate);myfile.write((char*)&p,sizeofp);myfile.close();}voidwrite3(){sellp;p.out();ofstreammyfile("f3.txt",ios::binary|ios::ate);myfile.write((char*)&p,sizeofp);myfile.close();}voidwrite4(){bagmanp;ofstreammyfile("f4.txt",ios::binary|ios::ate);p.out();myfile.write((char*)&p,sizeofp);myfile.close();}voidbuild(){cout<<endl;cout<<"******************請選擇職員信息******************"<<endl;cout<<"**1.經理**"<<endl;cout<<"**2.技術人員**"<<endl;cout<<"**3.銷售經理**"<<endl;cout<<"**4.推銷員**"<<endl;cout<<"****************************************************"<<endl; cout<<"請輸入選擇:"<<endl;charch;cin>>ch;while(ch!='N'&&ch!='n'){switch(ch){case'1':write1();break;case'2':write2();break;case'3':write3();break;case'4':write4();break;default:cout<<"ERROR!!"<<endl; break; }cout<<"是否繼續使用錄入功效:(Y/N)?";cin>>ch; if(ch=='Y'||ch=='y'){ cout<<"請輸入選擇:"<<endl;cin>>ch;}}}//顯示函數voidshow1(){ifstreammyfile("f1.txt",ios::binary|ios::out|ios::in); mgrp; myfile.read((char*)&p,sizeofp);while(!myfile.eof()){ p.in(); myfile.read((char*)&p,sizeofp);} myfile.close();}voidshow2(){ ifstreammyfile("f2.txt",ios::binary|ios::out|ios::in); technicianp; myfile.read((char*)&p,sizeofp); while(!myfile.eof()) { p.in(); myfile.read((char*)&p,sizeofp); } myfile.close();}voidshow3(){ ifstreammyfile("f3.txt",ios::binary|ios::out|ios::in); sellp; myfile.read((char*)&p,sizeofp);while(!myfile.eof()){ p.in(); myfile.read((char*)&p,sizeofp);}myfile.close();}voidshow4(){ ifstreammyfile("f4.txt",ios::binary|ios::out|ios::in); bagmanp; myfile.read((char*)&p,sizeofp);while(!myfile.eof()){ p.in(); myfile.read((char*)&p,sizeofp);}myfile.close();}voidshow0(){ show1();show2(); show3(); show4();}voidshow(){ cout<<"**********************你正在顯示********************"<<endl; cout<<"**0.全部顯示**"<<endl; cout<<"**1.經理**"<<endl; cout<<"**2.技術人員**"<<endl; cout<<"**3.銷售經理**"<<endl; cout<<"**4.推銷員**"<<endl; cout<<"****************************************************"<<endl; cout<<"請選擇你要顯示職員類:"<<endl; charc; cin>>c; while(c!='N'&&c!='n') { switch(c) { case'0': show0(); break; case'1': show1(); break; case'2': show2(); break; case'3': show3(); break; case'4': show4(); break; default: cout<<"ERROR!!"<<endl; break; } cout<<"是否繼續使用顯示功效(Y/N)?"<<endl; cin>>c; if(c=='Y'||c=='y') { cout<<"請選擇你要顯示職員類:"<<endl; cin>>c; } }}//查找函數voidsearch1(){ intm=1; cout<<"請輸入你要查找編號:"<<endl; intnumber; cin>>number; ifstreammyfile("f1.txt",ios::binary|ios::out|ios::in); mgrp; myfile.read((char*)&p,sizeofp); while(!myfile.eof()) { if(number==p.number) { p.in(); myfile.close(); m=0; } myfile.read((char*)&p,sizeofp); } if(m) cout<<"查無此人!!!"<<endl;}voidsearch2(){ intm=1; cout<<"請輸入你要查找編號:"<<endl; intnumber; cin>>number; ifstreammyfile("f2.txt",ios::binary|ios::out|ios::in); technicianp; myfile.read((char*)&p,sizeofp); while(!myfile.eof()) { if(number==p.number) { p.in(); myfile.close(); m=0; } myfile.read((char*)&p,sizeofp); } if(m) cout<<"查無此人!!!"<<endl;}voidsearch3(){ intm=1; cout<<"請輸入你要查找編號:"<<endl; intnumber; cin>>number; ifstreammyfile("f3.txt",ios::binary|ios::out|ios::in); sellp; myfile.read((char*)&p,sizeofp); while(!myfile.eof()) { if(number==p.number) { p.in(); myfile.close(); m=0; } myfile.read((char*)&p,sizeofp);} if(m) cout<<"查無此人!!!"<<endl;}voidsearch4(){ intm=1; cout<<"請輸入你要查找編號:"<<endl; intnumber; cin>>number; ifstreammyfile("f4.txt",ios::binary|ios::out|ios::in); bagmanp; myfile.read((char*)&p,sizeofp); while(!myfile.eof()) { if(number==p.number) { p.in(); myfile.close(); m=0; } myfile.read((char*)&p,sizeofp); } if(m) cout<<"查無此人!!!"<<endl;}voidsearch(){ cout<<"*********************你正在查找*********************"<<endl; cout<<"**1.經理**"<<endl; cout<<"**2.技術人員**"<<endl; cout<<"**3.銷售經理**"<<endl; cout<<"**4.推銷員**"<<endl; cout<<"****************************************************"<<endl; cout<<"請選擇你職稱類型:"<<endl; charc; cin>>c; while(c!='N'&&c!='n') { switch(c) { case'1': search1(); break; case'2': search2(); break; case'3': search3(); break; case'4': search4(); break; default: cout<<"ERROR!!"<<endl; break; } cout<<"是否繼續使用查找功效(Y/N)?"; cin>>c; if(c=='Y'||c=='y') { cout<<"請選擇你職稱類型:"<<endl; cin>>c; } }}//修改函數voidrepair1(void){ intnum,i=0,k=0; mgr*p1=newmgr[50]; cout<<"請輸入你要修改編號:"; cin>>num; ifstreamh1("f1.txt",ios::binary|ios::in); h1.read((char*)&p1[i],sizeofp1[i]); while(!h1.eof()) { i++; h1.read((char*)&p1[i],sizeofp1[i]); } h1.close(); k=i; for(i=0;i<k;i++) { if(num==p1[i].number) { p1[i].out(); cout<<"修改完成!"<<endl; } } ofstreamh2("f1.txt",ios::binary|ios::out); for(i=0;i<k;i++) { h2.write((char*)&p1[i],sizeofp1[i]); } h2.close(); delete[]p1;}voidrepair2(void){ intnum,i=0,k=0; technician*p2=newtechnician[50]; cout<<"請輸入你要修改編號:"; cin>>num; ifstreamh2("f2.txt",ios::binary|ios::in); h2.read((char*)&p2[i],sizeofp2[i]); while(!h2.eof()) { i++; h2.read((char*)&p2[i],sizeofp2[i]); } h2.close(); k=i; for(i=0;i<k;i++) { if(num==p2[i].number) { p2[i].out(); cout<<"修改完成!"<<endl; } } ofstreamh1("f2.txt",ios::binary|ios::out); for(i=0;i<k;i++) { h1.write((char*)&p2[i],sizeofp2[i]); } h1.close(); delete[]p2;}voidrepair3(void){ intnum,i=0,k=0; sell*p6=newsell[50]; cout<<"請輸入你要修改編號:"; cin>>num; fstreamh6("f3.txt",ios::binary|ios::out|ios::in); h6.read((char*)&p6[i],sizeofp6[i]); while(!h6.eof()) { i++; h6.read((char*)&p6[i],sizeofp6[i]); } k=i; h6.close(); for(i=0;i<k;i++) { if(num==p6[i].number) { p6[i].in(); cout<<"修改完成!"<<endl; } } ofstreamh1("f6.txt",ios::binary|ios::out); for(i=0;i<k;i++) { h1.write((char*)&p6[i],sizeofp6[i]); } h1.close(); delete[]p6;}voidrepair4(void){ intnum,i=0,k=0; bagman*p7=newbagman[50]; cout<<"請輸入你要修改編號:"; cin>>num; fstreamh7("f4.txt",ios::binary|ios::out|ios::in); h7.read((char*)&p7[i],sizeofp7[i]); while(!h7.eof()) { i++; h7.read((char*)&p7[i],sizeofp7[i]); } k=i; h7.close(); for(i=0;i<k;i++) { if(num==p7[i].number) { p7[i].out(); cout<<"修改完成!"<<endl; } } ofstreamh1("f7.txt",ios::binary|ios::out); for(i=0;i<k;i++) { h1.write((char*)&p7[i],sizeofp7[i]); } h1.close(); delete[]p7;}voidrepair(){ cout<<"*********************你正在修改*********************"<<endl; cout<<"**1.經理**"<<endl; cout<<"**2.技術人員**"<<endl; cout<<"**3.銷售經理**"<<endl; cout<<"**4.推銷員**"<<endl; cout<<"****************************************************"<<endl; cout<<"請輸入你要修改職稱類型:"<<endl; charc; cin>>c; while(c!='N'&&c!='n') { switch(c) { case'1': repair1(); break; case'2': repair2(); break; case'3': repair3(); break; case'4': repair4(); break; default: cout<<"ERROR!!"<<endl; break; } cout<<"是否繼續修改(Y/N)?"<<endl; cin>>c; if(c=='Y'||c=='y') { cout<<"請輸入你要修改職稱類型:"<<endl; cin>>c; } }}voiddelete1(){ inti=0,number; ifstreammyfile("f1.txt",ios::binary|ios::in); mgrp[30]; myfile.read((char*)(p+i),sizeof*p); cout<<"請輸入你要刪除對象編號:"<<endl; cin>>number; while(!myfile.eof()) { if(number==p[i].number) { i--; } i++; myfile.read((char*)(p+i),sizeof*p); } intk=i; myfile.close(); ofstreamfile2("f1.txt",ios::binary|ios::out); for(i=0;i<k;i++) { file2.write((char*)(p+i),sizeof*p); }}voiddelete2(){ inti=0,number; ifstreammyfile("f2.txt",ios::binary|ios::in); technicianp[30]; myfile.read((char*)(p+i),sizeof*p); cout<<"請輸入你要刪除對象編號:"<<endl; cin>>number; while(!myfile.eof()) { if(number==p[i].number) { i--; } i++; myfile.read((char*)(p+i),sizeof*p); } intk=i; myfile.close(); ofstreamfile2("f2.txt",ios::binary|ios::out); for(i=0;i<k;i++) { file2.write((char*)(p+i),sizeof*p); }}voiddelete3(){ inti=0,number; ifstreammyfile("f3.txt",ios::binary|ios::in); sellp[30]; myfile.read((char*)(p+i),sizeof*p); cout<<"請輸入你要刪除對象編號:"<<endl; cin>>number; while(!myfile.eof()) { if(number==p[i].number) { i--; } i++; myfile.read((char*)(p+i),sizeof*p); } intk=i; myfile.close(); ofstreamfile2("f3.txt",ios::binary|ios::out); for(i=0;i<k;i++) { file2.write((char*)(p+i),sizeof*p); }}voiddelete4(){ inti=0,number; ifstreammyfile("f4.txt",ios::binary|ios::in); bagmanp[30]; myfile.read((char*)(p+i),sizeof*p); cout<<"請輸入你要刪除對象編號:"<<endl; cin>>number; while(!myfile.eof()) { if(number==p[i].number) { i--; } i++; myfile.read((char*)(p+i),sizeof*p); } intk=i; myfile.close(); ofstreamfile2("f4.txt",ios::binary|ios::out); for(i=0;i<k;i++) { file2.write((char*)(p+i),sizeof*p); }}voiddelet(){ cout<<"*********************你正在刪除*********************"<<endl; cout<<"**1.經理**"<<endl; cout<<"**2.技術人員**"<<endl; cout<<"**3.銷售經理**"<<endl; cout<<"**4.推銷員**"<<endl; cout<<"****************************************************"<<endl; cout<<"請輸入你要刪除對象類型:"<<endl; charc; cin>>c; while(c!='N'&&c!='n') { switch(c) { case'1': delete1(); break; case'2': delete2(); break; case'3': delete3(); break; case'4': delete4(); break; default: cout<<"ERROR!!"<<endl; break; } cout<<"是否繼續使用刪除功效(Y/N)?"<<endl; cin>>c; if(c=='Y'||c=='y') { cout<<"請輸入你要刪除對象類型:"<<endl; cin>>c; } }}voidmanag(){ remove("f1.txt"); remove("f2.txt"); remove("f3.txt"); remove("f4.txt"); cout<<"文件已經刪除,請返回管理系統!!!"<<endl;}voidmanage(){ charc; cout<<"*********************你正在刪除*********************"<<endl; cout<<"**1.經理**"<<endl; cout<<"**2.技術人員**"<<endl; cout<<"**3.銷售經理**"<<endl; cout<<"**4.推銷員**"<<endl; cout<<"**5.全部刪除**"<<endl; cout<<"****************************************************"<<endl; cout<<"請輸入你要刪除對象:"<<endl; cin>>c; while(c!='N'&&c!='n') { switch(c) { case'1': remove("f1.txt"); cout<

溫馨提示

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

評論

0/150

提交評論