C#考勤管理系统报告.docx
《C#考勤管理系统报告.docx》由会员分享,可在线阅读,更多相关《C#考勤管理系统报告.docx(14页珍藏版)》请在冰豆网上搜索。
C#考勤管理系统报告
C#大作业报告
--考勤管理系统
需求分析
公司人员上下班考勤情况需要管理,为了简化管理,开发一个电子考勤系统,简化考勤的过程,以及主管人员查看员工的考勤情况。
系统模板设计
针对不同的用户设计了不同的模板。
主要用户有员工和管理人员。
1.员工
员工上下班需要使用系统进行打卡登记。
需要输入自己的员工号,选择上班或者下班。
2.管理人员
需要对部门、员工等重要信息进行必要的维护。
比如新增加某个部门,新增员工等操作。
还可以查看各个员工的考情情况,搜索某一个特定员工指定的情况等功能。
三、系统主要流程
1.员工:
2.管理人员:
四、系统界面和主要源代码
1.员工打卡界面:
<员工签封/签退
系统提示:
上牛&:
00上班‘下4lT:
30T粧
顼在时间:
201E年5月9日22:
43
员工号:
1
上班
下班]
主要代码:
//根据用户是否存在执行不同的操作
if(empName=="")
{
MessageBox.Show(”对不起,该员工号不存在!
请重新输入!
","系统提示");
else
{
//如果用户存在,查看今天有没有签退记录
commandText=string.Format("selectcount(*)fromT_Recordwhere
EID='{0}'andtype=2andyear(RecordTime)=year(getdate())and
month(RecordTime)=month(getdate())andday(RecordTime)=day(getdate())",txtEID.Text);
cmd=newSqlCommand(commandText,conn);
conn.Open();
intret=Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
if(ret>0)
{
MessageBox.Show("对不起,"+empName+",您已经签退!
","系统
提示");
}
else
{
//如果没有签退,在系统中记录用户的签退信息
commandText=string.Format("insertinto
T_Record(EID,Type,IsLate)values('{0}',{1},{2})",txtEID.Text,2,early);
cmd=newSqlCommand(commandText,conn);
conn.Open();
cmd.ExecuteNonQuery();
if(early==0)
{
MessageBox.Show("再见:
"+empName,"系统提示");
}
else
{
MessageBox.Show("对不起:
"+empName+",您早退了!
","系
统提示");
}
}
2.管理人员:
(1)登录界面:
*
昭珈轄三"aI茗
用户名;6□
_…_』
确定1取消
主要代码:
privatevoidbtnOk_Click(objectsender.EventArgse)
{
stringcommandText="selectcount(*)fromT_Operatorwhere
OperlD=@OperlDAndPwd=@Pwd";
using(SqlConnectionconn=new
SqlConnection(SQLDBHelper.ConnectionString))
{
using(SqlCommandcmd=newSqlCommand(commandText,conn))
{
SqlParameter[]para=newSqlParameter[]{
newSqlParameter("@OperID",txtOperID.Text),
newSqlParameter("@Pwd",txtPwd.Text)
};
cmd.Parameters.AddRange(para);
conn.Open();
intret=Convert.ToInt32(cmd.ExecuteScalar());
if(ret==1)
{
MainFormform=newMainForm();
form.Show();
this.Hide();
else
{
MessageBox.Show("用户名或密码错误!
");
}
}
(2)维护主界面:
主要代码:
publicpartialclassMainForm:
Form
{
publicMainForm()
InitializeComponent();
privatevoidtsbExit_Click(objectsender,EventArgse)
Application.Exit();
privatevoidtsbRecord_Click(objectsender.EventArgse){
RecordListFormform=newRecordListForm();
form.ShowDialog();
privatevoidtsbEmp_Click(objectsender,EventArgse){
EmpListFormform=newEmpListForm();
form.ShowDialog();
}privatevoidtsbDepart_Click(objectsender,EventArgse){
DepartListFormform=newDepartListForm();form.ShowDialog();
}
privatevoidMainForm_FormClosed(objectsender,FormClosedEventArgse)
Application.Exit();
n3JSJ:
i
H
I-
维栄宝I:
au-n5*D3H.rij—
_瀬II早退啊|
(3)统计查看界面:
世可Tift
曽*1细:
*世£曰期:
a5-
员二歸:
ULLfeSi
主要代码:
tringcommandText="selectd.DNameas部门,r.EIDas职员编号,e.ENameas姓
名,r.RecordTimeas记录时间,casewhenType=1then'上班'else'下班'endas'类型',"+
"casewhen((lsLate=OandType=1)or(lsLate=0andType=2))then'正常
when(IsLate=1andType=1)then'迟到'else'早退'endas'状态'"+
"fromT_Recordr,T_Employeee,T_Departmentdwherer.EID=e.EIDand
d.DID=e.DID"+sCon.ToString();
using(SqlConnectionconn=new
SqlConnection(SQLDBHelper.ConnectionString))
{
using(SqlDataAdaptersda=newSqlDataAdapter(commandText,conn))
{
DataSetds=newDataSet();
sda.Fill(ds);
dgvRecord.DataSource=ds.Tables[O];
}
}
(4)部门维护界面:
主要代码:
privatevoid修改职员信息ToolStripMenultem_Click(objectsender,EventArgse)
{
if(lvDepart.Selectedltems.Count==0)
{
return;
}
stringdid=lvDepart.Selectedltems[O].Text;
DepartFormform=newDepartForm(OperType.Modify,did);
form.ShowDialog();
//刷新数据
btnQuery_Click(sender,e);
}
}
privatevoid删除职员信息ToolStripMenultem_Click(objectsender,EventArgse)
{
if(lvDepart.Selectedltems.Count==0)
{
return;
}
if(MessageBox.Show(“您确实要删除部门编号为“+
lvDepart.Selectedltems[O].Text+"的部门信息吗?
",”系统提示",MessageBoxButtons.YesNo,
MessageBoxIcon.Warning)==System.Windows.Forms.DialogResult.Yes)
{
stringcommandText="deletefromT_DepartmentwhereDID=@DID";
using(SqlConnectionconn=new
SqlConnection(SQLDBHelper.ConnectionString))
{
using(SqlCommandcmd=newSqlCommand(commandText,conn))
{
cmd.Parameters.Add(newSqlParameter("@DID",
lvDepart.Selectedltems[O].Text));
conn.Open();
try
{
intret=cmd.ExecuteNonQuery();
if(ret>0)
{
MessageBox.Show(”数据删除成功!
",”系统提示");
//刷新数据
btnQuery_Click(sender,e);
}
else
{
MessageBox.Show(”数据删除失败!
",”系统提示");
}
}
catch(Exceptionex)
{
MessageBox.Show(”该部门还有职员,请先删除职员信息
系统提示");
(5)员工维护界面:
主要代码:
privatevoid修改职员信息ToolStripMenultem_Click(objectsender.EventArgse)
{
if(lvEmp.Selectedltems.Count==0)
{
return;
}
stringeid=lvEmp.Selectedltems[O].Text;
EmpFormform=newEmpForm(OperType.Modify,eid);
form.ShowDialog();
//刷新数据
if(form.DialogResult==System.Windows.Forms.DialogResult.OK)
{
btnQuery_Click(sender,e);
privatevoid删除职员信息ToolStripMenultem_Click(objectsender.EventArgse)
{
if(lvEmp.Selectedltems.Count==0)
{
return;
}
SqlConnectionconn=newSqlConnection(SQLDBHelper.ConnectionString);
SqlTransactiontran=null;
if(MessageBox.Show(”您确实要删除员工号为"+lvEmp.Selectedltems[O].Text+的员工信息吗?
","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)==|System.Windows.Forms.DialogResult.Yes)
{
try
{
conn.Open();
tran=conn.BeginTransaction();
stringcommandText="deletefromT_RecordwhereEID='"+
lvEmp.Selectedltems[O].Text+;
SqlCommandcmd=newSqlCommand(commandText,conn);
cmd.Transaction=tran;
cmd.ExecuteNonQuery();
commandText="deletefromT_EmployeewhereEID="'
lvEmp.Selectedltems[O].Text+;
cmd=newSqlCommand(commandText,conn);
cmd.Transaction=tran;
cmd.ExecuteNonQuery();
tran.Commit();
MessageBox.Show(”职员删除成功!
","系统提示");
btnQuery_Click(sender,e);
}
catch(Exceptionex)
{
tran.Rollback。
;
MessageBox.Show("职员删除失败,请和系统管理员联系!
",”系统提示");
}
finally
{
conn.Close();
}
#region删除的处理,不能处理主键级联删除
#endregion
五、需求分析
通过考勤系统的设计和代码的编写,进一步巩固了我对C#的知识,加深了我对C#的认知,也提高了自己的编程水平。
遇到问题通过自己的搜索与同学的讨论从而解决,也提高了自己解决问题的能力。
通过这次的实践让我明白了实践的意义。