[精品論文]C++課程設(shè)計(jì)論文 公司人事管理系統(tǒng)_第1頁
[精品論文]C++課程設(shè)計(jì)論文 公司人事管理系統(tǒng)_第2頁
[精品論文]C++課程設(shè)計(jì)論文 公司人事管理系統(tǒng)_第3頁
[精品論文]C++課程設(shè)計(jì)論文 公司人事管理系統(tǒng)_第4頁
[精品論文]C++課程設(shè)計(jì)論文 公司人事管理系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

畢業(yè)設(shè)計(jì)課程定做 Q*Q=1714879127 畢業(yè)設(shè)計(jì)課程定做 Q*Q=1714879127 VC+ 課程設(shè)計(jì)論文 公司人事管理系統(tǒng) 學(xué)生姓名: * 學(xué) 號: * 年級專業(yè): * * 班 級: *班 指導(dǎo)老師: * 學(xué) 院: *學(xué)院 地點(diǎn)* 提交日期:*年*月 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文2 目 錄 1 前言3 2 需求分析3 3 概要設(shè)計(jì)4 3.1 系統(tǒng)功能模塊設(shè)計(jì).4 3.2 流程圖 5 3.3程序運(yùn)行平臺.5 4 詳細(xì)設(shè)計(jì)6 4.1.數(shù)據(jù)的存儲 6 4.2模塊分析.6 4.3 整體界面的實(shí)現(xiàn).6 4.4 系統(tǒng)登錄的實(shí)現(xiàn) 8 4.5 添加.查詢.刪除和修改記錄的實(shí)現(xiàn) .13 5 測試分析.19 6 心得體會.20 參考文獻(xiàn).20 致 謝.20 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文3 公司人員信息管理系統(tǒng) (湖南科技大學(xué) 中國 湘潭 0907020405) 摘 要 本次課程設(shè)計(jì)任務(wù)是通過編寫一個(gè)公司人員信息管理系統(tǒng),學(xué)習(xí)用 Visual C+ 6.0(MFC)開發(fā)簡單的管理系統(tǒng)。采用 Visual C+ 6.0 軟件為主要開發(fā)工具。 本系統(tǒng)主要完成對公司員工情況和公司信息的管理,包括人員信息的輸入、輸出、 添加、刪除等。系統(tǒng)還可以完成對各類信息的瀏覽、查詢、添加、刪除、修改、等功 能。 由于我們還沒有學(xué)習(xí)數(shù)據(jù)庫,所以在有關(guān)大量人員信息存儲時(shí),次系統(tǒng)顯得心有 余而力不足、當(dāng)然我也能讓他能夠儲存較多的信息,可是最后那些信息還是有限的。 系統(tǒng)的核心是引用 I/O 流和文本處理來存儲和修改公司人員的信息聯(lián)系,每一個(gè) 動(dòng)作都可能影響到其它的功能,還有數(shù)據(jù)的改變,當(dāng)完成對數(shù)據(jù)的操作時(shí)系統(tǒng)會自動(dòng) 地完成數(shù)據(jù)庫的修改。 關(guān)鍵字:VC+6.0;公司人員信息管理系統(tǒng);模塊化設(shè)計(jì);i/O 流。 1 前言 使用計(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 流文本操作語言,能比較方便 地實(shí)現(xiàn)對人員信息的操作與管理,其中有較好的人機(jī)交換功能。 系統(tǒng)登陸功能是系統(tǒng)的核心之一,在系統(tǒng)中有用戶注冊,用戶注銷,用戶 退出,其目的都是為了方便用戶使用。系統(tǒng)有完整的用戶對比功能,檢查是否 用戶名已被注冊。 (這些功能中的某些功能可能在 1.0 版中不會實(shí)現(xiàn),不過本公 司會在以后的升級中慢慢實(shí)現(xiàn),如你們在用的過程中發(fā)現(xiàn)了有不太好的地方請 你發(fā)郵件給我。*) 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文4 2 需求分析 Visual C+6.0 的 MFC 提供了大量的類庫函數(shù)強(qiáng)大支持。開發(fā)一個(gè)人員信 息管理系統(tǒng),可以實(shí)現(xiàn)人員信息的管理。并提供新信息輸入,現(xiàn)有公司人員信 息查詢功能,對記錄的刪除修改等工作。 公司人員管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù) 信息的建立和保存以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù) 據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完 備,易使用等特點(diǎn)。 3 概要設(shè)計(jì) 3.13.1 系統(tǒng)功能模塊設(shè)計(jì)系統(tǒng)功能模塊設(shè)計(jì) 公司人員 管理系統(tǒng) 信息輸入 信息輸出 信息刪除信息查詢 密碼確認(rèn) 圖 3-1 系統(tǒng)功能模塊流程圖 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文5 1、信息輸入: 輸入公司職員的基本信息(本版本目前只可以輸入 1000 個(gè)人的信息) 。 2、信息輸出: 輸出公司所有職員的信息。 3、信息查詢: 查詢制定人員的信息。 4、信息刪除: 刪除指定人員的信息。 3.23.2 流程圖流程圖 圖 3-2 功能流程圖 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文6 3.33.3 程序運(yùn)行平臺程序運(yùn)行平臺 開發(fā)工具: Visual C+ 6.0 運(yùn)行環(huán)境:Windows XP、Windows7 及以上平臺(當(dāng)然 Windows xp 一下的平 臺也不一定不能用,只是我們現(xiàn)在資源有限沒有測試) 4 詳細(xì)設(shè)計(jì) .數(shù)據(jù)的存儲數(shù)據(jù)的存儲 根據(jù)上面所介紹的本系統(tǒng)的各個(gè)模塊及其需要實(shí)現(xiàn)的功能,由于還沒有學(xué)習(xí) 數(shù)據(jù)庫,所以我們只能應(yīng)用 i/o 流文本操作來存儲信息: 1密碼表 用于保存用戶賬戶的基本信息,系統(tǒng)通過該表對賬戶的用戶名和密碼的基本 信息進(jìn)行查詢,并比較用戶名和密碼是否正確。(把密碼和用戶名各用一行儲存, 在取出驗(yàn)證密碼和用戶名是否匹配時(shí)就能更好的操作) 2公司人員信息表 用于保存公司職員的基本信息。 4.24.2模塊分析模塊分析 1. 顯示模塊 顯示模塊將輸出所有職員的主要資料 。 2. 查找模塊 首先由用戶輸入要查找的職員姓名,然后系統(tǒng)用查找函數(shù)查找,然后系統(tǒng)就調(diào)用 輸出函數(shù),輸出所查找的職員資料。 3. 刪除模塊 首先由用戶輸入要?jiǎng)h除的單個(gè)職員姓名,然后調(diào)用刪除函數(shù),刪除該名職員的資料。 4. 密碼登陸部分 用來實(shí)現(xiàn)用戶的登陸,一確保系統(tǒng)的安全。 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文7 4.34.3 整體界面的實(shí)現(xiàn)整體界面的實(shí)現(xiàn) 圖 4-1 系統(tǒng)主界面 程序的具體實(shí)現(xiàn)部分如程序清單如下所示:程序的具體實(shí)現(xiàn)部分如程序清單如下所示: 4.44.4 系統(tǒng)登錄的實(shí)現(xiàn)系統(tǒng)登錄的實(shí)現(xiàn) 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文8 CMy0907020405View:CMy0907020405View()/用戶登陸 CBitmap bmp; /圖片處理 / bmp.LoadBitmap(IDB_BITMAP5); / m_brushBackground.CreatePatternBrush( / TODO: add construction code here mima ed; CString aaa; if(ed.DoModal()=IDCANCEL)/直接取消登錄退出系統(tǒng) aaa=“您確定要退出此系統(tǒng)嗎?“; if(MB_QUERY(aaa)=IDYES) exit(0); int i=0; while(ed.m_mima!=“0907020405“)/驗(yàn)證密碼,輸入密碼錯(cuò)誤超過三次就退出系統(tǒng) i+; MB_ERROR(“密碼錯(cuò)誤! 請重新輸入!“); MB_INFO(“密碼提示:0907020405“); if(ed.DoModal()=IDCANCEL|i=2) if(i=2) MB_ERROR(“對不起,您的輸入的錯(cuò)誤次數(shù)超過 3 次!系統(tǒng)將自動(dòng)退出!“); exit(0); MB_INFO(“歡迎進(jìn)入公司人員管理系統(tǒng)!“); (我們把實(shí)現(xiàn)登陸代碼寫在構(gòu)造函數(shù)里面,我們是要在此之前完成用于登陸的驗(yàn)證工作, 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文9 ) 圖 4-2 系統(tǒng)登錄的實(shí)現(xiàn) 4.54.5 輸入添加輸入添加. .查詢查詢. .刪除和修改記錄的實(shí)現(xiàn)刪除和修改記錄的實(shí)現(xiàn) 信息輸入對話框 void CMy0907020405View:Onxinxishuru()/信息輸入 manager m1;聲明類對象 technician t1; salesmanager sm1; salesman s1; vector vchar;聲明容器指針 vchar.push_back( vchar.push_back( 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文10 vchar.push_back( vchar.push_back( employee ed; if(ed.DoModal()=IDOK) vector vread; vread.push_back(ed.m_JLname); vread.push_back(ed.m_JSYname); vread.push_back(ed.m_XSJLname); vread.push_back(ed.m_TXYname); int i; for(i=0;iSetName(char*) (LPCTSTR)vreadi);/設(shè)置姓名 vchari-promote(i);/升級 t1.SetworkHours(ed.m_GZSSnum); /設(shè)置工作時(shí)間 sm1.Setsales(ed.m_XSEnum);/設(shè)置本月的銷售總額 s1.Setsales(ed.m_TXYnum);/設(shè)置本月銷售額 ofstream ofile(“employee.txt“,ios:app);/創(chuàng)建一個(gè)輸出文件流對象 for(i=0;ipay(); /計(jì)算月薪 ofileGetName()“, 編號:“GetindividualEmpNo() “, 級別:“Getgrade()“級, 本月工資“GetaccumPay() endl; 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文11 ofile.close(); MB_INFO(“信息存儲完畢!“); else MB_ERROR(“信息沒存儲并已退出!“); class FileException 定義拋擲錯(cuò)誤類 public: FileException() : message( “File is not created !“ ) const char *what() const return message; private: const char *message; ; 人員信息輸出后的效果圖 void CMy0907020405View:Onxinxishuchu() / TODO: Add your command handler code here ifstream infile(“employee.txt“,ios:in); /創(chuàng)建一個(gè)輸入文件流對象 try 判斷文件是否打開如果沒有就返回主系統(tǒng) if (!infile) 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文12 throw FileException(); catch ( FileException fe ) / exception handler MB_INFO(fe.what(); /“ fe.what() n; exit(0); CClientDC dc(this); char line101; for(int i=0;iOnInitialUpdate(); ifstream infile(“employee.txt“,ios:in); /創(chuàng)建一個(gè)輸入文件流對象 try if (!infile) throw FileException(); catch ( FileException fe ) / exception handler MB_INFO(fe.what(); /“ fe.what() n; exit(0); 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文14 xinxichaxun ed; /申明查詢對話框 if(ed.DoModal()=IDOK)/調(diào)用查詢對話框 char line10000101; BOOL flag=FALSE; CClientDC dc(this); for(int i=0;iOnInitialUpdate(); ifstream infile(“employee.txt“,ios:in); /創(chuàng)建一個(gè)輸入文件流對象 try if (!infile) throw FileException(); catch ( FileException fe ) / exception handler MB_INFO(fe.what(); /“ fe.what() n; exit(0); xinxishanchu ed; int n=0;/聲明查詢對話框?qū)ο?if(ed.DoModal()=IDOK)/調(diào)用查詢對話框 char line100101; int a100; 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文16 bool flag=FALSE; for(int i=0;i100;i+) infile.getline(linei,100); /從文件讀入人員信息 CString c_str,name_str; c_str.Format(“%s“,linei); /轉(zhuǎn)換為字符串 name_str=c_str.Left(c_str.Find(,);/提取姓名 if(!name_str.Compare(ed.m_xxshanchu)/與查詢名比較 ai=i; flag=TRUE; n+; if(flag=FALSE) MB_ERROR(“并無此人!“); return; ofstream ofile(“employee.txt“,ios:out); CString aa,ss=“要?jiǎng)h除的人員已找到,是否刪除?“; for(int j=0;j4;j+) if(j!=a1 else if(MB_QUERY(ss)=IDNO) ofilelinejendl; 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文17 ofile.close(); MB_INFO(“信息已刪除!“); 5 測試分析 經(jīng)過測試,該系統(tǒng)能夠較好地完成需求分析中的任務(wù),如數(shù)據(jù)的添加、刪 除、查詢,其中,修改可通過先進(jìn)行查詢后再修改,還有特色模塊用戶注冊功 能未實(shí)現(xiàn)登陸就在寫程序的時(shí)候就把密碼定下來了,在以后的努力下我們會完 成用戶注冊,與用于用自己注冊的用戶名和密碼登陸。有些方面仍然存在很多 問題,如對數(shù)據(jù)的輸入方面沒有太多的限制,這可能導(dǎo)致用戶輸出時(shí)只能找到 前一 1000 個(gè)人的信息。對系統(tǒng)查詢設(shè)置也不太靈活,系統(tǒng)的可擴(kuò)展性還是可以 的。功能的實(shí)現(xiàn)也不太完善。代碼的處理也不是很精簡,有待進(jìn)一步改善。 并且沒有大型的支持大容量數(shù)據(jù)的后臺,只有利用文本 i/o 處理來實(shí)現(xiàn)所 以數(shù)據(jù)的保密性和安全性不高,希望以后學(xué)習(xí)數(shù)據(jù)庫后開發(fā)出強(qiáng)大的后臺實(shí)現(xiàn) 公司人員信息的管理。 6 心得體會 經(jīng)過幾個(gè)星期的設(shè)計(jì)和開發(fā),系統(tǒng)基本開發(fā)完畢。在本次課程設(shè)計(jì)中困難 遇到不少,比如文本文件的操作,i/o 流,string,Cstring 類,容器類相關(guān)的 成員函數(shù),全局參數(shù)的傳遞等。都是在百度上查找到的,并且請教了上屆的學(xué) 長學(xué)姐,解決了大部分問題。由于設(shè)計(jì)時(shí)間較短, (正好又要考四級了)所以該 系統(tǒng)還有許多不盡如人意的地方,比如用戶界面不夠美觀,功能不夠完善等多 方面問題。 在這次系統(tǒng)開發(fā)的過程中,我深深體會到了做一個(gè)系統(tǒng),首先進(jìn)行需求分 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文18 析的重要性,了解了一個(gè)系統(tǒng)的制作流程,當(dāng)我們自己了解了制作流程的時(shí)候 我們就能節(jié)省更多的時(shí)間。從功能分析到功能模塊分析、與其他系統(tǒng)的關(guān)系, 再到后臺數(shù)據(jù)存儲設(shè)計(jì)及各功能模塊的創(chuàng)建都需要從整體上考慮設(shè)計(jì)。這些都 有待以后進(jìn)一步改進(jìn)。通過實(shí)踐對于我以后的學(xué)習(xí)是一筆不小的財(cái)富!特別是 自己編的函數(shù)用戶注冊模塊。希望在以后數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)中能開發(fā)出更強(qiáng)大的 系統(tǒng)。 本次實(shí)驗(yàn)設(shè)計(jì)讓我體會最深刻的是我沒每做完一步我們就要去調(diào)試,不要 等到最后一起調(diào)試,那樣的話有錯(cuò)誤我們改起來就更加困難了。同時(shí)我也能體 會到以前老師說的話了我們做程序設(shè)計(jì)的人在做事方面我們會有一定的安排, 什么事情我們在什么時(shí)候完成。還有一點(diǎn)是在自己不會的時(shí)候我們要學(xué)會用網(wǎng) 上和圖書館里面的學(xué)習(xí)資料。其中最重要的還是要去圖書館找資料,那里面幾 乎有我們現(xiàn)階段所要用的所有資料。 參考文獻(xiàn) 1.楊永國. Visual C+ 教程從基礎(chǔ)到實(shí)際. 電子工業(yè)初版社 致 謝 一個(gè)學(xué)期的 VC+課程學(xué)習(xí),讓我對 VC 有了一定程度上的認(rèn)識。了解了 VC 的發(fā)展歷史,熟悉了 VC 語言的基礎(chǔ)知識,明白了 VC 的基本語法規(guī)則,可以運(yùn) 用 VC 來完成簡單程序的編寫和調(diào)試,實(shí)現(xiàn)預(yù)定的功能。 這次除在李老師的巨大幫助之外,師兄和師姐以及班上同學(xué)也給予了很大的 幫助,我們在一起探討,共同解決遇到的問題,這讓我在開發(fā)中少走了許多彎 路。在此我由衷地感謝他們! 附錄附錄: 相關(guān)源代碼 /employee.h/employee 類的聲明部分 class employeem protected: char name20;/姓名 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文19 int individualEmpNo; /個(gè)人編號 int grade; /級別 float accumPay;/月薪總額 static int employeeNo;/本公司職員編號目前最大值 public: employeem();/構(gòu)造函數(shù) employeem(); /析構(gòu)函數(shù) virtual void pay()=0;/計(jì)算月薪函數(shù)(純虛函數(shù)) virtual void promote(int increment=0); /升級函數(shù)(虛函數(shù)) void SetName(char *); /設(shè)置姓名函數(shù) char * GetName(); /提取姓名函數(shù) int GetindividualEmpNo(); /提取編號函數(shù) int Getgrade(); /提取級別函數(shù) float GetaccumPay(); /提取月薪函數(shù) ; class technician:public employeem/兼職技術(shù)人員類 private: float hourlyRate; /每小時(shí)酬金 int workHours;/當(dāng)月工作時(shí)數(shù) public: technician(); /構(gòu)造函數(shù) void SetworkHours(int wh); /設(shè)置工作時(shí)數(shù)函數(shù) void pay();/計(jì)算月薪函數(shù) void promote(int);/升級函數(shù) ; class salesman:virtual public employeem/兼職推銷員類 protected: float CommRate;/按銷售額提取酬金的百分比 float sales;/當(dāng)月銷售額 public: salesman();/構(gòu)造函數(shù) void Setsales(float sl); /設(shè)置銷售額函數(shù) void pay();/計(jì)算月薪函數(shù) void promote(int);/升級函數(shù) ; class manager:virtual public employeem /經(jīng)理類 protected: float monthlyPay; /固定月薪數(shù) 信息與計(jì)算科學(xué)學(xué)院 湖南科技大學(xué)課程設(shè)計(jì)論文20 public: manager(); /構(gòu)造函數(shù) void pay();/計(jì)算月薪函數(shù) void promote(int);/升級函數(shù) ; class salesmanager:public manager,public salesman /銷售經(jīng)理類 public: salesmanager();/構(gòu)造函數(shù) void pay();/計(jì)算月薪函數(shù) void promote(int);/升級函數(shù) ; /employee.cpp/employee 類的實(shí)現(xiàn)部分 #include “stdafx.h“ #include #include #include“employeet.h“ using namespace std; int employeem:employeeNo=1000; /員工編號基數(shù)為 1000 employeem:employeem() individualEmpNo=employeeNo+; /新輸入的員工編號為目前最大編號加 1 grade=1;/級別初值為 1 accumPay=0.0;/月薪總額初值為 0 employeem:employeem() void employeem:promote(int increment) grade+=increment; /升級,提升的級數(shù)由 increment 指定 void employeem:SetName(char* names) strcpy(name,names); /設(shè)置姓名 char* employeem:GetName() return name; /提取成員姓名 int employeem:GetindividualEmpNo() return individualEmpNo; /提取成員編號 int employeem:Getgrade() 信息與計(jì)算科學(xué)學(xué)院 湖南

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論