版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> VC++ 課程設(shè)計(jì)報(bào)告</p><p><b> 公司人事管理系統(tǒng)</b></p><p> 學(xué)生姓名: </p><p> 學(xué) 號: </p><p> 年級專業(yè):2007級信息與計(jì)算科學(xué)</p>
2、<p> 班 級: 信息一班 </p><p> 指導(dǎo)老師: </p><p> 學(xué) 院:數(shù)學(xué)與計(jì)算科學(xué)學(xué)院 </p><p><b> 目 錄</b></p><p><b> 1 前言3</b>&l
3、t;/p><p><b> 2 需求分析4</b></p><p><b> 3 概要設(shè)計(jì)4</b></p><p> 3.1系統(tǒng)功能模塊設(shè)計(jì)4</p><p><b> 3.2 流程圖5</b></p><p> 3.3程序運(yùn)行平臺6&
4、lt;/p><p><b> 4詳細(xì)設(shè)計(jì)6</b></p><p> 4.1公司人員信息類的設(shè)計(jì)6</p><p> 4.2 數(shù)據(jù)的存儲9</p><p> 4.3模塊詳細(xì)分析9</p><p> 4.4 整體界面的實(shí)現(xiàn)10</p><p> 4.5 系
5、統(tǒng)登錄的實(shí)現(xiàn)12</p><p> 4.6 添加.查詢.刪除和修改記錄的實(shí)現(xiàn)18</p><p> 4.7(特色)用戶注冊的實(shí)現(xiàn)27</p><p><b> 5 測試分析32</b></p><p><b> 6 心得體會32</b></p><p>&l
6、t;b> 參考文獻(xiàn)33</b></p><p> 致 謝33</p><p> 公司人員信息管理系統(tǒng)</p><p><b> 金釗</b></p><p> ?。ê峡萍即髮W(xué) 中國 湘潭 0707020133)</p><p><b> 摘
7、 要</b></p><p> 本次課程設(shè)計(jì)任務(wù)是通過編寫一個(gè)公司人員信息管理系統(tǒng),學(xué)習(xí)用Visual C++ 6.0開發(fā)簡單的管理系統(tǒng)。采用Visual C++ 6.0軟件為主要開發(fā)工具。</p><p> 本系統(tǒng)主要完成對公司員工情況和公司信息的管理,包括人員信息的添加、修改、刪除等。系統(tǒng)還可以完成對各類信息的瀏覽、查詢、添加、刪除、修改、等功能。</p>
8、<p> 由于我們還沒有學(xué)習(xí)數(shù)據(jù)庫,所以在有關(guān)大量人員信息存儲時(shí),次系統(tǒng)顯得心有余而力不足。 系統(tǒng)的核心是引用I/O流和文本處理來存儲和修改公司人員的信息聯(lián)系,每一個(gè)動作都可能影響到其它的功能,還有數(shù)據(jù)的改變,當(dāng)完成對數(shù)據(jù)的操作時(shí)系統(tǒng)會自動地完成數(shù)據(jù)庫的修改。</p><p> 關(guān)鍵字:VC++6.0;公司人員信息管理系統(tǒng);模塊化設(shè)計(jì);i/O流;</p><p>&
9、lt;b> 1 前言</b></p><p> 使用計(jì)算機(jī)管理人員信息,不但可以大量節(jié)省時(shí)間、人力、財(cái)力、物力,而且能更全面有效地掌握公司的基本情況,及時(shí)獲取最新而又準(zhǔn)確的資料和信息。此課程設(shè)計(jì)就是這樣一個(gè)管理公司人員信息的系統(tǒng),其功能與實(shí)現(xiàn)方面有比較好的的針對性和實(shí)用性。軟件是在Visual c++平臺上開發(fā)的,采用i/o流文本存儲數(shù)據(jù)和信息,作為虛擬的數(shù)據(jù)庫。利用i/o流文本操作語言,能
10、比較方便地實(shí)現(xiàn)對人員信息的操作與管理。</p><p> 系統(tǒng)登陸功能是系統(tǒng)的核心之一,在系統(tǒng)中有用戶注冊,用戶注銷,用戶退出,其目的都是為了方便用戶使用。系統(tǒng)有完整的用戶對比功能,檢查是否用戶名已被注冊。</p><p><b> 2 需求分析</b></p><p> Visual C++6.0的MFC提供了大量的類庫函數(shù)強(qiáng)大支持。開
11、發(fā)一個(gè)人員信息管理系統(tǒng),可以實(shí)現(xiàn)人員信息的管理。并提供新信息輸入,現(xiàn)有公司人員信息查詢功能,對記錄的刪除修改等工作。</p><p> 公司人員管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)信息的建立和保存以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。</p><p><b&
12、gt; 3 概要設(shè)計(jì)</b></p><p> 公司人員管理系統(tǒng)的概要設(shè)計(jì)分成兩部分,首先是簡要介紹系統(tǒng)功能模塊設(shè)計(jì),其次是簡要介紹流程圖。</p><p> 3.1系統(tǒng)功能模塊設(shè)計(jì)</p><p> 系統(tǒng)功能劃分為九個(gè)模塊,其流程圖如圖3-1。各模塊功能簡要介紹如下:</p><p> 圖3-1 系統(tǒng)功能模塊流程圖&
13、lt;/p><p><b> 1、用戶注冊:</b></p><p> 添加一個(gè)系統(tǒng)賬戶,當(dāng)輸入的用戶名未被注冊且密碼兩次輸入相同則注冊成功。</p><p><b> 2、系統(tǒng)注銷:</b></p><p> 可以注銷當(dāng)前用戶,登陸另一個(gè)賬戶。</p><p><
14、b> 3、系統(tǒng)退出:</b></p><p> 退出公司人員管理信息系統(tǒng)。</p><p><b> 4、信息輸入:</b></p><p> 輸入公司職員的基本信息。</p><p><b> 5、信息輸出:</b></p><p> 輸出公司
15、所有職員的信息。</p><p><b> 6、信息查詢:</b></p><p> 查詢制定人員的信息。</p><p><b> 7、信息修改:</b></p><p> 修改指定人員的信息。</p><p><b> 8、信息刪除:</b>
16、;</p><p> 刪除指定人員的信息。</p><p><b> 9、信息清空:</b></p><p> 清空所有人員的信息。</p><p><b> 3.2 流程圖</b></p><p> 系統(tǒng)操作流程圖如圖3-2。</p><p&g
17、t; 圖3-2 功能流程圖</p><p><b> 程序運(yùn)行平臺</b></p><p> 開發(fā)工具: Visual C++</p><p> 運(yùn)行環(huán)境:Windows 9x、Windows NT/2000、Windows XP</p><p><b> 詳細(xì)設(shè)計(jì)</b></p
18、><p> 公司人員管理系統(tǒng)的詳細(xì)設(shè)計(jì)分成七部分,分別是公司人員信息類的設(shè)計(jì)、數(shù)據(jù)的存儲、模塊詳細(xì)分析、整體界面的實(shí)現(xiàn)、系統(tǒng)登錄的實(shí)現(xiàn)、添加.查詢.刪除和修改記錄的實(shí)現(xiàn)以及(特色)用戶注冊的實(shí)現(xiàn)。下面分別加以介紹,其中某些部分會將具體代碼列出。</p><p> 4.1.公司人員信息類的設(shè)計(jì)</p><p> 公司人員管理系統(tǒng)主要的人員信息主要分為技術(shù)員、銷售員、
19、經(jīng)理以及銷售經(jīng)理等四類人員,為此設(shè)計(jì)了五個(gè)人員信息類分別是employee(作為基類)、technician、salesman、manager以及salesmanager,后四個(gè)類都公有地繼承了employee。下面是上述類的設(shè)計(jì),即各類的聲明,放在了employee.h文件中,而其中所有成員函數(shù)的設(shè)計(jì)見附件。</p><p> //employee.h</p><p> class
20、employee</p><p><b> {</b></p><p> protected:</p><p> char name[20];//姓名</p><p> int individualEmpNo;//個(gè)人編號</p><p> int grade;//級別</p
21、><p> float accumPay;//月薪總額</p><p> static int employeeNo;//本公司職員編號目前最大值</p><p><b> public:</b></p><p> employee();//構(gòu)造函數(shù)</p><p> ~employe
22、e();//析構(gòu)函數(shù)</p><p> virtual void pay()=0;//計(jì)算月薪函數(shù)(純虛函數(shù))</p><p> virtual void promote(int increment=0);//升級函數(shù)(虛函數(shù))</p><p> void SetName(char *); //設(shè)置姓名函數(shù)</p><p>
23、 char * GetName(); //提取姓名函數(shù)</p><p> int GetindividualEmpNo(); //提取編號函數(shù)</p><p> int Getgrade(); //提取級別函數(shù)</p><p> float GetaccumPay(); //提取月薪函數(shù)</p><p><b>
24、 };</b></p><p> class technician:public employee//兼職技術(shù)人員類</p><p><b> {</b></p><p><b> private:</b></p><p> float hourlyRate;//每小時(shí)酬金
25、</p><p> int workHours;//當(dāng)月工作時(shí)數(shù)</p><p><b> public:</b></p><p> technician();//構(gòu)造函數(shù)</p><p> void SetworkHours(int wh); //設(shè)置工作時(shí)數(shù)函數(shù)</p><p>
26、; void pay();//計(jì)算月薪函數(shù)</p><p> void promote(int);//升級函數(shù)</p><p><b> };</b></p><p> class salesman:virtual public employee//兼職推銷員類</p><p><b> {&l
27、t;/b></p><p> protected:</p><p> float CommRate;//按銷售額提取酬金的百分比</p><p> float sales;//當(dāng)月銷售額</p><p><b> public:</b></p><p> salesman();
28、//構(gòu)造函數(shù)</p><p> void Setsales(float sl); //設(shè)置銷售額函數(shù)</p><p> void pay();//計(jì)算月薪函數(shù)</p><p> void promote(int);//升級函數(shù)</p><p><b> };</b></p><p>
29、; class manager:virtual public employee//經(jīng)理類</p><p><b> {</b></p><p> protected:</p><p> float monthlyPay;//固定月薪數(shù)</p><p><b> public:</b>&
30、lt;/p><p> manager();//構(gòu)造函數(shù)</p><p> void pay();//計(jì)算月薪函數(shù)</p><p> void promote(int);//升級函數(shù)</p><p><b> };</b></p><p> class salesmanager:publ
31、ic manager,public salesman //銷售經(jīng)理類</p><p><b> {</b></p><p><b> public:</b></p><p> salesmanager();//構(gòu)造函數(shù)</p><p> void pay();//計(jì)算月薪函數(shù)<
32、/p><p> void promote(int);//升級函數(shù)</p><p><b> };</b></p><p><b> 4.2.數(shù)據(jù)的存儲</b></p><p> 根據(jù)上面所介紹的本系統(tǒng)的各個(gè)模塊及其需要實(shí)現(xiàn)的功能,由于還沒有學(xué)習(xí)數(shù)據(jù)庫,所以我們只能應(yīng)用i/o流文本操作來存儲信息
33、:</p><p><b> 1.密碼表 </b></p><p> 用于保存用戶賬戶的基本信息,系統(tǒng)通過該表對賬戶的用戶名和密碼的基本信息進(jìn)行查詢,并比較用戶名和密碼是否正確。</p><p><b> 2.公司人員信息表</b></p><p> 用于保存公司職員的基本信息。</p
34、><p> 4.3.模塊詳細(xì)分析</p><p> 1. 系統(tǒng)登錄注冊和注銷</p><p> 系統(tǒng)開始運(yùn)行就出現(xiàn)系統(tǒng)登錄對話框,密碼正確后才能進(jìn)入主界面(默認(rèn)用戶名:金釗,密碼為123),用戶還可以注銷,注冊和退出功能。</p><p> 自己認(rèn)為有特色的是注冊功能,由于沒有數(shù)據(jù)庫做后臺,只好多次重復(fù)i/o流操作,調(diào)用文本框。用來完成用
35、戶名的查找、對比,和用戶的添加。</p><p><b> 2. 顯示模塊</b></p><p> 顯示模塊將輸出所有職員的主要資料 。</p><p><b> 3. 修改模塊</b></p><p> 首先由用戶輸入要修改的職員的姓名,然后系統(tǒng)用修改函數(shù)查找,顯示該名職員的資料,然后系
36、統(tǒng)提示用戶輸入需要修改的項(xiàng)目和新的資料。</p><p><b> 4. 查找模塊</b></p><p> 首先由用戶輸入要查找的職員姓名,然后系統(tǒng)用查找函數(shù)查找,然后系統(tǒng)就調(diào)用輸出函數(shù),輸出所查找的職員資料。</p><p><b> 5. 刪除模塊</b></p><p> 首先由用戶
37、輸入要刪除的單個(gè)職員姓名,然后調(diào)用刪除函數(shù),刪除該名職員的資料。</p><p><b> 6. 清空模塊</b></p><p> 系統(tǒng)將會把所有職員的資料全部刪除,將鏈表清空。</p><p> 4.4整體界面的實(shí)現(xiàn)</p><p> 系統(tǒng)使用VC++6.0的MFC提供的主對話框作為整體界面,添加了一個(gè)下拉菜
38、單,菜單中列出了六個(gè)功能按鈕,見圖4-1所示。</p><p> 圖 4-1 系統(tǒng)主界面</p><p> 程序的具體實(shí)現(xiàn)部分放整個(gè)工程(MFC)的CMy0701_33App類中的成員函數(shù)InitInstance()中。具體代碼清單如下所示: </p><p> BOOL CMy0701_33App::InitInstance()</p>&
39、lt;p><b> {</b></p><p> CLoginDlg login;</p><p> if(login.DoModal()==IDOK) //如果登錄成功</p><p><b> {</b></p><p> MB_INFO("
40、;歡迎進(jìn)入公司人員信息管理系統(tǒng)!");</p><p> //CMy0701_33App ed;</p><p> //ed.OnAppAbout;</p><p> AfxEnableControlContainer();</p><p> // Standard initialization</p><
41、;p> // If you are not using these features and wish to reduce the size</p><p> // of your final executable, you should remove from the following</p><p> // the specific initialization ro
42、utines you do not need.</p><p> #ifdef _AFXDLL</p><p> Enable3dControls();// Call this when using MFC in a shared DLL</p><p><b> #else</b></p><p> En
43、able3dControlsStatic();// Call this when linking to MFC statically</p><p><b> #endif</b></p><p> // Change the registry key under which our settings are stored.</p><p&g
44、t; // TODO: You should modify this string to be something appropriate</p><p> // such as the name of your company or organization.</p><p> SetRegistryKey(_T("Local AppWizard-Generated Ap
45、plications"));</p><p> LoadStdProfileSettings(); // Load standard INI file options (including MRU)</p><p> // Register the application's document templates. Document templates</p
46、><p> // serve as the connection between documents, frame windows and views.</p><p> CSingleDocTemplate* pDocTemplate;</p><p> pDocTemplate = new CSingleDocTemplate(</p><
47、;p> IDR_MAINFRAME,</p><p> RUNTIME_CLASS(CMy0701_33Doc),</p><p> RUNTIME_CLASS(CMainFrame), // main SDI frame window</p><p> RUNTIME_CLASS(CMy0701_33View));</p>
48、<p> AddDocTemplate(pDocTemplate);</p><p> // Parse command line for standard shell commands, DDE, file open</p><p> CCommandLineInfo cmdInfo;</p><p> ParseCommandLine(cmdI
49、nfo);</p><p> // Dispatch commands specified on the command line</p><p> if (!ProcessShellCommand(cmdInfo))</p><p> return FALSE;</p><p> // The one and only window
50、 has been initialized, so show and update it.</p><p> m_pMainWnd->ShowWindow(SW_SHOW);</p><p> m_pMainWnd->UpdateWindow();</p><p> return TRUE;</p><p><b>
51、; }</b></p><p> else {return false;}</p><p><b> }</b></p><p> 4.5 系統(tǒng)登錄的實(shí)現(xiàn)</p><p> 系統(tǒng)登錄是設(shè)計(jì)了一個(gè)對話框,對應(yīng)的對話框類名為CloginDlg。具體設(shè)計(jì)見圖4-2以及相應(yīng)的代碼,代碼清單放在了Clogin
52、Dlg的成員函數(shù)OnOK()內(nèi)。</p><p> 圖 4-2 系統(tǒng)登錄的實(shí)現(xiàn)</p><p> void CLoginDlg::OnOK() </p><p><b> {</b></p><p> // TODO: Add extra validation here</p><p>
53、 CString username,password; //定義兩個(gè)字符串變量</p><p> m_strUserName.GetWindowText(username); //講文本框中的值賦給username;</p><p> m_strPassword.GetWindowText(password); //講文本框中的值賦給password
54、;</p><p> ////////////////////////////////////////獲得賬號信息,從xinxi.txt中獲取,確定賬號個(gè)數(shù)</p><p> ifstream fin;</p><p> fin.open("xinxi.txt");</p><p> if(fin.fail())&
55、lt;/p><p><b> {</b></p><p> MB_INFO("打開數(shù)據(jù)文件錯誤!文件已被損壞!");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> s
56、tring xinxigeshu,geshu;</p><p> char lline[100];</p><p> fin.getline(lline,100);</p><p> xinxigeshu=lline;</p><p> int xx=xinxigeshu.find("共有",0);</p&g
57、t;<p> int yy=xinxigeshu.find("個(gè)賬號",0);</p><p> geshu=xinxigeshu.substr(xx+4,yy-1);</p><p> int znum=atoi(geshu.c_str());</p><p> fin.close();</p><p&
58、gt; ///////////////////////////////////////比較賬號和密碼,來確定是否登錄成功</p><p> fin.open("code.txt");</p><p> if(fin.fail())</p><p><b> {</b></p><p> MB
59、_ERROR("沒有注冊的用戶!");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> char line[10][101];</p><p> string strname,strpassword;</p
60、><p> strname=username.GetBuffer(0);</p><p> strpassword=password.GetBuffer(0);</p><p> string str1,str2,stry;</p><p> BOOL flag=false,flagname=false,flagpassword=fals
61、e;</p><p> for(int i=0;i<znum;i++)</p><p><b> {</b></p><p> fin.getline(line[i],100); //從文件讀入人員信息</p><p> stry=line[i];</p><p> int loc
62、1,loc2;</p><p> loc1=stry.find("用戶名:",0);</p><p> loc2=stry.find("密碼:",0);</p><p> str1=stry.substr(loc1+7,loc2-8);</p><p> str2=stry.substr(loc
63、2+5);</p><p> if(!str1.compare(strname))</p><p> flagname=true;</p><p> if(!str2.compare(strpassword))</p><p> flagpassword=true;</p><p> if(flagname=
64、=true&&flagpassword==true)</p><p> flag=true;</p><p><b> }</b></p><p> if(flag==true)</p><p><b> {</b></p><p> MB_INFO
65、("登陸成功!");</p><p> fileinfo info;</p><p> info.setfileinfo(1);</p><p> CDialog::OnOK();</p><p><b> }</b></p><p><b> else&l
66、t;/b></p><p><b> {</b></p><p> if(flagname=false)</p><p><b> {</b></p><p> MB_WARNING("用戶名不存在,請重新輸入!");</p><p> m
67、_strPassword.SetWindowText("");</p><p> m_strUserName.SetWindowText("");</p><p><b> }</b></p><p><b> else</b></p><p><
68、b> {</b></p><p> MB_WARNING("密碼錯誤,請重新輸入!");</p><p> m_strPassword.SetWindowText("");</p><p> //m_strUserName.SetWindowText("");</p>
69、<p><b> }</b></p><p><b> }</b></p><p> fin.close();</p><p><b> }</b></p><p> void CLoginDlg::OnCancel() </p><p
70、><b> {</b></p><p> // TODO: Add extra cleanup here</p><p> MB_QUERY("真的要退出系統(tǒng)嗎?");</p><p> CDialog::OnCancel();</p><p><b> exit(1);&
71、lt;/b></p><p><b> }</b></p><p> BOOL CLoginDlg::OnEraseBkgnd(CDC* pDC) //設(shè)置對話框背景</p><p><b> {</b></p><p> // TODO: Add your message handl
72、er code here and/or call default</p><p> CRect rect;</p><p> CPaintDC dc(this);</p><p> GetClientRect(&rect);</p><p> CDC dcMem;</p><p> dcMem.Cre
73、ateCompatibleDC(&dc);</p><p> CBitmap bmpBKG;</p><p> bmpBKG.LoadBitmap(IDB_BITMAP_DENGLU);//載入位圖,IDB_DLGBITMAP是在ResourceView里邊導(dǎo)入的位圖ID</p><p> BITMAP bmp;</p><p>
74、; bmpBKG.GetBitmap(&bmp);</p><p> CBitmap* pOldBMP = dcMem.SelectObject(&bmpBKG);</p><p> dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY)
75、;</p><p> return TRUE;</p><p><b> }</b></p><p> 4.6 添加.查詢.刪除和修改記錄的實(shí)現(xiàn)</p><p> 這部分設(shè)計(jì)了四個(gè)對話框,見圖4-3,對應(yīng)的對話框類名分別為CEmployeeInfoDlg 、CqueryDlg、CshanchuDlg以及Cxiu
76、gaiDlg1。具體設(shè)計(jì)見圖4-2以及相應(yīng)的代碼,對應(yīng)代碼清單分別放在了CMy0701_33View的成員函數(shù):OnInputData()、OnChaxunData()、OnShanchuData()以及OnXiugaiData()內(nèi)。</p><p> 圖 4-3 添加.刪除和修改的實(shí)現(xiàn)</p><p> void CMy0701_33View::OnInputData()/////
77、///////////////////公司人員信息輸入 </p><p><b> {</b></p><p> access=finfo.getfileinfo();</p><p> if(access==false)</p><p><b> {</b></p><
78、;p> MB_INFO("請您先登錄");</p><p> CLoginDlg ed;</p><p> if(ed.DoModal()==IDOK)</p><p> goto loop1;</p><p><b> }</b></p><p><b&
79、gt; else{</b></p><p> // TODO: Add your command handler code here</p><p> loop1:manager m1;</p><p> technician t1;</p><p> salesmanager sm1;</p><
80、p> salesman s1;</p><p> vector <employee *> vchar;</p><p> vchar.push_back(&m1);</p><p> vchar.push_back(&t1);</p><p> vchar.push_back(&sm1);&
81、lt;/p><p> vchar.push_back(&s1);</p><p> CEmployeeInfoDlg ed;</p><p> if(ed.DoModal()==IDOK)</p><p><b> {</b></p><p> vector<CString&g
82、t; vread;</p><p> vread.push_back(ed.m_manager);</p><p> vread.push_back(ed.m_technician);</p><p> vread.push_back(ed.m_salesmanager);</p><p> vread.push_back(ed.m_
83、tuixy);</p><p><b> int i;</b></p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p> vchar[i]->SetName((char*) (LPCTSTR)vread[i]);//設(shè)置姓名&l
84、t;/p><p> vchar[i]->promote(i);//升級</p><p><b> }</b></p><p> t1.SetworkHours(ed.m_hour); //設(shè)置工作時(shí)間</p><p> sm1.Setsales(ed.m_zsales);//設(shè)置本月的銷售總額</p&
85、gt;<p> s1.Setsales(ed.m_sales);//設(shè)置本月銷售額</p><p> ofstream ofile("employee.txt",ios::out);//創(chuàng)建一個(gè)輸出文件流對象</p><p> for(i=0;i<4;i++)</p><p><b> { </b&
86、gt;</p><p> vchar[i]->pay(); //計(jì)算月薪</p><p> ofile<<vchar[i]->GetName()<<", 編號:"<<vchar[i]->GetindividualEmpNo()</p><p> <<", 級
87、別:"<<vchar[i]->Getgrade()<<"級, 本月工資"<<vchar[i]->GetaccumPay()</p><p><b> <<endl;</b></p><p><b> }</b></p><p>
88、 ofile.close();</p><p> MB_INFO("信息已經(jīng)儲存!");</p><p><b> }</b></p><p> else {MB_INFO("信息沒存儲并已退出!");</p><p><b> }</b></p
89、><p><b> }</b></p><p><b> }</b></p><p> //////////////////////////////////////////////定義判斷類FileException</p><p> class FileException </p>
90、<p><b> {</b></p><p><b> public:</b></p><p> FileException() </p><p> : message( "File is not created!" ) { }</p><p> cons
91、t char *what() const { return message; }</p><p><b> private:</b></p><p> const char *message;</p><p><b> };</b></p><p> ////////////////////
92、//////////////////////////信息查詢,查詢指定人員的信息</p><p> void CMy0701_33View::OnChaxunData() </p><p><b> {</b></p><p> access=finfo.getfileinfo();</p><p> if(a
93、ccess==false)</p><p><b> {</b></p><p> MB_INFO("請您先登錄");</p><p> CLoginDlg ed;</p><p> if(ed.DoModal()==IDOK)</p><p> goto loop3
94、;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><p>
95、; loop3:this->OnInitialUpdate();system("cls");</p><p> ifstream infile("employee.txt",ios::in);//創(chuàng)建一個(gè)輸入文件流對象</p><p><b> try { </b></p><p>
96、 if (!infile)</p><p> throw FileException();</p><p><b> }</b></p><p> catch ( FileException fe ) { // exception handler</p><p> MB_ERROR(fe.what()); //&
97、quot; << fe.what() << '\n';</p><p><b> exit(0);</b></p><p><b> }</b></p><p> CQueryDlg ed; //聲明查詢對話框?qū)ο?lt;/p><p> if(ed.DoM
98、odal()==IDOK)//調(diào)用查詢對話框</p><p><b> {</b></p><p> char line[10][101];</p><p> BOOL flag=FALSE;</p><p> for(int i=0;i<4;i++)</p><p><b&g
99、t; {</b></p><p> CClientDC dc(this);</p><p> infile.getline(line[i],100); //從文件讀入人員信息</p><p> CString c_str,name_str;</p><p> c_str.Format("%s",lin
100、e[i]); //轉(zhuǎn)換為字符串 </p><p> name_str=c_str.Left(c_str.Find(','));//提取姓名</p><p> if(!name_str.Compare(ed.m_strQuery))//與查詢名比較</p><p><b> {</b></p>
101、;<p> flag=TRUE;</p><p> name_str+="已經(jīng)查詢到,要顯示該人員信息嗎?";</p><p> if(MB_QUERY(name_str)==IDYES)</p><p><b> {</b></p><p> dc.TextOut(120,1
102、00+30*i,c_str);</p><p><b> };</b></p><p><b> }</b></p><p><b> } </b></p><p> if(flag==FALSE) MB_ERROR("對不起!沒有這個(gè)人&
103、quot;);</p><p><b> }</b></p><p> infile.close();</p><p><b> }</b></p><p><b> }</b></p><p> ///////////////////////
104、////////////////////////////修改已存在的人員的信息</p><p> void CMy0701_33View::OnXiugaiData() </p><p><b> {</b></p><p> access=finfo.getfileinfo();</p><p> if(ac
105、cess==false)</p><p><b> {</b></p><p> MB_INFO("請您先登錄");</p><p> CLoginDlg ed;</p><p> if(ed.DoModal()==IDOK)</p><p> goto loop4;
106、</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><p>
107、 loop4:CxiugaiDlg1 ed;</p><p> if(ed.DoModal()==IDOK)</p><p><b> {</b></p><p> this->OnInitialUpdate();</p><p> ifstream infile("employee.txt&
108、quot;,ios::in);</p><p><b> try</b></p><p><b> {</b></p><p> if (!infile)</p><p> throw FileException();</p><p><b> }<
109、/b></p><p> catch ( FileException fe )</p><p><b> {</b></p><p> MB_ERROR(fe.what());</p><p><b> exit(0);</b></p><p><b>
110、; }</b></p><p><b> {</b></p><p> char line[4][101];</p><p><b> int j[4];</b></p><p> BOOL flag=FALSE;</p><p> for(int i
111、=0;i<4;i++)</p><p><b> {</b></p><p> infile.getline(line[i],100);</p><p> CString c_str1,name_str;</p><p> c_str1.Format("%s",line[i]);<
112、/p><p> name_str=c_str1.Left(c_str1.Find(','));</p><p> if(!name_str.Compare(ed.m_strxiuname1))</p><p><b> {</b></p><p> flag=TRUE;</p><
113、p><b> j[i]=i;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(flag==FALSE) MB_ERROR("并無此人!");</p><p><b> el
114、se</b></p><p><b> {</b></p><p> CxiugaiDlg ed;</p><p> if(ed.DoModal()==IDOK)</p><p><b> {</b></p><p> infile.close();&l
115、t;/p><p> ofstream ofile("employee.txt",ios::out);</p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p> if(i!=j[0]&&i!=j[1]&&i!=j
116、[2]&&i!=j[3])</p><p><b> {</b></p><p> ofile<<line[i]<<endl;</p><p><b> }</b></p><p><b> else</b></p>
117、<p><b> {</b></p><p> ofile<<ed.m_strxiuname.GetBuffer(12)<<", 編號:"<<ed.m_strxiuno</p><p> <<", 級別:"<<ed.m_strxiuji<<
118、"級, 本月工資"<<ed.m_strxiugong</p><p><b> <<endl;</b></p><p><b> }</b></p><p><b> }</b></p><p> ofile.close();
119、</p><p> MB_INFO("信息已修改");</p><p><b> }</b></p><p><b> else</b></p><p> MB_INFO("取消修改!");</p><p><b>
120、; }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p> MB_INFO("取消修改!");</p><p><
121、;b> }</b></p><p><b> }</b></p><p> //////////////////////////////////////////////////////刪除指定人員信息</p><p> void CMy0701_33View::OnShanchuData() </p>&
122、lt;p><b> {</b></p><p> access=finfo.getfileinfo();</p><p> if(access==false)</p><p><b> {</b></p><p> MB_INFO("請您先登錄");</p
123、><p> CLoginDlg ed;</p><p> if(ed.DoModal()==IDOK)</p><p> goto loop5;</p><p><b> }</b></p><p><b> else{</b></p><p>
124、 // TODO: Add your command handler code here</p><p> loop5:this->OnInitialUpdate();</p><p> ifstream infile("employee.txt",ios::in);//創(chuàng)建一個(gè)輸入文件流對象</p><p><b>
125、 try { </b></p><p> if (!infile)</p><p> throw FileException();</p><p><b> }</b></p><p> catch ( FileException fe ) { // exception handler</p&
126、gt;<p> MB_INFO(fe.what()); //" << fe.what() << '\n';</p><p><b> exit(0);</b></p><p><b> }</b></p><p> CshanchuDlg ed; //
127、聲明刪除對話框?qū)ο?lt;/p><p> if(ed.DoModal()==IDOK)//調(diào)用刪除對話框</p><p><b> {</b></p><p> char line[4][101];</p><p><b> int a[4];</b></p><p>
128、 bool flag=FALSE;</p><p> for(int i=0;i<4;i++)</p><p><b> {</b></p><p> infile.getline(line[i],100); //從文件讀入人員信息</p><p> CString c_str,name_str;</
129、p><p> c_str.Format("%s",line[i]); //轉(zhuǎn)換為字符串 </p><p> name_str=c_str.Left(c_str.Find(','));//提取姓名</p><p> if(!name_str.Compare(ed.m_strshancname))//與查詢名比
130、較</p><p><b> {</b></p><p><b> a[i]=i;</b></p><p> flag=TRUE;</p><p><b> }</b></p><p><b> }</b></p&g
131、t;<p> infile.close();</p><p> if(flag==FALSE) </p><p><b> {</b></p><p> MB_ERROR("并無此人!");</p><p><b> return;</b></p&g
132、t;<p><b> }</b></p><p> ofstream ofile("employee.txt",ios::out);</p><p> for(int j=0;j<4;j++)</p><p><b> {</b></p><p>
133、if(j!=a[1]&&j!=a[2]&&j!=a[3]&&j!=a[0])</p><p><b> {</b></p><p> ofile<<line[j]<<endl;</p><p><b> }</b></p><
134、p><b> }</b></p><p> ofile.close();</p><p> MB_INFO("此人信息已刪除!");</p><p><b> }</b></p><p><b> }</b></p><p
135、><b> }</b></p><p> 4.7(特色)用戶注冊的實(shí)現(xiàn)</p><p> 此部分對用戶注冊設(shè)計(jì)了一個(gè)對話框,見圖4-4,對應(yīng)的對話框類名為Czhuce,具體代碼清單CMy0701_33View的成員函數(shù)OnZhuceinfo()中。</p><p> 圖 4-4 年級成績的實(shí)現(xiàn)</p><p&g
136、t; /////////////////////////特色函數(shù),注冊用戶</p><p> void CMy0701_33View::OnZhuceinfo() </p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><
137、;p> system("cls");</p><p> loop9:CZhuce ed;</p><p> bool boolzhuce=false; ////////////////////////用來判斷注冊名是否已被注冊</p><p> ifstream fin;</p><p> ofstrea
138、m fout;</p><p> if(ed.DoModal()==IDOK)</p><p><b> {</b></p><p> ////////////////////////////////////////////提取賬號信息</p><p> fin.open("xinxi.txt"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì) 高校人事管理系統(tǒng)
- c++課程設(shè)計(jì)人事管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告--人事管理系統(tǒng)
- 高校人事管理系統(tǒng)課程設(shè)計(jì)c++版
- [vc++畢設(shè)]c++課程設(shè)計(jì)報(bào)告(人事管理系統(tǒng))
- 人事考勤管理系統(tǒng)c++課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--人事管理系統(tǒng)
- c語言課程設(shè)計(jì)——人事管理系統(tǒng)
- c語言課程設(shè)計(jì)-人事管理系統(tǒng)
- 課程設(shè)計(jì)----公司人事管理系統(tǒng)
- 人事管理系統(tǒng)c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)人事管理系統(tǒng)
- c語言課程設(shè)計(jì)人事管理系統(tǒng)
- c語言課程設(shè)計(jì)人事管理系統(tǒng)
- 課程設(shè)計(jì)--- 公司人事管理系統(tǒng)的設(shè)計(jì)
- 人事管理系統(tǒng)課程設(shè)計(jì)
- 人事管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)---公司人員管理系統(tǒng)
- c++課程設(shè)計(jì)--人員管理系統(tǒng)公司
- c++課程設(shè)計(jì)--公司人員管理系統(tǒng)
評論
0/150
提交評論