首先分析需求:
1.登记每此课程(2自然学时)学生考勤
2.每次课程(2自然学时)学生评价(可以使课上作业、课下作业或课堂表现等,这里只实现登记,暂不包含作业推送、审批等功能)
3.学生期中考试成绩
4.学生实习表现(每次)
5.学生实习成绩
6.学期期末成绩7.课程总成绩
根据现有的数据库、类库,首先要分析出要新添加的表、基础类等,所以,首先要进行数据库表设计。
一、数据库表设计:
添加 表:
和这个系统相关的已存在类:Teacher、StudentInfo、Course、ClassInfo。缺少和学生成绩、考勤相关的类,可添加 成绩类Score,ScoreId为主键, StudentId CourseId来确定所属学生和课程,现在难点在于如何添加不确定次数的考勤和作业成绩,经过上网搜索,得出下面方法:
员工ID 姓名 年份 月份 日期 上班 休息 请假
0001 张三 2004 07 17 1
0002 李四 2004 07 17 1
这样写怎么样?然后再在月底进行一次汇总存在一条月考勤数据中.
员工ID 姓名 年份 总月份 上班 休息 请假
0001 张三 2004 12 240 110 15
根据上面的启发,设计考勤表和成绩表:
1. 成绩表 Score
主键:ScoreId int
学生Id:StudentId int
课程Id:CourseId int
平时成绩:AttendanceScore double
期中成绩: MidtermScore double
实习成绩:PracticeScore double
期末考核成绩:TermEndScore double
最终成绩:FinalScore double
2.考勤 Attendance
这个表是由教师添加记录的,并不是每次课都会有记录,而是教师录入一条才会有一次记录
主键:MAId int
学生Id:StudentId int
课程Id:CourseId int
日期:AttendanceDate smallDateTime
节次:SessionNum int
考勤状态:AttendanceState int 0——正常、1——请假、2——迟到、3——早退、4——旷课、 5——未录入 默认为 5
课程类型:ClassType int 0 —— 理论课、1—— 实践课 、2 —— 实习 默认值为0
作业(本次课考核成绩、或者表现分数):ClassScore int -1 —— 默认值 其他 —— 在此限制为 0-100(可以在录入界面用验证控件)
备注:Comment nvarchar null
二、基础类库设计
1.添加和成绩 Score 相关的类到系统
依此添加 Entity.Score IDAL.IDalScore DAL.DalScore BLL.BllScore 并更改 DALFactory.DataAccess
2.添加和考勤 Attendance 相关的类到系统
依此添加 Entity.Attendance IDAL.IDalAttendance DAL.DalAttendance BLL.BllAttendance 并更改 DALFactory.DataAccess
基本上先做这些