C#考勤管理系统报告.docx 12页

  • 480.42 KB
  • 2022-05-17 13:37:30 发布

C#考勤管理系统报告.docx

  • 12页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
C#大作业报告--考勤管理系统一、需求分析公司人员上下班考勤情况需要管理,为了简化管理,开发一个电子考勤系统,简化考勤的过程,以及主管人员查看员工的考勤情况。二、系统模板设计针对不同的用户设计了不同的模板。主要用户有员工和管理人员。1.员工员工上下班需要使用系统进行打卡登记。需要输入自己的员工号,选择上班或者下班。2.管理人员需要对部门、员工等重要信息进行必要的维护。比如新增加某个部门,新增员工等操作。还可以查看各个员工的考情情况,搜索某一个特定员工指定的情况等功能。三、系统主要流程1.员工: 输入员工号选择上班/下班相关信息进入数据库存储1.管理人员:系统登录(用户,密码).用户密码验证成功管理主界面部门,员工信息维护考勤统计 退出系统一、系统界面和主要源代码1.员工打卡界面:主要代码://根据用户是否存在执行不同的操作if(empName==""){MessageBox.Show("对不起,该员工号不存在!请重新输入!","系统提示");}else{//如果用户存在,查看今天有没有签退记录commandText=string.Format("selectcount(*)fromT_RecordwhereEID="{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("insertintoT_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)登录界面: 主要代码:privatevoidbtnOk_Click(objectsender,EventArgse){stringcommandText="selectcount(*)fromT_OperatorwhereOperID=@OperIDAndPwd=@Pwd";using(SqlConnectionconn=newSqlConnection(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();}(3)统计查看界面:主要代码:tringcommandText="selectd.DNameas部门,r.EIDas职员编号,e.ENameas姓名,r.RecordTimeas记录时间,casewhenType=1then"上班"else"下班"endas"类型","+"casewhen((IsLate=0andType=1)or(IsLate=0andType=2))then"正常"when(IsLate=1andType=1)then"迟到"else"早退"endas"状态""+"fromT_Recordr,T_Employeee,T_Departmentdwherer.EID=e.EIDandd.DID=e.DID"+sCon.ToString();using(SqlConnectionconn=newSqlConnection(SQLDBHelper.ConnectionString)){using(SqlDataAdaptersda=newSqlDataAdapter(commandText,conn)){DataSetds=newDataSet();sda.Fill(ds);dgvRecord.DataSource=ds.Tables[0];}}(4)部门维护界面: 主要代码:privatevoid修改职员信息ToolStripMenuItem_Click(objectsender,EventArgse){if(lvDepart.SelectedItems.Count==0){return;}stringdid=lvDepart.SelectedItems[0].Text;DepartFormform=newDepartForm(OperType.Modify,did);form.ShowDialog();//刷新数据if(form.DialogResult==System.Windows.Forms.DialogResult.OK){btnQuery_Click(sender,e);}}privatevoid删除职员信息ToolStripMenuItem_Click(objectsender,EventArgse){if(lvDepart.SelectedItems.Count==0){return;}if(MessageBox.Show("您确实要删除部门编号为"+lvDepart.SelectedItems[0].Text+"的部门信息吗?","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)==System.Windows.Forms.DialogResult.Yes){stringcommandText="deletefromT_DepartmentwhereDID=@DID";using(SqlConnectionconn=newSqlConnection(SQLDBHelper.ConnectionString)) {using(SqlCommandcmd=newSqlCommand(commandText,conn)){cmd.Parameters.Add(newSqlParameter("@DID",lvDepart.SelectedItems[0].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修改职员信息ToolStripMenuItem_Click(objectsender,EventArgse){if(lvEmp.SelectedItems.Count==0){return;}stringeid=lvEmp.SelectedItems[0].Text;EmpFormform=newEmpForm(OperType.Modify,eid);form.ShowDialog();//刷新数据if(form.DialogResult==System.Windows.Forms.DialogResult.OK){btnQuery_Click(sender,e);}}privatevoid删除职员信息ToolStripMenuItem_Click(objectsender,EventArgse){if(lvEmp.SelectedItems.Count==0){return;}SqlConnectionconn=newSqlConnection(SQLDBHelper.ConnectionString);SqlTransactiontran=null;if(MessageBox.Show("您确实要删除员工号为"+lvEmp.SelectedItems[0].Text+"的员工信息吗?","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)==System.Windows.Forms.DialogResult.Yes){try{conn.Open();tran=conn.BeginTransaction();stringcommandText="deletefromT_RecordwhereEID=""+lvEmp.SelectedItems[0].Text+""";SqlCommandcmd=newSqlCommand(commandText,conn);cmd.Transaction=tran;cmd.ExecuteNonQuery();commandText="deletefromT_EmployeewhereEID=""+lvEmp.SelectedItems[0].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#的认知,也提高了自己的编程水平。遇到问题通过自己的搜索与同学的讨论从而解决,也提高了自己解决问题的能力。通过这次的实践让我明白了实践的意义。