员工管理系统课程设计.docx

上传人:b****4 文档编号:6218260 上传时间:2023-05-09 格式:DOCX 页数:25 大小:232.72KB
下载 相关 举报
员工管理系统课程设计.docx_第1页
第1页 / 共25页
员工管理系统课程设计.docx_第2页
第2页 / 共25页
员工管理系统课程设计.docx_第3页
第3页 / 共25页
员工管理系统课程设计.docx_第4页
第4页 / 共25页
员工管理系统课程设计.docx_第5页
第5页 / 共25页
员工管理系统课程设计.docx_第6页
第6页 / 共25页
员工管理系统课程设计.docx_第7页
第7页 / 共25页
员工管理系统课程设计.docx_第8页
第8页 / 共25页
员工管理系统课程设计.docx_第9页
第9页 / 共25页
员工管理系统课程设计.docx_第10页
第10页 / 共25页
员工管理系统课程设计.docx_第11页
第11页 / 共25页
员工管理系统课程设计.docx_第12页
第12页 / 共25页
员工管理系统课程设计.docx_第13页
第13页 / 共25页
员工管理系统课程设计.docx_第14页
第14页 / 共25页
员工管理系统课程设计.docx_第15页
第15页 / 共25页
员工管理系统课程设计.docx_第16页
第16页 / 共25页
员工管理系统课程设计.docx_第17页
第17页 / 共25页
员工管理系统课程设计.docx_第18页
第18页 / 共25页
员工管理系统课程设计.docx_第19页
第19页 / 共25页
员工管理系统课程设计.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

员工管理系统课程设计.docx

《员工管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《员工管理系统课程设计.docx(25页珍藏版)》请在冰点文库上搜索。

员工管理系统课程设计.docx

员工管理系统课程设计

目录

一、需求与功能分析1

二、系统总体框架XX

三、逻辑设计XX

四、类的设计与分析XX

五、数据库表结构设计XX

六、特色算法分析XX

七、功能测试XX

八、存在的不足与对策XX

九、程序源代码XX

一.需求与功能分析

一.员工管理系统的简要分析:

本系统为员工管理系统,员工管理系统是针对财务管理部门的大量业务处理工作而开发的管理软件。

根据用户的要求,实现人员的基本信息,人员的离职,和人员的员工调整的基本情况的管理,员工管理等方面功能。

用户通过相关的操作,输入一些员工的姓名,员工号,工资,电话,部门和生日等信息,由系统相应的生成和调整相关文件记录。

用户可以在日后的读取这些信息。

也可以修改和删除信息。

员工管理系统力求最简单的使客户方便快捷的管理这些繁琐的数据。

二.开发目标:

本系统的开发目标是对企业中员工管理的各种信息包括(员工基本信息或员工随人员调整而变动)进行更加规范和科学的管理和应用。

三.员工管理系统设计:

1.一个登陆界面。

//帐号为xingyue密码为xingyue

2.员工的资料的输入。

3.员工修改功能。

4.新员工基本信息添加管理。

二.系统总体框架:

三.逻辑设计

1.显示信息

为了对数据能够作全局的查看,在本功能使用list控件将所有文件信息显示出来,因为实验需要,本系统用了文件的存储方式。

2.添加信息

添加信息使用的是末尾添加的方法将信息在文件的末尾添加所需的文件信息。

3.修改资料

修改资料是先在list控件中选择你要修改的员工,相应的信息则会自动的显示在编辑框中,然后在编辑框里修改所需的资料。

在框中读取字符然后把改字符替换回文件里。

4.删除人员

删除的做法通过间接文件,通过一句一句的搜索把不需要修改的信息写入间接文件里,在把间接文件里的信息写回原文件里。

达到删除的功能。

四.类的设计与分析

为了方便读取文件里的数据,本程序使用一个类作为读取信息的变量整体,所以我建立了一个类。

此类保存文件里员工的基本信息,使用时只要查找该类中的某个属性就可以知道员工的属性了。

