课程方案设计书报告完整版.docx
《课程方案设计书报告完整版.docx》由会员分享,可在线阅读,更多相关《课程方案设计书报告完整版.docx(31页珍藏版)》请在冰豆网上搜索。
课程方案设计书报告完整版
西北民族大学员工工资管理系统
学院 电气工程学院
年级通信工程(3)班
学生姓名江昕倍
学号P0*******4
指导教师:
袁秀娟
同组成员黄元康买志刚
搞要本系统主要解决西北民族大学员工工资情况,建立一个透明、相容、一致、易查的工资管理信息系统。
本系统开发平台为WindowsXP,程序设计设计语言采用VisualC++,数据库采用McrosoftAccess,程序运行平台为Windows98/2000/XP。
本系统主要实现对职工工资的查询、添加、修改、删除功能,通过对各个模块的设计来实现不同的功能。
程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。
矚慫润厲钐瘗睞枥庑赖。
设计西本民族大学员工工资管理系统的目的
员工工资管理系统是基于先进的软件和高速、大容量的硬件基础上的新的工资管理模式,通过集中式的信息库、自动处理信息、员工自助服务、外协以及服务共享,达到降低成本、提高效率、改进员工服务模式的目的。
本课题将达到以下几个目的:
聞創沟燴鐺險爱氇谴净。
(1)提供更好的服务
员工工资管理系统可以迅速、有效地收集各种信息,加强内部的信息沟通。
各种用户可以直接从系统中获得自己所需的各种信息,并根据相关的信息做出决策和相应的行动方案。
残骛楼諍锩瀨濟溆塹籟。
(2)降低成本
员工工资管理系统通过减少员工工资管理工作的操作成本、降低员工流动率以及减少通信费用等达到降低学校运作成本的目的。
酽锕极額閉镇桧猪訣锥。
(3)革新工资管理理念
员工工资管理系统的最终目的是达到革新企业的管理理念,而不仅是改进管理方式,优化员工工资管理。
先进技术应用于员工工资管理不仅是为了将现有的员工工资工作做得更好,更重要的是,做些对于企业来讲更有效率的事情,成为管理层的决策支持者,为决策提供信息和解决方案[1]。
彈贸摄尔霁毙攬砖卤庑。
框图设计
流程图设计
謀荞抟箧飆鐸怼类蒋薔。
本系统关键技术简介
VC++介绍
VC++语言的主要特点表现在两个方面,一是全面兼容C语言,二是支持面向对象的程序设计方法[1]。
(1)VC++是一个更好的C,它保持了C语言的优点,大多数的C程序代码略作修改或不作修改就可在VC++的集成环境下调试和运行。
这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。
厦礴恳蹒骈時盡继價骚。
(2)VC++是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。
这对于设计、编制和调试一些大型的软件尤为重要。
茕桢广鳓鯡选块网羈泪。
(3)VC++集成环境不仅支持C++程序的编译和调试,而且也支持C程序的编译和调试。
(4)VC++语句非常简练,对语法限制比较宽松,因此VC++语法非常灵活。
其优点是给用户编程带来书写上的方便。
其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误不容易发现,给用户编程增加了难度。
鹅娅尽損鹌惨歷茏鴛賴。
ODBC介绍
(1)开放数据库互联
ODBC(OpenDatabaseConnectivity),即开放数据库互联。
ODBC基于SQL(StructuredQueryLanguage),并把它作为访问数据库的标准。
这个接口提供了最大限度的相互可操作性:
一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。
一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。
ODBC可以为不同的数据库提供相应的驱动程序。
对于ASP程而言,ODBC数据源是ASP程序的ADO组件和数据库之间的接口。
籟丛妈羥为贍偾蛏练淨。
(2)配置ODBC数据源
图3.1ODBC数据管理器
用户DSN:
ODBC用户数据源存贮了如何与指定数据库提供者连接的信息。
只对当前用户可户可见,而且只能用于当前机器上。
这里的当前机器是只这个配置只对当前的机器有效,而不是说只能只配置本机上的数据库。
它可以配置局域网中另一台机器上的数据库的。
預頌圣鉉儐歲龈讶骅籴。
系统DSN:
ODBC系统数据源存贮了如何指定数据库提供者连接的信息。
系统数据源对当前机器上的所有用户都是可见的,包括NT服务。
也就是说在这里配置的数据源,只要是这台机器的用户都可以访问。
文件DSN:
ODBC文件数据源允许用户连接数据提供者。
文件DSN可以由安装了相同驱动程序的用户共享。
这是界于用户DSN和系统DSN之间的一种共享情况。
驱动程序:
这页列出了本机上所有安装的数据库驱动程序。
里面列举了每个驱动程序的名称,版本,提供商公司,驱动程序文件名,以及安装日期。
跟踪:
ODBC跟踪允许创建调用ODBC的日志,提供给技术人员查看。
里面可设定日志的路径和文件名。
技术人员通过这里面的信息可以看到本机上所有的数据库访问的时间,用户,以及出错信息等情况。
也可以通过这个辅助调试应用程序,可以启动VisualStudio的分析器,来进行ODBC的跟踪。
渗釤呛俨匀谔鱉调硯錦。
连接池:
连接池允许应用程序重用原来打开的的连接句柄,这样可以节省到服务器的往返过程。
关于:
最后这一页列出了所有的ODBC的核心文件。
铙誅卧泻噦圣骋贶頂廡。
员工工资管理系统需求分析
1 职工工资管理个功能模块分析
修改用于改员工的信息,包括职员编号、姓名、职称、现从事职业、工作岗位等。
删除主要功能是删除当前查看的内容。
添加主要用来向数据库中添加纪录使新的纪录纪录在里面。
工资统计结果用来计算和显示当前浏览的员工的工资统计情况。
2 数据库分析
根据以上的需求分析,该课程需要一张表,用来存放相应的数据信息,其中工资数据表是关键表,用于存放基础数据信息。
它涉及职员信息和工资情况的表;擁締凤袜备訊顎轮烂蔷。
表1 工资数据表
职工工资管理系统的实现与测试
1. 系统功能的实现
(1)增加功能
单击“增加“按钮,进入增加记录功能窗体,如图2所示。
在上边的编辑框中,可以很清楚看到整个表中的记录和主视图一致,在编辑框中输入完成了记录后按确定按钮,这样刚才输入的内容就同过m_pSet这个指针写如了数据库;按取消则推出刚才的操作。
贓熱俣阃歲匱阊邺镓騷。
图2
(2)删除功能
完成机构“增加“功能后,进入主界面,按下删除按钮,则删除当前显示的记录。
这个窗体相对简单,它实际上是管理各个记录的删除的,以便能即时更新旧的记录,删除旧的没用的记录。
坛摶乡囂忏蒌鍥铃氈淚。
(3)修改功能
对于有些写错了的记录,我们往往需要在事后才能进行修改,这个功能就为我们提供了很好的操作界面。
它先把当前记录的信息显示在另外一个窗口里如图5.4,这样能避免对记录的误操作。
蜡變黲癟報伥铉锚鈰赘。
课程步骤
创建数据库及其数据表的步骤如上:
(1)启动MicrosoftOffice2003中的MicrosoftAccess应用程序,出现图3所示界面,通过该界面可以创建一个新的数据库或打开一个已经存在的数据库。
買鲷鴯譖昙膚遙闫撷凄。
图1 新建数据库选择
(2)选择创建新数据库,即选择“空Access数据库”选项。
(3)单击“确定”按钮之后出现保存对话框,确定保存数据库的文件位置(D:
\VC++课程设计\gz\)并给定数据库名称;工资。
然后出现图4所示界面。
綾镝鯛駕櫬鹕踪韦辚糴。
图2 数据库中的数据表设计界面
在数据库设计界面中,用户可以打开已经存在的数据表,也可以创建新的数据表。
(4)单击“设计”菜单,即出现一个数据表设计器,用户可以在其中设计一个新的数据表结构,如图5所示。
图3 数据表设计器
在MicrosoftAccess2003数据库设计器中,用户可以定义数据表的字段名称、字段类型、字段大小等数据表结构的内容。
数据表结构一经确定,用户可以打开该数据表,在数据表中输入一些基本数据,以在后面的系统设计中体现设计的效果。
驅踬髏彦浃绥譎饴憂锦。
最后,系统自动将创建的数据表保存在“D:
\VC++课程设计\gz\工资”中,将创建的数据表命名为“职工工资数据表”。
猫虿驢绘燈鮒诛髅貺庑。
四创建工资管理系统基本框架
在前面我们已经创建了“工资管理数据库”、“职工工资数据表”。
它可为应用程序提供一个数据源。
应用程序就是对该数据源的记录进行访问、增加、删除以及数据管理的一切操作。
有了这一切的工作,用户就可以着手进行应用系统的构建了。
锹籁饗迳琐筆襖鸥娅薔。
与前面的案例一样,在VC++应用系统创建中,需要通过向导先创建一个应用程序框架,然后再加入数据控件,与数据源进行绑定,并进行程序的修改与加工制作。
创建“工资管理系统”应用程序框架的步骤如下:
構氽頑黉碩饨荠龈话骛。
(1)结束数据库的创建并启动VC++,出现VC++主控界面。
(2)在VC++主控界面中单击“文件|新建...”菜单项,出现新建工程类型选择对话框,在工程类型列表中选择MFCAppWizard(EXE)工程类型。
輒峄陽檉簖疖網儂號泶。
(3)输入工程名称为“Ex_Gz”,并选择Win32平台类型。
(4)单击“确定”按钮,进入文档类型设置。
(5)选择单文档类型,即创建一个单文档界面的应用程序,设置资源使用语言为中文,选择文档/查看体系结构支持。
尧侧閆繭絳闕绚勵蜆贅。
(6)单击“下一步”按钮,进入框架设置的第2步,出现图6所示对话框。
在该对话框中,需要用户对数据库的类型作一些相关的选择。
识饒鎂錕缢灩筧嚌俨淒。
图6程序框架设置的第2步
(7)选择“查看数据库使用文件支持”;这时候DataSource按钮处于可用状态(或激活状态);在这一种选择下,VC+将为应用系统引入数据环境,即数据源,该数据源就是我们在前面创建的“工资”,而不使用其他类型数据的文件支持。
但数据源在系统制作中的引入需要用一定的驱动程序为之进行。
凍鈹鋨劳臘锴痫婦胫籴。
(8)单击“DataSource”按钮,出现以下对话框。
恥諤銪灭萦欢煬鞏鹜錦。
程序所需的代码
#include"stdafx.h"
#include"Ex_Gz.h"
#include"MainFrm.h"
#include"Ex_GzSet.h"
#include"Ex_GzDoc.h"
#include"Ex_GzView.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////鯊腎鑰诎褳鉀沩懼統庫。
//CEx_GzApp
BEGIN_MESSAGE_MAP(CEx_GzApp,CWinApp)
//{{AFX_MSG_MAP(CEx_GzApp)
ON_COMMAND(ID_APP_ABOUT,OnAppAbout)
//NOTE-theClassWizardwilladdandremovemappingmacroshere.硕癘鄴颃诌攆檸攜驤蔹。
//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!
阌擻輳嬪諫迁择楨秘騖。
//}}AFX_MSG_MAP
//Standardfilebaseddocumentcommands
ON_COMMAND(ID_FILE_NEW,CWinApp:
:
OnFileNew)
ON_COMMAND(ID_FILE_OPEN,CWinApp:
:
OnFileOpen)
//Standardprintsetupcommand
ON_COMMAND(ID_FILE_PRINT_SETUP,CWinApp:
:
OnFilePrintSetup)氬嚕躑竄贸恳彈瀘颔澩。
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////釷鹆資贏車贖孙滅獅赘。
//CEx_GzAppconstruction
CEx_GzApp:
:
CEx_GzApp()
{
//TODO:
addconstructioncodehere,
//PlaceallsignificantinitializationinInitInstance怂阐譜鯪迳導嘯畫長凉。
}
/////////////////////////////////////////////////////////////////////////////谚辞調担鈧谄动禪泻類。
//TheoneandonlyCEx_GzAppobject
CEx_GzApptheApp;
/////////////////////////////////////////////////////////////////////////////嘰觐詿缧铴嗫偽純铪锩。
//CEx_GzAppinitialization
BOOLCEx_GzApp:
:
InitInstance()
{
AfxEnableControlContainer();
//Standardinitialization
//Ifyouarenotusingthesefeaturesandwishtoreducethesize熒绐譏钲鏌觶鷹緇機库。
//ofyourfinalexecutable,youshouldremovefromthefollowing鶼渍螻偉阅劍鲰腎邏蘞。
//thespecificinitializationroutinesyoudonotneed.纣忧蔣氳頑莶驅藥悯骛。
#ifdef_AFXDLL
Enable3dControls();//CallthiswhenusingMFCinasharedDLL颖刍莖蛺饽亿顿裊赔泷。
#else
Enable3dControlsStatic();//CallthiswhenlinkingtoMFCstatically濫驂膽閉驟羥闈詔寢賻。
#endif
//Changetheregistrykeyunderwhichoursettingsarestored.銚銻縵哜鳗鸿锓謎諏涼。
//TODO:
Youshouldmodifythisstringtobesomethingappropriate挤貼綬电麥结鈺贖哓类。
//suchasthenameofyourcompanyororganization.赔荊紳谘侖驟辽輩袜錈。
SetRegistryKey(_T("LocalAppWizard-GeneratedApplications"));塤礙籟馐决穩賽釙冊庫。
LoadStdProfileSettings();//LoadstandardINIfileoptions(includingMRU)裊樣祕廬廂颤谚鍘羋蔺。
//Registertheapplication'sdocumenttemplates.Documenttemplates仓嫗盤紲嘱珑詁鍬齊驁。
//serveastheconnectionbetweendocuments,framewindowsandviews.绽萬璉轆娛閬蛏鬮绾瀧。
CSingleDocTemplate*pDocTemplate;
pDocTemplate=newCSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CEx_GzDoc),
RUNTIME_CLASS(CMainFrame),//mainSDIframewindow骁顾燁鶚巯瀆蕪領鲡赙。
RUNTIME_CLASS(CEx_GzView));
AddDocTemplate(pDocTemplate);
//Parsecommandlineforstandardshellcommands,DDE,fileopen瑣钋濺暧惲锟缟馭篩凉。
CCommandLineInfocmdInfo;
ParseCommandLine(cmdInfo);
//Dispatchcommandsspecifiedonthecommandline
if(!
ProcessShellCommand(cmdInfo))
returnFALSE;
//Theoneandonlywindowhasbeeninitialized,soshowandupdateit.鎦诗涇艳损楼紲鯗餳類。
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
returnTRUE;
}
/////////////////////////////////////////////////////////////////////////////栉缏歐锄棗鈕种鵑瑶锬。
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides辔烨棟剛殓攬瑤丽阄应。
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport峴扬斕滾澗辐滠兴渙藺。
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//Appcommandtorunthedialog
voidCEx_GzApp:
:
OnAppAbout()
{
CAboutDlgaboutDlg;
aboutDlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////詩叁撻訥烬忧毀厉鋨骜。
//CEx_GzAppmessagehandlers
#if!
defined(AFX_EX_GZ_H__77AE4ED5_2CA0_4BCF_94BB_99622D69EA7F__INCLUDED_)则鯤愜韋瘓賈晖园栋泷。
#defineAFX_EX_GZ_H__77AE4ED5_2CA0_4BCF_94BB_99622D69EA7F__INCLUDED_胀鏝彈奥秘孫戶孪钇賻。
#if_MSC_VER>1000
#pragmaonce
#endif//_MSC_VER>1000
#ifndef__AFXWIN_H__
#errorinclude'stdafx.h'beforeincludingthisfileforPCH鳃躋峽祷紉诵帮废掃減。
#endif
#include"resource.h"//mainsymbols
/////////////////////////////////////////////////////////////////////////////稟虛嬪赈维哜妝扩踴粜。
//CEx_GzApp:
//SeeEx_Gz.cppfortheimplementationofthisclass陽簍埡鲑罷規呜旧岿錟。
//
classCEx_GzApp:
publicCWinApp
{
public:
CEx_GzApp();
//Overrides
//ClassWizardgeneratedvirtualfunctionoverrides沩氣嘮戇苌鑿鑿槠谔應。
//{{AFX_VIRTUAL(CEx_GzApp)
public:
virtualBOOLInitInstance();
//}}AFX_VIRTUAL
//Implementation
//{{AFX_MSG(CEx_GzApp)
afx_msgvoidOnAppAbout();
//NOTE-theClassWizardwilladdandremovememberfunctionshere.钡嵐縣緱虜荣产涛團蔺。
//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!
懨俠劑鈍触乐鹇烬觶騮。
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////謾饱兗争詣繚鮐癞别瀘。
//{{AFX_INSERT_LOCATION}}
//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforetheprevio