- 4.65 MB
- 2022-05-17 12:59:45 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
学生考勤管理系统实训报告组长:xx组员:xx、xx指导教师:xx实训时间:2011-6-2434
目录第一章用户需求分析31.1学生用户需求描述31.2任课老师用户需求描述41.3院系领导用户需求描述41.4系统管理员用户需求描述5第二章数据库设计72.1E-R图72-2数据字典9第三章系统设计与实现113.1功能结构图113.2系统设计与实现123.2.1主窗体登录模块123.2.2学生登录模块123.2.3教师登录模块133.2.4管理员登录模块153.2.5其他登录模块163.2.6管理员登录到界面的操作173.2.7学生登录到界面的操作233.2.8教师登录到界面的操作253.2.9其他登录到界面的操作29结束语33参考文献3434
第一章用户需求分析1.1学生用户需求描述学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。在线请假需求:学生在请假的全过程当中,学生可以随时查看请假的详细进展情况。查看出勤信息需求:学生可以查看在校期间所有学期上课出勤的详细信息,如“实用英语”这门课程在整学期请假、旷课、迟到、早退了多少次,以及具体的时间、任课老师名、第几节课等详细信息。其他需求:查看本人的基本信息,如本人的所属院系、年级、专业、班级、学号、姓名、性别等。图1-1学生用例图34
1.2任课老师用户需求描述任课老师对系统的主要需求是:管理所教班级学生的上课出勤信息以及查看所教班级学生的上课出勤信息。管理学生上课出勤需求:便于掌握学生的出勤情况,决定学生上课的最终结果。查看学生出勤信息需求:查看所教班级学生整个学期上出勤统计信息及详细信息。图1-2教师用例图1.3院系领导用户需求描述院系领导对本系统的主要需求是:审批本班学生本学期的在线请假以及查看本班学生本学期所有课程的上课出勤信息。34
审批学生请假需求:本班学生本学期在线请假申请后,自动提示院系领导有等待审批的请假信息,院系领导针对请假申请信息进行学生请假审批,以及对请假信息回复。查看学生上课出勤信息需求:查看本班学生整个学期有关课程的上出勤统计信息及详细信息。图1-3院系领导用例图1.4系统管理员用户需求描述系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对各用户的设计,基本功能需求如下:(1)、管理学校各院系、年级、专业、班级的添加、删除、修改等。(2)、管理每个学期每个班级的课程安排及指定院系领导和任课老师。(3)、管理系统所有用户。(4)、管理全校课表安排。(5)、管理全校每学年开学的起止时间。(6)、管理系统的请假、考勤信息。34
图1-4系统管理员用例图34
第一章数据库设计2.1E-R图学生信息表(学号、姓名、院系、班级编号、专业、性别、入学时间、登录密码)学生上课出勤记录表(上课时间、学生学号、学生上课考勤状态)请假信息表(学生学号、请假原因、开始时间、结束时间、请假天数)任课老师表(编号、姓名、性别、所教班级、所教课程、院系、入学时间、登录密码)课程(上课时间、名称、课程ID)班级(班级编号、院系、名称)34
图2-1学生考勤管理E-R图34
2-2数据字典表1-1学生表stu_nointNotnullprimarykey学号stu_namechar(10)Notnull,姓名stu_sexchar(1)Notnull,性别Cl_IDchar(13)Notnull,FK班级IDstu_professionalchar(60)Notnull专业stu_Facultieschar(40)Notnull院系Stu_ruxuetimeVarchar(50)null入学时间Stu_mimaVarchar(50)Notnull登录密码表1-2任课老师表tea_nointNotnullPrimarykey编号tea_namechar(10)Notnull姓名tea_sexchar(1)Notnull性别Cl_IDintNotnullFK班级IDcurr_numberchar(60)NotnullFK课程编号tea_Facultieschar(40)Notnull院系tea_mimaVarchar(50)Notnull登录密码34
表1-3学生上课出勤记录表sk_timechar(40)Notnull,上课时间stu_nointNotnull,FKPK学号Sk_statuschar(10)Notnull,学生上课考勤状态表1-4请假信息表stu_nointNotnull,FkPK学号qingjia_yuanyinVarchar(200)Notnull,请假原因start_timechar(30)Notnull开始时间end_timechar(30)Notnull结束时间day_numberchar(13)Notnull请假天数表1-5班级表cl-namechar(40)Notnull,课程名Cl_IDchar(20)Notnull,primarykey班级IDcl-Facultieschar(40)Notnull,院系表1-6课程表curr-namechar(40)Notnull,班级名curr_numberchar(20)Notnull,primarykey课程编号curr-timechar(40)Notnull,上课时间34
第一章系统设计与实现3.1功能结构图根据项目的开发要求,本系统分成五个主功能模块:录入学生信息模块、删除学生信息模块、查询信息模块、录入老师信息模块、删除老师信息模块。系统功能结构图如下:图3-1系统功能结构34
3.2系统设计与实现3.2.1主窗体登录模块图3-2学生考勤系统登陆主界面3.2.2学生登录模块点击“学生”弹出学生登录窗口如图3-3所示SQL代码:学生登录x=new学生登录();
x.ShowDialog();//弹出学生登录窗口实现登录,输入【学号】和【密码】后,点击【登录】切换的学生中心:kaoqinguanliDAL.Studentks=newkaoqinguanliDAL.Student();DataTabledd=ks.studenglu(int.Parse(textBox1.Text),textBox2.Text);if(dd.Rows.Count>=1){34
MessageBox.Show("登入成功!");this.Close();欢迎进入学生中心con=new欢迎进入学生中心();con.ShowDialog();}else{MessageBox.Show("您输入的密码错误,请检查后重新输入!");this.Close();}图3-3学生登录窗口3.2.3教师登录模块点击“教师”弹出教师登录窗口如图3-4所示SQL代码:教师登录j=new教师登录();
34
j.ShowDialog();实现登录,输入【教师编号】和【密码】后,点击【登录】切换的教师中心kaoqinguanliDAL.Teacherkt=newkaoqinguanliDAL.Teacher();DataTabledd=kt.denglu(int.Parse(textBox1.Text),textBox2tea.Text);if(dd.Rows.Count>=1){MessageBox.Show("登入成功!");this.Close();欢迎进入教师中心js=new欢迎进入教师中心();js.Show();}else{MessageBox.Show("您输入的密码错误,请检查后重新输入!");this.Close();}34
图3-4教师登录窗口3.2.4管理员登录模块点击“管理员”弹出管理员登录窗口如图3-5所示
SQL代码:管理员登录gl=new管理员登录();
gl.ShowDialog();实现登录,直接输入【密码】后,点击【登录】切换的管理中心:欢迎进入管理中心h=new欢迎进入管理中心();if(this.textBox2tea.Text=="glz2011"){MessageBox.Show("登入成功!");this.Close();h.ShowDialog();}else{MessageBox.Show("您输入的密码错误,请检查后重新输入!");this.Close();}34
图3-5管理员登录窗口3.2.5其他登录模块点击“其他”弹出院系领导登录窗口如图3-6所示
SQL代码:院系领导登录yx=new院系领导登录();
yx.ShowDialog();实现登录,直接输入【密码】后,点击【登录】切换的考勤中心:欢迎进入考勤中心kq=new欢迎进入考勤中心();if(this.textBox2tea.Text=="yx2011"){MessageBox.Show("登入成功!");this.Close();kq.Show();34
}else{MessageBox.Show("您输入的密码错误,请检查后重新输入!");this.Close();}图3-6院系领导登录窗口3.2.6管理员登录到界面的操作管理员登陆后,进入【管理中心界面】(如下图所见)并可以对学生信息、教师信息、考勤信息、请假信息、课程信息和教室信息进行添加、删除和修改行为.34
图3-7教室信息添加图3-8教室信息修改34
图3-9教室信息删除在多个选项卡中,由于有主、外键的设置,要添加教室信息,在代码中设置多种组合的判断修改代码,可随便修改以主键为不变的量。删除从外键表开始,若表中数据未和其他表联系,则可直接删除。现以教室信息为例。选择【教室信息】选项卡,该选项卡中有三种check选择,在编写代码是用判断。选择【添加】进行数据添加(如图2-7所见);选择【修改】进行数据修改(如图2-8所见),在代码中使用判断,并在C#中编写多种组合的修改;选择【删除】进行数据删除(如图2-9所见)。具体教师信息操作的SQL代码:if(radioButton18.Checked==true)
{
kaoqinguanliDAL.Classkkc=newClass();
34
kkc.addclass(textBox21.Text,textBox22.Text,textBox23.Text);
MessageBox.Show("添加成功!");
}
elseif(radioButton16.Checked==true)
{
kaoqinguanliDAL.Classkkc=newClass();
if(textBox21.Text!="")
{
if(textBox23.Text!="")
{
kkc.clpddate(textBox21.Text,textBox23.Text);
MessageBox.Show("修改成功!");
}
else
{
MessageBox.Show("请确认后,重新输入!");
}
}
else
{
MessageBox.Show("班级编号不能为空!");
}
}
elseif(radioButton17.Checked==true)
{
kaoqinguanliDAL.Classkc=newClass();
kc.cldelete(textBox21.Text);
MessageBox.Show("删除成功!");
}
其它选项卡中操作与教室选项卡相似,代码差不多,就不一一说明了。SQL代码如下:学生if(radioButton1.Checked==true){kaoqinguanliDAL.Studentkss=newStudent();kss.addstudent(textBox2.Text,comboBox1.Text,int.Parse(textBox4.Text),textBox5.Text,textBox6.Text,textBox24.Text,textBox29.Text);34
MessageBox.Show("添加成功!");}elseif(radioButton3.Checked==true){kaoqinguanliDAL.Studentkss=newStudent();if(textBox1.Text!=null){if(textBox4.Text!=null){if(textBox5.Text!=""){if(textBox6.Text!=""){kss.stupddate4(int.Parse(textBox1.Text),int.Parse(textBox4.Text),textBox5.Text,textBox6.Text);MessageBox.Show("修改成功!");}else{kss.stupddate3(int.Parse(textBox1.Text),int.Parse(textBox4.Text),textBox5.Text);MessageBox.Show("修改成功!");}}else{if(textBox6.Text!=""){kss.stupddate1(int.Parse(textBox1.Text),int.Parse34
(textBox4.Text),textBox6.Text);MessageBox.Show("修改成功!");}else{kss.stupddate2(int.Parse(textBox1.Text),int.Parse(textBox4.Text));MessageBox.Show("修改成功!");}}}else{if(textBox5.Text!=""){if(textBox6.Text!=""){kss.stupddate6(int.Parse(textBox1.Text),textBox5.Text,textBox6.Text);MessageBox.Show("修改成功!");}else{kss.stupddate(int.Parse(textBox1.Text),textBox5.Text);MessageBox.Show("修改成功!");}}else{if(textBox6.Text!=""){kss.stupddate5(int.Parse(textBox1.Text),34
textBox6.Text);MessageBox.Show("修改成功!");}else{MessageBox.Show("请确认后,重新输入!");}}}}else{MessageBox.Show("学号不能为空!");}}elseif(radioButton2.Checked==true){kaoqinguanliDAL.Studentkss=newStudent();kss.studlete(int.Parse(textBox1.Text));MessageBox.Show("删除成功!");}3.2.7学生登录到界面的操作根据用户需求不同,学生登录后进入【学生中心】(如下图所见),对学生信息、考勤信息和请假信息进行查询。C34
heck选择【学生信息】,按条件查询,在【学号】中添加数据,按【确定】输出所查询图3-10学生信息按条件查询图3-11学生信息全部查询根据要求不同查询有按条件和全部查询。34
学生信息查询SQL代码:kaoqinguanliDAL.Studentstu=newStudent();
if(textBox1stu_no.Text!="")
{
DataTabledt=stu.stugetall1(textBox1stu_no.Text);
dataGridView1.DataSource=dt;
}
else
{
DataTabledt=stu.stugetall();
dataGridView1.DataSource=dt;
}3.2.8教师登录到界面的操作根据用户需求不同,教师登录后进入【教师中心】(如下图所见),对考勤信息进行修改,教师信息的查询,以及对考勤信息进行查询。34
图3-12教师信息全部查询图3-13教师信息按条件查询SQL代码:kaoqinguanliDAL.Teacherkt=newTeacher();if(textBox7.Text!=""){DataTabledt=kt.getall1(int.Parse(textBox7.Text));dataGridView1.DataSource=dt;}else{DataTabledt=kt.getall();dataGridView1.DataSource=dt;}34
图3-14修改前(考勤信息查询)图3-15考勤信息修改34
图3-16修改后(查询)考勤信息查询与修改SQL代码:kaoqinguanliDAL.Kaoqinrecordkk=newKaoqinrecord();if(comboBox3.Text!=""){kk.kqupddate(int.Parse(textBox29kq_ID.Text),comboBox3.Text);MessageBox.Show("修改成功!");}else{MessageBox.Show("请确认后,重新输入!");}MessageBox.Show("修改成功!");选中表中一行数据,再点击【考勤信息修改】,行中数据进入指定textBox中。进行修改,再点击【修改】。其中实现数据进入指定地点的主要代码:privatevoidshowkaoqin_cellclick(objectsender,34
DataGridViewCellEventArgse){selehang=e.RowIndex;}privatevoidshowkaoqin_Resize(objectsender,EventArgse){dataGridView2.Width=this.Width;inti=dataGridView2.ColumnCount;if(selehang>0){intlen=dataGridView2.Width/i;for(intj=0;j>曾毅编著[2]www.baidu.com(百度文库和百度问题)[3]《C#软件开发项目实践》方小伟赵永军李其中编著[4]《数据库设计教程》何主洁黄婷儿译著[5]《数据库系统概论》萨师煊王删编著[6]高校学生考勤管理系统的设计研究来源:中国一卡通网作者:代颖[7]www.csdn.net(csdn论坛)34