用java写的一个简单的学生成绩管理系统
一.简洁的需求描述
学生成绩管理系统(以下简称系统)为教师和学生的信息交流提供了一个统一的平台,方便了教师对成绩的管理,学生对于成绩的查询等
1.教师可以通过系统查询所授课程的信息以及课程所对应的学生的信息;
教师通过系统管理学生分数信息,包括查询,输入,修改学生成绩。
2.学生用户仅仅拥有查询功能,查询的信息包括所选修课程信息和分数信息。
系统用例图:
用例图解释
系统功能大致上分为分数管理,课程管理,个人信息查询,分数查询四大块。其中教师用户使用分数管理和课程管理功能,学生用户使用个人信息查询和分数查询功能。
细分来,分数管理指的是分数的录入,更新,查询;课程管理包括所授课程查询,课程信息录入,修改等;个人信息查询针对学生而言,包括,,班级等;分数查询则指的是某一学期所有课程的分数信息的查询。
二.简单的设计说明
2.1系统类图
2009-04-12 18:38
三。简单的数据库设计
ER图:
数据库详细设计说明:
1).数据库说明
数据库取名为score_manage_system
其中有五个表,分别为:
TEACHER(TNO ,TNAME,SEX,TITLE,PASSWORD)..............教师信息表
STUDENT (SNO,SNAME,SEX,CLASS,PASSWORD) .................学生信息表
COURSE(CNO,CNAME,CXUEFEN,HOUR)..............................课程信息表
TEACH(TNO,CNO)............................................................................教师授课信息表
STUDY(SNO,CNO,SCORE)...........................................................学生选课信息表
2009-04-12 18:41
2).字段说明
3)TEACHER
字 段 类 型 主 码 外 码 说明
TNO CHAR(20) √ √ 教师代码
TNAME CHAR(10) 教师
SEX CHAR(1) 教师性别
TITLE CHAR(10) 职称
PASSWORD CHAR(20) 登录密码
STUDENT
字 段 类 型 主 码 外 码 说明
SNO CHAR(20) √ √
SNAME CHAR(10) 学生
SEX CHAR(2) 性别
CLASS CHAR(5) 班级
PASSWORD CHAR(20) 登录密码
DEPARTMENT CHAR(20) 学生所属院系
SCHOOL CHAR(20) 学生所属
COURSE
字 段 类 型 主 码 外 码 说明
CNO CHAR(20) √ √ 课程代码
CNAME CHAR(10) 课程名称
XUEFEN int 学分,取值大于0小于10
HOUR int 学时,大于等于0
YEAR CHAR(5) 学年
TERM CHAR(1) 学分
TEACH
字 段 类 型 主 码 外 码 说明
TNO CHAR(20) √ 教师代码
CNO CHAR(20) √ 课程代码
STUDY
字 段 类 型 主 码 外 码 说明
SNO CHAR(20) √
CNO CHAR(20) √ 课程代码
SCORE DOUBLE 分数,0--100
3).建表语句
TEACHER建表语句:
create table TEACHER
(
TNO char(20) not null,
TNAME char(10) not null,
SEX char(1) not null,
TITLE char(10) not null,
PASSWORD char(20) not null,
primary key (TNO),
check(SEX in('男','女'))
);
STUDENT建表语句:
create table STUDENT
(
SNO char(20) not null,
SNAME char(10) not null,
SEX char(2) not null,
CLASS char(5) not null,
PASSWORD char(20) not null,
DEPARTMENT char(20) not null,
SCHOOL char(20) not null,
primary key (SNO),
check(SEX in('男','女'))
);
COURSE建表语句:
create table COURSE
(
CNO char(20) not null,
CNAME char(10) not null,
XUEFEN int not null,
HOUR int not null,
YEAR char(5) not null,
TERM char(1) not null,
primary key (CNO),
check(XUEFEN > 0 and XUEFEN < 10 and HOUR >= 0 )
);
TEACH建表语句:
create table TEACH
(
TNO char(20) not null,
CNO char(20) not null,
primary key (TNO, CNO)
foreign key(TNO,CNO)REFERENCES TEACHER COURSE ,
foreign key(CNO)REFERENCES COURSE
);
alter table TEACH
add constraint FK_TEACH_REFERENCE_TEACHER foreign key (TNO)
references TEACHER (TNO)
on update restrict
on delete restrict;
alter table TEACH
add constraint FK_TEACH_REFERENCE_COURSE foreign key (CNO)
references COURSE (CNO)
on update restrict
on delete restrict; 2009-04-12 18:41
STUDY建表语句:
create table STUDY
(
SNO char(20) not null,
CNO char(20) not null,
SCORE double ,
primary key (SNO, CNO),
check(SCORE >=0 and SCORE <= 100)
);
alter table STUDY
add constraint FK_STUDY_REFERENCE_COURSE foreign key (CNO)
references COURSE (CNO)
on update restrict
on delete restrict;
alter table STUDY
add constraint FK_STUDY_REFERENCE_STUDENT foreign key (SNO)
references STUDENT (SNO)
on update restrict
on delete restrict; 2009-04-12 18:42
四。系统实现代码
1.system.dbconnection包
/*
*@author ougaoyan ,date:2008-9-26
*/
package com.system.dbconnection;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConn {
protected static String driverName = "com.mysql.jdbc.Driver"; //连接数据库的驱动名
protected static String dbName = "jdbc:mysql://localhost/score_manage_system"; //数据库映射路径
protected static String dbUser = "root"; //数据库的登录名
protected static String dbPwd = "123456"; //数据库的登录密码
private static Connection conn = null ; //申明一个数据库连接
public DBConn(){ //装载时建立数据库链接
try{
if(conn == null){
Class.forName(driverName).newInstance();
//System.out.println("Success loading Mysql Driver!");
conn = DriverManager.getConnection(dbName,dbUser,dbPwd);
}
else
return;
}catch(Exception e){
e.printStackTrace();
}
}
public static ResultSet executeQuery(String sql){ //静态方法executeQuery,执行查询操作,返回结果集ResultSet
try{
if(conn == null){
new DBConn();
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sql);
return rs;
}
}catch(SQLException e){
e.printStackTrace();
return null;
}finally{
}
return null;
}
public static boolean executeUpdate(String sql){ //静态方法executeUpdate,执行更新操作,返回结果集布尔值,true表示更新成功,否则更新失败
try{
if(conn == null){
new DBConn();
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt.executeUpdate(sql);
return true;
}
}catch(SQLException e){
e.printStackTrace();
return false;
}finally{
}
return false;
}
public static String getNewString(String string){ //为解决数据库显示中文问题而写的方法
try {
return ( new String(string.getBytes("ISO-8859-1"),"gb2312"));
} catch (UnsupportedEncodingException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return null;
}
public static b
上一篇:
文本编辑器java
下一篇:
计算机网络毕业论文