




免费预览已结束,剩余46页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用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:412).字段说明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小于10HOUR int 学时,大于等于0YEAR CHAR(5) 学年TERM CHAR(1) 学分TEACH字 段 类 型 主 码 外 码 说明TNO CHAR(20) 教师代码CNO CHAR(20) 课程代码STUDY字 段 类 型 主 码 外 码 说明SNO CHAR(20) 学号CNO CHAR(20) 课程代码SCORE DOUBLE 分数,0-1003).建表语句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 = 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 TEACHadd constraint FK_TEACH_REFERENCE_TEACHER foreign key (TNO) references TEACHER (TNO) on update restrict on delete restrict;alter table TEACHadd constraint FK_TEACH_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO) on update restrict on delete restrict;2009-04-12 18:41STUDY建表语句: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 STUDYadd constraint FK_STUDY_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO) on update restrict on delete restrict;alter table STUDYadd constraint FK_STUDY_REFERENCE_STUDENT foreign key (SNO) references STUDENT (SNO) on update restrict on delete restrict;2009-04-12 18:42四。系统实现代码 1.com.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 boolean studentChangePassword(String id,String password) /学生修改密码的方法具体的逻辑判断推至上层处理 String sql = update STUDENT set PASSWORD=+password+where SNO=+id+; return DBConn.executeUpdate(sql); public static boolean teacherChangePassword(String id,String password) /教师修改密码的方法 String sql = update TEACHER set PASSWORD=+password+where TNO=+id+; return DBConn.executeUpdate(sql); public static boolean teacherSetScoreOfStudent(String studentid,String courseid,double score) /老师输入分数的方法 String sql = update STUDY set SCORE=+score+ where SNO=+studentid+ and CNO=+courseid+; return DBConn.executeUpdate(sql);public static void close() /关闭数据库连接的方法 try conn.close(); catch(SQLException e) e.printStackTrace(); finally conn = null; 2009-04-12 18:432 com.system.model包 /Student.java/*author ougaoyan ,date:2008-9-26*/package com.system.model;import java.awt.Color;import java.sql.ResultSet;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import javax.swing.JTable;import com.system.dbconnection.DBConn;public class Student public static String id;public static String name;public static String sex;public static String password;public static String sclass;public static String department;public static String school;public static List courseList = new ArrayList();public Student(String id) String sql1 =select * from STUDENT where SNO=+id+; ResultSet rs1 = DBConn.executeQuery(sql1); try while(rs1.next() /从数据库获得学生信息并初始化相关属性 setId(rs1.getString(SNO); setName(DBConn.getNewString(rs1.getString(SNAME); setSex(DBConn.getNewString(rs1.getString(SEX); setPassword(rs1.getString(PASSWORD); setClass(rs1.getString(CLASS); setDepartment(DBConn.getNewString(rs1.getString(DEPARTMENT); setSchool(DBConn.getNewString(rs1.getString(SCHOOL); DBConn.close(); /关闭数据库连接 catch(Exception e) e.printStackTrace(); String sql2 = select * from STUDENT,STUDY where STUDENT.SNO=STUDY.SNO and STUDY.SNO=+id+; try ResultSet rs2 = DBConn.executeQuery(sql2); while(rs2.next() courseList.add(rs2.getString(CNO).trim(); catch(Exception e) e.printStackTrace(); DBConn.close(); public static List getScoreList() /返回学生各门课程的成绩信息 List list = new ArrayList(); Iterator i = Student.courseList.iterator(); while(i.hasNext() StudentCourse scourse = new StudentCourse(Student.id,(String)i.next(); list.add(scourse); return list;public static List getYearScoreList(String year) List list = getScoreList(); List yearList = new ArrayList(); StudentCourse course = null; for(int i = 0;i list.size();i+) course = (StudentCourse)list.get(i); if(course.year.equals(year) yearList.add(course); return yearList; public static List getTermScoreLiat(String year,String term) List list = getScoreList(); List termList = new ArrayList(); StudentCourse course = null; for(int i = 0;i =0&score=100) return DBConn.teacherSetScoreOfStudent(studentid , courseid, score); else return false; 2009-04-12 18:44/StudentCourse.java /*author ougaoyan ,date:2008-9-29*/package com.system.model;import java.sql.ResultSet;import com.system.dbconnection.DBConn;public class StudentCourse extends Course public double score;public String teacher;public StudentCourse(String studentid,String courseid) /以学生学号和课程号为参数的构造函数 super(); String sid = studentid; String cid = courseid; try String sql =select * from STUDENT,COURSE,STUDY,TEACHER,TEACH where STUDENT.SNO=STUDY.SNO and STUDY.CNO=COURSE.CNO and COURSE.CNO = TEACH.CNO and TEACH.TNO= TEACHER.TNO and STUDY.SNO=+sid+and STUDY.CNO=+cid+; ; ResultSet rs = DBConn.executeQuery(sql); /if(rs != null) while(rs.next() setId(rs.getString(STUDY.CNO); setName(DBConn.getNewString(rs.getString(COURSE.CNAME); setYear(rs.getString(COURSE.YEAR); setTerm(rs.getString(COURSE.TERM); setXueshi(rs.getInt(COURSE.XUEFEN)*12); setXuefen(rs.getInt(COURSE.XUEFEN); setScore(rs.getDouble(STUDY.SCORE); setTeacher(DBConn.getNewString(rs.getString(TNAME); / DBConn.close(); /关闭数据库连接 catch(Exception e) e.printStackTrace(); public void setScore(double score) this.score = score; public void setTeacher(String teachername) teacher = teachername; /ScoreInfo.java/*author ougaoyan ,date:2008-10-2*/package com.system.model;import java.sql.ResultSet;import com.system.dbconnection.DBConn;public class ScoreInfo public String studentName; /姓名 public String studentId; /学号 public String studentClass; /班级 public String studentDepartment;/院系 public String couseId; /课程代码 public double score; /分数 public ScoreInfo(String studentid,String courseid) String sql = select * from STUDENT,STUDY where STUDENT.SNO = STUDY.SNO and STUDENT.SNO =+studentid+and STUDY.CNO=+courseid+; ResultSet rs = DBConn.executeQuery(sql); try while(rs.next() setCouseId(rs.getString(CNO); setScore(rs.getDouble(SCORE); setStudentClass(rs.getString(CLASS); setStudentDepartment(DBConn.getNewString(rs.getString(DEPARTMENT); setStudentId(rs.getString(STUDENT.SNO); setStudentName(DBConn.getNewString(rs.getString(SNAME); catch(Exception e) e.printStackTrace(); DBConn.close(); /关闭数据库连接 /*construct over*/ /public boolean changeScore( ) /连接数据库修改分数的方法 /return / private void setStudentName(String studentName ) this.studentName=studentName; private void setStudentId(String studentId) this.studentId=studentId; private void setStudentClass(String studentCl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业照明设计与安装合同协议条款
- 江西省鹰潭市第九中学2024-2025学年九年级下学期期末考试历史试卷(含答案)
- 幸福除夕夜作文250字13篇范文
- 写人作文我的同学550字13篇
- 《新编商务应用文写作》第七章 习题参考答案
- 春节出游作文800字10篇
- 早教知识培训课件
- 我的奇思妙想作文450字11篇范文
- 产品质量检查与改善方案标准操作模板
- 早搏的鉴别诊断
- 痔疮的健康教育课件
- 优甲乐(左甲状腺素钠片)健康教育
- 肝脏弥漫性病变超声诊断与检查规范
- 风力发电税务培训课件
- 2025年长沙市中考物理试卷真题(含答案)
- 建筑工地驻场人员管理办法及流程
- 检验科生化培训课件
- 配电类“两种人”题库(2025年3月修编)改
- 建设工程管理的毕业论文
- 2025年全国工会系统经审业务技能大赛知识总题库(1800题)-中部分
- 中国工笔花鸟画技法课件
评论
0/150
提交评论