本系统是基于MFC开发的,除了保存信息的类之外,还建立了3个对话框类。

第一个是完成个登陆功能,里面只有帐号和密码2个属性,用户使用软件前先要登陆成功才可以使用。

另外一个就是本系统的重点,也是核心。

系统所有功能都在该类中完成,此对话框有查看,修改,添加,删除功能。

1.SQL类

#include"afxdb.h"

classSQL

{

public:

CDatabasem_database;

CRecordsetrs;

};

此类用于连接数据库使用

五.数据库表结构设计

message类说明表

名称

属性

说明

mnum

数据成员

记录员工工号

mname

数据成员

记录员工名字

mpay

数据成员

记录员工收入

mtel

数据成员

记录员工电话通信

mbirthday

数据成员

记录员工生日

mdept

数据成员

记录员工部门

2.USER_PSW类

名称

属性

说明

TMS_USER

数据成员

保存密码

TMS_PSWD

数据成员

保存帐号

OnOK()

成员方法

登陆

OnCANCEL()

成员方法

退出

六.特色算法分析

个人认为使用的一个比较好的方法是:

编辑框能够通过点击list表的内容获取相应的内容,以方便修改和删除。

七.功能测试

以下为测试时的图片:

(一).登陆

图1登陆框

(二).进入主页面。

图2进入主页面

(三).点击查看,查看所有信息

图3点击查看获取全部信息

(四).点击list插件获取单条信息到编辑框中。

图4,点击list获取单条信息

(五).修改

图5将编辑框中的信息修改之后点击修改将信息修改

(六).点击添加,添加新员工信息

图6将信息输入编辑框中添加新员工

(七).删除

图7删除单条信息

八.存在的不足与对策

由于本人编程水平有限及面临多门课程的考试而时间不足等方面的原因,在此程序中,其功能比较单一,美工方面没有像一些同学那样使用图画来增加程序的美观,这些不足请老师多多谅解。

但是我将在以后的学习中不断改进,继续学习数据库相关知识,不断的提高程序设计水平。

九.程序源代码

软件登陆框代码:

#include"stdafx.h"

#include"xixi.h"

#include"xixiDlg.h"

#include"SQL.h"

#include"Mainframe.h"

SQLsql;

BOOLCXixiDlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//Add"About..."menuitemtosystemmenu.

//IDM_ABOUTBOXmustbeinthesystemcommandrange.

ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

{

CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if(!

strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

}

}

//Settheiconforthisdialog.Theframeworkdoesthisautomatically

//whentheapplication'smainwindowisnotadialog

SetIcon(m_hIcon,TRUE);//Setbigicon

SetIcon(m_hIcon,FALSE);//Setsmallicon

//TODO:

Addextrainitializationhere

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

voidCXixiDlg:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

 

intflag=0;

UpdateData(true);

/*while(m_username.GetLength()<20)

{

m_username=m_username+"";

}

while(m_password.GetLength()<20)

{

m_password=m_password+"";

}*/

//打开数据库

if(sql.m_database.IsOpen())

{sql.m_database.Close();

}

CStringstr;

str="Driver={SQLServer};Server=(local);Database=train;uid=sa;pwd=";

sql.m_database.OpenEx(str,0);

 

//赋记录集地址值给rs以便使用,打开记录集

sql.rs.m_pDatabase=&sql.m_database;

CStringstr1="select*fromUSER_PSWD";

sql.rs.Open(CRecordset:

:

snapshot,str1,CRecordset:

:

readOnly);

while(!

sql.rs.IsEOF())

{

sql.rs.GetFieldValue("TMS_USER",str);

if(str.Compare(m_username)==0)

{

sql.rs.GetFieldValue("TMS_PSWD",str);

if(str.Compare(m_password)==0)

{

flag=1;

CMainframeobj;

obj.DoModal();

CDialog:

:

OnCancel();

}

}

sql.rs.MoveNext();

}

if(flag==0)MessageBox("登陆失败!

");

}

