1、简介

本学生成绩管理系统具有录入学生成绩、查询学生成绩、修改学生成绩、录入老师信息、修改密码五个功能。 此系统可以实现学生成绩管理的一些基本操作。

1.1各模块功能简介

录入成绩
输入学生的学号、姓名、性别、出生年月以及三个科目的成绩(高等数学、体育与健康、Java课程),并将其保存在建立好的数据库中。

查询成绩
进入该模块后,输入想要查询成绩的学生姓名,即可在数据库中检索该学生 的成绩信息并输出其各科成绩。

录入老师信息
输入老师的工号、姓名、年龄、家庭地址以及教授科目,即可将老师的基本信息保存在建立好的数据库中。

修改密码
管理员、老师和学生都可以在登录自己的账号后点击修改密码,输入新密码后即可修改密码。

2、程序设计

JAVA中一张成绩表一张学生表如何把成绩赋值给学生表 java学生成绩录入_java

数据库表的设计

数据库共有三个表,一个存储学生信息以及账号密码、一个负责存储教师信息以及账号密码,另有一个管理员表。

建表sql语句

CREATE TABLE `student` (
  `account` varchar(20) NOT NULL COMMENT '账号',
  `name` varchar(20) DEFAULT NULL COMMENT '姓名',
  `password` varchar(20) DEFAULT NULL COMMENT '密码',
  `proj1` varchar(20) DEFAULT '0' COMMENT '高等数据',
  `proj2` varchar(20) DEFAULT '0' COMMENT '数据结构',
  `proj3` varchar(20) DEFAULT '0' COMMENT 'java课程',
  `sex` varchar(20) DEFAULT NULL,
  `year` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`account`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

3、部分源代码

管理员管理学生界面及功能

package com.manage.jpan;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.management.modelmbean.ModelMBean;
import javax.naming.InitialContext;
import javax.security.auth.login.AccountException;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.xml.crypto.Data;

import com.mysqld.Mysqld;
import com.tools.Table;
import com.tools.Tools;

public class StudentMan extends JPanel{
	
	int WIDTH;
	int HEIGH;
	public StudentMan(int width,int heigh) {
		this.WIDTH=width;
		this.HEIGH=heigh;
		init();
	}
	void init() {
		this.setPreferredSize(new Dimension(WIDTH,HEIGH));
		
		Box boxHBox=Box.createVerticalBox();
		this.add(boxHBox);//建立垂直盒子
		
		Box box=Box.createHorizontalBox();//设置水平资x
		boxHBox.add(box);
		
		inil("学号",box);
		JTextField jTextField =init1(6,box);
		//inil("密码",box);
		//JTextField jTextField1 =init1(12,box);
		inil("姓名",box);
		JTextField jTextField2 =init1(6,box);
		inil("出生年月",box);
		JTextField jTextField7 =init1(6,box);
		inil("性别",box);
		JTextField jTextField8 =init1(6,box);
		inil("高等数学",box);
		JTextField jTextField3 =init1(6,box);
		
		Box box1=Box.createHorizontalBox();//设置水平资格
		boxHBox.add(Box.createVerticalStrut(20));
		boxHBox.add(box1);
		inil("体育与健康",box1);
		JTextField jTextField4 =init1(6,box1);
		inil("java课程",box1);
		JTextField jTextField5 =init1(6,box1);
		
		box1.add(jTextField5);
		box1.add(box.createHorizontalStrut(200));
		
		Box box2=Box.createHorizontalBox();//设置水平资格
		boxHBox.add(Box.createVerticalStrut(20));
		boxHBox.add(box2);
		
		inil("条件学号",box2);
		JTextField jTextField6 =init1(6,box2);
		inil("条件姓名",box2);
		JTextField jTextField9 =init1(6,box2);
		
		JButton jButton=new JButton("增加学生");
		box2.add(jButton);
		box2.add(Box.createHorizontalStrut(20));
		
		JButton jButton1=new JButton("删除学生");
		box2.add(jButton1);
		box2.add(Box.createHorizontalStrut(20));
		
		
		JButton jButton2=new JButton("更改学生");
		box2.add(jButton2);
		box2.add(Box.createHorizontalStrut(20));
		
		
		JButton jButton3=new JButton("查找学生");
		box2.add(jButton3);
		box2.add(Box.createHorizontalStrut(20));
		
		
		
		//____________________________________________________________________
		Object columns[] ={"学号","姓名","高等数学","体育与健康","java课程","性别","出生年月"};
		Table t1Table=new Table(columns);//设置标题
		JTable table = t1Table.getTables();//获取表格
		JScrollPane JS = t1Table.getJScrollPane();//获取表格 滚动条
		DefaultTableModel model = t1Table.getModel();//获取表格控制
		JS.setPreferredSize(new Dimension(WIDTH-40,580));//设置整个滚动条窗口的大小
		this.add(JS);
		
		//__________________________________________________________________________________
		//增加老师
		jButton.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//增加老师
				if(jTextField.getText().equals("")) {
					Tools.messageWindows("请输入学号");
				}else {
					//向账号里面添加账号和密码
					
					String data[]= {
							jTextField.getText(),//账号
							jTextField2.getText(),//姓名
							"12345678",//密码
							jTextField3.getText(),//高等数学
							jTextField4.getText(),//数据结构
							jTextField5.getText(),//java
							jTextField7.getText(),//出生
							jTextField8.getText()//性别
									
					};
				String string="insert into student values(?,?,?,?,?,?,?,?)";
				int n=	Mysqld.upDate(string, data);
				if(n==1) {
					Tools.messageWindows("添加成功");
				}
				if(n==0) {
					Tools.messageWindows("添加失败,请检查输入内容");
				}
				if(n==-1) {
					Tools.messageWindows("添加失败,学号重复");
				}
					
					
				}
			}
		});
		//删除
		jButton1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//
				if(jTextField6.getText().equals("")) {
					Tools.messageWindows("请输入条件学号");
				}else {
					String string="delete from student where student.account=?";
					String data[]= {jTextField6.getText()};
					int n=	Mysqld.upDate(string, data);
					if(n==1) {
						Tools.messageWindows("删除成功");
					}
					if(n==0) {
						Tools.messageWindows("删除失败,请检查输学号");
					}
					if(n==-1) {
						Tools.messageWindows("删除失败,请检查输学号");
					}
				}
			}
		});
		//更改
		jButton2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(jTextField6.getText().equals("")) {
					Tools.messageWindows("请输入条件学号");
				}else {
					
					String string="update student set  account=?,name=?,proj1=?,proj2=?,proj3=?,sex=?,year=? where account=?";
					String data[]= {
							jTextField.getText(),//账号
						
							jTextField2.getText(),//姓名
							jTextField3.getText(),//年纪
							jTextField4.getText(),//高等数据
							jTextField5.getText(),//体育与健康
							jTextField6.getText(),//java
							jTextField7.getText(),//出生
							jTextField8.getText()//性别
							
							
					};
				
				int n=	Mysqld.upDate(string, data);
				if(n==1) {
					Tools.messageWindows("更改成功");
				}
				if(n==0) {
					Tools.messageWindows("更改失败,请检查条件学号");
				}
				if(n==-1) {
					Tools.messageWindows("更改失败,请检查条件学号");
				}
					
					
					
				}
			}
		});
		
		//查找
		jButton3.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				
				//如果学号和姓名都空就全显示
				if(jTextField6.getText().equals("")&&jTextField9.getText().equals("")) {
					
			
				//将数据添加到表格当中
				Tools.setTableSize(table, WIDTH, Tools.addDataTable(Mysqld.QueryData("select account,name,proj1,proj2,proj3,sex,year from student", null), model,7 ));
					
				//如果学号不为空
				}else if(jTextField6.getText()!=null&&jTextField9.getText().equals("")){
					String data[]= {jTextField6.getText()};
					Tools.setTableSize(table, WIDTH, Tools.addDataTable(Mysqld.QueryData("select account,name,proj1,proj2,proj3,sex,year from student where account=?",  data), model,7));
				ResultSet rs = Mysqld.QueryData("select account,name,proj1,proj2,proj3,sex,year from student where account=?",  data);
				try {
					while(rs.next()) {
						//向文本写入数据
						jTextField.setText(rs.getString(1));
						jTextField2.setText(rs.getString(2));
						jTextField3.setText(rs.getString(3));
						jTextField4.setText(rs.getString(4));
						jTextField5.setText(rs.getString(5));
						jTextField7.setText(rs.getString(7));
						jTextField8.setText(rs.getString(8));
					}
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
					
				}
				//如果模糊查询名字(未实现,仍为完整的查找)
				else if(jTextField6.getText().equals("")&&jTextField9.getText()!=null){
					String data[]= {jTextField9.getText()};
					Tools.setTableSize(table, WIDTH, Tools.addDataTable(Mysqld.QueryData("select account,name,proj1,proj2,proj3,sex,year from student where name=?",  data), model,7));
				ResultSet rs = Mysqld.QueryData("select account,name,proj1,proj2,proj3,sex,year from student where name=?",  data);
				try {
					while(rs.next()) {
						//向文本写入数据
						jTextField.setText(rs.getString(1));
						jTextField2.setText(rs.getString(2));
						jTextField3.setText(rs.getString(3));
						jTextField4.setText(rs.getString(4));
						jTextField5.setText(rs.getString(5));
						jTextField7.setText(rs.getString(7));
						jTextField8.setText(rs.getString(8));
					}
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
					
				}
				
			}
		});
		
		
		
	}
	//初始化标签与文本
	void inil(String sr,Box box) {
		JLabel jLabel=new JLabel(sr);
		
		box.add(jLabel);
		box.add(Box.createHorizontalStrut(20));
	}
	JTextField init1(int h,Box box) {
		
		JTextField jTextField=new JTextField(h);
		box.add(jTextField);
		box.add(Box.createHorizontalStrut(20));
		return jTextField;
	}
	
	
	
}

