基于Struts开发——学生成绩管理系统

 

实例一:

学生查询

 

 

 

删除:

修改:

实例二:学生管理:

查询

实例三 成绩管理:

成绩录入

详细信息

 

开发工具:MyEclipse8.5+MySQL+Tomcat7.0

 

项目整体结构:

 

数据库设计:

课程表:

CREATE TABLE `kcb` (
  `KCH` char(5) NOT NULL COMMENT '课程号',
  `KCM` char(16) DEFAULT NULL COMMENT '课程名',
  `KKXQ` decimal(5,0) DEFAULT NULL COMMENT '开课学期',
  `XS` decimal(5,0) DEFAULT NULL COMMENT '学时',
  `XF` decimal(5,0) DEFAULT NULL COMMENT '学分',
  PRIMARY KEY (`KCH`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

学生表:

CREATE TABLE `xsb` (
  `XH` char(10) NOT NULL DEFAULT '无' COMMENT '学号',
  `XM` char(10) DEFAULT '无' COMMENT '姓名',
  `XB` char(5) DEFAULT '男' COMMENT '性别',
  `CSSJ` date DEFAULT NULL COMMENT '出生时间',
  `ZY` char(12) DEFAULT '无' COMMENT '专业',
  `ZXF` decimal(10,0) DEFAULT '0' COMMENT '总学分',
  `BZ` varchar(200) DEFAULT '无' COMMENT '备注',
  PRIMARY KEY (`XH`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

成绩表:

CREATE TABLE `cjb` (
  `XH` char(6) NOT NULL COMMENT '学号',
  `KCH` char(6) NOT NULL COMMENT '课程号',
  `CJ` decimal(4,0) DEFAULT NULL COMMENT '成绩',
  PRIMARY KEY (`XH`,`KCH`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

学生照片:

CREATE TABLE `xszp` (
  `XH` char(6) NOT NULL COMMENT '学号',
  `ZP` blob COMMENT '照片',
  PRIMARY KEY (`XH`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

视图:

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `xs_kc_cj` AS
select `xsb`.`XH` AS `XH`, `xsb`.`XM` AS `XM`, `xsb`.`ZY` AS `ZY`, `kcb`.`KCH` AS `KCH`, `kcb`.`KCM` AS `KCM`, `cjb`.`CJ` AS `CJ` from ((`xsb` join `kcb`) left join `cjb` on (((`cjb`.`XH` = `xsb`.`XH`) and (`cjb`.`KCH` = `kcb`.`KCH`))))

存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `CJA_Data`(IN in_xh INT,IN in_kch INT,IN in_cj int)
BEGIN 
 DECLARE in_count numeric;
 DECLARE  in_cjb_cj numeric;
 DECLARE  in_xf numeric;
 set  in_xf =0;
 set in_cjb_cj=0;
 SELECT XF INTO in_xf FROM KCB WHERE KCH=in_kch;
 SELECT COUNT(*) INTO in_count FROM cjb WHERE XH=in_xh AND KCH=in_kch;
 IF in_count>0 THEN
 SELECT CJ INTO in_cjb_cj FROM CJB WHERE XH=in_xh AND KCH=in_kch;
 DELETE FROM CJB WHERE XH=in_xh AND KCH=in_kch;
 IF in_cjb_cj>=60 THEN
 UPDATE XSB SET ZXF=ZXF-in_xf WHERE XH=in_xh;
 END IF;
 END IF;
 IF in_cj<>-1 THEN
 INSERT INTO CJB VALUES(in_xh,in_kch,in_cj);
 IF in_cj>=60 THEN
 UPDATE XSB SET ZXF=ZXF+in_xf WHERE XH=in_xh;
 END IF;
 END IF;
 COMMIT;
 END

 

Struts Jar包:

 

struts.properties日志文件:

struts.i18n.encoding=UTF-8

struts.devMode = true

struts.action.extension=action,,

struts.configuration.xml.reload = true

 Student实体类:

package org.vo;

 

import java.io.Serializable;

import java.util.Date;

 

public class Student implements Serializable {

     private String xh;

     private String xm;

     private String xb;

     private Date cssj;

     private String zy;

     private int zxf;

     private String bz;

     private byte[] zp;

     

public Student() {

 

// TODO Auto-generated constructor stub

}

public Student(String xh, String xm, String xb, Date cssj, String zy,

int zxf, String bz, byte[] zp) {

super();

this.xh = xh;

this.xm = xm;

this.xb = xb;

this.cssj = cssj;

this.zy = zy;

this.zxf = zxf;

this.bz = bz;

this.zp = zp;

}

public String getXh() {

return xh;

}

public void setXh(String xh) {

this.xh = xh;

}

public String getXm() {

return xm;

}

public void setXm(String xm) {

this.xm = xm;

}

public String getXb() {

return xb;

}

public void setXb(String xb) {

this.xb = xb;

}

public Date getCssj() {

return cssj;

}

public void setCssj(Date cssj) {

this.cssj = cssj;

}

public String getZy() {

return zy;

}

public void setZy(String zy) {

this.zy = zy;

}

public int getZxf() {

return zxf;

}

public void setZxf(int zxf) {

this.zxf = zxf;

}

public String getBz() {

return bz;

}

public void setBz(String bz) {

this.bz = bz;

}

public byte[] getZp() {

return zp;

}

public void setZp(byte[] zp) {

this.zp = zp;

}    

}

Course课程实体类:

 

package org.vo;

 

import java.io.Serializable;

 

public class Course implements Serializable {

private String kch;//课程号

private String kcm;//课程名

private int kkxq;//开课学期

private int xs;//学时

private int xf;//学分

public Course() {

 

// TODO Auto-generated constructor stub

}

public Course(String kch, String kcm, int kkxq, int xs, int xf) {

 

this.kch = kch;

this.kcm = kcm;

this.kkxq = kkxq;

this.xs = xs;

this.xf = xf;

}

public String getKch() {

return kch;

}

public void setKch(String kch) {

this.kch = kch;

}

public String getKcm() {

return kcm;

}

public void setKcm(String kcm) {

this.kcm = kcm;

}

public int getKkxq() {

return kkxq;

}

public void setKkxq(int kkxq) {

this.kkxq = kkxq;

}

public int getXs() {

return xs;

}

public void setXs(int xs) {

this.xs = xs;

}

public int getXf() {

return xf;

}

public void setXf(int xf) {

this.xf = xf;

}

 

}

Score实体类:

package org.vo;

 

import java.io.Serializable;

 

public class Score implements Serializable {

private String xh;// 学号

private String kch;// 课程号

private int cj;// 成绩

 

public Score() {

 

// TODO Auto-generated constructor stub

}

 

public Score(String xh, String kch, int cj) {

 

this.xh = xh;

this.kch = kch;

this.cj = cj;

}

 

public String getXh() {

return xh;

}

 

public void setXh(String xh) {

this.xh = xh;

}

 

public String getKch() {

return kch;

}

 

public void setKch(String kch) {

this.kch = kch;

}

 

public int getCj() {

return cj;

}

 

public void setCj(int cj) {

this.cj = cj;

}

 

}

DBConn数据连接驱动:

package org.jdbc;

 

import java.sql.DriverManager;

 

import com.mysql.jdbc.Connection;

 

public class DBConn {

 private Connection conn=null;

 public DBConn(){

 this.conn=this.getConnection();

 }

 public Connection getConnection(){

 

 try{

 Class.forName("org.gjt.mm.mysql.Driver");

 conn=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/xscj", "root", "1234");

 

 }

 catch(Exception e){

 e.printStackTrace();

 }

 return conn;

 

     }

   public Connection getConn(){

 return conn;

   }

}

剩余代码略...................点此处有————详细代码

 

学生成绩管理系统是一个学校不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该为用户提供充足的信息和快捷的查询手段。当前成教学院没有一个完善的成绩信息管理平台,计算机使用主要基于Microsoft Office,不能发挥有效的作用。而且随着我国教育改革的不断深入以及自学教育的不断扩招,参加考试的人越来越多,考试科目的多样化,使得成教学院对自学考试成绩的管理越趋繁琐、复杂,工作业务繁杂,工作量大,这种传统的学生管理模式已经暴露出种种弊端:难以统一调配和处理,效率极低,缺乏科学性以及合理性。随着计算机应用的普及与深入,利用计算机能够对所有自学考试成绩进行统一管理,并进行分析,大大减少教学秘书的工作量,提高工作效率,为教学办公带来了极大的方便。通过操作手册,使用者可以了解本软件的基本工作原理及使用说明。操作人员只需输入一些简单的汉字、数字,就可以存储、查找、修改、打印学生成绩信息等。本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化、达到提高学生成绩管理效率的目的,本系统本着实用性、通用、开放和安全的原则,使数据库开发软件开发制作,实现了学生信息管理、课程信息管理、学生成绩管理、成绩查询等功能。该设计方法易于推广至其它信息化管理系统的设计,充分利用计算机作为辅助工具,实现学生考试成绩从传统的手工管理到计算机管理,对提高管理效率和节约大量的人力、物力有一定的推动作用。本系统一切从实际出发,充分考虑了成绩的内部管理、信息交流等方面的复杂需求,实现成绩的有效管理,真正为学生成绩管理提供一个电子平台。 因此为了充分利用成教学院现有的计算机硬件资源,做好 学生成绩管理工作,提高办事效率,实现全面的、相对集中的办公自动化,开发本系统就成了当务之急,其目的主要为了彻底改变这种繁杂的管理模式,实现全面的、相对集中的、智能化的信息综合管理,为成教学院的教学管理工作带来方便。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值