voidCXixiDlg:

:

OnCancelButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CDialog:

:

OnCancel();

}

员工管理系统主要页面主要内容:

#include"stdafx.h"

#include"xixi.h"

#include"Mainframe.h"

#include"sql.h"

#include"addmessage.h"

externSQLsql;

voidCMainframe:

:

OnSelectButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

inti=0;

m_listshow.DeleteAllItems();//按就删除上一次显示的信息

if(sql.m_database.IsOpen())

{

sql.m_database.Close();

}

CStringstr1;

str1="DRIVER={SQLServer};SERVER=(local);Database=train;UID=sa;PWD=";

sql.m_database.OpenEx(str1,0);

 

sql.rs.m_pDatabase=&sql.m_database;

str1="select*frommessage";

sql.rs.Open(CRecordset:

:

snapshot,str1,CRecordset:

:

readOnly);

 

while(!

sql.rs.IsEOF())

{

sql.rs.GetFieldValue("mname",str1);//将帐号数据库中的值赋值给str;

m_listshow.InsertItem(i,str1);//在此i为第i列的行号;str数值

sql.rs.GetFieldValue("mnum",str1);

m_listshow.SetItemText(i,1,str1);//注,第一列使用insertitem()插入数值,但是第二列要是用setitemtext()函数插入数值

sql.rs.GetFieldValue("mpay",str1);

//m_listshow.InsertItem(i,2,str1);

m_listshow.SetItemText(i,2,str1);

sql.rs.GetFieldValue("mtel",str1);

m_listshow.SetItemText(i,3,str1);

sql.rs.GetFieldValue("mdept",str1);

m_listshow.SetItemText(i,4,str1);

sql.rs.GetFieldValue("mbirthday",str1);

m_listshow.SetItemText(i,5,str1);

i++;

sql.rs.MoveNext();

}

}

voidCMainframe:

:

OnAddButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

Caddmessagea;

a.DoModal();

}

voidCMainframe:

:

OnDeleteButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(true);

CStringstr;

CStringname;

if(sql.m_database.IsOpen())

{sql.m_database.Close();

}

str="Driver={SQLSERVER};SERVER=(Local);Database=train;UID=sa;PWD=";

sql.m_database.OpenEx(str);

sql.rs.m_pDatabase=&sql.m_database;

str="select*frommessage";

sql.rs.Open(CRecordset:

:

snapshot,str,CRecordset:

:

readOnly);

m_name.GetWindowText(name);//将m_name的值赋值给name变量

str="deletefrommessagewheremname='"+name+"'";

sql.m_database.ExecuteSQL(str);

if(sql.m_database.CanUpdate())

