java学生成绩管理系统代码
- 格式:doc
- 大小:68.00 KB
- 文档页数:30
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());}}四、总结以上就是学生学分管理系统的设计与实现过程,完整功能的代码请参考具体实现。
Chap 2实践2-1class Ex2_1{public static void main(String[] args) {float sum=0.0f,count=1.0f;for(int i=1;i<=20;++i){count=1.0f;for(int j=1;j<=i;++j)count*=j;sum+=count;}System.out.println("1+2!+3!+...+20!的值为:"+sum);}}实践2-2public class Ex2_2{public static void main(String[] args) {System.out.println("** 菲波拉挈数列的前20个数为:**");long f1 = 1, f2 = 1;for (int i = 1; i <= 10; i ++) {System.out.print(f1 + " " + f2 + " ");if (i % 2 == 0) {System.out.println();}f1 = f1 + f2;f2 = f2 + f1;}}}Chap 3实践3-1public class Student{ static String name="张三";static int age;public Student(){age=18;}public static void main(String args[]){System.out.println("姓名:"+name+",年龄:"+age);}}实践3-2class People{String name;People(String name){=name ; //对成员变量name 初始化}}class Student extends People{String stuID;Student(String name,String stuID){super(name) ; //对继承自父类的成员变量name初始化this.stuID=stuID ; //对成员变量stuID 初始化}}public class PeopleDemo{public static void main(String arg[]) {Student stu=new Student("张三","20080601") ; //定义对象System.out.println(+" "+stu.stuID) ; //输出对象的姓名和学号}}实践4-1public class Ex4_1 {String str;public Ex4_1(String str) {this.str = str;}int getlength(){return(str.length());}public static void main(String[] args) {Ex4_1 test = new Ex4_1("Hello");System.out.println("字符串是:"+test.str+" 长度为:"+test.getlength());}}实践4-2import java.util.*;import java.io.*;public class Ex4_2{public static void main(String[] args) {String str1 = new String();String str2 = new String();char ch;Scanner reader= new Scanner(System.in);System.out.println("输入字符串:");str1=reader.next(); //输入字符串System.out.println("输入要删除的字符:");str2=reader.next(); //输入穿要删除的字符,以字符串的形式输入ch=str2.charAt(0); //将字符串转换为字符str2=str1.replace(ch,' '); //用空格替代指定字符System.out.println("删除字符后的字符串"+str2);}}实践5-1public class Ex5_1{public static void main(String[] args) {try {int num[] = new int [10];System.out.println("num[10] is " + num[10]);}catch (Exception ex){System.out.println("Exception");}catch (RuntimeException ex){System.out.println("RuntimeException");}catch (ArithmeticException ex){System.out.println("ArithmeticException");}}}实践5-2public class Ex5_2{static double cal(double a, double b)throws IllegalArgumentException{ double value;if ( b == 0 ){ // 抛出IllegalArgumentException异常throw new IllegalArgumentException("除数不能为0");} else {value = a/b;if ( value < 0 ){ // 抛出IllegalArgumentException异常throw new IllegalArgumentException("运算结果小于0");}}return value;}public static void main(String[] args){ double result;try{ double a = Double.parseDouble(args[0]);double b = Double.parseDouble(args[1]);result = cal(a, b);System.out.println("运算结果是: " + result);}catch( IllegalArgumentException e ){ // 处理llegalArgumentException异常System.out.println("异常说明: "+e.getMessage());}}}Chap 6实践6-1import javax.swing.JFrame;import javax.swing.JLabel;import java.awt.Font;public class ex6_1 {public static void main(String[] args){JFrame frame=new JFrame();JLabel label1=new JLabel("JA V A Programming");Font font1=label1.getFont();font1=new Font("Courier", font1.getStyle(), 20); label1.setFont(font1);frame.getContentPane().add(label1);frame.pack();frame.setVisible(true);}}实践6-2import javax.swing.*;public class ex6_2 extends JFrame {public ex6_2(){super("第一个窗体");setDefaultCloseOperation(DISPOSE_ON_CLOSE);setSize(300, 150);setLocationRelativeTo(null);setVisible(true);}public static void main(String [] args){new ex6_2();}}Chap 7实践7-1import javax.swing.*;import java.awt.*;public class ex7_1 extends JFrame{ex7_1(){super("程序调试");setLayout(new FlowLayout());JButton jbtn1=new JButton("确定");JButton jbtn2=new JButton("取消");this.getContentPane().add(jbtn1);this.getContentPane().add(jbtn2);this.setVisible(true);this.setSize(300,150);}public static void main( String args[]) {new ex7_1 ();}}实践7-2import javax.swing.*;import java.awt.*;public class Ex7_2 extends JFrame{Panel pan0,pan1,pan2,pan3,pan4,pan5,pan6,pan7;Panel[] pan;String[] numStr={"1","2 ABC","3 DEF","4 GHI","5 JKL","6 MNO","7 PQRS","8 TUV","9 WXYZ","*","0","#"};Ex7_2(){super("手机键盘界面");pan=new Panel[8];for(int j=0;j<8;j++){pan[j]=new Panel();}ImageIcon icon=new ImageIcon("JM1.jpg");JLabel jlab1=new JLabel(icon,SwingConstants.CENTER);pan[5].add(jlab1);pan[0].setLayout(new GridLayout(4,3));for(int i=0;i<numStr.length;i++){pan[0].add(new JButton(numStr[i]));}pan[1].setLayout(new GridLayout(2,1));pan[1].add(new JButton("确定"));pan[1].add(new JButton("Call"));pan[2].setLayout(new GridLayout(2,1));pan[2].add(new JButton("取消"));pan[2].add(new JButton("ON/OFF"));pan[7].setLayout(new BorderLayout());pan[7].add("North",new JButton("上"));pan[7].add("South",new JButton("下"));pan[7].add("East",new JButton("右"));pan[7].add("West",new JButton("左"));pan[3].setLayout(new BorderLayout());pan[3].add(pan[7]);pan[4].setLayout(new GridLayout(1,3));pan[4].add(pan[1]);pan[4].add(pan[3]);pan[4].add(pan[2]);pan[6].setLayout(new GridLayout(3,1));pan[6].add(pan[5]);pan[6].add(pan[4]);pan[6].add(pan[0]);getContentPane().add(pan[6]);setVisible(true);setResizable(false);setLocation(400,150);pack();}public static void main(String[] args){new Ex7_2();}}Chap 8实践8-1import java.awt.event.*;import javax.swing.*;import java.awt.*;public class Ex8_1 extends JFrame implements WindowListener{ public Ex8_1(){Container con=this.getContentPane();con.setLayout(new FlowLayout());setBounds(0,0,200,200);setVisible(true);addWindowListener(this);}public static void main(String args[]){new Ex8_1();}public void windowClosing(WindowEvent e){System.out.println("The window closing");System.exit(0);}public void windowClosed(WindowEvent e){}public void windowOpened(WindowEvent e){System.out.println("window opened");}public void windowIconified(WindowEvent e){}public void windowDeiconified(WindowEvent e){}public void windowDeactivated(WindowEvent e) {System.out.println("The window deactived");}public void windowActivated(WindowEvent e){System.out.println("The window Activated");}}实践8-2import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Ex8_2 extends JFrame implements ActionListener {static Ex8_2 frm=new Ex8_2();static JButton btn1=new JButton("Yellow");static JButton btn2=new JButton("Green");public static void main(String args[]) {btn1.addActionListener(frm); // 把事件监听者frm向btn1注册btn2.addActionListener(frm); // 把事件聆听者frm向btn2注册frm.setTitle("Action Event");frm.setLayout(new FlowLayout(FlowLayout.CENTER));frm.setSize(200,150);frm.getContentPane().add(btn1);frm.getContentPane().add(btn2);frm.setVisible(true);}public void actionPerformed(ActionEvent e) {JButton btn=(JButton) e.getSource(); // 取得事件源对象if(btn==btn1) // 如果是按下btn1按钮frm.getContentPane().setBackground(Color.yellow);else if(btn==btn2) // 如果是按下btn2按钮frm.getContentPane().setBackground(Color.green);}}Chap 9实践9-1import javax.swing.*;import java.awt.*;import javax.swing.event.*;public class Ex9_1 extends JFrame implements ListSelectionListener{ String pro[] = {"软件专业", "网络专业", "动漫专业"};JPanel p1;JComboBox courseCombo;JList proList;Ex9_1(){proList = new JList(pro);proList.addListSelectionListener(this);courseCombo = new JComboBox();p1 = new JPanel();add(p1);p1.add(proList);p1.add(courseCombo);add(p1);setSize(400,200);setVisible(true);}public void valueChanged(ListSelectionEvent e){Object obj = e.getSource();if(obj==proList){courseCombo.removeAllItems();int nIndex = proList.getSelectedIndex();switch(nIndex ){case 0: courseCombo.addItem ("Java程序设计") ;courseCombo.addItem ("J2ee项目开发") ;break;case 1: courseCombo.addItem ("网络基本原理") ;courseCombo.addItem ("局域网技术与组网工程") ;courseCombo.addItem ("网络操作系统") ;break;case 2: courseCombo.addItem ("动漫造型") ;courseCombo.addItem ("漫画制作") ;break;}}}public static void main(String args[]){new Ex9_1();}}实践9-2import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Ex9_2 extends JFrame implements ItemListener{JRadioButton rad1=new JRadioButton("说法正确",false);JRadioButton rad2=new JRadioButton ("说法错误",false);ButtonGroup btg=new ButtonGroup ();JTextArea ta=new JTextArea(2,10);JTextField tf=new JTextField(4);JLabel lb=new JLabel("你的选择:");JPanel jp=new JPanel();String text="BoxLayout是由Swing 提供的布局管理器,功能上同GridBagLayout 一样强大,而且更加易用。
Java实操考核:编写一个简单的学生成绩管理系统简介学生成绩管理系统是一个常见的计算机实践项目,用于管理学生的课程成绩并进行基本的学生信息管理。
这个文档将指导你如何使用Java编写一个简单的学生成绩管理系统。
功能学生成绩管理系统应该具有以下功能: - 添加学生信息:包括学号、姓名、性别、年龄等基本信息。
- 添加课程成绩:包括课程名称和对应的分数。
- 查询学生信息:根据学号或姓名查询学生的基本信息和课程成绩。
- 修改学生信息:根据学号或姓名修改学生的基本信息和课程成绩。
- 删除学生信息:根据学号或姓名删除学生的信息。
设计思路学生成绩管理系统可以分为三个主要的类:Student、Course和Grade。
Student类表示学生,包含学生的基本信息,如学号、姓名、性别和年龄。
Course 类表示课程,包含课程名称和对应的分数。
Grade类表示学生成绩,包含学生的学号、课程名称和分数。
系统的主要逻辑如下: 1. 用户可以选择添加学生信息、添加课程成绩、查询学生信息、修改学生信息和删除学生信息等功能。
2. 添加学生信息时,用户需要输入学生的基本信息,并将其存储在一个学生列表中。
3. 添加课程成绩时,用户需要输入学生的学号和对应的课程名称及分数,并将其存储在一个成绩列表中。
4. 查询学生信息时,用户可以根据学号或姓名查询学生的基本信息和课程成绩。
5. 修改学生信息时,用户可以根据学号或姓名修改学生的基本信息和课程成绩。
6. 删除学生信息时,用户可以根据学号或姓名删除学生的信息。
实现步骤1.创建Student类,包含学生的基本信息(学号、姓名、性别、年龄)的成员变量和对应的get和set方法。
2.创建Course类,包含课程的名称和分数的成员变量和对应的get和set方法。
3.创建Grade类,包含学生的学号、课程名称和分数的成员变量和对应的get和set方法。
4.创建管理系统类,包含学生列表(ArrayList)和成绩列表(ArrayList)的成员变量。
import java.applet.Applet;import java.awt.*;import java.awt.event.*;import java.util.*;import ng.*;public class Students extends Applet implements ActionListener {Vector StuInf=new Vector();StudentInf SI;String xm;String bj;int i,j,xh;float cj;static int mid;Label prompt1=new Label("学生成绩管理系统");Label prompt2=new Label(" 用户:");Label prompt3=new Label(" 密码:");Label prompt4=new Label(" 班级:");Label prompt5=new Label(" 成绩:");TextField input1=new TextField(8);TextField input2=new TextField(8);TextField input3=new TextField(8);TextField input4=new TextField(8);Button btn1=new Button("登录");Button btn2=new Button("增加");Button btn3=new Button("修改");Button btn4=new Button("删除");public void init(){setLayout(new GridLayout(6,3));add(new Label());add(prompt1);add(new Label());add(prompt2);add(input1);add(new Label());add(prompt3);add(input2);add(btn1);add(prompt4);add(input3);add(new Label());add(prompt5);add(input4);add(new Label());add(btn2);add(btn3);add(btn4);prompt4.setVisible(false);prompt5.setVisible(false);input3.setVisible(false);input4.setVisible(false);btn2.setVisible(false);btn3.setVisible(false);btn4.setVisible(false);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);btn4.addActionListener(this);}public void actionPerformed(ActionEvent e){if(e.getActionCommand()=="登录"){String a,b;a=input1.getText();b=input2.getText();input1.setText("");if((a.equals("admin")==true)&&(b.equals("12345")==true)){prompt2.setText(" 姓名:");prompt3.setText(" 学号:");prompt4.setVisible(true);prompt5.setVisible(true);input3.setVisible(true);input4.setVisible(true);btn2.setVisible(true);btn3.setVisible(true);btn4.setVisible(true);btn3.setEnabled(false);btn4.setEnabled(false);btn1.setLabel("查询");input1.setText("登录成功");input1.selectAll();}elseinput2.setText("用户名或密码错");}if(e.getActionCommand()=="增加"){boolean scucss=true;try{XingMing();}catch(EmptyException as){input1.setText("姓名不能为空");scucss=false;}try{xh=Integer.parseInt(input2.getText());}catch(NumberFormatException m){input2.setText("学号为空或格式错");scucss=false;}bj=input3.getText();try{ChengJi();}catch(EmptyException as){cj=-1;}catch(OverException dd){input4.setText("应在0-100间");scucss=false;}catch(NumberFormatException cm){input4.setText("成绩应为数据");scucss=false;}if(scucss==true){SI=new StudentInf(xm,xh,bj,cj);Insert(SI);}}if(e.getActionCommand()=="修改"){xm=input1.getText();xh=Integer.parseInt(input2.getText());bj=input3.getText();cj=Float.valueOf(input4.getText()).floatValue();SI=new StudentInf(xm,xh,bj,cj);StuInf.setElementAt(SI, mid);btn3.setEnabled(false);}if(e.getActionCommand()=="删除"){StuInf.removeElementAt(mid);btn4.setEnabled(false);input1.setText("删除成功");input2.setText("");input3.setText("");input4.setText("");}if(e.getActionCommand()=="查询"){boolean right=true;try{xh=Integer.parseInt(input2.getText());}catch(NumberFormatException m){input2.setText("学号为空或格式错");right=false;}if(right==true){search(xh);btn3.setEnabled(true);btn4.setEnabled(true);}}}//查找方法public void search(int k){boolean exist=false;int low=0;int high=StuInf.size()-1;while(low<=high){mid=(high+low)/2;StudentInf a1=(StudentInf) StuInf.elementAt(mid);if(a1.getStuNo()==k){SI=(StudentInf) StuInf.elementAt(mid);String x = String.valueOf(SI.getStuNo());exist=true;input1.setText(SI.getname());input1.selectAll();input2.setText("0"+x);input3.setText(SI.getClassNo());if(SI.getLevel()==-1)input4.setText("未参加考试");else{String y = String.valueOf(SI.getLevel());input4.setText(y);}break;}else if(a1.getStuNo()<k)low=mid+1;elsehigh=mid-1;}if(exist==false){input1.setText("无此学号学生信息");input1.selectAll();}}//添加方法public void Insert(StudentInf q){int i=0;if(StuInf.isEmpty()==true){StuInf.addElement(q);input1.setText("");input2.setText("");input3.setText("");input4.setText("");}else{StudentInf xh;xh=(StudentInf) StuInf.firstElement();while(xh.getStuNo()<q.getStuNo()){i++;if(i<StuInf.size())xh=(StudentInf) StuInf.elementAt(i);elsebreak;}if(xh.getStuNo()==q.getStuNo()){input2.setText("此学生信息已存在");input2.requestFocus();input2.selectAll();}else{StuInf.insertElementAt(q,i);input1.setText("");input2.setText("");input3.setText("");input4.setText("");}}}//异常类class OverException extends Exception{String over;}class EmptyException extends Exception{String empty;}void XingMing() throws EmptyException{if((input1.getText()).equals(""))throw (new EmptyException());elsexm=input1.getText();}void ChengJi() throws OverException,EmptyException{if((input4.getText()).equals(""))throw(new EmptyException());elsecj=Float.valueOf(input4.getText()).floatValue();if(cj<0||cj>100)throw (new OverException());}//学生信息类public class StudentInf{private String name;private int StuNo;private String ClassNo;private float Level;StudentInf(String xingming,int xuehao,String banji,float chengji) {name=xingming;StuNo=xuehao;ClassNo=banji;Level=chengji;}public int getStuNo(){return StuNo;}public String getname(){return name;}public String getClassNo(){return ClassNo;}public float getLevel(){return Level;}}}。
学生成绩在线管理系统数据库课程设计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代码设计文档。
# 1. 引言本文档旨在描述学生管理系统的设计和实现细节。
该系统用于管理学生的基本信息、课程信息和成绩信息。
# 2. 系统概述学生管理系统是一个基于Java的桌面应用程序,用于管理学生信息。
它提供了以下功能:- 添加学生信息:包括姓名、学号、性别、年龄等基本信息。
- 添加课程信息:包括课程名称、学分、教师等信息。
- 添加成绩信息:将学生与课程关联,并录入学生的成绩。
- 查询学生信息:根据学号或姓名查询学生的基本信息、课程信息和成绩信息。
- 修改学生信息:可以修改学生的基本信息、课程信息和成绩信息。
- 删除学生信息:可以删除学生的基本信息、课程信息和成绩信息。
# 3. 系统结构学生管理系统由以下几个模块组成:- 学生信息模块:用于管理学生的基本信息。
- 课程信息模块:用于管理课程的基本信息。
- 成绩信息模块:用于管理学生的成绩信息。
- 数据库模块:用于连接和操作数据库,存储和读取学生、课程和成绩信息。
# 4. 类设计## 4.1 学生类学生类表示学生的基本信息,包括姓名、学号、性别和年龄等属性。
它具有以下方法:- 构造方法:用于创建学生对象,初始化学生的基本信息。
- getter和setter方法:用于获取和设置学生的属性值。
## 4.2 课程类课程类表示课程的基本信息,包括课程名称、学分和教师等属性。
它具有以下方法:- 构造方法:用于创建课程对象,初始化课程的基本信息。
- getter和setter方法:用于获取和设置课程的属性值。
## 4.3 成绩类成绩类表示学生的成绩信息,包括学生、课程和成绩等属性。
它具有以下方法:- 构造方法:用于创建成绩对象,初始化成绩的基本信息。
基于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近年来,随着高校的扩招,运用常规的方法对学生成绩的管理变得越来越困难,因此学校迫切的需要一种高效的系统来帮助其管理学生的成绩。
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。
学生成绩管理系统案例描述案例要求模拟开发一个学生成绩管理系统,此系统具有以下功能:(1)添加学生信息,包括学号、姓名、语文、数学成绩;(2)显示学生信息,将所有学生信息打印输出;(3)修改学生信息,可以根据姓名查找到学生,然后可以修改学生姓名、成绩项;(4)删除学生信息,根据学号查找到学生,将其信息删除;(5)查找学生信息,根据学生姓名,将其信息打印输出;(6)按学生总成绩进行从高到低排序。
请通过编程完成此系统的开发。
案例分析因为学生信息包括学号、姓名和成绩等不同数据类型的属性,所以需要定义一个学生类型的结构体。
在存储学生信息时,可选用数组或链表,考虑到学生要根据总成绩来排序,为方便排序,我们选用数组来存储学生信息。
案例实现功能模块1500558349275功能函数实现添加记录—add()函数;显示记录—showAll()函数;修改记录—modify()函数;删除记录—del()函数;查找记录—search()函数;排序—sort()函数。
案例代码Student.h#ifndef STUDENT //先测试STUDENT是否被宏定义过,避免重新使用#define STUDENT //定义STUDENT#include <stdio.h>#include <string.h>#include <stdlib.h>#define HH printf("%-10s%-10s%-10s%-10s%-10s\n","学号", "姓名", "语文成绩", "数学成绩", "总分")struct student //学生记录{int id; //学号char n ame[8]; //姓名int chinese; //语文成绩int math; //数学成绩int sum; //总分};static int n; //记录学生信息条数void menu();void add(struct student stu[]); //函数声明void show(struct student stu[], int i);void showAll(struct student stu[]);void modify(struct student stu[]);void del(struct student stu[]);void search(struct student stu[]);void sort(struct student stu[]); //函数声明#endif //结束条件编译Student.c#define _CRT_SECURE_NO_WARNINGS#include "Student.h"void menu(){system("cls");//清空屏幕printf("\n");printf("\t\t --------------学生成绩管理系统--------------\n");printf("\t\t︱\t\t 1 添加记录︱\n");printf("\t\t︱\t\t 2 显示记录︱\n");printf("\t\t︱\t\t 3 修改记录︱\n");printf("\t\t︱\t\t 4 删除记录︱\n");printf("\t\t︱\t\t 5 查找记录︱\n");printf("\t\t︱\t\t 6 排序记录︱\n");printf("\t\t︱\t\t 0 退出系统︱\n");printf("\t\t --------------------------------------------\n");printf("\t\t请选择(0-6):");}void add(struct student stu[]){int i, id = 0; //i作为循环变量,id用来保存新学号char quit; //保存是否退出的选择do{printf("学号:");scanf("%d", &id);for (i = 0; i < n; i++){if (id == stu[i].id) //假如新学号等于数组中某生的学号{printf("此学号存在!\n");return;}}stu[i].id = id;printf("姓名:");scanf("%s", &stu[i].name);printf("语文成绩:");scanf("%d", &stu[i].chinese);printf("数学成绩:");scanf("%d", &stu[i].math);stu[i].sum = stu[i].chinese + stu[i].math; //计算出总成绩n++; //记录条数加1printf("是否继续添加?(Y/N)");scanf("\t%c", &quit);} while (quit != 'N');}void show(struct student stu[], int i){printf("%-10d", stu[i].id);printf("%-10s", stu[i].name);printf("%-10d", stu[i].chinese);printf("%-10d", stu[i].math);printf("%-10d\n", stu[i].sum);}void showAll(struct student stu[]){int i;HH;for (i = 0; i < n; i++){show(stu, i);}}void modify(struct student stu[]){char name[8], ch; //name用来保存姓名,ch用来保存是否退出的选择int i;printf("修改学生的记录。
Java 编写学生管理系统平均分引言学生管理系统是一种常见的教育管理工具,在教育领域得到广泛应用。
本文将介绍如何使用Java编写一个学生管理系统,主要功能是计算学生的平均分。
通过这个系统,教师可以方便地管理学生信息和计算平均分,提高教学效率。
功能要求学生管理系统平均分的基本功能需求如下:1.输入学生的基本信息,包括姓名、学号、成绩等;2.根据输入的学生信息,计算平均分;3.根据学生的学号或姓名查找学生信息;4.可以添加、删除、修改学生信息;5.显示学生的所有信息。
开发环境要求为了开发和运行这个学生管理系统,需要安装以下开发环境和工具:1.JDK(Java Development Kit):提供了Java编译器和运行时环境;2.IDE(集成开发环境):如Eclipse、IntelliJ IDEA等,在开发Java程序时提供代码编辑、编译、调试等功能;3.Git:用于源代码管理和版本控制;4.Maven或Gradle:用于依赖管理和构建项目;5.数据库:可选项,可以选择使用关系型数据库或者内存中的数据结构来存储学生信息。
系统设计数据模型为了管理学生信息,我们首先需要定义一个学生类,包含学生的姓名、学号和成绩等属性。
可以使用Java的类和对象来实现:public class Student {private String name;private String id;private double score;// 构造方法public Student(String name, String id, double score) { = name;this.id = id;this.score = score;}// Getter和Setter方法public String getName() {return name;}public void setName(String name) { = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}}功能实现在学生管理系统中,我们需要实现以下功能:1.输入学生信息:可以通过命令行或者图形界面获取用户输入的学生信息,并创建学生对象。
学⽣成绩管理系统开头:个⼈的第⼀篇博客,同时也是第⼀个完整的实战项⽬,由于经验不⾜,只能做出简单级别的当做练⼿.第⼀篇博客第⼀个项⽬⼀、开发背景:软件名称:学⽣成绩管理系统(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简单项目案例附讲解一、学生成绩管理系统项目简介:开发一个学生成绩管理系统,能够实现学生信息的录入、查询、修改和删除等功能,并能根据学生成绩进行排序和统计分析。
1. 学生信息录入:通过界面输入学生的基本信息包括学号、姓名、性别、年龄等,并能够录入学生的各科成绩。
2. 学生信息查询:提供学生信息的查询功能,可以按学号或姓名进行查询,查询结果展示学生的基本信息和各科成绩。
3. 学生信息修改:允许对学生的基本信息和成绩进行修改,包括姓名、性别、年龄、各科成绩等。
4. 学生信息删除:提供删除学生信息的功能,可以根据学号或姓名进行删除操作。
5. 学生成绩排序:能够按照总分或某一科目的成绩对学生进行排序,可以选择升序或降序排列。
6. 学生成绩统计:能够对学生的各科成绩进行统计分析,包括平均分、最高分、最低分等。
7. 数据存储:使用数据库或文件存储学生的信息和成绩数据,保证数据的可靠性和安全性。
二、图书管理系统项目简介:开发一个图书管理系统,能够实现图书的录入、借阅、归还和查询等功能,能够对借阅情况进行管理和统计。
1. 图书录入:通过界面输入图书的基本信息包括书名、作者、出版社、出版日期等,并生成唯一的图书编号。
2. 图书借阅:提供图书借阅功能,学生或教师可以通过输入图书编号进行借阅操作,并记录借阅人和借阅日期。
3. 图书归还:提供图书归还功能,借阅人可以通过输入图书编号进行归还操作,并记录归还日期。
4. 图书信息查询:能够根据图书编号或关键字进行图书信息的查询,查询结果展示图书的基本信息和借阅情况。
5. 借阅情况管理:能够对图书的借阅情况进行管理,包括借阅人、借阅日期、归还日期等。
6. 图书统计分析:能够对图书的借阅情况进行统计分析,包括借阅次数、借阅人数等。
7. 数据存储:使用数据库或文件存储图书的信息和借阅情况,保证数据的可靠性和安全性。
三、在线购物系统项目简介:开发一个在线购物系统,能够实现用户的注册、登录、商品浏览、购买和订单管理等功能,提供安全、便捷的购物体验。
学生信息管理系统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);}}```四、总结通过以上的代码示例,我们可以看到一个简单的学生信息管理系统的实现框架。
学生选课管理系统Java代码在现代教育系统中,学生选课管理是一个至关重要的环节。
为了提高选课管理效率,许多教育机构采用了计算机化的选课管理系统。
本文将介绍一个简单的学生选课管理系统的Java代码实现。
系统需求学生选课管理系统主要包括以下功能:•学生信息管理:包括学生姓名、学号、性别、所属班级等信息;•课程信息管理:包括课程编号、课程名称、授课教师、上课时间等信息;•选课功能:学生可以在系统中选择自己感兴趣的课程;•退课功能:学生可以取消已选的课程;•成绩查询:学生可以查询自己所选课程的成绩。
Java代码实现import java.util.ArrayList;import java.util.List;class Student {private String name;private int id;private String gender;private String className;public Student(String name, int id, String gender, String className) { = name;this.id = id;this.gender = gender;this.className = className;}}class Course {private int courseId;private String courseName;private String teacher;private String time;public Course(int courseId, String courseName, String teacher, Stri ng time) {this.courseId = courseId;this.courseName = courseName;this.teacher = teacher;this.time = time;}}public class CourseManagementSystem {private List<Student> students = new ArrayList<>();private List<Course> courses = new ArrayList<>();public void addStudent(Student student) {students.add(student);}public void addCourse(Course course) {courses.add(course);}public void enrollCourse(int studentId, int courseId) {// 实现选课功能}public void dropCourse(int studentId, int courseId) {// 实现退课功能}public void checkGrade(int studentId) {// 实现成绩查询功能}// 其他系统功能的实现代码可以在此处添加}public class Main {public static void main(String[] args) {// 在此处编写测试代码}}总结通过以上Java代码实现,可以初步实现一个简单的学生选课管理系统。
实习3 JavaBean/MySQL学生成绩管理系统本章以学生绩管理系统为例介绍Javabean的综合应用。
本系统实现学生信息的查询、录入、修改和删除,以及学生成绩的录入、修改等,包括了Jvabean的基本功能。
希望读者通过这个综合实例,了解用Javabean解决实际问题的基本方法。
综合应用实例的基本思路是:首先进入系统登录,登录成功进入学生成绩管理系统主页面。
主页面上提供系统的主要功能,单击某一功能,即进入该功能的页面。
P3。
1 构建系统准备P3。
1.1 数据库准备系统使用的数据库管理系统为Mysql5。
0,学生成绩数据库名为XSCJ.其中涉及4个表:学生信息表(XS),存放学生的基本信息;课程信息表(KC),存放课程的基本信息;学生课程成绩表(XSKC),存放学生课程的成绩信息;系统登录表(xscjuser),存放用户登录信息。
具体结构和样本数据参考附录A。
生成数据库表的sql语句如下:create database XSCJ;use XSCJ;drop table if exists KC; //删除已经存在的表drop table if exists XS;drop table if exists XSKC;drop table if exists xscjuser;create table KC //创建课程表(kch char (3)not null, //课程号kcm char (16),//课程名xq int(1), //学期xs int(1), //学时xf int(1),//学分primary key (kch)//主键“课程号”);create table XS //创建学生表(xh char(6) not null,//学号xm char(8), //姓名xb int, //性别cssj date,//出生日期zy char(10), //专业zxf int, //总学分bz text, //备注image longblob,//照片primary key (xh),//主键“学号");create table XSKC //创建成绩表(xh char(6)not null,//学号kch char(3), //课程号cj int(1), //成绩xf int(1), //学分primary key (xh)//主键“学号”);create table xscjuser //创建登录表(xh char(10)not null, //学号kl char(10),//口令primary key (xh)//主键“学号”);在命令行中输入以上sql语句,可以创建数据库XSCJ及4个表,也可以使用图形化用户界面工具MySQL Query Browser,把上面的SQL语句保存在D:\xscj.sql文件夹下,打开Query Browser工具,引入上面的SQL语句。
基于java的学生成绩管理系统的设计与实现基于Java的学生成绩管理系统的设计与实现序言在当今数字化时代,学生成绩管理是教育领域至关重要的一环。
传统的手工管理方式已经无法满足大规模学生信息处理的需求,学生成绩管理系统的设计与实现显得尤为重要。
本文将通过对基于Java的学生成绩管理系统进行深度探讨,旨在帮助读者全面了解系统的设计原理及操作流程,并分享作者对该系统的个人观点和理解。
一、引言基于Java的学生成绩管理系统是一款通过计算机实现的,能够方便、高效地管理学生成绩信息的软件。
该系统通过数据的存储、计算、分析和展示等功能,帮助教师和学校管理人员更好地了解学生成绩状况,及时进行个性化教学和学生成长。
下面将从系统的设计理念、功能模块和技术实现等方面进行全面介绍。
二、设计理念基于Java的学生成绩管理系统的设计理念是面向对象和模块化。
对于面向对象,系统将学生、教师、课程等各种元素抽象为对象,通过类与类之间的关系进行交互和数据传递;对于模块化,系统将各个功能模块拆分成独立的子系统,方便维护和拓展。
这两个设计理念保证了系统的可扩展性和灵活性,使其能够适应不同规模和功能要求的教育机构。
三、功能模块1. 学生管理模块学生管理模块是学生成绩管理系统的核心,包括学生信息录入、修改、查询及删除等功能。
教师可以通过该模块录入学生的基本信息,如尊称、学号、性别等,并进行相应的更新和查询操作。
系统还提供成绩录入和成绩查询功能,方便教师对学生的成绩进行管理和统计。
2. 课程管理模块课程管理模块主要用于管理学生所修读的课程信息。
教师可以录入、修改和删除课程信息,并进行课程查询和统计操作。
该模块与学生管理模块相互关联,为学生成绩分析和排名提供了基础数据。
3. 成绩分析模块成绩分析模块是学生成绩管理系统的关键功能之一。
通过该模块,教师可以进行成绩的分析和统计操作。
系统提供了多种统计指标,如平均分、最高分、最低分等,教师可以根据需要进行灵活的分析和对比。
Java课程设计报告题目:学生信息管理系统2012年12月21日目录一、实验目的----------------------------------------------------1二、应用需求分析----------------------------------------------1三、主要功能(系统流程图)-------------------------------2四、数据库设计-------------------------------------------------5五、系统操作----------------------------------------------------7六、程序类的设计---------------------------------------------15七、系统使用说明及环境配置------------------------------16八、附录---------------------------------------------------------16一、实验目的掌握java编程技术、Microsoft SQL Server 2005数据库的建立使用以及java与Microsoft SQL Server 2005的连接技术。
二、应用需求分析学生信息管理系统需要满足来自二方面的需求,这两个方面分别是学生、管理员。
学生的需求是学生信息查看、成绩信息查看、个人信息管理;管理员对学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理。
学生可以直接查看个人信息情况,学生可以根据本人学号和密码登录系统,还可以修改个人登录密码。
一般情况下,学生只应该查询和维护本人的信息情况。
若查询和修改其他学生的信息情况,就要知道其他学生的学号和密码。
这些是很难得到的,特别是密码,所以不但满足了学生的要求,还保护了个人隐私。
管理员有管理员的使用权限,对系统有维护的权限。
JAVA课程设计学生信息管理系统代码某Tochangethitemplate,chooeTool|Template某andopenthetemplateintheeditor.某/packagetudentinfo;importjava.awt.某;importjava某.wing.某;importjava.awt.event.某;importjava.awt.某;importjava.awt.event.某;importjava.util.某;importjava某.wing.border.某;importjava某.wing.JOptionPane;importjava某.wing.JLabel;importjava某.wing.JPanel;importjava某.wing.table.DefaultTableModel; importjava某.wing.table.TableColumn;importjava.ql.某;importjava.awt.GridLayout;//网格式布局//导入javar需要的jar包publicclaStudentInfo{publicStudentInfo()//构造方法{}publictaticvoidmain(String[]arg){//TODOcodeapplicationlogichereloginFramelf=newloginFrame();//加载窗体lf.etViible(true);//设置窗体可见lf.addWindowLitener(newWindowAdapter()//添加窗口监听以接受关闭事件{publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);}});}}//学生成绩管理系统界面clamainFramee某tendJFrameimplementActionLitener{MenuBarmyMenuBar=newMenuBar();//菜单MenuItemmiNew,miOpen,miSave,miSaveA,miE某it;MenuItemmiAdd,miEdit,miDel,miFind,miShow,miUer,miAbout;public JTabletable=newJTable();//表格publicDefaultTableModelmm;//表格模型publicmainFrame(){myMenuFile=newMenu("文件");miNew=newMenuItem("新建");miOpen=newMenuItem("打开");miSave=newMenuItem("保存");miE某it=newMenuItem("退出");//miNew.enable(fale);//miOpen.enable(fale);//miSave.enable(fa le);//myMenuFile.add(miNew);//myMenuFile.add(miOpen);//myMenuFil e.add(miSave);myMenuFile.add(miE某it);myMenuEdit=newMenu("数据编辑");miFind=newMenuItem("查找数据");miAdd=newMenuItem("添加数据");miEdit=newMenuItem("修改数据");miDel=newMenuItem("删除数据");miShow=newMenuItem("全部显示");myMenuEdit.add(miFind);myMenuEdit.add(miAdd);myMenuEdit.add(m iEdit);myMenuEdit.add(miDel);myMenuEdit.add(miShow);myMenuUer=ne wMenu("用户管理");miUer=newMenuItem("编辑用户");myMenuUer.add(miUer);myMenuAbout=newMenu("关于我");miAbout=newMenuItem("我的信息");myMenuAbout.add(miAbout);myMenuBar.add(myMenuFile);myMenuBar.add(myMenuEdit);myMenuBar.add(myMenuUer);myMenuBar.add(myMenuAbout);String[]col={"学号","姓名","性别","班级","专业","大学语文","大学英语","高等数学"};//创建属性列名table.etModel(mm);JScrollPanetableScrollPane=newJScrollPane( table);//设置滚动条thi.etMenuBar(myMenuBar);thi.add(tableScrollPane);miE某it.addActionLitener(thi);//为各按钮注册事件监听器对象miFind.addActionLitener(thi);miAdd.addActionLitener(thi);miEdit. addActionLitener(thi);miDel.addActionLitener(thi);miShow.addActi onLitener(thi);miUer.addActionLitener(thi);miAbout.addActionLite ner(thi);}publicvoidfrehTable(Stringql){myConnectionconn=newmyCo nnection();//获得数据库连接ReultSetr;//保存查询返回结果对象r=conn.getReult(ql);if(r!=null){try{mm.etRowCount(0);table.etMod el(mm);while(r.ne某t()){String学号=r.getString("学号");String姓名=r.getString("姓名");String性别=r.getString("性别");String班级=r.getString("班级");String专业=r.getString("专业");String大学语文=r.getString("大学语文");String大学英语=r.getString("大学英语");String高等数学=r.getString("高等数学");String[]cloumn={学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学};mm.addRow(cloumn);}//table.clearSelection();table.etModel(mm );}catch(E某ceptione){}}}//捕获异常publicvoidactionPerformed(ActionEvente)//重载动作事件接口中的方法{//退出if(e.getSource()==miE某it){Sytem.e 某it(0);//查找}eleif(e.getSource()==miFind){findFrameff=newfindFrame(thi);ff .etViible(true);//添加}eleif(e.getSource()==miAdd){addFrameaf=newaddFrame(thi);af.et Viible(true);//修改}eleif(e.getSource()==miEdit){if(table.getSelectedRow()==-1){JOptionPane.howMeageDialog(null,"请选择你要修改的内容","温馨提示",RMATION_MESSAGE);//弹窗提示}{editFrameef=neweditFrame(thi);ef.学号.etTe某t((String)table.getValueAt(table.getSelectedRow(),0));ef.姓名.etTe某t((String)table.getValueAt(table.getSelectedRow(),1));ef.性别.etTe某t((String)table.getValueAt(table.getSelectedRow(),2));ef.班级.etTe某t((String)table.getValueAt(table.getSelectedRow(),3));ef.专业.etTe某t((String)table.getValueAt(table.getSelectedRow(),4));ef.大学语文.etTe某t((String)table.getValueAt(table.getSelectedRow(),5));ef.大学英语.etTe某t((String)table.getValueAt(table.getSelectedRow(),6));ef.高等数学.etTe某t((String)table.getValueAt(table.getSelectedRow(),7));ef.etViibl e(true);thi.frehTable("elect某from学生成绩表");//刷新表格}//删除eleif(e.getSource()==miDel){if(table.getSelectedRow()==-1){JOptionPane.howMeageDialog(null,"请选择你要删除的行","温馨提示",RMATION_MESSAGE);}ele{Stringql="deletefrom学生成绩表where学号='"+table.getValueAt(table.getSelectedRow(),0)+"'";//JOptionPane.howMeageDialog(null,ql,"温馨提示",RMATION_MESSAGE);myConnectionconn=newmyConnection();if(conn.e某ecuteSql(ql)){JOptionPane.howMeageDialog(null,"成功删除","温馨提示",RMATION_MESSAGE);thi.frehTable("elect某from学生成绩表");ele{JOptionPane.howMeageDialog(null,"未知错误","删除失败",RMATION_MESSAGE);}}//显示}eleif(e.getSource()==miShow){//JOptionPane.howMeageDialog(null,"未知错误","删除失败",RMATION_MESSAGE);thi.frehTable("elect某from学生成绩表");//编辑用户}eleif(e.getSource()==miUer){uerFrameuf=newuerFrame();uf.etViible(true);//作业说明}eleif(e.getSource()==miAbout){aboutFrameaf=newaboutFrame();af.etViible(true);}}}clamyConnection{ReultSetre;Stringtrurl="jdbc:odbc:driver={MicrooftAcceDriver(某.mdb)};D BQ=学生管理数据库.mdb";//Stringtrurl="jdbc:odbc:driver={MicrooftAcceDriver(某.mdb)} ;DBQ=学生管理数据库.mdb";//Stringtrurl="jdbc:odbc:cah";//cah为数据源名称publicmyConnection(){}publicReultSetgetReult(Stringql){try{Cla.forName("un.jdbc.odbc.JdbcOdbcDriver");Connectionconn=DriverManager.getConnection(trurl);Statementtmt=conn.createStatement(ReultSet.TYPE_SCROLL_SENSITIVE,Reul tSet.CONCUR_UPDATABLE);ReultSetre=tmt.e某ecuteQuery(ql);returnre;}catch(E某ceptione){e.printStackTrace();//异常处理returnnull;}}publicbooleane某ecuteSql(Stringql){try{Cla.forName("un.jdbc.odbc.JdbcOdbcDriver"); Connectionconn=DriverManager.getConnection(trurl); Statementtmt=conn.createStatement();tmt.e某ecuteUpdate(ql);mit();returntrue;}catch(E某ceptione){e.printStackTrace();returnfale;}}}claaddFramee某tendJDialogimplementActionLitener {publictaticfinalintWIDTH=400;publictaticfinalintHEIGHT=400;JLabel学号1,姓名1,性别1,班级1,专业1,大学语文1,大学英语1,高等数学1;JTe某tField学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学;JButtonb;JPanelp;mainFramemf;publicaddFrame(mainFramemmf){etT itle("添加学生成绩");etSize(WIDTH,HEIGHT);etLocation(120,180);ContainercontentPane =getContentPane();//创建一个容器对象contentPane.etLayout(newFlowLayout());//流式布局学号1=newJLabel("学号");姓名1=newJLabel("姓名");性别1=newJLabel("性别");班级1=newJLabel("班级");专业1=newJLabel("专业");大学语文1=newJLabel("大学语文");大学英语1=newJLabel("大学英语");高等数学1=newJLabel("高等数学");学号=newJTe某tField(5);姓名=newJTe某tField(5);性别=newJTe某tField(5);班级=newJTe某tField(5);专业=newJTe某tField(5);大学语文=newJTe某tField(5);大学英语=newJTe 某tField(10);高等数学=newJTe某tField(10);b=newJButton("确定");p=newJPanel();p.etLayout(newGridLayout(10,2,5,5));//表格布局p.add(学号1);p.add(学号);p.add(姓名1);p.add(姓名);p.add(性别1);p.add(性别);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(大学语文1);p.add(大学语文);p.add(大学英语1);p.add(大学英语);p.add(高等数学1);p.add(高等数学);p.add(newLabel(""));p.add(newLabel(""));p.add(b);contentPane .add(p);//添加按钮监听器b.addActionLitener(thi);mf=mmf;}publicvoidactionPerformed(ActionEvente){if(学号.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入学号","温馨提示",RMATION_MESSAGE);}eleif(姓名.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入姓名","温馨提示",RMATION_MESSAGE);}eleif(大学语文.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入大学语文","温馨提示",RMATION_MESSAGE);}ele{Stringql="elect某from学生成绩表where学号='"+学号.getTe某t()+"'";myConnectionconn=newmyConnection();ReultSetr;r=conn.getReult (ql);try{//Sytem.out.println(r.getRow());if(r.ne某t()){ JOptionPane.howMeageDialog(null,"此学号已经存在","温馨提示",RMATION_MESSAGE);误信息}//添加学生的时候,发现数据库已经有了,提示你学号已经存在,报错ele{ql="inertinto学生成绩表value('"+学号.getTe某t()+"','"+姓名.getTe某t()+"','"+性别.getTe某t()+"','"+班级.getTe某t()+"','"+专业.getTe某t()+"','"+大学语文.getTe某t()+"','"+大学英语.getTe某t()+"','"+高等数学.getTe某t()+"')";//实行数据库插入的语句if(conn.e某ecuteSql(ql))//插入语句{JOptionPane.howMeageDialog(null,"添加成功","温馨提示",RMATION_MESSAGE);}ele{mf.frehTable("elect某from学生成绩表");学号.etTe某t("");姓名.etTe某t("");性别.etTe某t("");班级.etTe某t("");专业.etTe某t("");大学语文.etTe某t("");大学英语.etTe某t("");高等数学.etTe某t("");JOptionPane.howMeageDialog(null,"添加失败","温馨提示",RMATION_MESSAGE);}//插入失败}}catch(E某ceptioner){Sytem.out.println(er.toString());}}}}claeditFramee某tendJDialogimplementActionLitener{publictaticfinalintWIDTH=400;publictaticfinalintHEIGHT=400;JLabel学号1,姓名1,性别1,班级1,专业1,大学语文1,大学英语1,高等数学1;JTe某tField学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学;JButtonb;JPanelp;mainFramemf;publiceditFrame(mainFramemmf){et Title("修改学生信息");etSize(WIDTH,HEIGHT);etLocation(120,180);ContainercontentPane =getContentPane();contentPane.etLayout(newFlowLayout());学号1=newJLabel("学号");姓名1=newJLabel("姓名");性别1=newJLabel("性别");班级1=newJLabel("班级");专业1=newJLabel("专业");大学语文1=newJLabel("大学语文");大学英语1=newJLabel("大学英语");高等数学1=newJLabel("高等数学");学号=newJTe某tField(5);姓名=newJTe某tField(5);性别=newJTe某tField(5);班级=newJTe某tField(5);专业=newJTe某tField(5);大学语文=newJTe某tField(5);大学英语=newJTe 某tField(10);高等数学=newJTe某tField(10);学号.etEnabled(fale);b=newJButton("确定");p=newJPanel();p.etLayout(newGridLayout(10,2,5,5));p.add(学号1);p.add(学号);p.add(姓名1);p.add(姓名);p.add(性别);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(大学语文1);p.add(大学语文);p.add(大学英语1);p.add(大学英语);p.add(高等数学1);p.add(高等数学);p.add(newLabel(""));p.add(newLabel(""));p.add(b);contentPane .add(p);//添加按钮监听器b.addActionLitener(thi);mf=mmf;}//这是画界面publicvoidactionPerformed(ActionEvente){if(学号.getTe某t().toString().equal(""))//判断{JOptionPane.howMeageDialog(null,"请输入学号","温馨提示",RMATION_MESSAGE);//弹出的小窗口提示}eleif(姓名.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入姓名","温馨提示",RMATION_MESSAGE);}eleif(大学语文.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入大学语文","温馨提示",RMATION_MESSAGE);}ele{Stringql="update学生成绩表et姓名='"+姓名.getTe某t()+"',性别='"+性别.getTe某t()+"',班级='"+班级.getTe某t()+"',专业='"+专业.getTe某t()+"',大学语文='"+大学语文.getTe某t()+"',大学英语='"+大学英语.getTe某t()+"',高等数学='"+高等数学.getTe某t()+"'where学号='"+学号.getTe某t()+"'";myConnectionconn=newmyConnection();//打开数据库的连接try{//JOptionPane.howMeageDialog(null,ql,"温馨提示",RMATION_MESSAGE);if(conn.e某ecuteSql(ql))//执行ql语句,弹出窗口,查询学生表刷新table{JOptionPane.howMeageDialog(null,"修改成功","温馨提示",RMATION_MESSAGE);mf.frehTable("elect某from学生成绩表");thi.dipoe();//关闭当前窗体对象,隐藏}ele{JOptionPane.howMeageDialog(null,"修改失败","温馨提示",RMATION_MESSAGE);}}catch(E某ceptioner){er.printStackTrace();}}}}clafindFramee某tendJDialogimplementActionLitener{mainFramemf;JPanelp;JTe某tFieldt;JButtonb;JButtonfAll;Stringql="elect某fromtudent";String[]colStr={"学号","姓名","性别","班级","专业","大学语文","大学英语","高等数学"};publicfindFrame(mainFramemmf) {mf=mmf;p=newJPanel();t=newJTe某tField(10);b=newJButton("查找");fAll=newJButton("全部显示");b.addActionLitener(thi);fAll.addActionLitener(thi);p.add(newJLabel("选择"));p.add(c);p.add(newJLabel("查找内容"));p.add(t);p.add(b);p.add(fAll);thi.add(p);thi.etTitle("查找");thi.etSize(450,80);}publicvoidactionPerformed(ActionEvente){//查找if(e.getSource()==b){StringelectStr=c.getSelectedItem().toString(); if(electStr=="大学英语"){ql="elect某from学生成绩表"+t.getTe某t().toString();}ele{ql="elect某from学生成绩表'"+t.getTe某t().toString()+"'";}mf.frehTable(ql);//全部显示}if(e.getSource()==fAll){ql="elect某from学生成绩表";mf.frehTable(ql);}//监听程序,选择查成绩,最后是重新刷新table }}claaboutFramee某tendJDialog//关于我的信息{aboutFrame(){JPanelp1=newJPanel();where"+electStr+"where"+electStr+"== clauerFramee某tendJFrameimplementActionLitener//用户密码{JTe某tFielduer,pa;JButtonadd,del;JTablet;JPanelp1,p2,p3,p4,p5;DefaultTableModelm;publicuerFrame(){p1=newJPanel();p2=newJPanel();p3=newJPanel();p4=newJPanel();p5=newJPanel();uer=newJTe某tField(8);pa=newJTe某tField(8);add=newJButton("添加");del=newJButton("删除");String[]col={"用户名","密码"};m=newDefaultTableModel(col,0);t=newJTable();t.etModel(m);JScr ollPanep=newJScrollPane(t);p1.add(newJLabel("用户名"));p1.add(uer);p1.add(newJLabel("密码"));p1.add(pa);p1.add(add);p2.add(p);p3.add(del);add.addActionLi tener(thi);del.addActionLitener(thi);myConnectionconn=newmyConne ction();ReultSetr;r=conn.getReult("elect某from管理员");//开始时连接数据库,查询数据,返回结果集,if(r!=null){//把查询结果放到table里面try{//m.etRowCount(0);//table.etModel(mm);while(r.ne某t()){String用户名=r.getString("用户名");String密码=r.getString("密码");String[]cloumn={用户名,密码};m.addRow(cloumn);}t.etModel(m);}catch(E某ceptione){Sytem.out.println(e.toString());}}thi.add(p1,BorderLay out.NORTH);thi.add(p2,BorderLayout.CENTER);thi.add(p3,BorderLayo ut.SOUTH);thi.add(p4,BorderLayout.WEST);thi.add(p5,BorderLayout. EAST);thi.etTitle("用户管理");thi.etSize(600,400);}publicvoidactionPerformed(ActionEvente){ //用户添加if(e.getSource()==add){if(uer.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入用户名","温馨提示",RMATION_MESSAGE);eleif(pa.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入密码","温馨提示",RMATION_MESSAGE);}elemyConnectionconn=newmyConnection();ReultSetr;try{r=conn.getReult("elect某from管理员where用户名='"+uer.getTe某t().toString()+"'");if(r.ne某t()){JOptionPane.howMeageDialog(null,"此用户已经存在","温馨提示",RMATION_MESSAGE);}ele{if(conn.e某ecuteSql("inertinto管value('"+uer.getTe某t().toString()+"','"+pa.getTe某t().toString()+"')"))String[]newUer={uer.getTe某t(),pa.getTe某t()};m.addRow(newUer);t.etModel(m);理员JOptionPane.howMeageDialog(null,"添加成功","温馨提示",RMATION_MESSAGE);}ele{JOptionPane.howMeageDialog(null,"添加失败","温馨提示",RMATION_MESSAGE);}}}catch(E某ceptioner){Sytem.out.println(er.toString());}}//删除}eleif(e.getSource()==del){if(t.getSelectedRow()==-1){JOptionPane.howMeageDialog(null,"请选择你要删除的行","温馨提示",RMATION_MESSAGE);}ele{=",Stringql="deletefrom管理员where用户名'"+t.getValueAt(t.getSelectedRow(),0)+"'";//JOptionPane.howMeage Dialog(null,ql,"温馨提示RMATION_MESSAGE);myConnectionconn=newmyConnection();if(conn.e某ecuteSql(ql)){m.removeRow(t.getSelectedRow());t.etModel(m);//t.removeRowSelectionInterval();JOptionPane.howMeageDialog(null,"成功删除","温馨提示",RMATION_MESSAGE);}ele{JOptionPane.howMeageDialog(null,"未知错误","删除失败",RMATION_MESSAGE);}}}}}claloginFramee某tendJDialogimplementActionLitener//登陆{JPanelp;JTe某tFielduer,pa;JButtonlogin,cancel;publicloginFrame(){p=newJPanel();uer=newJTe某tField(10);pa=newJTe某tField(10);login=newJButton("登录");cancel=newJButton("退出");uer.etTe某t("");pa.etTe某t("");login.addActionLitener(thi);cancel.addActionLitener(thi);p.add(newJLabel("账号"));p.add(uer);p.add(newJLabel("密码"));p.add(pa);p.add(login);p.add(cancel);thi.add(p);thi.etTitle("学生成绩管理系统");JLabelimg=newJLabel(newImageIcon("1.jpg"));p.add(img);thi.etSize(700,600);}publicvoidactionPerformed(ActionEvente){//查找if(e.getSource()==login){if(uer.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入用户名","温馨提示",RMATION_MESSAGE);}eleif(pa.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入密码","温馨提示",RMATION_MESSAGE);}ele{myConnectionconn=newmyConnection();ReultSetr;Stringql="elect某from管理员where用户名='"+uer.getTe某t().toString()+"'and密码='"+pa.getTe某t().toString()+"'";try{r=conn.getReult(ql);if(r.ne某t()){thi.dipoe();//JOptionPane.howMeageDialog(null,"此用户已经存在","温馨提示",RMATION_MESSAGE);ql="elect某from学生成绩表";mainFramemf=newmainFrame();mf.etTitle("学生成绩管理系统");mf.etSize(600,486);mf.frehTable(ql);mf.etViible(true);mf.addWindowLitener(newWindowAdapter(){publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);}});}ele{JOptionPane.howMeageDialog(null,"用户名或密码错误","登录失败",RMATION_MESSAGE);}}catch(E某ceptioner){Sytem.out.println(er.toString());}}}}//全部显示}if(e.getSource()==cancel){Sytem.e某it(0);}。
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);else if(strScore.equals(""))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();conn.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{JOptionPane.showMessageDialog(this,"不存在该记录~"); 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();else if(ae.getSource()==btnCancel){txtName.setText("");txtPwd.setText("");txtName.requestFocus();}else if(ae.getSource()==btnOk){String str="select * from 用户表 where 用户名='"+txtName.getText()+"'and 密码='"+new String(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(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());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;ScoreQueryForm(){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=new JMenuItem("按成绩查询"); 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();}}。