兰州交通大学电子与信息工程学院
软 件 系 统 设 计 报 告
题 目: 成绩管理系统
姓 名:张耀虎、王东、耿硕、褚志成 班 级:计算机1002班 学 号:201009718、201009717
201009750、201009708
2013年7月1日
1
兰州交通大学电子与信息工程学院
目 录
1.序言 ············································································································ 3
1.1选题背景 ·················································································································································· 3 1.2选题目的及意义 ····································································································································· 3
2.项目需求分析 ······························································································ 3
2.1项目功能需求 ··········································································································································· 4 2.2 项目性能需求 ········································································································································· 5
3.项目概要设计 ······························································································ 5
3.1 系统功能结构设计 ································································································································· 5 3.3 数据库结构设计 ····································································································································· 5
4.详细设计 ······································································································· 7
4.1模块1描述 ··············································································································································· 8
5.总结 ············································································································ 9
2
兰州交通大学电子与信息工程学院
1.序言
1.1选题背景
当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境.计算机的最大好处在于利用它能够进行信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性. 管理信息系统是进行信息的采集,存储,加工,维护和使用的系统,它是随着管理科学和技术科学的发展而形成的.学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩以及信息等.但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难.因此, 面对现在,上课老师对于成绩处理这一块的工作压力越来越大,为了减轻老师的工作负担,方便同学们能够及时的查阅到自己的考试成绩,经过我们小组的激烈讨论,我们组决定利用我们现有的知识来模拟完成这一个具备处理成绩功能的软件。
1.2选题目的及意义
开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平.为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自动化.现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素.在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替.一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人
3
兰州交通大学电子与信息工程学院
力,可以迅速查到所需信息,高效,安全,学生在能方便的查看自己的成绩.这样可以极大地提高代课老师的工作效率,方便同学们对自己成绩的查询。
2.项目需求分析
2.1项目功能需求
老师录入成绩,同学在自己的权限内可以查看自己的每一科成绩,但不能修改自己的成绩。系统是基于网络在线的学生成绩管理系统,在系统中分为大的三个方面:一是系统管理员页面,二是教师登录页面,三是学生登录页面.
(1)系统管理员进入学生成绩管理系统的主要功能是:实现教师添加,教师修改,教师删除,教师查询,数据库的恢复,数据库的备份,学生的添加,学生的修改,学生的查询,学生成绩的录入,学生成绩的添加,学生成绩的修改,学生成绩的删除。
(2)教师进入学生成绩管理系统的主要功能是:实现学生的查询,学生成绩的查询,密码的修改,教师的查询,教师登陆密码的更改,教师个人信息的修改等基本功能. 功能划分
该软件具有如下功能: 1,权限验证; 2,老师录入成绩;
3,系统根据录入的成绩自动分析成绩,然后生成成绩分布柱状统计图; 4,老师可以将录入的成绩导入到excel表格; 5,学生可以根据课程名查看自己相应的考试成绩
4
兰州交通大学电子与信息工程学院
2.2 项目性能需求
通过分析,系统性能需求如下: 1.系统的高速性、稳定性、安全性。
2.系统的体系结构能够方便添加功能模块,适应业务、办公的发展。
3.系统人机界面友好,易学易用。 4.系统维护成本较低。
3.项目概要设计
3.1 系统功能结构设计
成绩管理系统 教 师登 陆系 统 教师 学生 教师录入成绩 教师修改成绩 录入的成绩导出 系统自动生成成绩分布表 学生登录系统 所有成绩查询 单科成绩查询
5
兰州交通大学电子与信息工程学院
3.3 数据库结构设计
报考类别(正考、补考、重修) 考 号 政治面貌 班 级 码 姓 名 n 考 试 1 老 师 学 生 性 别 年 龄 考试课程 专 业 老师编号 学 号
6
兰州交通大学电子与信息工程学院
3.3.6 数据库设计
所生成的表
教 师 表
属性名 含义 取值范围 TeacherId TeacherName MajorNnmber
教工编号 教师姓名 号 Varchar(12) Varchar(12) Varchar(12) 学 生 表
属性名 StuId StuName ExamNum Sex Age Class Major 含义 学生学号 考生姓名 考试编号 学生性别 学生年龄 所在班级 所学专业 取值范围 Varchar(12) Varcahr(12) Varchar(12) Varchar(12) Varchar(12) Varchar(12) Varchar(12) 课 程 表 属性名 CourseId CourseName Score IScore SubjectKind 含义 课程编号 课程名称 正考成绩 补考成绩 课程类别 取值范围 Varchar(12) Varchar(12) Varchar(12) Varchar(12) Varchar(12)
7
兰州交通大学电子与信息工程学院
4.详细设计
4.1模块1描述
4.1.1 功能描述
(1)、系统主界面流程图
(2)、学生信息录入流程图 系统主界面 系统管理 查询与管理 信息录入 查询操作 关于 退出 用 户 学生信息录入 学生信息表 数据库 成绩信息录入 成绩数据表 8 兰州交通大学电子与信息工程学院
4.1.2算法描述/逻辑流程 部分编码及注释: //数据库操作代码:
package com.wd.score.dao.npc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class NpcDao {
private static final String driver = \"com.microsoft.sqlserver.jdbc.SQLServerDriver\"; private
static
final
String
url
=
\"jdbc:sqlserver://localhost:1433;
DatabaseName=scoreManage\";
private static final String dbname = \"sa\"; private static final String pwd = \"admin321\";
public static Connection getConnection() throws Exception { }
public static int execSQL(String sql) throws Exception {
Connection conn = getConnection(); int rowCount = 0; try {
/* 获得语句对象 */
Statement st = conn.createStatement(); /* 执行语句 */
rowCount = st.executeUpdate(sql); Class.forName(driver);
Connection conn = DriverManager.getConnection(url, dbname, pwd); // 获取链 return conn;
} catch (Exception e) {
9
兰州交通大学电子与信息工程学院
}
}
e.printStackTrace(); throw e;
} finally { }
return rowCount;
/* 关闭数据库连接 */ conn.close();
//成绩管理代码:
package com.wd.score.dao.course; import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import org.springframework.transaction.annotation.Transactional; import com.wd.score.entity.Course; import com.wd.score.entity.Teacher;
@SuppressWarnings(\"unchecked\")
public class CourseDaoImpl extends HibernateDaoSupport implements CourseDao { public Course searchById(Integer cid) { // TODO Auto-generated method stub return null; } public List searchall() { // TODO Auto-generated method stub return null; } @Transactional(readOnly = true) public Teacher oneTeacher(String courseid) throws Exception { String hql = \"from Course c join fetch c.teacher where c.id='\" + courseid + \"'\"; List list = this.getHibernateTemplate().find(hql); if (list.size() != 0) { list.get(0).getTeacher().getPwd(); list.get(0).setScoreList(null); list.get(0).setUserList(null); list.get(0).getTeacher().setCourseList(null); return list.get(0).getTeacher();10
兰州交通大学电子与信息工程学院
} else { return null; } }
@Transactional(readOnly=true) public List searchByTid(Integer tid) { String hql = \"from Course c where tid=\"+ tid; List list = this.getHibernateTemplate().find(hql); if (list.size() != 0) { for(int i=0;i//用户表相关代码package com.wd.score.dao.user; import java.util.List;
import com.wd.score.entity.User; public interface UserDao {
public void updateOradd(User user); public void delete(User user);
public User searchById(Integer id); public List searchUsers(); public User searchByUser(User user); public User userLogin(User user); }//成绩表相关代码:
package com.wd.score.dao.score;
import java.util.List;
import com.wd.score.entity.Score;
public interface ScoreDao {
public List srearchAll(Integer uid);public Score oneScore(Integer uid,String courseid); public List gradeScore(int i,int uid);11
兰州交通大学电子与信息工程学院
public List serachBytimes(Integer id, Integer times); public List searchNopass(Integer id); public List searchUserG(Integer cid); public List statUsers(Integer cid); }//教师相关代码:
package com.wd.score.dao.teachers;
import com.wd.score.entity.Teacher;
public interface TeacherDao { public Teacher teaLogin(Teacher teacher); }
5、总结
1. 开发任何系统时,文档一定要全,从需求分析到用户手册,哪个都不能少。这样做的目的不仅是为了便于开发,更是为了给后面的其他工作,比如二次开发或交给其他开发减少障碍。 2. 需求的定义是有需求分析人员和用户共同来完成的,而且有时或者说大多数时候,需求分析人员要能够发掘潜在的需求,以及帮助用户完成需求的定义,因为用户经常自己也不知道软件要做成什么样子。
12