{MessageBox("删除成功!

");

}

else

MessageBox("删除失败!

");

CMainframe:

:

OnSelectButton();

}

voidCMainframe:

:

OnClickList1(NMHDR*pNMHDR,LRESULT*pResult)

{

//TODO:

Addyourcontrolnotificationhandlercodehere

intdi;

di=m_listshow.GetNextItem(-1,LVNI_ALL|LVNI_SELECTED);

/*来获取当前选中的行(Item)如果该函数还回的值是-1,

说明没有行(item)被选中,如果有行被选中,还回的是一个大于等于0的整数值,*/

CStringstr;

if(sql.m_database.IsOpen())

{sql.m_database.Close();

}

str="DRIVER={SQLSERVER};SERVER=(Local);Database=train;UID=sa;PWD=";

//str="DRIVER={SQLServer};SERVER=(local);Database=student;UID=sa;PWD=";

sql.m_database.OpenEx(str);

sql.rs.m_pDatabase=&sql.m_database;

str="select*frommessage";

sql.rs.Open(CRecordset:

:

snapshot,str,CRecordset:

:

readOnly);

inti=0;

while(i

{sql.rs.MoveNext();

i++;

}

sql.rs.GetFieldValue("mname",str);//从数据库的MESSAGE表中的mname这列中取值到str

m_name.SetWindowText(str);

sql.rs.GetFieldValue("mnum",str);//将str的值赋值给m_name

m_num.SetWindowText(str);

sql.rs.GetFieldValue("mpay",str);

m_pay.SetWindowText(str);

sql.rs.GetFieldValue("mtel",str);

m_tel.SetWindowText(str);

sql.rs.GetFieldValue("mdept",str);

m_dept.SetWindowText(str);

sql.rs.GetFieldValue("mbirthday",str);

m_birthday.SetWindowText(str);

*pResult=0;

}

BOOLCMainframe:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//TODO:

Addextrainitializationhere

//注:

只有在BOOLCMainframe:

:

OnInitDialog()中初始化列属性,否则每次刷新一次就会多一次表的列

m_listshow.InsertColumn(0,"姓名");

m_listshow.InsertColumn(1,"员工号");

m_listshow.InsertColumn(2,"工资");

m_listshow.InsertColumn(3,"联系电话");

m_listshow.InsertColumn(4,"工作部门");

m_listshow.InsertColumn(5,"出生日期");

RECTrectmessage;//声明一个RECT类型的变量

m_listshow.GetWindowRect(&rectmessage);//取得listControl对象m_listshow的宽赋值给rectmessage并进行匹配

intwidmessage;

widmessage=rectmessage.right-rectmessage.left;

m_listshow.SetColumnWidth(0,widmessage/6);

m_listshow.SetColumnWidth(1,widmessage/6);

m_listshow.SetColumnWidth(2,widmessage/6);

m_listshow.SetColumnWidth(3,widmessage/6);

m_listshow.SetColumnWidth(4,widmessage/6);

m_listshow.SetColumnWidth(5,widmessage/6);

 

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

//EXCEPTION:

OCXPropertyPagesshouldreturnFALSE

}

voidCMainframe:

:

OnChanceButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(true);

CStringstr;

CStringname,num,pay,tel,dept,birthday;

if(sql.m_database.IsOpen())

{sql.m_database.Close();

}

str="Driver={SQLSERVER};SERVER=(Local);Database=train;UID=sa;PWD=";

sql.m_database.OpenEx(str,0);

sql.rs.m_pDatabase=&sql.m_database;

str="select*frommessage";

sql.rs.Open(CRecordset:

:

snapshot,str,CRecordset:

:

readOnly);

m_name.GetWindowText(name);//将m_name的值赋值给新定义的变量name

m_num.GetWindowText(num);

m_pay.GetWindowText(pay);

m_tel.GetWindowText(tel);

m_dept.GetWindowText(dept);

m_birthday.GetWindowText(birthday);

str="updatemessagesetmnum='"+num+"',mpay='"+pay+"',mtel='"+tel+"',mdept='"+dept+"',mbirthday='"+birthday+"'wheremname='"+name+"'";

sql.m_database.ExecuteSQL(str);

if(sql.m_database.CanUpdate())

MessageBox("更新成功!

");

else

MessageBox("更新失败!

");

CMainframe:

:

OnSelectButton();//运行IDC_SELECT_BUTTON()这个按钮

}

voidCMainframe:

:

OnCancelButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CDialog:

:

OnCancel();

}

 

添加模块

#include"stdafx.h"

#include"xixi.h"

#include"Mainframe.h"

#include"sql.h"

#include"addmessage.h"

externSQLsql;

voidCMainframe:

:

OnSelectButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

inti=0;

m_listshow.DeleteAllItems();//按就删除上一次显示的信息

if(sql.m_database.IsOpen())

{

sql.m_database.Close();

}

CStringstr1;

str1="DRIVER={SQLServer};SERVER=(local);Database=train;UID=sa;PWD=";

sql.m_database.OpenEx(str1,0);

 

sql.rs.m_pDatabase=&sql.m_database;

str1="select*frommessage";

sql.rs.Open(CRecordset:

:

snapshot,str1,CRecordset:

:

readOnly);

 

while

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2