首页 > 代码库 > 学生成绩管理系统 2.0(图形界面)
学生成绩管理系统 2.0(图形界面)
这个写的……太……羞耻了……
本来以为能写的很好的……图形界面什么的……啊啊啊好难……
写一半写不下去了……然后就什么功能都没有……
1 package com.wenr.dao; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.util.ArrayList; 8 9 import com.wenr.model.Course;10 import com.wenr.model.Student;11 import com.wenr.util.DBUtil;12 13 public class CourseDao {14 public ArrayList<Student> getStudent(Connection con, Course course) {15 ArrayList<Student> student = new ArrayList<>();16 String sql = "SELECT stu.sid,stu.sname,stuco.score FROM stu,co,stuco "17 + "WHERE stu.sid=stuco.sid AND co.cid=stuco.cid AND co.cname=?";18 19 PreparedStatement pstmt = null;20 try {21 pstmt = con.prepareStatement(sql);22 pstmt.setString(1, course.getName());23 } catch (SQLException e) {24 e.printStackTrace();25 }26 27 ResultSet resultSet = null;28 try {29 resultSet = pstmt.executeQuery();30 while (resultSet.next()) {31 student.add(new Student(resultSet.getString(1), resultSet.getString(2), resultSet.getDouble(3)));32 }33 } catch (SQLException e) {34 e.printStackTrace();35 }36 37 return student;38 }39 40 public static void main(String[] args) throws Exception {41 DBUtil dbUtil = new DBUtil();42 CourseDao dao = new CourseDao();43 Connection con = dbUtil.getCon();44 Course course = new Course();45 course.setName("中国现代史纲要");46 ArrayList<Student> student = dao.getStudent(con, course);47 for (Student s: student) {48 System.out.println(s.getSid() + " " + s.getSname() + " " + s.getScore());49 }50 }51 52 }
1 package com.wenr.dao; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.util.ArrayList; 8 9 import com.wenr.model.Course;10 import com.wenr.model.Student;11 import com.wenr.util.DBUtil;12 13 public class CourseDao {14 public ArrayList<Student> getStudent(Connection con, Course course) {15 ArrayList<Student> student = new ArrayList<>();16 String sql = "SELECT stu.sid,stu.sname,stuco.score FROM stu,co,stuco "17 + "WHERE stu.sid=stuco.sid AND co.cid=stuco.cid AND co.cname=?";18 19 PreparedStatement pstmt = null;20 try {21 pstmt = con.prepareStatement(sql);22 pstmt.setString(1, course.getName());23 } catch (SQLException e) {24 e.printStackTrace();25 }26 27 ResultSet resultSet = null;28 try {29 resultSet = pstmt.executeQuery();30 while (resultSet.next()) {31 student.add(new Student(resultSet.getString(1), resultSet.getString(2), resultSet.getDouble(3)));32 }33 } catch (SQLException e) {34 e.printStackTrace();35 }36 37 return student;38 }39 40 public static void main(String[] args) throws Exception {41 DBUtil dbUtil = new DBUtil();42 CourseDao dao = new CourseDao();43 Connection con = dbUtil.getCon();44 Course course = new Course();45 course.setName("中国现代史纲要");46 ArrayList<Student> student = dao.getStudent(con, course);47 for (Student s: student) {48 System.out.println(s.getSid() + " " + s.getSname() + " " + s.getScore());49 }50 }51 52 }
1 package com.wenr.model; 2 /* 3 CREATE TABLE co ( 4 cid int PRIMARY KEY auto_increment, 5 cname varchar(20) NOT NULL 6 ); 7 */ 8 public class Course { 9 private int id;10 private String name;11 private double score;12 13 public Course(String name) {14 super();15 this.name = name;16 }17 public Course() {18 super();19 }20 public Course(int id, String name, double score) {21 super();22 this.id = id;23 this.name = name;24 this.score = score;25 }26 public int getId() {27 return id;28 }29 public void setId(int id) {30 this.id = id;31 }32 public String getName() {33 return name;34 }35 public void setName(String name) {36 this.name = name;37 }38 public double getScore() {39 return score;40 }41 public void setScore(double score) {42 this.score = score;43 }44 }
1 package com.wenr.model; 2 /* 3 create table stu ( 4 sid char(10) PRIMARY KEY, 5 sname varchar(20) NOT NULL, 6 spwd varchar(20) NOT NULL 7 ); 8 */ 9 public class Student {10 private String sid;11 private String sname;12 private String spwd;13 private double score;14 15 public Student(String sid, String sname, double score) {16 super();17 this.sid = sid;18 this.sname = sname;19 this.score = score;20 }21 22 public Student(String sname) {23 super();24 this.sname = sname;25 }26 public Student(String sid, String spwd) {27 super();28 this.sid = sid;29 this.spwd = spwd;30 }31 public Student() {32 super();33 }34 public String getSid() {35 return sid;36 }37 public void setSid(String sid) {38 this.sid = sid;39 }40 public String getSname() {41 return sname;42 }43 public void setSname(String sname) {44 this.sname = sname;45 }46 public String getSpwd() {47 return spwd;48 }49 public void setSpwd(String spwd) {50 this.spwd = spwd;51 }52 public double getScore() {53 return score;54 }55 public void setScore(double score) {56 this.score = score;57 }58 }
1 package com.wenr.util; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 7 public class DBUtil { 8 private String dbUrl = "jdbc:mysql://localhost:3306/db_student"; 9 private String dbUserName = "root";10 private String dbPassword = "123456";11 private String jdbcName = "com.mysql.jdbc.Driver";12 /**13 * 获取数据库连接14 * @return15 * @throws Exception16 */17 public Connection getCon() throws Exception {18 Class.forName(jdbcName);19 Connection con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);20 return con;21 }22 /**23 * 关闭数据库连接24 * @param con25 * @throws SQLException26 */27 public void closeCon(Connection con) throws SQLException {28 if (con != null)29 con.close();30 }31 32 public static void main(String[] args) {33 DBUtil dbUtil = new DBUtil();34 try {35 dbUtil.getCon();36 System.out.println("连接成功");37 } catch (Exception e) {38 System.out.println("连接失败");39 e.printStackTrace();40 }41 }42 43 }
1 package com.wenr.util;2 3 public class StringUtil {4 public static Boolean isEmpty(String str) {5 if ("".equals(str) || str == null) return true;6 return false;7 }8 }
1 package com.wenr.view; 2 3 import java.awt.EventQueue; 4 5 import javax.swing.JFrame; 6 import javax.swing.JPanel; 7 import javax.swing.border.EmptyBorder; 8 9 import com.wenr.dao.StudentDao; 10 import com.wenr.model.Student; 11 import com.wenr.util.DBUtil; 12 import com.wenr.util.StringUtil; 13 14 import javax.swing.JLabel; 15 import javax.swing.JOptionPane; 16 import javax.swing.JTextField; 17 import javax.swing.JButton; 18 import java.awt.Font; 19 import java.awt.Toolkit; 20 import javax.swing.ImageIcon; 21 import javax.swing.SwingConstants; 22 import javax.swing.UIManager; 23 24 import java.awt.Color; 25 import java.awt.event.ActionListener; 26 import java.sql.Connection; 27 import java.sql.SQLException; 28 import java.util.Enumeration; 29 import java.awt.event.ActionEvent; 30 import javax.swing.JPasswordField; 31 32 @SuppressWarnings("serial") 33 public class Logon extends JFrame { 34 35 private JPanel contentPane; 36 private JTextField tfID; 37 private JPasswordField passwordField; 38 39 DBUtil dbUtil = new DBUtil(); 40 StudentDao studentDao = new StudentDao(); 41 42 public static void main(String[] args) { 43 EventQueue.invokeLater(new Runnable() { 44 public void run() { 45 try { 46 Logon frame = new Logon(); 47 frame.setVisible(true); 48 } catch (Exception e) { 49 e.printStackTrace(); 50 } 51 } 52 }); 53 } 54 55 public Logon() { 56 setResizable(false); 57 setBackground(Color.LIGHT_GRAY); 58 59 // 改变默认字体 60 Font font = new Font("Dialog", Font.PLAIN, 12); 61 Enumeration<Object> keys = UIManager.getDefaults().keys(); 62 while (keys.hasMoreElements()) { 63 Object key = keys.nextElement(); 64 Object value =http://www.mamicode.com/ UIManager.get(key); 65 if (value instanceof javax.swing.plaf.FontUIResource) { 66 UIManager.put(key, font); 67 } 68 } 69 70 setIconImage(Toolkit.getDefaultToolkit().getImage(".\\resources\\icon.png")); 71 setTitle("学生成绩管理系统"); 72 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 73 setBounds(500, 200, 510, 358); 74 contentPane = new JPanel(); 75 contentPane.setBackground(new Color(135, 206, 235)); 76 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 77 setContentPane(contentPane); 78 contentPane.setLayout(null); 79 80 JLabel label = new JLabel("学生成绩管理系统"); 81 label.setIcon(new ImageIcon(".\\resources\\icon_student.png")); 82 label.setFont(new Font("黑体", Font.BOLD, 20)); 83 label.setBounds(124, 45, 259, 38); 84 contentPane.add(label); 85 86 JLabel label_1 = new JLabel("账号"); 87 label_1.setHorizontalAlignment(SwingConstants.RIGHT); 88 label_1.setIcon(new ImageIcon(".\\resources\\icon_users.png")); 89 label_1.setBounds(119, 138, 66, 21); 90 contentPane.add(label_1); 91 92 JLabel label_2 = new JLabel("密码"); 93 label_2.setHorizontalAlignment(SwingConstants.RIGHT); 94 label_2.setIcon(new ImageIcon(".\\resources\\icon_password.png")); 95 label_2.setBounds(119, 179, 66, 21); 96 contentPane.add(label_2); 97 98 tfID = new JTextField(); 99 tfID.setBounds(195, 138, 146, 21);100 contentPane.add(tfID);101 tfID.setColumns(10);102 103 JButton jbStuLogon = new JButton("学生登录");104 jbStuLogon.setIcon(new ImageIcon(".\\resources\\icon_stu.png"));105 jbStuLogon.addActionListener(new ActionListener() {106 public void actionPerformed(ActionEvent e) {107 String id = tfID.getText();108 String pwd = new String(passwordField.getPassword());109 if (StringUtil.isEmpty(id)) {110 JOptionPane.showMessageDialog(null, "账号不能为空!");111 return ;112 }113 if (StringUtil.isEmpty(pwd)) {114 JOptionPane.showMessageDialog(null, "密码不能为空!");115 return ;116 }117 //System.out.println(id + "+" + pwd);118 Student student = new Student(id, pwd);119 Connection con = null;120 Student resultStudent = null;121 try {122 con = dbUtil.getCon();123 resultStudent = studentDao.logon(con, student);124 if (resultStudent == null) {125 JOptionPane.showMessageDialog(null, "账号或密码错误!");126 } else {127 dispose();128 StudentView studentView = new StudentView(student);129 studentView.setVisible(true);130 }131 } catch (Exception e1) {132 System.out.println("登录失败!");133 e1.printStackTrace();134 } finally {135 if (con != null) {136 try {137 con.close();138 } catch (SQLException e1) {139 e1.printStackTrace();140 }141 }142 }143 144 }145 });146 jbStuLogon.setBounds(82, 241, 135, 23);147 contentPane.add(jbStuLogon);148 149 JButton jbAdminLogon = new JButton("管理员登录");150 jbAdminLogon.setIcon(new ImageIcon(".\\resources\\icon_admin.png"));151 jbAdminLogon.addActionListener(new ActionListener() {152 public void actionPerformed(ActionEvent e) {153 String id = tfID.getText();154 String pwd = new String(passwordField.getPassword());155 if (StringUtil.isEmpty(id)) {156 JOptionPane.showMessageDialog(null, "账号不能为空!");157 return ;158 }159 if (StringUtil.isEmpty(pwd)) {160 JOptionPane.showMessageDialog(null, "密码不能为空!");161 return ;162 }163 if ("admin".equals(id) && "nimda".equals(pwd)) {164 new AdminView().setVisible(true);165 dispose();166 } else {167 JOptionPane.showMessageDialog(null, "用户名或密码错误!");168 }169 }170 });171 172 jbAdminLogon.setBounds(270, 241, 135, 23);173 contentPane.add(jbAdminLogon);174 175 passwordField = new JPasswordField();176 passwordField.setBounds(195, 179, 146, 21);177 contentPane.add(passwordField);178 }179 }
1 package com.wenr.view; 2 3 import java.awt.EventQueue; 4 5 import javax.swing.JFrame; 6 import javax.swing.JPanel; 7 import javax.swing.border.EmptyBorder; 8 9 import com.wenr.dao.StudentDao; 10 import com.wenr.model.Course; 11 import com.wenr.model.Student; 12 import com.wenr.util.DBUtil; 13 14 15 import javax.swing.JLabel; 16 import javax.swing.JButton; 17 import java.awt.event.ActionListener; 18 import java.sql.Connection; 19 import java.util.ArrayList; 20 import java.awt.event.ActionEvent; 21 import javax.swing.JTextPane; 22 import java.awt.Color; 23 import javax.swing.ImageIcon; 24 import java.awt.Toolkit; 25 26 @SuppressWarnings("serial") 27 public class StudentView extends JFrame { 28 29 private JPanel contentPane; 30 31 public static void main(String[] args) { 32 EventQueue.invokeLater(new Runnable() { 33 public void run() { 34 try { 35 StudentView frame = new StudentView(null); 36 frame.setVisible(true); 37 } catch (Exception e) { 38 e.printStackTrace(); 39 } 40 } 41 }); 42 } 43 44 public StudentView(Student student) { 45 setResizable(false); 46 setIconImage(Toolkit.getDefaultToolkit().getImage(".\\resources\\icon_stu.png")); 47 setTitle("学生登录"); 48 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 49 setBounds(500, 200, 510, 358); 50 51 contentPane = new JPanel(); 52 contentPane.setBackground(new Color(135, 206, 235)); 53 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 54 setContentPane(contentPane); 55 contentPane.setLayout(null); 56 57 JLabel label = new JLabel("欢迎,"); 58 label.setBounds(181, 23, 41, 15); 59 contentPane.add(label); 60 61 JLabel studentName = new JLabel("New label"); 62 studentName.setBounds(217, 23, 118, 15); 63 studentName.setText(student.getSname()); 64 contentPane.add(studentName); 65 // 66 DBUtil dbUtil = new DBUtil(); 67 StudentDao studentDao = new StudentDao(); 68 Connection con = null; 69 String scoreInfo = ""; 70 try { 71 con = dbUtil.getCon(); 72 ArrayList<Course> course = studentDao.getScrore(con, student); 73 for (Course c: course) { 74 scoreInfo += String.format("%3d", c.getId()) + "\t"; 75 scoreInfo += String.format("%20s", c.getName()) + "\t"; 76 scoreInfo += String.format("%10.2f", c.getScore()) + "\n"; 77 } 78 } catch (Exception e1) { 79 e1.printStackTrace(); 80 } 81 System.out.println(scoreInfo.toString()); 82 JTextPane tpScore = new JTextPane(); 83 tpScore.setEditable(false); 84 tpScore.setText(scoreInfo); 85 tpScore.setBounds(64, 58, 360, 180); 86 contentPane.add(tpScore); 87 88 JButton jbExit = new JButton("退出登录"); 89 jbExit.setIcon(new ImageIcon(".\\resources\\icon_exit.png")); 90 jbExit.setBackground(Color.WHITE); 91 jbExit.addActionListener(new ActionListener() { 92 public void actionPerformed(ActionEvent e) { 93 dispose(); 94 new Logon().setVisible(true); 95 } 96 }); 97 jbExit.setBounds(172, 262, 140, 23); 98 contentPane.add(jbExit); 99 }100 }
1 package com.wenr.view; 2 3 import java.awt.EventQueue; 4 5 import javax.swing.JFrame; 6 import javax.swing.JPanel; 7 import javax.swing.border.EmptyBorder; 8 9 import com.wenr.dao.CourseDao; 10 import com.wenr.dao.StudentDao; 11 import com.wenr.model.Course; 12 import com.wenr.model.Student; 13 import com.wenr.util.DBUtil; 14 import com.wenr.util.StringUtil; 15 16 import javax.swing.JButton; 17 import java.awt.Color; 18 import java.awt.Toolkit; 19 import javax.swing.ImageIcon; 20 import java.awt.event.ActionListener; 21 import java.sql.Connection; 22 import java.util.ArrayList; 23 import java.awt.event.ActionEvent; 24 import javax.swing.JLabel; 25 import javax.swing.JOptionPane; 26 import javax.swing.JTextField; 27 import javax.swing.JTextArea; 28 29 @SuppressWarnings("serial") 30 public class AdminView extends JFrame { 31 32 private JPanel contentPane; 33 private JTextField queryText; 34 private JLabel lblNewLabel; 35 private JTextArea queryResult; 36 37 public static void main(String[] args) { 38 EventQueue.invokeLater(new Runnable() { 39 public void run() { 40 try { 41 AdminView frame = new AdminView(); 42 frame.setVisible(true); 43 } catch (Exception e) { 44 e.printStackTrace(); 45 } 46 } 47 }); 48 } 49 50 public AdminView() { 51 setResizable(false); 52 setIconImage(Toolkit.getDefaultToolkit().getImage(".\\resources\\icon_admin.png")); 53 setBackground(new Color(144, 238, 144)); 54 setTitle("管理员登录"); 55 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 56 setBounds(500, 200, 510, 358); 57 contentPane = new JPanel(); 58 contentPane.setBackground(new Color(135, 206, 235)); 59 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 60 setContentPane(contentPane); 61 contentPane.setLayout(null); 62 63 JButton btnExit = new JButton("退出登录"); 64 btnExit.addActionListener(new ActionListener() { 65 public void actionPerformed(ActionEvent e) { 66 dispose(); 67 new Logon().setVisible(true); 68 } 69 }); 70 btnExit.setIcon(new ImageIcon(".\\resources\\icon_exit.png")); 71 btnExit.setBackground(new Color(255, 255, 255)); 72 btnExit.setBounds(185, 273, 125, 28); 73 contentPane.add(btnExit); 74 75 queryText = new JTextField(); 76 queryText.setBounds(36, 48, 330, 28); 77 contentPane.add(queryText); 78 queryText.setColumns(10); 79 80 queryResult = new JTextArea(); 81 queryResult.setEditable(false); 82 queryResult.setBounds(46, 102, 405, 154); 83 contentPane.add(queryResult); 84 85 JButton btQuery = new JButton("查询"); 86 btQuery.addActionListener(new ActionListener() { 87 public void actionPerformed(ActionEvent e) { 88 String info = queryText.getText(); 89 if (StringUtil.isEmpty(info)) { 90 JOptionPane.showMessageDialog(null, "查询信息不能为空!"); 91 return ; 92 } 93 Student student = new Student(info); 94 Course course = new Course(info); 95 96 DBUtil dbUtil = new DBUtil(); 97 StudentDao studentDao = new StudentDao(); 98 CourseDao courseDao = new CourseDao(); 99 100 Connection con = null;101 try {102 con = dbUtil.getCon();103 ArrayList<Course> courseList = studentDao.getScrore(con, student);104 ArrayList<Student> studentList = courseDao.getStudent(con, course);105 String result = "";106 for (Course c: courseList) {107 result += String.format("%3d", c.getId()) + "\t";108 result += String.format("%20s", c.getName()) + "\t";109 result += String.format("%10.2f", c.getScore()) + "\n";110 }111 for (Student s: studentList) {112 result += String.format("%10s", s.getSid()) + "\t";113 result += String.format("%10s", s.getSname()) + "\t";114 result += String.format("%10.2f", s.getScore()) + "\n";115 }116 queryResult.setText(result);117 } catch (Exception e1) {118 e1.printStackTrace();119 }120 }121 });122 btQuery.setIcon(new ImageIcon(".\\resources\\icon_query.png"));123 btQuery.setBounds(389, 47, 93, 29);124 contentPane.add(btQuery);125 126 lblNewLabel = new JLabel("输入要查询的学生姓名或课程名:");127 lblNewLabel.setBounds(26, 10, 208, 28);128 contentPane.add(lblNewLabel);129 }130 }
学生成绩管理系统 2.0(图形界面)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。