java学生成绩管理系统代码
JAVA学生成绩管理系统代码import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*; import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.table.JTableHeader; import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*;class AddForm extends JFrame implements ActionListener{JLabel labName=new JLabel("学号:");JLabel labDate=new JLabel("出生日期:");JLabel labScore=new JLabel("成绩:");JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtScore=new JTextField(20);JButton btnOk=new JButton("确定");JButton btnClear=new JButton("清空");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();Connection cnn;Statement stm;ResultSet rs;AddForm(){super("添加数据");setSize(400,300);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder());pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnOk);pan4.add(btnClear);pan.setLayout(new GridLayout(3,1));pan.add(pan1);pan.add(pan2);pan.add(pan3);getContentPane().add(pan,"Center"); getContentPane().add(pan4,"South");btnOk.addActionListener(this);btnClear.addActionListener(this);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnClear){txtName.setText("");txtDate.setText("");txtScore.setText("");txtName.requestFocus();}else if(ae.getSource()==btnOk){String strName=txtName.getText();String strDate=txtDate.getText();String strScore=txtScore.getText();if(strName.equals(""))JOptionPane.showMessageDialog(this,"学号不能为空~","警告",JOptionPane.ERROR_MESSAGE); else if(strDate.equals(""))JOptionPane.showMessageDialog(this,"出生日期不能为空~","警告",JOptionPane.ERROR_MESSAGE); els JOptionPane.showMessageDialog(this,"成绩不能为空~","警告",JOptionPane.ERROR_MESSAGE); else{try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch (ClassNotFoundException ex) {ex.printStackTrace();}try {cnn=DriverManager.getConnection("Jdbc:Odbc:MyDB");stm=cnn.createStatement();} catch (SQLException ex) {ex.printStackTrace();}try{rs = stm.executeQuery("select * from 成绩表 where 学号='" +strName + "'");if (rs.next()) {JOptionPane.showMessageDialog(this,"对不起,该成绩信息已存在~");} else //否则插入记录{//System.out.println("insert into 成绩表 values('"+strName+"',#"+strDate+"#,"+strScore+")"); stm.executeUpdate("insert into 成绩表 values('"+strName+"','"+strDate+"',"+strScore+")"); JOptionPane.showMessageDialog(null,"记录已经成功添加~");}//断开连接stm.close();cnn.close();} catch (SQLException ex) {System.out.println("SQLException:" + ex.getMessage());}}}}public static void main(String[] args) {new AddForm();}}class BrowseForm extends JFrame {String []str={"学号","出生日期","成绩"};Object[][] data;JTable table;JTableHeader head;JScrollPane jsp;Connection conn;Statement stmt;ResultSet rs;BrowseForm(){super("浏览数据");setSize(400,300);int i=0,j=0;int row;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:MyDB","",""); stmt=conn.createStatement();rs=stmt.executeQuery("select COUNT(*) as a from 成绩表"); rs.next();row=rs.getInt("a");rs.close();data=new Object[row][3];rs=stmt.executeQuery("select * from 成绩表");while(rs.next()){data[i][j++]=rs.getString("学号");data[i][j++]=rs.getDate("出生日期");data[i][j]=new Integer(rs.getInt("成绩"));i++;j=0;}table=new JTable(data,str);head=table.getTableHeader();jsp=new JScrollPane(table);getContentPane().add(head,"North"); getContentPane().add(jsp,"Center");rs.close();stmt.close();}catch(Exception e){e.printStackTrace();}setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setVisible(true);}public static void main(String[] args) {new BrowseForm();}}class DeleteForm extends JFrame implements ActionListener{ JLabel labName=new JLabel("学号:");JLabel labDate=new JLabel("出生日期:");JLabel labScore=new JLabel("成绩:");JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtScore=new JTextField(20);JButton btnDel=new JButton("删除");JButton btnCancel=new JButton("取消");JButton btnQuery=new JButton("查询");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();Connection cnn;Statement stm;ResultSet rs;DeleteForm(){super("删除数据");setSize(400,300);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder());pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnQuery);pan4.add(btnDel);pan4.add(btnCancel);pan.setLayout(new GridLayout(3,1));pan.add(pan1);pan.add(pan2);pan.add(pan3);getContentPane().add(pan,"Center"); getContentPane().add(pan4,"South");btnQuery.addActionListener(this);btnDel.addActionListener(this);btnCancel.addActionListener(this);btnDel.setEnabled(false);txtDate.setEditable(false);txtScore.setEditable(false);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){/* if(ae.getSource()==btnCancel){try {if(stm!=null)stm.close();if(cnn!=null)cnn.close();} catch (SQLException ex) {ex.printStackTrace();}this.dispose();} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");cnn=DriverManager.getConnection("jdbc:odbc:MyDB","",""); stm=cnn.createStatement();rs=stm.executeQuery("select * from 成绩表 where 学号='"+txtName.getText()+"'");if(rs.next()){txtName.setText(rs.getString("学号"));txtDate.setText(rs.getDate("出生日期").toString());txtScore.setText(new Integer(rs.getInt("成绩")).toString ());btnDel.setEnabled(true);}else{JOption btnDel.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");}}catch(Exception e){e.printStackTrace();}}else if(ae.getSource()==btnDel){try {if(JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog (this,"确定要删除该记录,","信息",JOptionPane.YES_NO_OPTION)){ stm.executeUpdate("delete from 成绩表 where 学号 ='"+txtName.getText()+"'"); btnDel.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");}}catch (SQLException ex) {ex.printStackTrace();}}*/}public static void main(String[] args) {new DeleteForm();}}class LoginForm extends JFrame implements ActionListener{ JLabel labName=new JLabel("姓名");JLabel labPwd=new JLabel("密码");JTextField txtName=new JTextField(20); JPasswordField txtPwd=new JPasswordField(20); JButton btnOk=new JButton("确定");JButton btnCancel=new JButton("取消");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();Connection cnn;Statement stm;ResultSet rs;LoginForm(){super("用户登录");setSize(300,200);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createTitledBorder("登录")); pan.setLayout(new GridLayout(2,1));pan1.add(labName);pan1.add(txtName);pan2.add(labPwd);pan2.add(txtPwd);pan.add(pan1);pan.add(pan2);pan3.add(btnOk);pan3.add(btnCancel);pan4.add(pan);getContentPane().add(pan4,"Center"); getContentPane().add(pan3,"South");txtName.addActionListener(this);txtPwd.addActionListener(this);btnOk.addActionListener(this);btnCancel.addActionListener(this);setVisible(true);try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch (ClassNotFoundException ex) {ex.printStackTrace();}try {cnn=DriverManager.getConnection("Jdbc:Odbc:MyDB");stm=cnn.createStatement();} catch (SQLException ex) {ex.printStackTrace();}txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==txtName)txtPwd.requestFocus();else if(ae.getSource()==txtPwd)btnOk.requestFocus();els txtName.setText("");txtPwd.setText("");txtName.requestFocus();}else if(ae.getSource()==btnOk){String str="select * from 用户表 where 用户名='"+txtName.getText()+"'and 密码='"+newString(txtPwd.getPassword())+"'";try {rs=stm.executeQuery(str);} catch (SQLException ex) {ex.printStackTrace();}try {if(rs.next()){JOptionPane.showMessageDialog(this,"验证通过!","信息",RMATION_MESSAGE);rs.close();stm.close();cnn.close();new MainForm().setVisible(true);this.dispose();}else{JOptionPane.showMessageDialog(this,"用户名或密码不正确!","信息",RMATION_MESSAGE);}} catch (SQLException ex) {ex.printStackTrace();}}}public static void main(String[] args) {new LoginForm();}}class ModifyForm extends JFrame implements ActionListener{JLabel labName=new JLabel("学号:");JLabel labDate=new JLabel("出生日期:");JLabel labScore=new JLabel("成绩:");JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtScore=new JTextField(20);JButton btnModify=new JButton("修改");JButton btnCancel=new JButton("取消");JButton btnQuery=new JButton("查询");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();Connection cnn;Statement stm;ResultSet rs;ModifyForm(){super("修改数据");setSize(400,300);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder());pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnQuery);pan4.add(btnModify);pan4.add(btnCancel);pan.setLayout(new GridLayout(3,1));pan.add(pan1);pan.add(pan2);pan.add(pan3);getContentPane().add(pan,"Center"); getContentPane().add(pan4,"South"); btnQuery.addActionListener(this); btnModify.addActionListener(this); btnCancel.addActionListener(this); btnModify.setEnabled(false);txtDate.setEditable(false);txtScore.setEditable(false);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnCancel){try {if(s stm.close();if(cnn!=null)cnn.close();} catch (SQLException ex) {ex.printStackTrace();}this.dispose();} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");cnn=DriverManager.getConnection("jdbc:odbc:MyDB","","");stm=cnn.createStatement();rs=stm.executeQuery("select * from 成绩表 where 学号='"+txtName.getText()+"'");if(rs.next()){txtName.setText(rs.getString("学号"));txtScore.setText(new Integer(rs.getInt("成绩")).toString());txtDate.setText(rs.getDate("出生日期").toString());btnModify.setEnabled(true);txtDate.setEditable(true);txtScore.setEditable(true);}else{JOptionPane.showMessageDialog(this,"不存在该记录~");btnModify.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");txtDate.setEditable(false);txtScore.setEditable(false);}}catch(Exception e){e.printStackTrace();}}else if(ae.getSource()==btnModify){try{System.out.println("Update 成绩表 set 出生日期=#"+txtDate.getText()+"#,成绩="+txtScore.getText()+" where 学号='"+txtName.getText()+"'");stm.executeUpdate("Update 成绩表 set 出生日期=#"+txtDate.getText()+"#,成绩="+txtScore.getText()+" where 学号='"+txtName.getText()+"'"); JOptionPane.showMessageDialog(this,"记录修改完毕~");btnModify.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");txtDate.setEditable(false);txtScore.setEditable(false);stm.close();cnn.close();}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {new ModifyForm();}}class NumberQueryForm extends JFrame implements ActionListener{JLabel labName=new JLabel("学号:");JLabel labDate=new JLabel("出生日期:");JLabel labScore=new JLabel("成绩:");JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtScore=new JTextField(20);JButton btnCancel=new JButton("取消");JButton btnQuery=new JButton("查询");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel() JPanel pan4=new JPanel(); Connection cnn;Statement stm;ResultSet rs;NumberQueryForm(){super("按学号查询");setSize(400,300);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder());pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnQuery);pan4.add(btnCancel);pan.setLayout(new GridLayout(3,1));pan.add(pan1);pan.add(pan2);pan.add(pan3);getContentPane().add(pan,"Center"); getContentPane().add(pan4,"South");btnQuery.addActionListener(this);btnCancel.addActionListener(this);txtDate.setEditable(false);txtScore.setEditable(false);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnCancel){try {if(stm!=null)stm.close();if(cnn!=null)cnn.close();} catch (SQLException ex) {ex.printStackTrace();}this.dispose();} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");cnn=DriverManager.getConnection("jdbc:odbc:MyDB","",""); stm=cnn.createStatement();rs=stm.executeQuery("select * from 成绩表 where 学号='"+txtName.getText()+"'"); if(rs.next()){txtName.setText(rs.getString("学号"));txtScore.setText(new Integer(rs.getInt("成绩")).toString());txtDate.setText(rs.getDate("出生日期").toString());}else{JOptionPane.showMessageDialog(this,"不存在该记录~");txtName.setText("");txtScore.setText("");txtDate.setText("");txtName.requestFocus();}}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {new NumberQueryForm();}}class ScoreQueryForm extends JFrame implements ActionListener{JLabel labScore=new JLabel("请输入成绩:");JTextField txtScore=new JTextField(10);JButton btnQuery=new JButton("查询");JPanel pan1=new JPanel();JPanel pan2=new JPanel();String []str={"学号","出生日期","成绩"};Object[][] data=new Object[10][3];JTable table=new JTable(data,str);JTableHeader head=table.getTableHeader(); JScrollPane jsp=new JScrollPane(table);Connection conn;Statement stmt;ResultSet rs;Sco super("按成绩查询");setSize(400,300);pan1.add(labScore);pan1.add(txtScore);pan1.add(btnQuery);getContentPane().add(pan1,"North");table=new JTable(data,str);pan2.setLayout(new BorderLayout());head=table.getTableHeader();jsp=new JScrollPane(table);pan2.add(head,"North");pan2.add(jsp,"Center");getContentPane().add(pan2,"Center");btnQuery.addActionListener(this); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setVisible(true);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnQuery){int i,j,row;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:MyDB","","");stmt=conn.createStatement();rs=stmt.executeQuery("select COUNT(*) as rowcount from 成绩表 where 成绩="+txtScore.getText()); rs.next();row=rs.getInt("rowcount");rs.close();data=new Object[row][3];rs=stmt.executeQuery("select * from 成绩表 where 成绩="+txtScore.getText());i=0;j=0;while(rs.next()){data[i][j++]=rs.getString("学号");data[i][j++]=rs.getDate("出生日期");data[i][j]=new Integer(rs.getInt("成绩"));i++;j=0;}pan2.removeAll();getContentPane().remove(pan2);table=new JTable(data,str);pan2.setLayout(new BorderLayout());head=table.getTableHeader();jsp=new JScrollPane(table);pan2.add(head,"North");pan2.add(jsp,"Center");getContentPane().add(pan2,"Center");this.validate();rs.close();stmt.close();conn.close();}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {new ScoreQueryForm();}}class MyPanel extends JPanel{Image img=Toolkit.getDefaultToolkit().getImage("c:/a.jpg"); public void paint(Graphics g){g.drawImage(img,0,0,this);}}class MainForm extends JFrame implements ActionListener{ JMenu mSystem=new JMenu("系统");JMenuItem mExit=new JMenuItem("退出");JMenu mOperate=new JMenu("数据操作");JMenuItem mAdd=new JMenuItem("添加"); JMenuItem mDel=new JMenuItem("删除"); JMenuItem mModify=new JMenuItem("修改"); JMenuItem mBrowse=new JMenuItem("浏览");JMenu mQuery=new JMenu("查询");JMenuItem mNumber=new JMenuItem("按学号查询"); JMenuItem mScore=n JMenu mHelp=new JMenu("帮助"); JMenuItem mAbout=new JMenuItem("关于"); JMenuBar mBar=new JMenuBar();MainForm(){super("学生成绩管理系统");setSize(700,630);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); mSystem.add(mExit);mOperate.add(mAdd);mOperate.add(mDel);mOperate.add(mModify);mOperate.add(mBrowse);mQuery.add(mNumber);mQuery.add(mScore);mHelp.add(mAbout);mBar.add(mSystem);mBar.add(mOperate);mBar.add(mQuery);mBar.add(mHelp);setJMenuBar(mBar);mExit.addActionListener(this);mAdd.addActionListener(this);mDel.addActionListener(this);mModify.addActionListener(this);mBrowse.addActionListener(this);mNumber.addActionListener(this);mScore.addActionListener(this);mAbout.addActionListener(this);setContentPane(new MyPanel());setVisible(true);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==mExit)System.exit(0);else if(ae.getSource()==mAbout)JOptionPane.showMessageDialog(this,"学生管理系统 V1.0\n\n重庆邮电大学计算机学院\n\n2011年11月","关于",RMATION_MESSAGE);else if(ae.getSource()==mAdd)new AddForm().setVisible(true);else if(ae.getSource()==mDel)new DeleteForm().setVisible(true);else if(ae.getSource()==mModify)new ModifyForm().setVisible(true);else if(ae.getSource()==mBrowse)new BrowseForm().setVisible(true);else if(ae.getSource()==mNumber) new NumberQueryForm().setVisible(true); else if(ae.getSource()==mScore)new ScoreQueryForm().setVisible(true); }public static void main(String[] args) { new MainForm();}}。
java编写学生学分管理系统设计与实现代码
java编写学生学分管理系统设计与实现代码学生学分管理系统是一款非常实用的软件,它可以帮助学生管理自己的课程、成绩和学分,让学生更好地了解自己的学习情况,提高学习成绩。
本文将详细介绍学生学分管理系统的设计与实现代码。
一、需求分析首先,我们需要进行需求分析,明确学生学分管理系统的功能。
(1)课程管理:学生可以通过该功能添加、修改、删除自己选择的课程信息,包括课程名称、授课教师、学分、考核方式等。
(2)成绩管理:学生可以通过该功能录入自己的成绩信息,并查看自己的历次考试成绩,以及对应的成绩单。
(3)学分管理:学生可以通过该功能查看自己已经取得的学分和还需取得的学分。
(4)用户管理:学生可以通过该功能修改自己的账号密码、个人信息等。
管理员可以添加、删除、修改学生的账号信息和个人信息。
二、系统设计经过需求分析,我们可以开始进行系统设计,设计思路如下:(1)数据库设计:设计一个学生信息表,包括学生的基本信息,如姓名、学号、所属学院、专业等,以及学生选修的课程信息和成绩信息。
(2)界面设计:设计一个简洁、直观的用户界面,方便学生进行操作。
界面需要包括主界面、添加课程界面、录入成绩界面、学分管理界面和用户管理界面等。
(3)功能设计:根据需求分析中的功能需求,设计相应的代码实现。
三、代码实现下面是学生学分管理系统的代码实现示例,为了简化代码,这里只展示了课程管理和成绩管理的代码:1. 课程管理代码// 添加课程信息public void addCourse(String courseName, String teacherName, double credit, String examType) {Course course = new Course(courseName, teacherName, credit, examType);// 将新添加的课程信息插入到数据库中db.insert(course);System.out.println("成功添加课程:" + courseName);}// 修改课程信息public void updateCourse(String courseName, String teacherName, double credit, String examType) {// 根据课程名称从数据库中查询课程信息Course course = db.queryCourseByName(courseName);course.setTeacherName(teacherName);course.setCredit(credit);course.setExamType(examType);// 更新课程信息到数据库中db.update(course);System.out.println("成功修改课程:" + courseName);}// 删除课程信息public void deleteCourse(String courseName) {// 根据课程名称从数据库中查询课程信息Course course = db.queryCourseByName(courseName);// 从数据库中删除课程信息db.delete(course);System.out.println("成功删除课程:" + courseName);}2. 成绩管理代码// 录入成绩public void enterScore(String courseName, double score) { // 根据课程名称查询课程信息Course course = db.queryCourseByName(courseName);// 查询当前学生信息Student student = db.queryStudentById(this.id);// 将成绩信息插入到数据库中Score scoreObj = new Score(student, course, score);db.insert(scoreObj);System.out.println("成功录入成绩,课程:" + courseName + " 成绩:" + score);}// 查询成绩单public void queryScoreSheet() {// 查询当前学生的成绩信息List<Score> scoreList =db.queryScoreByStudent(this.id);// 输出成绩单信息System.out.println("成绩单:");for (Score score : scoreList) {Course course = score.getCourse();System.out.println("课程名称:" +course.getCourseName() + " 成绩:" + score.getScore());}}四、总结以上就是学生学分管理系统的设计与实现过程,完整功能的代码请参考具体实现。
基于java的学生成绩管理系统的设计与实现
文章标题:基于Java的学生成绩管理系统的设计与实现一、引言学生成绩管理系统是学校管理系统中的重要组成部分,它可以帮助学校、老师和学生高效地管理和查询学生成绩信息。
基于Java的学生成绩管理系统的设计与实现是一个重要的课题,本文将从深度与广度两个角度来探讨这个主题。
二、学生成绩管理系统的基本要求学生成绩管理系统需要满足以下基本要求:1)能够实现学生信息的录入、修改和删除;2)能够实现课程信息的录入、修改和删除;3)能够实现成绩信息的录入、修改和删除;4)能够实现成绩的统计和排名功能;5)能够实现成绩的查询和导出功能。
三、基于Java的学生成绩管理系统的设计与实现1. 系统架构设计学生成绩管理系统可以采用三层架构设计,即用户界面层、业务逻辑层和数据访问层。
用户界面层负责与用户的交互,业务逻辑层负责处理业务逻辑,数据访问层负责与数据库进行交互。
2. 数据库设计数据库设计是学生成绩管理系统中的关键环节,需要设计学生信息表、课程信息表和成绩信息表,并建立它们之间的关联关系。
3. 功能模块设计学生成绩管理系统的功能模块包括学生信息管理、课程信息管理、成绩信息管理、成绩统计和排名以及成绩查询和导出功能。
四、基于Java的学生成绩管理系统的个人观点我认为基于Java的学生成绩管理系统的设计与实现不仅可以提高学校管理效率,也可以帮助老师更好地了解学生的学习情况,同时也能够让学生更方便地查询自己的成绩信息。
这个系统可以为学校管理和教学工作提供很大的便利,是非常值得推广和应用的。
五、总结与展望通过本文的探讨,我们深入了解了基于Java的学生成绩管理系统的设计与实现,从系统架构设计、数据库设计,功能模块设计等方面进行了全面的评估。
我们也共享了个人观点和理解。
希望本文能够为读者提供有价值的信息,同时也为学生成绩管理系统的推广应用提供一些借鉴和思路。
六、个人观点通过本次的撰写,我对基于Java的学生成绩管理系统的设计与实现有了更深入的了解,同时也对系统架构设计、数据库设计、功能模块设计等方面有了更全面的认识。
java学生成绩管理系统报告
Java学生成绩管理系统报告简介本文将介绍一个基于Java开发的学生成绩管理系统。
该系统旨在帮助学校和教师高效管理学生的成绩信息,包括录入、查询、统计和分析等功能。
开发环境和工具•Java编程语言•IntelliJ IDEA集成开发环境•MySQL数据库功能需求1. 学生信息管理•录入学生信息,包括学生姓名、学号、性别等基本信息。
•修改学生信息,如学号、班级等。
•删除学生信息。
2. 成绩录入和查询•录入学生的考试成绩,包括科目、分数、考试日期等。
•查询学生的考试成绩,可按照学生姓名、学号、科目等进行检索。
3. 成绩统计和分析•对学生的考试成绩进行统计,包括平均分、最高分、最低分等。
•根据科目、班级等条件进行成绩分析,生成成绩报表。
4. 数据备份与恢复•对学生信息和成绩数据进行备份,以防数据丢失或损坏。
•支持从备份中恢复数据。
数据库设计学生表(student)字段名类型备注学号int 主键姓名varchar(50)性别varchar(10)班级varchar(50)成绩表(score)字段名类型备注学号int 外键科目varchar(50)分数float考试日期date系统架构本系统采用Java MVC(Model-View-Controller)架构模式进行设计和开发。
•Model层:负责数据的处理和存储,包括与数据库的交互。
•View层:负责用户界面的展示和交互,使用Swing或JavaFX等GUI 库进行开发。
•Controller层:负责接收用户的请求,调用对应的Model方法进行数据处理,并更新View层的显示。
开发步骤1. 数据库连接和表设计使用JDBC连接MySQL数据库,并创建上述的学生表和成绩表。
2. 学生信息管理模块开发•创建学生类(Student)和学生管理类(StudentManager)。
•实现学生信息的录入、修改和删除功能。
3. 成绩录入和查询模块开发•创建成绩类(Score)和成绩管理类(ScoreManager)。
学生成绩在线管理系统数据库课程设计mysql+java
学生成绩在线管理系统数据库课程设计mysql+java以下是一个学生成绩在线管理系统的数据库设计示例,使用MySQL数据库和Java 编程语言:1. 学生表(students)-学生ID(student_id):主键,自增-学生姓名(student_name):varchar类型,最大长度为50-学生年龄(student_age):整数类型-学生性别(student_gender):varchar类型,最大长度为10-学生班级(student_class):varchar类型,最大长度为502. 课程表(courses)-课程ID(course_id):主键,自增-课程名称(course_name):varchar类型,最大长度为503. 成绩表(scores)-成绩ID(score_id):主键,自增-学生ID(student_id):外键,关联到学生表的学生ID-课程ID(course_id):外键,关联到课程表的课程ID-分数(score):浮点数类型通过以上表的设计,你可以实现以下功能:-添加学生信息-添加课程信息-添加学生成绩-查询学生信息-查询课程信息-查询学生的成绩-更新学生信息-更新课程信息-更新学生成绩-删除学生信息-删除课程信息-删除学生成绩在Java中,你可以使用JDBC(Java Database Connectivity)来连接MySQL数据库并执行SQL语句来实现对数据库的操作。
你需要配置数据库连接信息,并编写相应的Java代码来执行查询和更新操作。
这只是一个简单的数据库设计示例,你可以根据你的具体需求进行调整和扩展。
java代码设计文档
java代码设计文档Java代码设计文档是用于记录和描述Java程序的设计思路、功能模块、类和方法的用途以及实现细节的文档。
它旨在帮助开发人员和其他相关人员了解和理解Java程序的设计和实现过程。
本文将以一个简单的学生管理系统为例,展示如何编写Java代码设计文档。
# 1. 引言本文档旨在描述学生管理系统的设计和实现细节。
该系统用于管理学生的基本信息、课程信息和成绩信息。
# 2. 系统概述学生管理系统是一个基于Java的桌面应用程序,用于管理学生信息。
它提供了以下功能:- 添加学生信息:包括姓名、学号、性别、年龄等基本信息。
- 添加课程信息:包括课程名称、学分、教师等信息。
- 添加成绩信息:将学生与课程关联,并录入学生的成绩。
- 查询学生信息:根据学号或姓名查询学生的基本信息、课程信息和成绩信息。
- 修改学生信息:可以修改学生的基本信息、课程信息和成绩信息。
- 删除学生信息:可以删除学生的基本信息、课程信息和成绩信息。
# 3. 系统结构学生管理系统由以下几个模块组成:- 学生信息模块:用于管理学生的基本信息。
- 课程信息模块:用于管理课程的基本信息。
- 成绩信息模块:用于管理学生的成绩信息。
- 数据库模块:用于连接和操作数据库,存储和读取学生、课程和成绩信息。
# 4. 类设计## 4.1 学生类学生类表示学生的基本信息,包括姓名、学号、性别和年龄等属性。
它具有以下方法:- 构造方法:用于创建学生对象,初始化学生的基本信息。
- getter和setter方法:用于获取和设置学生的属性值。
## 4.2 课程类课程类表示课程的基本信息,包括课程名称、学分和教师等属性。
它具有以下方法:- 构造方法:用于创建课程对象,初始化课程的基本信息。
- getter和setter方法:用于获取和设置课程的属性值。
## 4.3 成绩类成绩类表示学生的成绩信息,包括学生、课程和成绩等属性。
它具有以下方法:- 构造方法:用于创建成绩对象,初始化成绩的基本信息。
基于JAVA的学生成绩管理系统的设计与实现(含源文件)
基于JAVA的学生成绩管理系统的设计与实现摘要:本文按照目前流行的B/S体系结构模式,结合现有的学生成绩管理系统的现状,采用SQL Server 2000数据库和JAVA技术,设计开发了学生成绩管理系统系统,本系统分为前台页面和后台管理两大部分,主要实现成绩查询、成绩删除、成绩添加、成绩修改四大主体功能。
在细节方面,着重考虑了用户添加成绩、成绩查询两方面的简易操作,力求为客户带来方便。
关键词:B/S模式;JA V A;SQL ServerAbstract:This according to the popular B / S architecture model, combined with the current status of student achievement management system using SQL Server 2000 database and JAVA technology, design and development of student achievement management system, the system is divided into front page and back office management two parts, the main accomplishment query results to delete, add scores, results modify the four main functions. In detail, the focus to consider the user to add results, performance query both easy to operate, and strive to bring convenience for customers.Key words:B/S mode;JA V A;SQL Server近年来,随着高校的扩招,运用常规的方法对学生成绩的管理变得越来越困难,因此学校迫切的需要一种高效的系统来帮助其管理学生的成绩。
学生成绩管理系统的设计与实现代码
学生成绩管理系统的设计与实现代码本系统有增加学生记录、修改学生记录、删除学生记录、按姓名查询学生记录、按C语言成绩对学生进行排序、退出系统6大功能。
能够对学生的姓名,学号,c语言成绩做相应的操作。
在检测到输入成绩大于55时,会自动加上5。
该管理系统设计功能模块图:下面是源代码:#include "stdio.h"#include "string.h"/*定义学生结构体*/struct Student{char ID[20]; //学号char Name[20]; //姓名float C_Mark; //C语言成绩};/*声明学生数组及学生数量*/struct Student students[1000];int num=0;/*通过学号返回数组下标*/int Student_SearchByIndex(char id[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].ID,id)==0) {return i;}}return -1;}/*通过姓名返回数组下标*/int Student_SearchByName(char name[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].Name,name)==0){return i;}}return -1;}/*显示单条学生记录*/void Student_DisplaySingle(int index){printf("%10s%10s%8s\n","学号","姓名","C语言成绩");printf("-------------------------------------------------------------\n");printf("%10s%10s%8.2f\n",students[index].ID,students[index] .Name,students[index].C_Mark);}/****1、增加学生记录*****/void Student_Insert(){while(1){printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[num].C_Mark);getchar();if (54<students[num].C_Mark && students[num].C_Mark< 60) //把55~59分之间的成绩都加上5分{students[num].C_Mark += 5;}num++;printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******2、修改学生信息**********/void Student_Modify(){while(1){char id[20];int index;printf("请输入要修改的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("该学生不存在!\n");}else{printf("你要修改的学生信息为:\n");Student_DisplaySingle(index);printf("-- 请输入新值--\n");printf("请输入学号:");scanf("%s",&students[index].ID);getchar();printf("请输入姓名:");scanf("%s",&students[index].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[index].C_Mark);getchar();}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****3、删除学生信息****/void Student_Delete(){int i;while(1){char id[20];int index;printf("请输入要删除的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("学生不存在!\n");}else{printf("你要删除的学生信息为:\n");Student_DisplaySingle(index);printf("是否真的要删除?(Y/N)");if (getchar()=='Y'){for (i=index;i<num-1;i++){students[i]=students[i+1];//把后边的对象都向前移动}num--;}getchar();printf("已删除\n");}printf("是否继续删除?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****4、按姓名查询******/void Student_Select(){while(1){char name[20];int index;printf("请输入要查询的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if (index==-1){printf("学生不存在!\n");}else{printf("你要查询的学生信息为:\n");Student_DisplaySingle(index);}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******5、按C语言成绩排序*******/void Student_SortByAverage(){int i,j;struct Student tmp;for (i=0;i<num;i++){for (j=1;j<num-i;j++){if (students[j-1].C_Mark<students[j].C_Mark){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}/*显示学生信息*/void Student_Display(){int i;printf("%10s%10s%8s\n","学号","姓名","成绩");printf("-------------------------------------------------------------\n");for (i=0;i<num;i++){printf("%10s%10s%8.2f\n",students[i].ID,students[i].Name ,students[i].C_Mark);}}/*将学生信息从文件(Database.txt)中读出*/void IO_ReadInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","rb"))==NULL){printf("不能打开文件!\n");return;}if (fread(&num,sizeof(int),1,fp)!=1){num=-1;}else{for(i=0;i<num;i++){fread(&students[i],sizeof(struct Student),1,fp);}}fclose(fp);}/*将学生信息写入文件(Database.txt)*/void IO_WriteInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","wb"))==NULL){printf("不能打开文件!\n");return;}if (fwrite(&num,sizeof(int),1,fp)!=1){printf("写入文件错误!\n");}for (i=0;i<num;i++){if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1){printf("写入文件错误!\n");}}fclose(fp);}/***********主程序*********/void main(){int choice;IO_ReadInfo(); //读取文件while(1){/*主菜单*/printf("\n------ 学生成绩管理系统------\n");printf("1. 增加学生记录\n");printf("2. 修改学生记录\n");printf("3. 删除学生记录\n");printf("4. 按姓名查询学生记录\n");printf("5. 按C语言成绩排序\n");printf("6. 退出\n");printf("请选择(1-6):");scanf("%d",&choice);getchar();switch(choice){case 1:Student_Insert();break;case 2:Student_Modify();break;case 3:Student_Delete();break;case 4:Student_Select();break;case 5:Student_SortByAverage();Student_Display();break;case 6:exit(0);break;}IO_WriteInfo();}}1234567891011121415161718192021222324252627282930313233343637383940414243444546474849505152535455565859606162636465666768697071727374757677788081828384858687888990919293949596979899 100102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320322323324325326327328329330331332333334335336337338运行结果:测试第一个功能,输入四个学生的成绩:测试第二个功能,修改学生记录:测试第三个功能,删除学生记录:测试第四个功能,按姓名查询学生记录:测试第五个功能,显示所有学生的成绩,按照C语言成绩由高到底排序:我们可以看到,各项功能的实现,在第2个步骤中,将赵的成绩改为80,而第3个步骤删除了李的成绩。
学生成绩管理系统(JAVA课程设计)
Java课程设计课题:学生成绩管理系统一、问题及功能分析1、身份验证,和使用系统的权限设置、判定。
2、实现同学的学号、性别、成绩等信息的录入、编辑3、提供对学号或姓名,进行成绩或所有信息的查询.4、计算学生平均成绩,显示最高成绩学生信息5、能实现按成绩、学号、姓名排序列出学生信息.6、能统计学生成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。
7、用文件保存数据,以便反复使用.二、概要设计import java。
lang.*;import java.io。
*;class Mytest{public static void main(String[]args)throws IOException{{int select;select = 1;Student stu[]= new Student[10];StudentMis mis=new StudentMis();Scanner sc = new Scanner(System.in);System。
out.println();System.out。
println(”—---—-—-————————-——-——-——-—---—--———-——");System.out。
println(”* *");System。
out.println(”欢迎进入学生成绩管理系统");System。
out。
println(”**”);System。
out.println(”-————--——-—-—---——-——--———-—-—----——--—");while(true){System。
out.println( );System。
out.println(" 请选择您的操作:");System.out.println(” 1.录入学生成绩信息;”);System.out.println(" 2.显示学生成绩信息;”);System。
学生成绩管理系统
学⽣成绩管理系统开头:个⼈的第⼀篇博客,同时也是第⼀个完整的实战项⽬,由于经验不⾜,只能做出简单级别的当做练⼿.第⼀篇博客第⼀个项⽬⼀、开发背景:软件名称:学⽣成绩管理系统(SSMS)使⽤对象:⼤学⼆、需求分析1. 系统分析该学⽣信息管理系统涉及到学⽣、教师、学号、学⽣成绩、课程。
所有⽤户需输⼊账号、密码登录进⼊系统;管理员进⼊系统后可对学⽣、⽼师、班级、课程进⾏增删改查操作;学⽣进⼊系统,查看成绩、查看和修改⾃⼰的信息;⽼师进⼊系统后,对⾃⼰这门课程的学⽣设置课程成绩、查看和修改⾃⼰的信息,查看学⽣的信息和成绩、以及统计分析学⽣的成绩;学⽣成绩分为两种, ⼀种是考试成绩占总成绩的百分之60, ⼀种是平时成绩占总成绩的百分之40.考试成绩出来后,⽼师进⼊系统选择该次考试为学⽣登记成绩。
平时考试则是班级平时的考试,⽼师添加考试信息,登记成绩。
成绩统计分析则是针对年级统考进⾏分析,主要涉及各学科分数名次,总分名次.三、开发环境系统环境:Windows10开发⼯具:IdeaJava版本:JDK 1.8服务器:tomcat 9.0.36数据库:MySQL 8.0系统采⽤技术:Servlet+Jsp+Jdbc+jQuery+Ajax四、代码实现1、登陆界⾯ login:<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>登陆页⾯-学⽣成绩管理系统-javaweb</title><style>#cont div {text-align: center;padding: 15px;}#cont div:last-child input:first-child {margin-right: 30px;}#cont div:last-child input:first-child {margin-left: 30px;}#cont div:last-child input:first-child {margin-right: 30px;}</style></head><body><div style="margin-top: 150px"><jsp:include page="top.jsp"/><div id="cont"><%String message = (String) request.getAttribute("message");if (message!=null){%><h3 style="color: #ff0000" align="center">出错信息${message}</h3><%}%><form action="<%= request.getContextPath()%>/loginServlet?type=trueLogin" method="post"> <div><label for="userName">⽤户名:</label><input type="text" name="userName" id="userName"/></div><div><label>   密码:<input type="password" name="pwd"/></label></div><div><label> 验证码:<input type="yangzheng" name="yanzheng"/><img src="${pageContext.request.contextPath}/main/webapp/WEB-INF/img.jpg"/></label></div><div><input type="submit" value="登陆"/><input type="button" onclick="resetForm()" value="重置"/></div></form></div><jsp:include page="bottom.jsp"/></div><script>function resetForm(){document.forms[0].reset()}</script></body></html>2、登陆成功界⾯1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>2 <html>3 <head>4 <title>学⽣管理-学⽣成绩管理系统-javaweb</title>5 <style>6 table {7 border-collapse: collapse;8 border-spacing: 0;9 border: 1px solid black;10 }1112 tr {13 line-height: 2;14 }1516 th, td {17 border: 1px solid black;18 padding: 0 10px;19 }2021 #cont {22 text-align: left;23 margin-left: 540px;24 margin-top: 50px;25 line-height: 1.5;26 }2728 .nav, .search, .page {29 line-height: 2;30 }31 </style>32 </head>33 <body>34 <div>35 <jsp:include page="../top.jsp"/>36 <div id="cont">37 <%-- <section class="nav">--%>38 <%-- <a href="#">学⽣管理</a>--%>39 <%-- <a href="#">成绩管理</a>--%>40 <%-- </section>--%>41 <section class="search">42 <%43 TableResult<StudentDO> tableResult = (TableResult) request.getAttribute("tableResult");4445 %>4647 <a href="<%=request.getContextPath()%>/studentServlet?type=toAdd">新增学⽣</a>48 <form method="post" action="<%=request.getContextPath()%>/studentServlet?type=toStudentManage">49 <%-- <input type="text" name="studentName" value="<%= tableResult.getStudentName()%>"/>--%>50 <!--value在没有被别⼈修改的情况下就是1,51由于不是ajax局部刷新,页⾯是整体刷新的,所以即便pageNow被就改了,查询结果出来的页⾯中的pageNow仍然还是152 -->53 <input type="hidden" name="pageNow" id="pageNow" value="1"/>54 <%-- <input type="submit" value="查询">--%>55 </form>56 </section>57 <section>58 <table>59 <thead>60 <tr>61 <th>编号</th>62 <th>姓名</th>63 <th>学号</th>64 <th>科⽬名称</th>65 <th>考勤成绩</th>66 <th>作业成绩</th>67 <th>考试成绩</th>68 <th>操作</th>6970717273 </tr>74 </thead>75 <tbody>76 <%77 List<StudentDO> data = tableResult.getData();7879for (int i = 0; i < data.size(); i++) {80 StudentDO studentDO = data.get(i);81 %>82 <tr>83 <td><%= studentDO.getId()%>84 </td>85 <td><%= studentDO.getName()%>86 </td>87 <td><%= studentDO.getNo()%>88 </td>89 <td><%= studentDO.getTask()%>90 </td>91 <td><%= studentDO.getKaoqin()%>92 </td>93 <td><%= studentDO.getZuoye()%>94 </td>95 <td><%= studentDO.getChengji()%>96 <td><a href="<%=request.getContextPath()%>/studentServlet?type=delete&id=<%= studentDO.getId()%>">删除</a>97 <a href="<%=request.getContextPath()%>/studentServlet?type=toUpdate&id=<%= studentDO.getId()%>">更新</a>98 </td>99 </tr>100 <%101 }102 %>103 </tbody>104 </table>105 <div class="page">106 <%107//只要不是第⼀页就显⽰108if (tableResult.getPageNow() != 1) {109 %>110 <a href="#" onclick="goFirst()">⾸页</a>111 <a href="#" onclick="goPre()">上⼀页</a>112 <%113 }114 %>115 <%116//只要不是最后⼀页就显⽰117if (tableResult.getPageNow() != tableResult.getPageCount()) {118 %>119 <a href="#" onclick="goNext()">下⼀页</a>120 <a href="#" onclick="goLast()">尾页</a>121 <%122 }123 %>124 <span>共<%=tableResult.getPageCount()%>页</span>125 <span>,共<%=tableResult.getTotalCount()%>条</span>126 <span>,当前是第<%=tableResult.getPageNow()%>页</span>127 </div>128 </section>129 </div>130 <jsp:include page="../bottom.jsp"/>131132 </div>133 <script>134 function goFirst() {135 document.forms[0].submit();136 }137138//上⼀页139 function goPre() {140//1、拿到当前页141 var currentPageStr = "<%=tableResult.getPageNow()%>";142 var prePage = parseInt(currentPageStr) - 1;143//2、修改搜索⾥⾯提交的pageNow144 document.getElementById("pageNow").value = prePage;145 document.forms[0].submit();146 }147 function goNext(){148//1、拿到当前页149 var currentPageStr = "<%=tableResult.getPageNow()%>";150 var nextPage = parseInt(currentPageStr) + 1;151//2、修改搜索⾥⾯提交的pageNow152 document.getElementById("pageNow").value = nextPage;153 document.forms[0].submit();154 }155//尾页156 function goLast(){157//1、拿到当尾页158 var pageCountStr = "<%=tableResult.getPageCount()%>";159//2、修改搜索⾥⾯提交的pageNow160 document.getElementById("pageNow").value = parseInt(pageCountStr);161 document.forms[0].submit();162 }163164 </script>165 </body>166 </html>成功则进⼊系统界⾯失败则进⾏提⽰⽤户名或密码验证码不正确(验证码不知道是浏览器的问题还是怎么回事就是加载不出来)3、增加学⽣<html><head><title>添加学⽣页⾯-学⽣成绩管理系统-javaweb</title><style>#cont{text-align: center;margin-top: 100px;}#cont div{padding: 15px;}</style></head><body><div><jsp:include page="../top.jsp"/><div id="cont"><form action="<%= request.getContextPath()%>/studentServlet?type=add" method="post"> <div><label>学⽣姓名:<input type="text" name="studentName" /></label></div><div><label>      学号:<input type="text" name="no"/></label></div><div><label>      科⽬:<input type="text" name="task"/></label></div><div><label>考勤成绩:<input type="text" name="kaoqin"/></label></div><div><label>作业成绩:<input type="text" name="zuoye"/></label></div><div><label>考试成绩:<input type="text" name="chengji"/></label></div><div><input type="submit" value="增加"/></div></form></div><jsp:include page="../bottom.jsp"/></div></body></html>4、更新学⽣信息<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>更新学⽣页⾯-学⽣成绩管理系统-javaweb</title><style>#cont{text-align: center;margin-top: 100px;}#cont div{padding: 15px;}</style></head><body><div><jsp:include page="../top.jsp"/><div id="cont"><form action="<%= request.getContextPath()%>/studentServlet?type=update" method="post"> <%StudentDO studentDO = (StudentDO)request.getAttribute("studentDO");%><div><label>学⽣编号:<!--disabled的不能提交,如果⽤了disabled⼜想提交,就要再加个hiddent的input来提交--> <input type="text" readonly name="studentId" value="<%= studentDO.getId()%>"/></label></div><div><label>学⽣姓名:<input type="text" name="studentName" value="${}" /></label></div><div><label>      学号:<input type="text" name="no" value="${requestScope.studentDO.no}"/></label></div><div><label>      科⽬:<input type="text" name="task" value="${studentDO.task}"/></label></div><div><label>考勤成绩:<input type="text" name="kaoqin" value="${studentDO.kaoqin}" /></label></div><div><label>作业成绩:<input type="text" name="zuoye" value="${requestScope.studentDO.zuoye}"/> </label></div><div><label>考试成绩:<input type="text" name="chengji" value="${studentDO.chengji}"/></label></div><div><input type="submit" value="更新"/></div></form></div><jsp:include page="../bottom.jsp"/></div></body></html>5、数据库设计数据库连接与⽹页与数据库的交互public class DBUtil {private static final String URL = "jdbc:mysql://localhost:3306/student_javaweb?serverTimezone=UTC&characterEncoding=utf-8"; private static final String DRIVER = "com.mysql.cj.jdbc.Driver";private static final String USER_NAME = "root";//Mysql配置时的⽤户名private static final String PWD = "123456";//密码static {try {Class.forName(DRIVER);} catch (ClassNotFoundException e) {e.printStackTrace();}}/*** 获取连接* @return*/public static Connection getConn() {try {return DriverManager.getConnection(URL, USER_NAME, PWD);} catch (SQLException e) {e.printStackTrace();}return null;}/*** 关闭结果集* @return*/public static void closeResultSet(ResultSet resultSet) {try {if (resultSet != null){resultSet.close();}} catch (SQLException e) {e.printStackTrace();}}/*** 关闭ps* @return*/public static void closePs(PreparedStatement ps) {try {if (ps != null){ps.close();}} catch (SQLException e) {e.printStackTrace();}}/*** 关闭连接* @return*/public static void closeConn(Connection conn) {try {if (conn != null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}}package com.roadjava.javaweb.student.dao.imol;import com.roadjava.javaweb.student.beans.entity.AdminDO;import com.roadjava.javaweb.student.beans.entity.StudentDO;import com.roadjava.javaweb.student.beans.req.StudentRequest;import com.roadjava.javaweb.student.beans.res.TableResult;import com.roadjava.javaweb.student.dao.StudentDao;import com.roadjava.javaweb.student.util.DBUtil;import com.roadjava.javaweb.student.util.StringUtil;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class StudentDaoImpl implements StudentDao {@Overridepublic int addStudent(StudentDO studentDO) {Connection conn = DBUtil.getConn();if (conn == null){return 0;}PreparedStatement ps = null;StringBuilder sb = new StringBuilder();sb.append(" insert into student(name,no,task,kaoqin,zuoye,chengji) ");sb.append(" values(?,?,?,?,?,?) ");try {ps = conn.prepareStatement(sb.toString());ps.setObject(1,studentDO.getName());ps.setObject(2,studentDO.getNo());ps.setObject(3,studentDO.getTask());ps.setObject(4,studentDO.getKaoqin());ps.setObject(5,studentDO.getZuoye());ps.setObject(6,studentDO.getChengji());//打印最终执⾏的sql语句System.out.println("addStudent执⾏的sql:"+ps.toString());return ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally {DBUtil.closePs(ps);DBUtil.closeConn(conn);}return 0;}@Overridepublic TableResult<StudentDO> queryStudentByPage(StudentRequest studentRequest) { TableResult<StudentDO> tableResult = new TableResult<>();Connection conn = DBUtil.getConn();if (conn == null){return null;}PreparedStatement ps = null;ResultSet rs = null;//查询学⽣列表StringBuilder sb = new StringBuilder();sb.append(" select * from student ");appendWhere(studentRequest,sb);sb.append(" order by id desc limit ").append(studentRequest.getStart()).append(",").append(studentRequest.getPageSize());try {ps = conn.prepareStatement(sb.toString());if (StringUtil.isNotBlank(studentRequest.getStudentName())){ps.setObject(1,studentRequest.getStudentName());}//打印最终执⾏的sql语句System.out.println("queryStudentByPage查询学⽣的sql:"+ps.toString());rs = ps.executeQuery();List<StudentDO> list = new ArrayList<>();while (rs.next()){StudentDO studentDO = buildStudent(rs);list.add(studentDO);}tableResult.setData(list);//设置数据/*查询总条数*/sb.setLength(0);sb.append(" select count(*) from student ");appendWhere(studentRequest,sb);ps = conn.prepareStatement(sb.toString());if (StringUtil.isNotBlank(studentRequest.getStudentName())){ps.setObject(1,studentRequest.getStudentName());}//打印最终执⾏的sql语句System.out.println("queryStudentByPage查询学⽣总条数的sql:"+ps.toString()); rs = ps.executeQuery();if (rs.next()){int totalCount = rs.getInt(1);tableResult.setTotalCount(totalCount);//设置总条数}return tableResult;} catch (SQLException e) {e.printStackTrace();}finally {DBUtil.closePs(ps);DBUtil.closeConn(conn);DBUtil.closeResultSet(rs);}return null;}@Overridepublic StudentDO getStudentById(long studentId) {Connection conn = DBUtil.getConn();if (conn == null){return null;}PreparedStatement ps = null;ResultSet rs = null;StringBuilder sb = new StringBuilder();sb.append(" select * from student where id = ? ");try {ps = conn.prepareStatement(sb.toString());ps.setObject(1,studentId);//打印最终执⾏的sql语句System.out.println("getStudentById执⾏的sql:"+ps.toString());rs = ps.executeQuery();if(rs.next()){return buildStudent(rs);}} catch (SQLException e) {e.printStackTrace();}finally {DBUtil.closePs(ps);DBUtil.closeConn(conn);DBUtil.closeResultSet(rs);}return null;}@Overridepublic int updateStudent(StudentDO studentDO) {Connection conn = DBUtil.getConn();if (conn == null){return 0;}PreparedStatement ps = null;StringBuilder sb = new StringBuilder();sb.append(" update student set name=?,no=?,task=?,kaoqin=?,zuoye=?,chengji=? "); sb.append(" where id = ? ");try {ps = conn.prepareStatement(sb.toString());ps.setObject(1,studentDO.getName());ps.setObject(2,studentDO.getNo());ps.setObject(3,studentDO.getTask());ps.setObject(4,studentDO.getKaoqin());ps.setObject(5,studentDO.getZuoye());ps.setObject(6,studentDO.getChengji());ps.setObject(7,studentDO.getId());//打印最终执⾏的sql语句System.out.println("updateStudent执⾏的sql:"+ps.toString());return ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally {DBUtil.closePs(ps);DBUtil.closeConn(conn);}return 0;}@Overridepublic int deleteStudentById(long studentId) {Connection conn = DBUtil.getConn();if (conn == null){return 0;}PreparedStatement ps = null;StringBuilder sb = new StringBuilder();sb.append(" delete from student where id = ? ");try {ps = conn.prepareStatement(sb.toString());ps.setObject(1,studentId);//打印最终执⾏的sql语句System.out.println("deleteStudentById执⾏的sql:"+ps.toString());return ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally {DBUtil.closePs(ps);DBUtil.closeConn(conn);}return 0;}private StudentDO buildStudent(ResultSet rs) throws SQLException{long id = rs.getLong("id");String name = rs.getString("name");String no = rs.getString("no");String task = rs.getString("task");String kaoqin = rs.getString("kaoqin");String zuoye = rs.getString("zuoye");String chengji = rs.getString("chengji");StudentDO studentDO = new StudentDO();studentDO.setId(id);studentDO.setName(name);studentDO.setTask(task);studentDO.setNo(no);studentDO.setZuoye(zuoye);studentDO.setKaoqin(kaoqin);studentDO.setChengji(chengji);return studentDO;}private void appendWhere(StudentRequest studentRequest, StringBuilder sb) { String studentName = studentRequest.getStudentName();if(StringUtil.isNotBlank(studentName)){sb.append(" where name = ? ");}}}package com.roadjava.javaweb.student.dao.imol;import com.roadjava.javaweb.student.beans.entity.AdminDO;import com.roadjava.javaweb.student.dao.AdminDao;import com.roadjava.javaweb.student.util.DBUtil;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class AdminDaoImpl implements AdminDao {@Overridepublic AdminDO validateLogin(String userName) {Connection conn = DBUtil.getConn();if (conn == null){return null;}PreparedStatement ps = null;ResultSet rs = null;StringBuilder sb = new StringBuilder();sb.append(" select * from admin where user_name = ? ");try {ps = conn.prepareStatement(sb.toString());ps.setObject(1,userName);//打印最终执⾏的sql语句System.out.println("balidateLogin执⾏的sql:"+ps.toString());rs = ps.executeQuery();if(rs.next()){long id = rs.getLong("id");String pwd = rs.getString("pwd");AdminDO adminDO = new AdminDO();adminDO.setId(id);adminDO.setUser_name(userName);adminDO.setPwd(pwd);return adminDO;}} catch (SQLException e) { e.printStackTrace();}finally {DBUtil.closePs(ps);DBUtil.closeConn(conn); DBUtil.closeResultSet(rs); }return null;}}未完待续.......。
学生信息管理系统java课程设计代码
学生信息管理系统java课程设计代码学生信息管理系统Java课程设计代码一、引言学生信息管理系统是一种方便、高效的信息管理工具,可以帮助学校或教育机构管理学生的个人信息、学籍信息等。
本文将介绍一个基于Java语言的学生信息管理系统的设计代码。
二、系统设计1. 需求分析学生信息管理系统需要满足以下需求:- 学生信息的录入、修改和删除- 学生信息的查询和显示- 学生成绩的录入、修改和查询- 学生课表的查询和显示- 学生考勤情况的记录和查询2. 数据库设计系统需要设计学生信息、学生成绩、课程表和考勤情况等相关数据库表。
每个表需要定义相应的字段,如学生姓名、学号、性别、年龄等。
3. 界面设计系统需要设计用户友好的界面,方便用户进行操作。
可以使用JavaSwing等图形界面库进行开发,界面要清晰、美观,并提供相应的按钮和输入框供用户使用。
4. 功能实现系统的功能实现需要编写相应的Java代码。
可以使用面向对象的编程思想,将学生、成绩、课程表和考勤等信息封装成对象,通过调用对象的方法来完成相应的操作。
5. 数据库连接系统需要与数据库进行连接,使用Java JDBC等技术来实现数据库的增删改查操作。
可以使用MySQL等关系型数据库管理系统。
6. 用户权限管理系统可以设计管理员和普通用户两种角色,管理员具有录入、修改和删除学生信息的权限,普通用户只能查询和显示学生信息。
三、代码实现以下是一个简单的学生信息管理系统的Java代码示例:```javaimport java.sql.*;import javax.swing.*;public class StudentManagementSystem {// 数据库连接信息private static final String URL = "jdbc:mysql://localhost:3306/student_db";private static final String USERNAME = "root";private static final String PASSWORD = "123456";public static void main(String[] args) {// 连接数据库Connection conn = null;try {conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);} catch (SQLException e) {e.printStackTrace();JOptionPane.showMessageDialog(null, "数据库连接失败!");System.exit(0);}// 界面初始化JFrame frame = new JFrame("学生信息管理系统");frame.setSize(800, 600);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 添加组件JPanel panel = new JPanel();JLabel label = new JLabel("学生信息管理系统");panel.add(label);frame.add(panel);// 显示界面frame.setVisible(true);}}```四、总结通过以上的代码示例,我们可以看到一个简单的学生信息管理系统的实现框架。