管理员管理老师界面及功能

package com.manage.jpan;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.management.modelmbean.ModelMBean;
import javax.naming.InitialContext;
import javax.security.auth.login.AccountException;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.xml.crypto.Data;

import com.mysqld.Mysqld;
import com.tools.Table;
import com.tools.Tools;

public class TeacherMan extends JPanel{
	
	int WIDTH;
	int HEIGH;
	public TeacherMan(int width,int heigh) {
		this.WIDTH=width;
		this.HEIGH=heigh;
		init();
	}
	void init() {
		this.setPreferredSize(new Dimension(WIDTH,HEIGH));
		
		Box boxHBox=Box.createVerticalBox();
		this.add(boxHBox);//建立垂直盒子
		
		Box box=Box.createHorizontalBox();//设置水平资格
		boxHBox.add(box);
		
		inil("工号",box);
		JTextField jTextField =init1(12,box);
		//inil("密码",box);
		//JTextField jTextField1 =init1(12,box);
		inil("姓名",box);
		JTextField jTextField2 =init1(12,box);
		inil("年纪",box);
		JTextField jTextField3 =init1(12,box);
		
		Box box1=Box.createHorizontalBox();//设置水平资格
		boxHBox.add(Box.createVerticalStrut(20));
		boxHBox.add(box1);
		inil("家庭地址",box1);
		JTextField jTextField4 =init1(12,box1);
		inil("授课科目",box1);
		JTextField jTextField5 =init1(12,box1);
		
		box1.add(jTextField5);
		box1.add(box.createHorizontalStrut(200));
		
		Box box2=Box.createHorizontalBox();//设置水平资格
		boxHBox.add(Box.createVerticalStrut(20));
		boxHBox.add(box2);
		
		inil("条件工号",box2);
		JTextField jTextField6 =init1(12,box2);
		
		JButton jButton=new JButton("增加老师");
		box2.add(jButton);
		box2.add(Box.createHorizontalStrut(20));
		
		JButton jButton1=new JButton("删除老师");
		box2.add(jButton1);
		box2.add(Box.createHorizontalStrut(20));
		
		
		JButton jButton2=new JButton("更改老师");
		box2.add(jButton2);
		box2.add(Box.createHorizontalStrut(20));
		
		
		JButton jButton3=new JButton("查找老师");
		box2.add(jButton3);
		box2.add(Box.createHorizontalStrut(20));
		
		
		
		//____________________________________________________________________
		Object columns[] ={"工号","姓名","年纪","家庭地址","教学科目"};
		Table t1Table=new Table(columns);//设置标题
		JTable table = t1Table.getTables();//获取表格
		JScrollPane JS = t1Table.getJScrollPane();//获取表格 滚动条
		DefaultTableModel model = t1Table.getModel();//获取表格控制
		JS.setPreferredSize(new Dimension(WIDTH-40,580));//设置整个滚动条窗口的大小
		this.add(JS);
		
		//__________________________________________________________________________________
		//增加老师
		jButton.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//增加老师
				if(jTextField.getText().equals("")) {
					Tools.messageWindows("请输入工号");
				}else {
					//向账号里面添加账号和密码
					
					String data[]= {
							jTextField.getText(),//账号
							jTextField2.getText(),//姓名
							"12345678",//密码
							
							jTextField3.getText(),//年纪
							jTextField4.getText(),//家庭住址
							jTextField5.getText()//授课科目
							
							
							
					};
				String string="insert into teacher values(?,?,?,?,?,?)";
				int n=	Mysqld.upDate(string, data);
				if(n==1) {
					Tools.messageWindows("添加成功");
				}
				if(n==0) {
					Tools.messageWindows("添加失败,请检查输入内容");
				}
				if(n==-1) {
					Tools.messageWindows("添加失败,工号重复");
				}
					
					
				}
			}
		});
		//删除
		jButton1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//
				if(jTextField6.getText().equals("")) {
					Tools.messageWindows("请输入条件工号");
				}else {
					String string="delete from teacher where teacher.account=?";
					String data[]= {jTextField6.getText()};
					int n=	Mysqld.upDate(string, data);
					if(n==1) {
						Tools.messageWindows("删除成功");
					}
					if(n==0) {
						Tools.messageWindows("删除失败,请检查输工号");
					}
					if(n==-1) {
						Tools.messageWindows("删除失败,请检查输工号");
					}
				}
			}
		});
		//更改
		jButton2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(jTextField6.getText().equals("")) {
					Tools.messageWindows("请输入条件工号");
				}else {
					
					String string="update teacher set  account=?,name=?,age=?,address=?,project=? where account=?";
					String data[]= {
							jTextField.getText(),//账号
			
							jTextField2.getText(),//姓名
							jTextField3.getText(),//年纪
							jTextField4.getText(),//家庭住址
							jTextField5.getText(),//授课科目
							jTextField6.getText()//授课科目
							
							
					};
				
				int n=	Mysqld.upDate(string, data);
				if(n==1) {
					Tools.messageWindows("更改成功");
				}
				if(n==0) {
					Tools.messageWindows("更改失败,请检查条件工号");
				}
				if(n==-1) {
					Tools.messageWindows("更改失败,请检查条件工号");
				}
					
					
					
				}
			}
		});
		
		//查找
		jButton3.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				
				if(jTextField6.getText().equals("")) {
					
			
				//将数据添加到表格当中
				Tools.setTableSize(table, WIDTH, Tools.addDataTable(Mysqld.QueryData("select account,name,age,address,project from teacher", null), model,5 ));
					
				}else {
					String data[]= {jTextField6.getText()};
					Tools.setTableSize(table, WIDTH, Tools.addDataTable(Mysqld.QueryData("select account,name,age,address,project from teacher where account=?",  data), model,5 ));
				ResultSet rs = Mysqld.QueryData("select account,name,age,address,project from teacher where account=?",  data);
				try {
					while(rs.next()) {
						//向文本写入数据
						jTextField.setText(rs.getString(1));
						jTextField2.setText(rs.getString(2));
						jTextField3.setText(rs.getString(3));
						jTextField4.setText(rs.getString(4));
						jTextField5.setText(rs.getString(5));
					}
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
					
				}
			}
		});
		
		
		
	}
	//初始化标签与文本
	void inil(String sr,Box box) {
		JLabel jLabel=new JLabel(sr);
		
		box.add(jLabel);
		box.add(Box.createHorizontalStrut(20));
	}
	JTextField init1(int h,Box box) {
		
		JTextField jTextField=new JTextField(h);
		box.add(jTextField);
		box.add(Box.createHorizontalStrut(20));
		return jTextField;
	}
	
	
	
}

修改密码

package com.base;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.util.ArrayList;

import javax.naming.InitialContext;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.mysqld.Mysqld;
import com.tools.Tools;

public class ChangOwnPssword extends JPanel{

	
		int WIDTH;
		int HEIGH;
		String account;
		String pow;
	public  ChangOwnPssword (int width,int heigh,String account,String pow){
		this.WIDTH=width;
		this.HEIGH=heigh;
		this.account=account;
		this.pow=pow;
		
		init();
	}
	void init() {
		this.setPreferredSize(new Dimension(WIDTH,HEIGH));
		
		JLabel jLabel=new JLabel("新密码");
		JTextField jTextField =new JTextField(12);
		JButton jButton =new JButton ("修改密码");
		this.add(jLabel);
		this.add(jTextField);
		this.add(jButton);
		
		jButton.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				
				
				
				if(jTextField.getText().equals("")) {
					Tools.messageWindows("请输入密码");
				}else {
					
					int n = 0;
					if(pow.equals("1")) {
						//如果为1则是管理员
						String string="update users_man set password=? where account=?";
						String data[]= {jTextField.getText(),account};
						n=Mysqld.upDate(string, data);
						//成功返回1
						
					}
					if(pow.equals("2")) {
						//如果为1则是管理员
						String string="update teacher set password=? where account=?";
						String data[]= {jTextField.getText(),account};
						n=Mysqld.upDate(string, data);
					}
					if(pow.equals("3")) {
						//如果为1则是管理员
						String string="update student set password=? where account=?";
						String data[]= {jTextField.getText(),account};
						n=Mysqld.upDate(string, data);
					}
					if(n==1) {
						//更改成功
						Tools.messageWindows("密码更改成功");
						
					}
					if(n==0||n==-1) {
						//更改成功
						Tools.messageWindows("密码更改失败");
						
					}
					
				}
				
			
			}
		});
		
		
	}
}

4、功能展示

管理员界面

JAVA中一张成绩表一张学生表如何把成绩赋值给学生表 java学生成绩录入_数据库_02

 老师界面

JAVA中一张成绩表一张学生表如何把成绩赋值给学生表 java学生成绩录入_数据库_03

学生界面 

JAVA中一张成绩表一张学生表如何把成绩赋值给学生表 java学生成绩录入_java_04

修改密码

JAVA中一张成绩表一张学生表如何把成绩赋值给学生表 java学生成绩录入_eclipse_05

五、gitee提交记录

JAVA中一张成绩表一张学生表如何把成绩赋值给学生表 java学生成绩录入_eclipse_06