Java学生管理系统实验报告
学生管理系统JAVA实验报告
实验报告学生信息管理系统学号:XXXXXXXX姓名:XXXXXX班级:XXXXXXXXXXXXXXX摘要本文着重阐述了“学生信息管理系统”的开发过程。
对于设计思想和设计流程也做出了全面的叙述,在数据库创建思想以及各个数据表之间的具体关联等方面也做出了详细说明,并且具体剖析了系统各个功能的实现过程以及详细设计过程,在绘制简单系统功能模块图的同时,力求更加清晰地表明设计思想以及对整个学生模块程序设计的规划及具体实现过程。
本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了学生管理的工作效率和学校的信息化的水平。
AbstractThis article focuses on the student information management system---student module for the development process. Introduced a system for environment and development tools, the design concept and design process has also made a comprehensive narrative, in the database to create ideological and various data tables specific links between the areas has also made detailed and specific analysis of the The various functions of the system to achieve process and detailed design process, drawing a simple system function modules map at thesame time, to more clearly show that design thinking and the whole process of planning and design of concrete realization.This system has many features: system fully functional, easy to use simple user-friendly user interface, complete security settings, greatly reducing the operators and users of the burden and improve the efficiency of the management of students and school information Level. 1.实验目的:编写学生信息管理系统程序:(1)基本要求:学生信息(包括学号、姓名、性别、年龄、家庭住址、电话等)的添加,删除,修改,查询(包括按学号,按姓名等查询)。
JAVA学生信息管理系统实验报告
JA V A程序设计实验报告学号:姓名:班级:实验、Java课程设计--------学生信息管理系统一、实验目的1.掌握Java基本语法2.理解面向对象编程特点3.理解Java I/O编程4.掌握Java图形界面编程5.掌握Java与不同数据库进行连接二、预习内容Java的基本语法知识、类和对象、Java Swing图形界面编程、Java I/O处理以及Java与数据库连接操作三、实验设备与环境通过局域网互联,安装Windows 2000/XP操作系统环境的JDK 1.6,my eclipse 或者EditPlus编程工具。
并安装MySQL数据库四、实验内容编写并调试运行Java程序,进行设计,掌握Java开发的基础。
五、实验任务设计学生信息管理系统。
要求包括1. 登陆模块:设立超级管理员权限,用户可以根据不同的权限登陆系统,超级管理员可以对学生信息进行增、删、改、查操作。
而普通用户只可以查找学生信息。
2. 包括学生添加信息模块、学生信息删除模块、学生信息修改模块和学生信息查询模块3.对于管理员,可以对管理员进行添加、删除以及修改密码等操作。
六、实验报告(要求独立完成参考程序的代码、编译、调试与运行)1、程序清单:1.1程序模块清单package Pan;import java.awt.event.ItemListener;import javax.swing.*;import ponent;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.InputEvent;import java.awt.event.ItemListener;import java.awt.event.KeyEvent;import java.awt.event.ActionListener; import java.awt.event.ActionEvent;import java.util.*;import java.awt.Color;import java.text.DecimalFormat;import java.sql.*;import java.sql.Date;import java.awt.*;import java.util.Vector;public class Res{/*** @param args*/public static void main(String[] args) {FirstWindow win =new FirstWindow("学生信息管理系统");}}class FirstWindow extends JFrame implements ActionListener{JMenuBar menubar;JMenu menu1,menu2,menu3,menu4;public final JMenuItem a11,a12,a13,a14,a15,a16,a17;public final JMenuItem a21,a22,a23,a24;public final JMenuItem a3;public final JMenuItem a4;public final JButton btn;JPanel pnl;JLabel label;boolean flag;FirstWindow(String s){setTitle(s);setSize(400,400);setLocation(100,100);setVisible(true);setDefaultCloseOperation(3);pnl=new JPanel();this.getContentPane().add(pnl);pnl.setLayout(new BorderLayout());label=new JLabel("欢迎使用学生管理系统",JLabel.CENTER);label.setForeground(Color.red);pnl.add(label,BorderLayout.CENTER);menubar=new JMenuBar();menu1=new JMenu("使用");menu2=new JMenu("用户管理");menu3=new JMenu("帮助");menu4=new JMenu("退出");a11=new JMenuItem("管理员登录");a12=new JMenuItem("查询学生信息");a13=new JMenuItem("更改学生信息");a14=new JMenuItem("删除学生信息");a15=new JMenuItem("添加学生信息");a16=new JMenuItem("超级管理员登录");a17=new JMenuItem("普通学生登录");a11.setEnabled(true);a16.setEnabled(true);a17.setEnabled(true);a12.setVisible(false);a13.setVisible(false);a14.setVisible(false);a15.setVisible(false);a21=new JMenuItem("添加用户");a22=new JMenuItem("删除用户");a23=new JMenuItem("更改用户");a24=new JMenuItem("修改密码");a21.setEnabled(false);a22.setEnabled(false);a23.setEnabled(false);a24.setEnabled(false);a3=new JMenuItem("系统介绍");a3.setEnabled(true);a4=new JMenuItem("退出");a4.setEnabled(true);btn=new JButton("再次确认登陆");pnl.add(btn,BorderLayout.EAST);btn.setSize(10,10); menu1.add(a11);menu1.addSeparator(); menu1.add(a16);menu1.addSeparator(); menu1.add(a17);menu1.addSeparator(); menu1.add(a12);menu1.addSeparator(); menu1.add(a13);menu1.addSeparator(); menu1.add(a14);menu1.addSeparator(); menu1.add(a15);menu1.addSeparator();menu2.add(a21);menu2.addSeparator(); menu2.add(a22);menu2.addSeparator(); menu2.add(a23);menu2.addSeparator();menu2.add(a24);menu2.addSeparator();menu3.add(a3);menu3.addSeparator();menu4.add(a4);menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); menubar.add(menu4); setJMenuBar(menubar);a11.addActionListener(this); a12.addActionListener(this); a13.addActionListener(this); a14.addActionListener(this); a15.addActionListener(this); a16.addActionListener(this); a17.addActionListener(this); a21.addActionListener(this); a22.addActionListener(this); a23.addActionListener(this); a24.addActionListener(this); a3.addActionListener(this);a4.addActionListener(this);btn.addActionListener(this);}public void setColor(Color black) {// TODO Auto-generated method stub}public void actionPerformed(ActionEvent event) {Object temp=new Object();temp=event.getSource();if(temp==a11){Login login=new Login();login.Login();}if(temp==a12){ShowStu show=new ShowStu();show.ShowStu();}if(temp==a13){AlterStu alter=new AlterStu();alter.AlterStu();}if(temp==a14){DeleteStu delete=new DeleteStu();delete.DeleteStu();}if(temp==a15){AddStu add=new AddStu();add.AddStu();}if(temp==a16){superlog superlog=new superlog();superlog.superlog();}if(temp==a17){stuLogin stu=new stuLogin();stu.stuLogin();a12.setVisible(true);}if(temp==a21){AddUser add=new AddUser();add.AddUser();}if(temp==a22){DeleteUser delete=new DeleteUser();delete.DeleteUser();}if(temp==a23){AlterUser alter=new AlterUser();alter.AlterUser();}if(temp==a24){AlterPword pword=new AlterPword(); pword.AlterPword();}if(temp==a3){SystemHelp help=new SystemHelp();help.SystemHelp();}if(temp==a4){SystemExit exit1=new SystemExit();exit1.SystemExit();}if(temp==btn){Connection con;Statement st;Statement st1;ResultSet rs,rs1;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st1=con.createStatement();rs=st.executeQuery("SELECT * FROM Login");rs1=st1.executeQuery("SELECT * FROM superlog");if(rs.next()){a12.setVisible(true);a21.setEnabled(true);a22.setEnabled(true);a23.setEnabled(true);a24.setEnabled(true);Login login=new Login();login.Clear();}if(rs1.next()){a12.setVisible(true);a13.setVisible(true);a14.setVisible(true);a15.setVisible(true);superlog superlog=new superlog();lear();}con.close();}catch(SQLException e){System.out.println(e);}}}}主页面class Login{void Login(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(10);final JPasswordField text2=new JPasswordField(10);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel("用户名");JLabel label2=new JLabel("密码");loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 50, 50);label2.setBounds(80, 200, 50, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();String password=text2.getText();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql,st;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();st=con.createStatement();rs=sql.executeQuery("SELECT username,password FROM users where username='"+name+"'");if(!rs.next()){JOptionPane b=new JOptionPane();b.showMessageDialog(null,"账号有误" ,"消息对话框",RMATION_MESSAGE);}else{String username=rs.getString(1);String pass=rs.getString(2);if( Integer.parseInt(password)==Integer.parseInt(pass) ){st.executeUpdate("INSERT INTO Login VALUES('"+username+"','"+pass+"')");loginframe.dispose();JOptionPane b=new JOptionPane();b.showMessageDialog(null,"登录成功" ,"消息对话框",RMATION_MESSAGE);}else{text1.setText("");text2.setText("");JOptionPanea=new JOptionPane();a.showMessageDialog(null,"您的账户名或者密码有误","消息对话框" ,RMATION_MESSAGE);}}}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}void Clear(){Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st.executeUpdate("DELETE FROM Login");con.close();}catch(SQLException e){System.out.println(e);}}}管理员登陆与权限class superlog{superlog(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(10);final JPasswordField text2=new JPasswordField(10);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel("超级用户名",JLabel.CENTER);JLabel label2=new JLabel("密码",JLabel.CENTER);loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 100, 50);label2.setBounds(80, 200, 100, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();@SuppressWarnings("deprecation")String password=text2.getText();tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();rs=sql.executeQuery("SELECT Cusername,Cpassword FROM super where Cusername='"+name+"'");if(!rs.next())JOptionPane b=new JOptionPane();b.showMessageDialog(null,"超级账号错误" ,"消息对话框",RMATION_MESSAGE);}else{String username=null;String pass=null;username=rs.getString(1);pass=rs.getString(2);if( Integer.parseInt(password)==Integer.parseInt(pass) ){sql.executeUpdate("INSERT INTO superlog VALUES('"+username+"',"+"'"+pass+"')");JOptionPane b=new JOptionPane();b.showMessageDialog(null,"登录成功" ,"消息对话框",RMATION_MESSAGE);loginframe.dispose();}else{text1.setText("");text2.setText("");JOptionPane a=new JOptionPane();a.showMessageDialog(null,"您的账户名或者密码有误","消息对话框" ,RMATION_MESSAGE);}}}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}public void superlog() {// TODO Auto-generated method stub }void Cclear(){Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st.executeUpdate("DELETE FROM superlog");con.close();}catch(SQLException e){System.out.println(e);}}}超级管理员登陆界面与权限class stuLogin{void stuLogin(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(15);final JPasswordField text2=new JPasswordField(15);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel(" 学生姓名",JLabel.CENTER);JLabel label2=new JLabel("密码",JLabel.CENTER);loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 100, 50);label2.setBounds(80, 200, 100, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();String password=text2.getText();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();rs=sql.executeQuery("SELECTsname,sphone FROM student where sname='"+name+"' AND sphone='"+password+"'");if(rs.next()){JOptionPane a=new JOptionPane();a.showMessageDialog(null,"登陆成功","消息对话框" ,RMATION_MESSAGE);loginframe.dispose();}else{text1.setText("");text2.setText("");JOptionPane a=new JOptionPane();a.showMessageDialog(null,"您的账户名或密码有误","消息对话框" ,RMATION_MESSAGE);}con.close();}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}}普通学生登陆与权限class ShowStu{void ShowStu(){JFrame frame1=new JFrame("学生信息窗口");frame1.setBounds(300,300,500,400);frame1.setDefaultCloseOperation(2);JTable table;Object a[][]=null;Object name[]={"学号","姓名","年龄","性别","籍贯","电话"};Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan",""," ");st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITI VE,ResultSet.CONCUR_READ_ONLY);rs=st.executeQuery("SELECT * FROM student");st();int lastnumber=rs.getRow();a=new Object[lastnumber][6];int i=0;rs.beforeFirst();while(rs.next()){a[i][0]=rs.getString(1);a[i][1]=rs.getString(2);a[i][2]=rs.getString(3);a[i][3]=rs.getString(4);a[i][4]=rs.getString(5);a[i][5]=rs.getString(6);i++;}con.close();}catch(SQLException e){System.out.println(e);}table=new JTable(a,name);frame1.setLayout(new BorderLayout());frame1.add(newJScrollPane(table),BorderLayout.CENTER);frame1.setVisible(true);frame1.validate();}}class AlterStu{void AlterStu(){JFrame deleteframe=new JFrame("更改学生信息");deleteframe.setLayout(null);JLabel label=new JLabel("需要修改的学生学号",JLabel.CENTER);deleteframe.setVisible(true);deleteframe.setBounds(350,350,450,350);JButton btn=new JButton("确定");deleteframe.add(label);label.setForeground(Color.red);final JTextField text=new JTextField(10);text.setSize(100,60);deleteframe.add(text);deleteframe.add(btn);label.setBounds(150, 50, 150, 20);text.setBounds(150, 100, 100, 20);btn.setBounds(150, 150, 100, 20);btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String sno=text.getText();Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println(e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();rs=st.executeQuery("SELECT * FROM student WHERE sno=+'"+sno+"'");if(rs==null){JOptionPane b=new JOptionPane();b.showMessageDialog(null,"该学生不存在" ,"消息对话框",RMATION_MESSAGE);}else{rs.next();final String no1=rs.getString(1);final String name1=rs.getString(2);final String age1=rs.getString(3);final String sex1=rs.getString(4);final String address1=rs.getString(5);final String phone1=rs.getString(6);JFrame addframe=new JFrame("修改学生信息");addframe.setDefaultCloseOperation(2);addframe.setBounds(400,200,450,600);addframe.setVisible(true);addframe.setResizable(true);addframe.validate();addframe.setLayout(newBorderLayout());Box basebox,box1,box2,box3,box4;basebox=Box.createHorizontalBox();box1=Box.createVerticalBox();box2=Box.createVerticalBox();box3=Box.createVerticalBox();box4=Box.createVerticalBox();JLabel no=new JLabel("学号");JLabel name=new JLabel("姓名");JLabel age=new JLabel("年龄");box1.add(Box.createVerticalStrut(90));box1.add(no);box1.add(Box.createVerticalStrut(90));box1.add(name);box1.add(Box.createVerticalStrut(90));box1.add(age);JLabel sex=new JLabel("性别");JLabel address =new JLabel("籍贯");JLabel phone=new JLabel("电话");box3.add(Box.createVerticalStrut(90));box3.add(sex);box3.add(Box.createVerticalStrut(90));box3.add(address);box3.add(Box.createVerticalStrut(90));box3.add(phone);final JTextField notext=new JTextField(15);final JTextField nametext=new JTextField(15);final JTextField agetext=new JTextField(15);final JTextField sextext=new JTextField(15);final JTextField addresstext=new JTextField(15);final JTextField phonetext=new JTextField(15);box2.add(Box.createVerticalStrut(90));box2.add(notext);box2.add(Box.createVerticalStrut(90));box2.add(nametext);box2.add(Box.createVerticalStrut(90));box2.add(agetext);box4.add(Box.createVerticalStrut(90));box4.add(sextext);box4.add(Box.createVerticalStrut(90));box4.add(addresstext);box4.add(Box.createVerticalStrut(90));box4.add(phonetext);basebox.add(box1);basebox.add(box2);basebox.add(box3);basebox.add(box4);。
java学生管理系统设计报告
java学生管理系统设计报告一、背景在大学期间,对于教师和学生管理有着严格的要求,教师与学生之间需要实施有效的管理,以保证学生能够顺利完成学业,取得良好的学习成绩。
为了更好地满足学生管理需求,学校可以开发一个Java学生管理系统来解决这些问题。
二、系统功能1.学生统计:学生统计模块可以通过该系统实现对学生的管理,并对学生进行统计,学校可以根据学生的年级、专业和成绩等信息进行统计,更好地检测和控制学生的情况。
2.教师管理:教师管理模块可以通过该系统实现对教师的管理,学校可以根据教师的教龄、工作量、研究领域等信息对教师进行管理。
3.成绩录入:该系统也可以实现学校考试成绩的录入,每次考试的成绩都可以录入到该系统中,方便学校后期对学生的学业进行复查考核。
4.班级管理:该系统可以实现对每个班级的管理,学校可以对班级的学生、班主任、课程安排等信息进行查看和管理。
三、系统设计Java学生管理系统主要分为学生管理、教师管理、成绩录入和班级管理等四个模块,各个模块之间都是相互关联的,主要采用MVC架构进行系统设计,使用MySQL作为数据库,可以将数据存储到数据库,方便以后的数据查询和管理。
四、系统实现1.学生管理模块:学生管理模块主要实现学生的增、删、改、查;包括学生的基本信息的增、改、查,学生的成绩信息的增、改、查等;2.教师管理模块:教师管理模块主要实现教师的增、删、改、查;包括教师的基本信息的增删改查,教师的学历信息的增删改查,教师职位的增删改查等;3.成绩录入模块:成绩录入模块主要实现成绩的录入;包括每次考试的成绩录入,和每个学生的成绩汇总;4.班级管理模块:班级管理模块主要实现班级的增、删、改、查;包括学生的基本信息查看,班主任的职位安排,课程的安排等。
五、总结Java学生管理系统是一个采用MVC框架设计开发的学生管理系统,该系统可以实现学生、教师、成绩管理以及班级管理功能,是教师和学生的重要管理工具,可以帮助学校有效地实施学生管理。
java学生管理系统课程设计报告
Java学生管理系统课程设计报告1. 引言学生管理系统是针对学校或教育机构开发的一款软件系统,旨在方便学校管理学生信息、课程安排和学生成绩等方面的工作。
本报告将详细介绍Java学生管理系统的设计与实现过程。
2. 系统需求分析学生管理系统通常需要具备以下功能:•学生信息管理:包括学生基本信息的录入、修改、删除和查询等操作。
•课程管理:可以添加、编辑、删除课程信息,并能将课程分配给相应的学生。
•成绩管理:记录学生的成绩,并可以按照课程和学生进行查询和统计。
•用户权限管理:对不同的系统用户进行权限管理,确保系统安全和数据保密性。
根据需求分析,我们将使用Java编程语言来设计和实现学生管理系统。
3. 系统设计3.1 技术选型本系统将使用Java语言进行开发,选择使用Java的原因如下:•Java具有较高的跨平台性,可以在不同的操作系统上运行。
•Java拥有丰富的类库和开发工具,可以方便地进行系统开发和维护。
•Java具有良好的面向对象特性,可以实现系统的模块化设计和复用。
3.2 系统结构设计学生管理系统可以按照MVC(Model-View-Controller)设计模式进行结构设计。
具体的系统结构如下:•模型(Model):负责处理与数据相关的操作,包括学生信息、课程和成绩等的存储和管理。
•视图(View):负责显示系统界面和获取用户输入,将用户的操作请求传递给控制器。
•控制器(Controller):负责处理用户的操作请求,调用模型和视图来完成相应的业务逻辑。
3.3 类设计系统将包括以下核心类:•学生管理类(StudentManager):负责学生信息的添加、修改、查询和删除等操作。
•课程管理类(CourseManager):负责课程信息的添加、修改、查询和删除等操作。
•成绩管理类(ScoreManager):负责学生成绩的录入、查询和统计等操作。
•用户权限管理类(UserManager):负责用户的登录和权限管理。
java学生信息管理系统实验报告(共10篇)
java学生信息管理系统实验报告(共10篇)JAVA学生信息管理系统实验报告JAVA程序设计实验报告学号:姓名:班级:实验、Java课程设计--------学生信息管理系统一、实验目的1.掌握Java基本语法2.理解面向对象编程特点3.理解Java I/O编程4.掌握Java图形界面编程5.掌握Java与不同数据库进行连接二、预习内容Java的基本语法知识、类和对象、Java Swing图形界面编程、Java I/O处理以及Java与数据库连接操作三、实验设备与环境通过局域网互联,安装Windows 2000/XP操作系统环境的JDK1.6,my eclipse或者EditPlus编程工具。
并安装MySQL数据库四、实验内容编写并调试运行Java程序,进行设计,掌握Java开发的基础。
五、实验任务设计学生信息管理系统。
要求包括1. 登陆模块:设立超级管理员权限,用户可以根据不同的权限登陆系统,超级管理员可以对学生信息进行增、删、改、查操作。
而普通用户只可以查找学生信息。
2. 包括学生添加信息模块、学生信息删除模块、学生信息修改模块和学生信息查询模块3.对于管理员,可以对管理员进行添加、删除以及修改密码等操作。
六、实验报告(要求独立完成参考程序的代码、编译、调试与运行)1、程序清单:1.1程序模块清单package Pan;import java.awt.event.ItemListener;import javax.swing.*;import ponent;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.InputEvent;import java.awt.event.ItemListener;import java.awt.event.KeyEvent;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.util.*;import java.awt.Color;import java.text.DecimalFormat;import java.sql.*;import java.sql.Date;import java.awt.*;import java.util.Vector;public class Res{/*** @param args*/public static void main(String[] args){FirstWindow win =new FirstWindow(学生信息管理系统); }}class FirstWindow extends JFrame implements ActionListener {JMenuBar menubar;JMenu menu1,menu2,menu3,menu4;public final JMenuItem a11,a12,a13,a14,a15,a16,a17; public final JMenuItem a21,a22,a23,a24;public final JMenuItem a3;public final JMenuItem a4;public final JButton btn;JPanel pnl;JLabel label;boolean flag;FirstWindow(String s){setTitle(s);setSize(400,400);setLocation(100,100);setVisible(true);setDefaultCloseOperation(3);pnl=new JPanel();this.getContentPane().add(pnl);pnl.setLayout(new BorderLayout());label=new JLabel(欢迎使用学生管理系统,JLabel.CENTER);label.setForeground(Color.red);pnl.add(label,BorderLayout.CENTER);menubar=new JMenuBar();menu1=new JMenu(使用);menu2=new JMenu(用户管理);menu3=new JMenu(帮助);menu4=new JMenu(退出);a11=new JMenuItem(管理员登录);a12=new JMenuItem(查询学生信息);a13=new JMenuItem(更改学生信息);a14=new JMenuItem(删除学生信息);a15=new JMenuItem(添加学生信息);a16=new JMenuItem(超级管理员登录);篇二:java学生成绩管理系统实验报告JAVA课内实验报告学生成绩管理系统一. 实验目的及实验环境实验目的:在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。
java web学生管理系统课设报告
Java Web学生管理系统课设报告一、引言1.1 课题背景随着信息化技术的发展,学校需要一种能够方便管理学生信息的系统,以提高管理效率。
因此,开发一款基于Java Web的学生管理系统具有重要意义。
1.2 目的和意义本课题旨在设计和实现一个基于Java Web的学生管理系统,通过该系统实现学生信息的录入、查询、修改、删除等操作,从而方便学校对学生信息的管理,提高管理效率。
1.3 任务和要求本课题的任务是设计和实现一个基于Java Web的学生管理系统,要求系统能够实现以下功能:学生信息录入、查询、修改、删除等操作;学生信息按班级、学号、姓名等条件进行查询;数据持久化存储等。
二、系统分析2.1 系统需求分析根据学校对学生信息管理的实际需求,本系统需要实现以下功能:学生信息录入、查询、修改、删除等操作;学生信息按班级、学号、姓名等条件进行查询;数据持久化存储等。
2.2 业务流程分析学生管理系统的业务流程主要包括:学生信息录入、查询、修改、删除等操作。
其中,学生信息录入是整个业务流程的起点,通过录入学生信息,将数据存储到数据库中。
然后,可以通过查询功能根据不同条件对学生信息进行查询。
当学生信息需要修改或删除时,可以通过相应的操作进行修改或删除。
2.3 数据流程分析学生管理系统的数据流程主要包括:数据输入、数据处理和数据输出三个部分。
其中,数据输入主要是学生信息的录入;数据处理主要是对学生信息进行查询、修改、删除等操作;数据输出主要是将处理后的学生信息展示给用户。
在整个数据流程中,需要保证数据的准确性和完整性。
三、系统设计3.1 系统架构设计本系统采用MVC设计模式进行开发,分为模型层、视图层和控制层三个部分。
模型层主要负责业务逻辑的处理和数据的封装;视图层主要负责用户界面的展示;控制层主要负责接收用户的请求并调用模型层进行处理,然后将结果返回给视图层展示给用户。
3.2 数据库设计本系统采用MySQL数据库进行数据的存储和处理。
java学生成绩管理系统报告
Java学生成绩管理系统报告简介本文将介绍一个基于Java开发的学生成绩管理系统。
该系统旨在帮助学校和教师高效管理学生的成绩信息,包括录入、查询、统计和分析等功能。
开发环境和工具•Java编程语言•IntelliJ IDEA集成开发环境•MySQL数据库功能需求1. 学生信息管理•录入学生信息,包括学生姓名、学号、性别等基本信息。
•修改学生信息,如学号、班级等。
•删除学生信息。
2. 成绩录入和查询•录入学生的考试成绩,包括科目、分数、考试日期等。
•查询学生的考试成绩,可按照学生姓名、学号、科目等进行检索。
3. 成绩统计和分析•对学生的考试成绩进行统计,包括平均分、最高分、最低分等。
•根据科目、班级等条件进行成绩分析,生成成绩报表。
4. 数据备份与恢复•对学生信息和成绩数据进行备份,以防数据丢失或损坏。
•支持从备份中恢复数据。
数据库设计学生表(student)字段名类型备注学号int 主键姓名varchar(50)性别varchar(10)班级varchar(50)成绩表(score)字段名类型备注学号int 外键科目varchar(50)分数float考试日期date系统架构本系统采用Java MVC(Model-View-Controller)架构模式进行设计和开发。
•Model层:负责数据的处理和存储,包括与数据库的交互。
•View层:负责用户界面的展示和交互,使用Swing或JavaFX等GUI 库进行开发。
•Controller层:负责接收用户的请求,调用对应的Model方法进行数据处理,并更新View层的显示。
开发步骤1. 数据库连接和表设计使用JDBC连接MySQL数据库,并创建上述的学生表和成绩表。
2. 学生信息管理模块开发•创建学生类(Student)和学生管理类(StudentManager)。
•实现学生信息的录入、修改和删除功能。
3. 成绩录入和查询模块开发•创建成绩类(Score)和成绩管理类(ScoreManager)。
JAVA学生信息管理系统实验报告
JAVA学生信息管理系统实验报告一、实验目的1. 掌握Java面向对象编程思想;2. 熟悉Java GUI编程基本知识;3. 熟悉Java文件读写操作;4.培养实际问题分析及解决能力。
二、实验要求设计并实现一个Java学生信息管理系统,具备以下功能:1.界面要简洁、美观,方便用户操作;2.能够实现学生信息的录入、查询、修改、删除和展示功能;3.学生信息至少包括学号、姓名、性别、年龄、院系等基本信息;4.学生信息的存储要求使用文件保存。
三、实验设计1. 界面设计:使用Java Swing库设计界面,包括菜单栏、工具栏、按钮、文本框等组件,通过布局管理器实现界面的合理布局;2. 文件读写操作:使用Java的文件读写类实现学生信息的读取、保存和更新,例如使用FileReader、FileWriter等类;3. 数据结构设计:定义一个学生类,包含学号、姓名、性别、年龄、院系等成员变量,实现get和set方法;4.功能实现:根据用户的操作,实现学生信息的录入、查询、修改、删除等功能。
四、实验步骤1.创建项目并导入相关库文件;2.创建学生类,定义学生的基本信息和操作方法;3.创建主界面,包括菜单栏、工具栏、按钮等组件,并设置布局管理器;4.编写界面事件监听器,实现按钮的点击响应;5.实现学生信息录入功能,包括将信息写入文件;6.实现学生信息查询功能,读取文件中的学生信息并展示;7.实现学生信息修改和删除功能,更新文件中的学生信息;8.编写实验报告。
五、实验结果成功实现了Java学生信息管理系统,具备录入、查询、修改和删除功能。
主界面简洁美观,用户操作便捷。
学生信息存储在文件中,可以进行读写操作。
六、实验心得通过这次实验,我进一步熟悉了Java面向对象编程思想和GUI编程基本知识。
实践中,我遇到了一些问题,例如界面布局、事件监听和文件读写等方面,但通过查找资料和反复调试,最终解决了这些问题。
通过这个实验,我对Java的掌握程度更加深入了解,提高了实际问题分析及解决能力。
《java程序设计》学生管理系统报告
学生信息管理系统第1章系统简介1.1 系统功能本系统主要功能:1)通过数据校验如果数据校验成功,显示主界面;2)登入后查询所有学生信息;3)窗体实现对学生信息的增加、删除、修改;4)模糊查询,根据姓名或者一个字查询;5)实现子管理员的注册,并且写入注册信息到记事本,并实现可以用新注册的管理账号登入系统主界面1.2 系统引用例子课本P275页 15.5和课本P386页 21.6第2章表的设计2.1 系统数据库表结构表2.1用户表(JBXX)表家庭信息表()注册子管理员的记事本1111.TXT内信息如下:yyyy#yyyylinlin#linlinadmin1#1111admin2#2222admin3#3333admin4#4444opop#opopuuuu#uuuubbbb#bbbbtttt#tttt第3章连接数据库的实现3.1 SQL Server数据库连接的关键代码public class DButil {Connection con = null;String name = "linqun";String passname = "linqun";String ul1 = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";public Connection getconn() {try {Class.forName("oracle.jdbc.driver.OracleDriver");System.out.println("数据库驱动加载成功");con = DriverManager.getConnection(ul1, name, passname);System.out.println("数据库连接成功");} catch (Exception e) {System.out.println(e);}return con;}public void dbclose(Connection conn, Statement sta, ResultSet rs) { try {if (rs != null)rs.close();if (conn != null)conn.close();if (sta != null)sta.close();} catch (Exception e) {e.printStackTrace();}finally{System.out.println("数据库释放!");}}}第4章系统详细设计4.1 系统登录模块设计4.1.1、运行效果图图4.1登录主界面效果图4.1.2、主要代码public class login extends JDialog {static PreparedStatement SQL;private static final long serialVersionUID = 1L;private JLabel l_Id = new JLabel("登陆账户", JLabel.CENTER);private JLabel l_pw = new JLabel("登陆密码", JLabel.CENTER);private JTextField t_Id = new JTextField(10);private JPasswordField t_pw = new JPasswordField(10);private JButton btnLogin;private JButton btnAdd;private JButton btnClose;int num = 3;public login() {super();Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();this.setLocation((screenSize.width - 300) / 2,(screenSize.height - 200) / 2);this.setResizable(false);getContentPane().setBackground(new Color(225, 225, 225));getContentPane().setLayout(null);initialize();}protected void initialize() {setTitle("系统登录");l_Id.setBounds(48, 43, 53, 25);t_Id.setBounds(110, 43, 150, 25);l_pw.setBounds(48, 93, 53, 25);t_pw.setBounds(110, 93, 150, 25);getContentPane().add(l_Id);getContentPane().add(l_pw);getContentPane().add(t_Id);getContentPane().add(t_pw);btnLogin = new JButton();btnLogin.setText("登录");btnLogin.setBounds(20, 142, 85, 28);btnLogin.setBackground(new Color(244, 243, 239));btnLogin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {addBtnLoginActionListener();}});getContentPane().add(btnLogin);btnAdd = new JButton();btnAdd.setText("注册");btnAdd.setBounds(105, 142, 85, 28);btnAdd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {addNew zc = new addNew();setVisible(false);zc.setVisible(true);}});getContentPane().add(btnAdd);btnClose = new JButton();btnClose.setText("关闭");btnClose.setBounds(190, 142, 85, 28);btnClose.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {dispose();System.exit(-1);}});getContentPane().add(btnClose);}private void addBtnLoginActionListener() {String id = t_Id.getText();String password = new String(t_pw.getPassword());if (id.equals("")) {JOptionPane.showMessageDialog(this, "帐号不可为空", "提示",JOptionPane.WARNING_MESSAGE);return;} else if (password.equals("")) {JOptionPane.showMessageDialog(this, "密码不可为空", "提示",JOptionPane.WARNING_MESSAGE);return;} else {tools t = new tools();boolean success = false; // TODO:数据校验success = t.eqes(id, password);if (success) { // 如果数据校验成功显示主界面JOptionPane.showMessageDialog(this, "成功登录", "提示",RMATION_MESSAGE);new mainView();this.dispose();} else {--num;if (num == 0) {JOptionPane.showMessageDialog(this, "用户名或者密码错误!您没有机会了");System.exit(0);} else {JOptionPane.showMessageDialog(this, "用户名或者密码错误!您还有" + num+ "次机会");}}}}public Dimension getPreferredSize() {return new Dimension(320, 170);}public void show() {Toolkit tk = Toolkit.getDefaultToolkit();Dimension screen = tk.getScreenSize();Dimension d = getSize();this.setLocation((screen.width - d.width) / 2,(screen.height - d.height) / 2);// 输入密码后回车相当于点击了登录按钮getRootPane().setDefaultButton(btnLogin);t_pw.requestFocus();setDefaultCloseOperation(DISPOSE_ON_CLOSE);setSize(300, 220);super.show();}public static void main(String[] args) {DButil util = new DButil();util.getconn();login loginFrame = new login();loginFrame.setVisible(true);}}4.2 系统主界面详细设计4.2.1、运行效果图图 4.2登录后系统界面效果图4.2.2、主要代码public mainView() {super();setTitle("所有学生信息");setBounds(350, 150, 700, 400);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);final JScrollPane scrollPane = new JScrollPane();con = db.getconn();Vector tableValueV, columnNameV;// 存放列名columnNameV = new Vector();columnNameV.add("学号");columnNameV.add("名字");columnNameV.add("性别");columnNameV.add("年龄");tableValueV = new Vector();scrollPane.setViewportView(table);final JPanel panel = new JPanel();getContentPane().add(panel, BorderLayout.SOUTH);panel.add(new JLabel("编号:"));aTextField = new JTextField("", 5);panel.add(aTextField);panel.add(new JLabel("姓名:"));bTextField = new JTextField("", 5);panel.add(bTextField);panel.add(new JLabel("性别:"));cTextField = new JTextField("", 5);panel.add(cTextField);panel.add(new JLabel("年龄:"));dTextField = new JTextField("", 5);panel.add(dTextField);}4.3 学生信息增删改模块设计4.3.1、增加信息(121,白娘子,M,22)后运行效果图如下:图 4.3 增加一个记录效果图4.3.2、主要代码final JButton addButton = new JButton("添加");addButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {userDao add = new userDaoImpl();user u = new user();u.setSno(Integer.parseInt(aTextField.getText()));u.setsName(bTextField.getText());u.setSsex(cTextField.getText());u.setSage(Integer.parseInt(dTextField.getText()));add.addUser(u);setVisible(false);new mainView();}});panel.add(addButton);4.3.3、删除信息编号为120的学生信息后结果如下:图 4.4 删除一个记录效果图4.3.4、主要代码:final JButton delButton = new JButton("删除");delButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {userDao del = new userDaoImpl();user ud = new user();int selectedRow = table.getSelectedRow();// 获得被选中行的索引if (selectedRow != -1)// 判断是否存在被选中行del.deleUser(Integer.parseInt(aTextField.getText()));setVisible(false);tableModel.removeRow(selectedRow);}});panel.add(delButton);4.3.5、修改信息(105,关美眉,F,41)为(105,关大侠,M,30)后运行效果图如下:图 4.5 修改一个记录效果图4.3.6、主要代码:panel.add(searchButton);final JButton updButton = new JButton("修改"); updButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {userDao update = new userDaoImpl();user upe = new user();aTextField.setEditable(false);int selectedRow = table.getSelectedRow();// 获得被选中行的索引if (selectedRow != -1) {// 判断是否存在被选中行upe.setSno(Integer.parseInt(aTextField.getText()));upe.setsName(bTextField.getText());upe.setSsex(cTextField.getText());upe.setSage(Integer.parseInt(dTextField.getText()));update.updateUser(upe);setVisible(false);new mainView();}}});panel.add(updButton);4.4 学生信息查询模块设计4.4.1、运行效果图图 4.6 查询记录集效果图查询姓赵的人信息:图 4.7 查询结果图查询名字带“山”的人信息:图 4.8 查询结果图4.4.2、主要代码:public search() {setTitle("根据姓名查询学生信息");setLayout(new BorderLayout());setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);validate();setBounds(350, 150, 650, 400);final JPanel pane = new JPanel();jl=new JLabel("输入姓或者名查询");TextField = new JTextField("", 5);jb1 = new JButton("查询");jb2 = new JButton("返回");pane.add(jl);pane.add(TextField);pane.add(jb1);pane.add(jb2);getContentPane().add(pane, BorderLayout.NORTH);jb1.addActionListener(this);jb2.addActionListener(this);setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("查询")) {JScrollPane jsp = new JScrollPane();Vector tableValueV,columnNameV;columnNameV = new Vector();columnNameV.add("学号");columnNameV.add("名字");columnNameV.add("性别");columnNameV.add("年龄");tableValueV = new Vector();userDao user = new userDaoImpl();user u = user.searchByName(TextField.getText());Vector rowV = new Vector();rowV.add(u.getSno());rowV.add(u.getsName());rowV.add(u.getSsex());rowV.add(u.getSage());tableValueV.add(rowV);tableModel= new DefaultTableModel(tableValueV, columnNameV);table = new JTable(tableModel);jsp = new JScrollPane(table);jsp.setViewportView(table);getContentPane().add(jsp, BorderLayout.CENTER);setVisible(true);}if (e.getActionCommand().equals("返回")) {new mainView();}}4.5 注册子管理员模块设计4.5.1、运行效果图图 4.9 注册子管理员效果图4.5.2、主要代码:public addNew() {setDefaultCloseOperation(EXIT_ON_CLOSE);load();this.setVisible(true);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();this.setLocation((screenSize.width - 300) / 2,(screenSize.height - 200) / 2);this.setResizable(false);this.setTitle("注册子管理员界面");this.setVisible(true);this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}public void load() {Pane = (JPanel) getContentPane();Pane.setLayout(null);setSize(new Dimension(410, 300));setTitle("管理员登入界面");t1.setBounds(70, 50, 100, 30);t2.setBounds(70, 80, 100, 30);t3.setBounds(70, 110, 100, 30);t4.setBounds(250, 50, 100, 30);t5.setBounds(250, 80, 100, 30);f1.setBounds(150, 50, 100, 20);f2.setBounds(150, 80, 100, 20);f3.setBounds(150, 110, 100, 20);b1.setFont(new java.awt.Font("Botton", Font.BOLD, 12));b1.setBounds(120, 140, 60, 50);b2.setFont(new java.awt.Font("Dialog", Font.BOLD, 12));b2.setBounds(200, 140, 60, 50);Pane.add(t1);Pane.add(t2);Pane.add(t3);Pane.add(t4);Pane.add(t5);Pane.add(f1);Pane.add(f2);Pane.add(f3);Pane.add(b1);Pane.add(b2);b1.addActionListener(this);b2.addActionListener(this);}4.5.3、当注册名已经存在时效果如下:图 4.10 验证注册界面4.5.4、成功注册时效果如下:(用户名:qunqun;密码:qunqun)图 4.11 注册成功界面4.5.5、主要代码public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("注册")) {if (tools.indes(f1.getText()) && tools.indes(f2.getText())) {if (tools.eqes(f1.getText(), f2.getText())) {JOptionPane.showMessageDialog(this, "该用户已被注册,请重新输入!");System.exit(0);} else {tools.addUser(f1.getText(), f1.getText());JOptionPane.showMessageDialog(this, "你已经成功注册~");System.exit(0);}}if (f1.getText().equals("") || f2.getText().equals("")) {JOptionPane.showMessageDialog(this, "帐号或密码长度有误", "提示",JOptionPane.WARNING_MESSAGE);}}if (e.getActionCommand().equals("退出")) {System.exit(0);}4.5.6、新注册管理员(用户名:qunqun;密码:qunqun)登入效果如下:图 4 .12 登录界面图 4 .13 登录成功界面4.5.7、主要代码:static boolean eqes(String admin, String passwd) {boolean bool = true;try {InputStream is = new FileInputStream("1111.txt");BufferedReader reader = new BufferedReader(new InputStreamReader(is));String line = reader.readLine();while (line != null) { // 如果line 为空说明读完了String[] str = line.trim().split("#");for (int i = 0; i < line.trim().split("#").length; i++) {if (admin.equals(str[0])) {if (passwd.equals(str[1])) {return true;} else {bool = false;}} else {bool = false;}}line = reader.readLine();}} catch (Exception e) {e.printStackTrace();}return bool;}static void addUser(String admin, String passwd) {File f = new File("1111.txt");String oldStr = "";try {FileReader fr = new FileReader(f);BufferedReader bufr = new BufferedReader(fr);String line = null;while ((line = bufr.readLine()) != null) {oldStr += line+"\r\n";}} catch (FileNotFoundException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();}String content = oldStr+admin + "#" + passwd;try {FileWriter fw=new FileWriter(f);BufferedWriter bufw = new BufferedWriter(fw);bufw.write(content);bufw.newLine();bufw.close();fw.close();} catch (Exception e) {e.printStackTrace();}}答辩记录成绩考核表。
学生管理系统的JAVA实验报告.doc
学生管理系统的JA V A实验报告。
实验报告学生信息管理系统学生编号:XXXXXXXX姓名: XXXXXX级:本文重点介绍了“学生信息管理系统”的开发过程。
详细描述了设计思想和设计过程,详细说明了数据库创建思想和各数据表之间的具体关联,并详细分析了系统各功能的实现过程和详细设计过程。
在绘制简单的系统功能模块图的同时,力图更清晰地展示整个学生模块程序设计的设计思想、规划和具体实现过程。
这个系统有许多特点:该系统功能齐全,用户界面方便简单,安全保密设置齐全,大大减轻了操作人员和用户的工作量,提高了学生管理的工作效率和学校的信息化水平。
姓名:XXXXXX级:本文重点介绍了“学生信息管理系统”的开发过程。
详细描述了设计思想和设计过程,详细说明了数据库创建思想和各数据表之间的具体关联,并详细分析了系统各功能的实现过程和详细设计过程。
在绘制简单的系统功能模块图的同时,力图更清晰地展示整个学生模块程序设计的设计思想、规划和具体实现过程。
这个系统有许多特点:该系统功能齐全,用户界面方便简单,安全保密设置齐全,大大减轻了操作人员和用户的工作量,提高了学生管理的工作效率和学校的信息化水平。
(1)基本要求:学生信息(包括学生编号、姓名、性别、年龄、家庭住址、电话号码等)的添加、删除、修改和查询。
)。
(2)提出要求(根据你自己的情况):可以添加类信息(也可以删除或修改类)。
学生信息包括班级信息,学生可以按班级统计。
简单的统计、按性别统计等。
描述: 这个程序需要一个图形界面来实现。
2.系统-学生信息的添加、删除、修改和查询(包括学生编号、姓名、性别、年龄、家庭地址、电话号码等)。
)(包括按学生编号、姓名等查询。
)。
(2)提出要求(根据你自己的情况):可以添加类信息(也可以删除或修改类)。
学生信息包括班级信息,学生可以按班级统计。
简单的统计、按性别统计等。
描述: 这个程序需要一个图形界面来实现。
2.系统:\ \ \ ');int n=scanner . Nextint();while(n!=6) { if(n==1) stu。
学生管理系统实验报告
学生管理系统实验报告实验目的本次实验的目的是设计并实现一个学生管理系统,以便管理教师对学生的基本信息、课程成绩等重要数据进行记录、查询和修改。
通过该实验,我们可以学习和掌握数据库的设计与应用,以及如何利用编程语言实现对数据库的操作。
实验环境本次实验使用的开发环境为Windows操作系统,数据库管理系统采用MySQL,编程语言为Java。
实验内容与步骤1. 数据库设计首先,我们需要进行数据库的设计。
根据实际需求,设计了以下几个表:- 学生表(Student):包含学生的学号、姓名、性别、出生日期等基本信息。
- 课程表(Course):包含课程的课程号、课程名、学分等信息。
- 成绩表(Score):包含学生的学号、课程号和成绩等信息。
2. 数据库连接使用Java编程语言,我们需要编写代码来连接MySQL数据库。
首先引入相关的数据库连接库,在代码中设置数据库的连接信息,如数据库URL、用户名和密码。
3. 数据库操作接下来,我们需要编写代码来实现对数据库的操作,包括插入、查询和修改等功能。
- 插入数据:通过执行SQL语句,将学生的基本信息、课程信息和成绩信息插入到相应的表中。
- 查询数据:根据学生学号或课程号,执行查询语句,并将结果以表格的形式展示出来。
- 修改数据:对于某个学生或某门课程的成绩,可以根据学号或课程号来修改其对应的成绩。
4. 用户界面设计为了方便教师使用学生管理系统,我们设计了一个简洁美观的用户界面。
通过该界面,教师可以方便地进行数据库的操作。
实验结果与分析经过运行实验代码,成功地实现了学生管理系统的设计与实现。
教师可以通过该系统对学生的信息进行录入、查询和修改,从而实现了对学生的有效管理。
界面设计方便了教师的操作,使其能够直观地进行各项功能的实现。
实验总结通过本次学生管理系统实验,我对数据库的设计与应用有了更深入的理解。
实验中,我掌握了数据库的基本操作和编程语言对数据库的操作方法,同时也提高了编程能力和逻辑思维能力。
java学生信息管理系统项目总结(一)
java学生信息管理系统项目总结(一)前言本文主要总结了我个人在开发Java学生信息管理系统项目中的经验和收获。
这个项目是我个人独立完成的,通过这个项目锻炼了我的编程能力和问题解决能力。
正文功能需求分析•通过需求分析,明确了项目的功能需求,了解了用户对系统的要求和期望。
•对学生信息的增删改查功能进行设计和实现,保证系统的完整性和数据的一致性。
系统设计与架构•设计了系统的架构,采用了MVC(Model-View-Controller)模式,实现了系统的分层和模块化。
•搭建了数据库,设计了学生信息表和关联的表结构,保证了数据的存储和查询效率。
技术选型与开发实践•选择了Java作为开发语言,利用Java的面向对象特性进行系统的设计和开发。
•使用了Java Swing作为前端界面库,实现了用户友好的界面和操作。
•利用JDBC技术完成了与数据库的连接和数据的增删改查操作。
•运用了异常处理机制,提高了系统的容错性和健壮性。
测试与优化•对系统进行了全面的测试,包括单元测试、集成测试和系统测试,确保系统的稳定性和可靠性。
•根据测试结果,对系统进行了优化和改进,提高了系统的性能和用户体验。
结尾通过这个项目,我不仅巩固了Java编程的基础知识,还学到了很多实践经验。
在开发过程中,遇到了很多问题,但通过不断的学习和尝试,我都克服了这些困难。
通过本次项目,我也提高了自己的项目管理能力和团队合作能力。
希望以后能继续不断学习和锻炼,提高自己的技术水平。
前言本文主要总结了我个人在开发Java学生信息管理系统项目中的经验和收获。
这个项目是我个人独立完成的,通过这个项目锻炼了我的编程能力和问题解决能力。
正文功能需求分析•通过需求分析,明确了项目的功能需求,了解了用户对系统的要求和期望。
•对学生信息的增删改查功能进行设计和实现,保证系统的完整性和数据的一致性。
系统设计与架构•设计了系统的架构,采用了MVC(Model-View-Controller)模式,实现了系统的分层和模块化。
学生管理系统实验报告
学生管理系统实验报告一、实验目的: 学习学生管理系统java程序编程、编写学生管理系统程序。
二、实验环境: 在软件Eclipse运行环境下运行1.实验步骤:2.在Eclipse环境中创建一个java工程, 然后创建学生管理系统类, 并在这类中编写代码。
3.调试代码, 并进行纠正。
4.检验试验结果, 查看是否符合要求。
5.得到结果。
实验内容代码:import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.JDialog;import javax.swing.JFrame;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Vector;import javax.swing.table.*;public class Xsglxt extends JFrame implements ActionListener { JPanel mb1,mb2;JLabel bq1;JTextField wbk1;JButton an1,an2,an3,an4;JTable bg1;JScrollPane gd1;Xsxx xsxx2;public static void main(String[] args){Xsglxt xs=new Xsglxt();}public Xsglxt(){mb1=new JPanel();bq1=new JLabel("请输入姓名");wbk1=new JTextField(10);an1=new JButton("查询");an1.addActionListener(this);an1.setActionCommand("chaxun");mb1.add(bq1);mb1.add(wbk1);mb1.add(an1); mb2=new JPanel();an2=new JButton("添加");an2.addActionListener(this);an2.setActionCommand("tianjia");an3=new JButton("修改");an3.addActionListener(this);an3.setActionCommand("xiugai");an4=new JButton("删除");an4.addActionListener(this);an4.setActionCommand("shanchu");mb2.add(an2);mb2.add(an3);mb2.add(an4);xsxx2=new Xsxx();bg1=new JTable(xsxx2);gd1=new JScrollPane(bg1);this.add(gd1);this.add(mb1,"North");this.add(mb2,"South");this.setTitle("学生管理系统");this.setSize(500,400);this.setLocation(201,181);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("chaxun")){String xingming=this.wbk1.getText().trim();String sql="select * from xuesheng where xingming='"+xingming+"'";xsxx2=new Xsxx(sql);bg1.setModel(xsxx2);else if(e.getActionCommand().equals("tianjia")){Tianjia tj=new Tianjia(this,"添加学生信息",true);System.out.println("123456");xsxx2=new Xsxx();bg1.setModel(xsxx2);}else if(e.getActionCommand().equals("xiugai")){int ii=this.bg1.getSelectedRow();if(ii==-1){JOptionPane.showMessageDialog(this,"请选中要删除的行");return;}new Xiugai(this,"修改学生信息",true,xsxx2,ii);System.out.println("123456");xsxx2=new Xsxx();bg1.setModel(xsxx2);else if(e.getActionCommand().equals("shanchu")){int ii=this.bg1.getSelectedRow();if(ii==-1){JOptionPane.showMessageDialog(this, "请选中要删除的行");return;}String st=(String)xsxx2.getValueAt(ii,0);PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;Statement sn=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");ct=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","12 3456");//String xuehao=this.wbk1.getText().trim();ps=ct.prepareStatement("delete from xuesheng where xuehao=?");ps.setString(1, st);ps.executeUpdate();}catch(Exception c2){e.paramString();}finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}}catch(Exception e3){}}xsxx2=new Xsxx();bg1.setModel(xsxx2);}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*; import javax.swing.JDialog; import javax.swing.JFrame; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;import java.util.Vector;import javax.swing.table.*;public class Xiugai extends JDialog implements ActionListener { JLabel bq1, bq2, bq3, bq4, bq5, bq6;JTextField wbk1, wbk2, wbk3, wbk4, wbk5, wbk6;JButton an1, an2;JPanel mb1, mb2, mb3, mb4;public Xiugai(Frame fck, String ckm, Boolean msck, Xsxx xsxx2, int hang) {super(fck, ckm, msck);bq1 = new JLabel(" 学号");bq2 = new JLabel(" 姓名");bq3 = new JLabel(" 性别");bq4 = new JLabel(" 年龄");bq5 = new JLabel(" 籍贯");bq6 = new JLabel(" 院系");wbk1 = new JTextField(5);wbk1.setText((String) xsxx2.getValueAt(hang, 0));wbk1.setEditable(false);wbk2 = new JTextField(5);wbk2.setText((String) xsxx2.getValueAt(hang, 1));wbk3 = new JTextField(5);wbk3.setText((String) xsxx2.getValueAt(hang, 2)); wbk4 = new JTextField(5);wbk4.setText((String) xsxx2.getValueAt(hang, 3)); wbk5 = new JTextField(5);wbk5.setText((String) xsxx2.getValueAt(hang, 4)); wbk6 = new JTextField(5);wbk6.setText((String) xsxx2.getValueAt(hang, 5));an1 = new JButton("修改");an1.addActionListener(this);an1.setActionCommand("tiangjia2");an2 = new JButton("取消");an2.addActionListener(this);an2.setActionCommand("quxiao");mb1 = new JPanel();mb2 = new JPanel();mb3 = new JPanel();mb4 = new JPanel();mb1.setLayout(new GridLayout(6, 1));mb2.setLayout(new GridLayout(6, 1));mb1.add(bq1);mb1.add(bq2);mb1.add(bq3);mb1.add(bq4);mb1.add(bq5);mb1.add(bq6);mb2.add(wbk1);mb2.add(wbk2);mb2.add(wbk3);mb2.add(wbk4);mb2.add(wbk5);mb2.add(wbk6);mb3.add(an1);mb3.add(an2);this.add(mb1, BorderLayout.WEST); this.add(mb2);this.add(mb3, BorderLayout.SOUTH); this.add(mb4, BorderLayout.EAST);this.setSize(370, 270);this.setLocation(401, 261);this.setResizable(false);//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("tiangjia2")){PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;Statement sm=null;System.out.println("00000000000");try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");System.out.println("1111111111");ct=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","12 3456");System.out.println("222222222222");String ss=("update xuesheng set xingming=?,xingbie=?,nianling=?,jiguan=?,yuanxi=? where xuehao='"+wbk1.getText().trim()+"'");ps=ct.prepareStatement(ss);ps.setString(1, wbk2.getText());ps.setString(2, wbk3.getText());ps.setString(3, wbk4.getText());ps.setString(4, wbk5.getText());ps.setString(5, wbk6.getText());ps.executeUpdate();this.dispose();} catch (Exception e1) {e1.printStackTrace();}finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}} catch (Exception e3){}}}else if(e.getActionCommand().equals("quxiao")) {this.dispose();}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.JDialog;import javax.swing.JFrame;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Vector;import javax.swing.table.*;public class Xsxx extends AbstractTableModel {Vector ziduan,jilu;PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;public int getRowCount(){return this.jilu.size();}public int getColumnCount(){return this.ziduan.size();}public Object getValueAt(int hang,int lie){return (((Vector) this.jilu.get(hang)).get(lie)); }public Xsxx(){this.sqlyj("select * from xuesheng");}public Xsxx(String ss){this.sqlyj(ss);}public String getColumnName(int e)return (String)this.ziduan.get(e);}public void sqlyj(String sql){ziduan=new Vector();ziduan.add("学号");ziduan.add("姓名");ziduan.add("性别");ziduan.add("年龄");ziduan.add("籍贯");ziduan.add("所在院系");jilu=new Vector();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");ct=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","12 3456");ps=ct.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){Vector hang=new Vector();hang.add(rs.getString(1));hang.add(rs.getString(2));hang.add(rs.getString(3));hang.add(rs.getString(4));hang.add(rs.getString(5));hang.add(rs.getString(6));jilu.add(hang);}}catch (Exception e){e.printStackTrace();} finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}} catch (Exception e){} }}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*; import javax.swing.JDialog; import javax.swing.JFrame; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Vector;import javax.swing.table.*;public class Tianjia extends JDialog implements ActionListener{ JLabel bq1,bq2,bq3,bq4,bq5,bq6;JTextField wbk1,wbk2,wbk3,wbk4,wbk5,wbk6;JButton an1,an2;JPanel mb1,mb2,mb3,mb4;public Tianjia(Frame fck,String ckm,Boolean msck){super(fck,ckm,msck);bq1=new JLabel(" 学号");bq2=new JLabel(" 姓名");bq3=new JLabel(" 性别");bq4=new JLabel(" 年龄");bq5=new JLabel(" 籍贯");bq6=new JLabel(" 院系");wbk1=new JTextField(5);wbk2=new JTextField(5);wbk3=new JTextField(5);wbk4=new JTextField(5);wbk5=new JTextField(5);wbk6=new JTextField(5);an1=new JButton("添加");an1.addActionListener(this);an1.setActionCommand("tiangjia2");an2=new JButton("取消");an2.addActionListener(this);an2.setActionCommand("quxiao");mb1=new JPanel();mb2=new JPanel();mb3=new JPanel();mb4=new JPanel();mb1.setLayout(new GridLayout(6,1));mb2.setLayout(new GridLayout(6,1));mb1.add(bq1); mb1.add(bq2); mb1.add(bq3);mb1.add(bq4); mb1.add(bq5); mb1.add(bq6);mb2.add(wbk1); mb2.add(wbk2); mb2.add(wbk3);mb2.add(wbk4); mb2.add(wbk5); mb2.add(wbk6);mb3.add(an1); mb3.add(an2);this.add(mb1,BorderLayout.WEST);this.add(mb2);this.add(mb3,BorderLayout.SOUTH);this.add(mb4,BorderLayout.EAST);this.setSize(370, 270);this.setLocation(401, 281);this.setResizable(false);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("tiangjia2")){PreparedStatement ps=null;Connection ct=null;ResultSet rs=null;Statement sm=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");ct=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","12 3456");String ss=("insert into xuesheng values(?,?,?,?,?,?)");ps=ct.prepareStatement(ss);ps.setString(1, wbk1.getText());ps.setString(2, wbk2.getText());ps.setString(3, wbk3.getText());ps.setString(4, wbk4.getText());ps.setString(5, wbk5.getText());ps.setString(6, wbk6.getText());ps.executeUpdate();this.dispose();} catch (Exception e2){}finally{try{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}} catch (Exception e3){}}}else if(e.getActionCommand().equals("quxiao")) {this.dispose();}}}实验小结:实验原道的问题是刚开始时程序只能查询不能添加修改删除等, 经过老师指导后修改程序后, 程序就能完成各项操作了。
JAVA程序设计报告学生信息管理系统
JAVA程序设计报告学生信息管理系统学生信息管理系统是一种用来管理学生个人信息的软件系统。
该系统能帮助学校或教育机构高效地管理学生信息,包括个人信息、课程成绩、出勤情况等。
本报告将介绍一个基于JAVA的学生信息管理系统的设计和实现。
一、系统需求分析学生信息管理系统主要应具备以下功能:1.学生信息的录入和修改:管理员可以通过系统录入学生的基本信息,如学号、姓名、性别、年龄等,并可以修改学生信息。
2.学生信息的查询和浏览:用户可以通过系统按照学号或姓名查询学生信息,并浏览所有学生的信息。
3.成绩管理:系统可以记录、查询和统计学生的课程成绩。
管理员可以录入学生的课程成绩,并可以查询学生的成绩,并可以按照成绩进行排序和统计分析。
4.出勤管理:系统可以记录学生的出勤情况,包括请假、迟到、旷课等。
管理员可以录入学生的出勤情况,并可以查询学生的出勤记录。
二、系统设计与实现1.数据库设计系统使用MySQL数据库,设计了两个表,分别是学生信息表(student_info)和成绩表(score_info)。
学生信息表包含学号(student_id)、姓名(name)、性别(gender)、年龄(age)等字段,成绩表包含学号(student_id)、课程名称(course_name)、成绩(score)等字段。
2.界面设计系统的界面采用图形化界面,使用JAVA Swing框架设计。
主要包括登录界面、学生信息管理界面、成绩管理界面和出勤管理界面。
3.功能实现系统使用JAVA编程语言进行实现。
通过使用JDBC连接数据库,并使用SQL语句实现学生信息的录入、查询和修改,以及成绩和出勤管理功能。
系统还进行了输入验证,确保输入的数据符合规定的格式。
4.测试与优化在系统开发完成后,需要进行系统的测试和优化。
通过对系统进行功能测试,验证系统的各项功能是否正常运行。
根据测试结果,对系统进行优化,提高系统的性能和用户体验。
三、总结与展望本报告介绍了一个基于JAVA的学生信息管理系统的设计和实现。
学生管理系统java课程报告总结
学生管理系统java课程报告总结学生管理系统是一种用于管理学生、课程、成绩等信息的软件系统,对于学校、教育机构等机构来说非常重要。
本次课程中,我们学习了Java语言和相关技术,其中包括Spring框架、MyBatis框架、MySQL数据库等,最终设计并实现了一个简单的学生管理系统。
本文将总结本次课程中学到的知识,包括系统设计、数据库设计、Java技术栈等方面的内容。
一、系统设计在学生管理系统的设计中,我们需要考虑到系统的功能、用户权限、数据模型等方面。
本次课程中,我们学习了如何使用Spring框架来实现依赖注入、泛型、方法级别的缓存等方面的内容,这些技术可以帮助我们更好地设计系统,提高系统的稳定性和可扩展性。
二、数据库设计在学生管理系统的设计中,我们需要考虑到数据的存储方式。
本次课程中,我们学习了如何使用MyBatis框架来实现持久层编程,包括数据访问层的映射、事务的隔离级别等方面的内容。
同时,我们还学习了如何使用Spring框架提供的JDBC技术来进行数据操作,这些技术可以帮助我们更好地控制数据的流动,提高系统的性能和安全性。
三、Java技术栈在学生管理系统的设计中,我们需要考虑到Java技术栈的使用。
本次课程中,我们学习了如何使用Spring框架来实现依赖注入、泛型、方法级别的缓存等方面的内容,这些技术可以帮助我们更好地设计系统,提高系统的稳定性和可扩展性。
同时,我们还学习了如何使用Java提供的其他技术,例如注解、面向切面编程等方面的内容,这些技术可以帮助我们更好地实现系统的功能和性能。
四、总结本次课程中,我们学习了学生管理系统的设计和实现,包括系统设计、数据库设计、Java技术栈等方面的内容。
通过本次学习,我们掌握了如何设计一个可扩展、可维护、高性能的学生管理系统,同时也提高了我们的编程能力和解决问题的能力。
java学生管理系统课程设计报告设计总结
Java学生管理系统课程设计报告设计总结1. 引言学生管理系统是一种优化学校管理流程的工具,它允许学校和教育机构更好地管理学生的信息和学术记录。
本文档为Java学生管理系统的课程设计报告的设计总结部分。
2. 设计背景学生管理系统的设计旨在提高学校管理效率,简化教师和学生的信息管理并加强学校与学生之间的沟通。
该系统主要包括学生信息管理、教师信息管理、课程管理、成绩管理、课程表管理等功能模块。
3. 设计目标本次课程设计的目标是设计并实现一个基于Java的学生管理系统,该系统应具有以下功能: - 学生信息管理:管理学生的基本信息,包括学号、姓名、性别、出生日期、联系方式等。
- 教师信息管理:管理教师的基本信息,包括教师号、姓名、性别、联系方式等。
- 课程管理:管理学校开设的课程信息,包括课程名称、授课教师、上课时间等。
- 成绩管理:记录学生在各门课程上的成绩。
- 课程表管理:根据学生和教师的信息生成相应的课程表。
4. 系统设计4.1 系统架构本设计采用三层架构:表示层、业务逻辑层、数据访问层。
- 表示层:负责与用户交互,展示系统的功能和数据。
- 业务逻辑层:处理用户的请求,进行业务处理,并调用数据访问层的接口。
- 数据访问层:负责与数据库进行交互,提供数据的增删改查操作。
4.2 模块设计本系统根据功能划分为以下几个模块: - 学生信息管理模块:实现对学生基本信息的增删改查操作。
- 教师信息管理模块:实现对教师基本信息的增删改查操作。
- 课程管理模块:实现对课程信息的增删改查操作。
- 成绩管理模块:实现对学生成绩的录入和查询操作。
- 课程表管理模块:根据学生和教师的信息生成相应的课程表。
4.3 数据库设计本系统使用MySQL数据库存储数据,设计了以下几张表: - 学生表:用于存储学生的基本信息。
- 教师表:用于存储教师的基本信息。
- 课程表:用于存储学校开设的课程信息。
- 成绩表:用于存储学生的成绩信息。
学生管理系统java实验报告
学生管理系统java实验报告一、实验目的本实验旨在设计一个学生管理系统,使用Java编程语言,通过面向对象的方式进行设计与实现。
二、实验内容1. 设计并实现学生类,包括学号、姓名、性别、年龄等属性,并提供对应的构造方法和操作方法。
2. 设计并实现学生管理类,包括添加学生、删除学生、查找学生、修改学生信息等操作。
3. 提供一个主程序,可以通过用户输入选择对应的学生管理操作。
三、实验步骤1. 首先,创建一个学生类`Student`,包括学号、姓名、性别、年龄等属性,并提供对应的构造方法和操作方法。
javapublic class Student {private String studentId;private String name;private String gender;private int age;public Student(String studentId, String name, String gender, int age) {this.studentId = studentId; = name;this.gender = gender;this.age = age;}Getter and Setter methodsOther methods (e.g., toString())}2. 接着,创建一个学生管理类`StudentManager`,包括添加学生、删除学生、查找学生、修改学生信息等操作。
javaimport java.util.ArrayList;public class StudentManager {private ArrayList<Student> students;public StudentManager() {students = new ArrayList<Student>();}public void addStudent(Student student) { students.add(student);System.out.println("学生添加成功!");}public void deleteStudent(String studentId) {for (int i = 0; i < students.size(); i++) {if (students.get(i).getStudentId().equals(studentId)) { students.remove(i);System.out.println("学生删除成功!");return;}}System.out.println("未找到该学生,删除失败!");}public Student findStudent(String studentId) {for (int i = 0; i < students.size(); i++) {if (students.get(i).getStudentId().equals(studentId)) {return students.get(i);}}return null;}public void updateStudent(Student student) {for (int i = 0; i < students.size(); i++) {if(students.get(i).getStudentId().equals(student.getStudentId())) {students.set(i, student);System.out.println("学生信息更新成功!");return;}}System.out.println("未找到该学生,更新失败!");}Other methods (e.g., displayAllStudents())}3. 最后,编写一个主程序`Main`,可以通过用户输入选择对应的学生管理操作。
javaweb上机实验报告学生管理系统
javaweb上机实验报告学生管理系统12020年4月19日一实验题目在线学生管理系统二开发背景简介随着网络技术的发展和普及许多以前基于CS的应用都开始向BS方向发展,而Java在这方面的应用有着许多其它技术不具备的优点,Java开发Web应用的主要技术是Servlet和Jsp技术,其实Jsp只Servlet的一种进化方便了开发者的使用。
它们都具有强大的功能适用于许多大型项目的开发。
在未来基于BS的应用也必将得到较好的发展。
本实验是在讲完Jsp和Servlet课程后为掌握所学的知识而做的实验。
三开发工具本次试验是在Windows平台下开发采用的集成开发工具是Myeclipse8.5,数据库使用的是MySql5.5,服务器采用的是Tomcat7.0。
四实验设计在本实验中模仿的是MVC设计模式,但由于系统比22020年4月19日32020年4月19日较小因此省略了业务层,在页面层中直接调用了数据层。
在做这个在线学生管理系统中业务基本上都是由Jsp 页面完成的没有用到Servlet 控制器。
五实现的功能六试验截图1.登陆界面Brows Tomcat请求的JSP 处理页Mysql Mysql 数据登录能够选择是身份,能够是学生,老师,和管理员。
登录界面是login.html,它想login.jsp页面传了3个参数来进行页面的验证,其中验证的部分代码是,String uname = request.getParameter("userName");String pwd = request.getParameter("userPass");int i =Integer.parseInt(request.getParameter("identity"));42020年4月19日String sql ="select * from userManger where username='"+uname+"' and userpassword='"+pwd+"'";Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);if(rs.next()){session.setAttribute("userId",rs.getString("id"));session.setAttribute("userMark",rs.getString("identitymark"));response.sendRedirect("index.jsp");}else{response.sendRedirect("2.html");}2.其中系统用的学生表是52020年4月19日。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生管理系统实验报告#学期:2018-2019课程名称:《Java程序设计实验》一、实验目的1.掌握JDK的安装与环境变量的配置,熟练使用Eclipse、WindowBulider插件、navicat和MySql。
2.熟练掌握Java基础语法与程序结构,了解面向对象的编程思想,掌握封装、构造方法和访问权限。
3.理解继承的概念和意义,掌握继承关系。
4.理解接口的概念和意义,掌握实现接口的方法。
5.掌握异常处理的方法。
6.掌握Java Swing,学会创建GUI界面,熟练使用MVC结构,掌握事件处理。
7.掌握MySql基础语句,操作MySql数据库。
二、实验内容a.管理系统功能1.实现登录界面与相应功能。
用户填写正确账号与密码并选择用户身份后即可实现登陆并跳转至主界面。
2.实现主界面与相应功能。
此界面功能包括学生管理、成绩管理、教师管理、系统设置和帮助。
其中系统设置包括修改密码,退出账号和关闭系统。
帮助包括关于作者、版本信息和意见反馈。
3.实现管理学生界面与相应功能。
可对学生信息进行添加、查询、修改和删除的操作。
4.实现管理成绩界面与相应功能。
可查询到学生并对其成绩信息进行编辑。
5.实现管理教师界面与相应功能。
可对教师信息进行添加、查询、修改和删除的操作。
6.实现修改密码界面与相应功能。
7.实现用户权限功能。
管理员权限为最高,可操作本系统所有功能。
学生可查看、修改自己的信息,查看自己的成绩,但不得添加、查询、删除他人信息与成绩。
教师可查看、修改自己的信息,查询、编辑学生的成绩信息,但不得添加、修改、删除学生信息,不得添加、查询、修改、删除其他教师信息。
8.实现退出账号、关闭系统、关于作者、版本信息、意见反馈和显示当前用户信息功能。
b.设计思路1.利用WindowBuilder插件可视化编写GUI界面。
2.利用MySql数据库保存学生、教师和管理员的信息,并用navicat管理数据库。
使用MVC框架,有以下几个包:model包(模型)、view包(视图)、images包(图像)、util包(自己定义的工具)、dao包(面向对象的数据库接口)。
3.对于用户身份,将使用枚举类实现,通过传递身份类型对象和用户账号对象实现各自功能操作。
4.信息管理界面的信息将以表格形式直观体现,通过连接数据库完成信息的添加、查询、修改和删除等功能。
5.根据不同的用户身份选择性的隐藏部分菜单、按钮,实现用户权限功能。
6.详细列表:三、实验程序quals(string)) {return true;}else {return false;}}}etCon(); */public static void main(String[] args) {(new Runnable() {public void run() {try {LoginFrame frame = new LoginFrame();(true);} catch (Exception e) {();}}});}/*** Create the frame.*/public LoginFrame() {setIconImage().getImage"/images/\u7CFB\u7EDF\u7BA1\u7406 ")));setTitle("\u767B\u5F55\u754C\u9762");ng")));(new Font("黑体", , 16));JLabel identityLabel = new JLabel("\u8EAB\u4EFD\uFF1A");ddGroup().addGap(91).addGroup.addGroup().addComponent(titleLabel).addContainerGap()).addGroup().addGap(13).addGroup.addComponent(idLabel,.addComponent(passwordLabel,.addComponent(loginButton,.addComponent(identityLabel, ).addGroup.addGroup().addPreferredGap, 158,.addComponent(resetButton)).addGroup().addGap(18).addGroup, false).addComponent(passwordField).addComponent(idTextField, , , 156,.addComponent(identityComboBox, , 0, , ).addPreferredGap, 73, )).addGap(120)))));(.addGroup().addGap(33).addComponent(titleLabel).addGap(35).addGroup.addComponent(idLabel).addComponent(idTextField, , , ).addGap(18).addGroup.addComponent(passwordLabel).addComponent(passwordField, , , ).addGap(18).addGroup.addComponent(identityLabel).addComponent(identityComboBox, , , ).addPreferredGap, 43,.addGroup.addComponent(loginButton).addComponent(resetButton)).addGap(24)));(gl_contentPane);}protected void loginAction(ActionEvent ae) {oString();oString();quals {identity = ;}else if().equals identity = ;}else {identity = ;}if(id)) {(this, "账号不能为空!");return;}quals {(this, "请选择您的身份!");return;}quals())) {etVisible(true);quals())) {etVisible(true);etVisible(true); */*/public MainFrame(Identity identity,Object userObject) {etImage"/images/\u7CFB\u7EDF\u7BA1\u7406 ")));setBackground;= identity;= userObject;setTitle("\u5B66\u751F\u7BA1\u7406\u7CFB\u7EDF\u4E3B\u754C\u9762");ng")));(new Font("Microsoft YaHei UI", , 16));(editPasswordMenuItem);(new ImageIcon"/images/\u9000\u51FA\u8D26\")));(new Font("Microsoft YaHei UI", , 16));(exitAccountMenuItem);JMenuItem shutdownSystemMenuItem = new JMenuItem("\u5173\u95ED\u7CFB\u7EDF");etVisible(true);(editPasswordFrame);}private void currentUser() {quals())) {Admin admin = (Admin)userObject;userLabel = new JLabel("\u5F53\u524D\u7528\u6237\uFF1A"+"【"+()+"】"+" "+());}else if ("教师".equals())) {Teacher teacher = (Teacher)userObject;userLabel = new JLabel("\u5F53\u524D\u7528\u6237\uFF1A"+"【"+()+"】"+" "+());}else {Student student = (Student)userObject;userLabel = new JLabel("\u5F53\u524D\u7528\u6237\uFF1A"+"【"+()+"】"+" "+());}}protected void manageGrade(ActionEvent ae) {etVisible(true);quals())){(false);quals())){(false); */public static void main(String[] args) {(new Runnable() {public void run() {try {ManageStudentFrame frame = new ManageStudentFrame();(true);} catch (Exception e) {();}}});}/*** Create the frame.*/public ManageStudentFrame() {setClosable(true);setTitle("\u7BA1\u7406\u5B66\u751F\u754C\u9762");ng")));(new Font("宋体", , 16));JLabel sexLabel = new JLabel("\u6027\u522B\uFF1A");ddGroup().addGroup.addGroup().addGap(158).addGroup.addGroup.addComponent(idLabel).addComponent(nameLabel).addComponent(passwordLabel).addComponent(majorLabel)).addComponent(sexLabel)).addPreferredGap.addGroup.addComponent(passwordField, , 270,.addComponent(idTextField, , 270,.addComponent(nameTextField, , 270,.addGroup().addComponent(maleRadioButton).addPreferredGap, 170,.addComponent(femaleRadioButton)).addComponent(majorTextField, , 270, ).addGap(68).addGroup, false).addComponent(inquireButton).addComponent(addButton).addComponent(editButton).addComponent(deleteButton)).addGap(102)).addGroup().addContainerGap().addComponent(scrollPane, , 736,.addGap(6))).addContainerGap()));(.addGroup().addContainerGap(71,.addGroup.addComponent(idLabel).addComponent(idTextField, , ,.addComponent(addButton)).addGap(18).addGroup.addComponent(nameLabel).addComponent(nameTextField, , ,.addComponent(inquireButton)).addGap(18).addGroup.addComponent(passwordLabel).addComponent(editButton).addComponent(passwordField, , , ).addGap(18).addGroup.addComponent(sexLabel).addComponent(maleRadioButton).addComponent(femaleRadioButton).addComponent(deleteButton)).addGap(21).addGroup.addComponent(majorLabel).addComponent(majorTextField, , , ).addPreferredGap.addComponent(scrollPane, , 265,.addGap(35)));studentTable = new JTable();(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent ae) {etColumn(0).setPreferredWidth(151); ().getColumn(1).setPreferredWidth(106);().getColumn(2).setPreferredWidth(134);().getColumn(4).setPreferredWidth(126);().getColumn(5).setPreferredWidth(160);(studentTable);getContentPane().setLayout(groupLayout);setTable(new Student());setAuthority();oString();StudentDao studentDao = new StudentDao();if(id)){(this, "删除成功!");}else{(this, "删除失败!");}();oString());oString());oString());oString());oString();if()))(true);if()))(true);}protected void editStudent(ActionEvent ae) {oString();String name = (), 1).toString();String password = (), 2).toString();String sex = (), 3).toString();String major = (), 4).toString();String editId = ().toString();String editName = ().toString();String editPassword = ().toString();String editSex = () () : ();String editMajor = ().toString();if(editId) || !(id)){oString());oString();String name = ().toString();String password = ().toString();String sex = () () : ();String major = ().toString();if(id)){(this, "请填写学号!");return;}if(name)){(this, "请填写姓名!");return;}if(password)){(this, "请填写密码!");return;}if(major)){(this, "请填写专业!");return;}Student student = new Student();(id);(name);(password);(sex);(major);("");quals判断用户身份是否学生,如果是,则列表只显示当前学生信息Student stu = (Student);());}DefaultTableModel defaultTableModel = (DefaultTableModel) ();(0);quals判断用户是否为学生addButton .setVisible(false); */public static void main(String[] args) {(new Runnable() {public void run() {try {ManageGradeFrame frame = new ManageGradeFrame();(true);} catch (Exception e) {();}}});}/*** Create the frame.*/public ManageGradeFrame() {setClosable(true);setTitle("\u7BA1\u7406\u6210\u7EE9\u754C\u9762");ddGroup().addGroup.addGroup().addGap(134).addGroup.addComponent(courseNameLabel).addComponent(idLabel).addComponent(creditLabel).addComponent(markLabel)).addGap(28).addGroup.addComponent(markTextField, , 201,.addComponent(creditTextField, , 201,.addComponent(courseNameTextField, , 218,.addComponent(idTextField, , , 224, ).addGap(26).addGroup.addComponent(inquireButton).addComponent(editButton)).addGap(150)).addGroup().addGap(119).addComponent(scrollPane, , 467, )).addGap(19)));(.addGroup().addGap(38).addGroup.addComponent(inquireButton).addComponent(idTextField, , ,.addComponent(idLabel)).addGap(21).addGroup.addComponent(editButton).addComponent(courseNameTextField, , ,.addComponent(courseNameLabel)).addGap(18).addGroup.addComponent(creditTextField, , ,.addComponent(creditLabel)).addGap(26).addGroup.addComponent(markTextField, , ,.addComponent(markLabel)).addPreferredGap, 61,.addComponent(scrollPane, , 214,.addContainerGap()));gradeTable = new JTable();(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent ae) {etColumn(0).setPreferredWidth(157);().getColumn(1).setPreferredWidth(118);().getColumn(2).setPreferredWidth(156);(gradeTable);getContentPane().setLayout(groupLayout);setTable(new Student());oString());oString());oString());oString());oString();String courseName = (), 2).toString();String credit = (), 3).toString();String mark = (), 4).toString();String editId = ().toString();String editCourseName = ().toString();String editCredit = ().toString();String editMark = ().toString();if(editId) || !(id)){oString()); */public static void main(String[] args) {(new Runnable() {public void run() {try {ManageTeacherFrame frame = new ManageTeacherFrame();(true);} catch (Exception e) {();}}});}/*** Create the frame.*/public ManageTeacherFrame() {setClosable(true);getContentPane().setFont(new Font("宋体", , 16));setTitle("\u7BA1\u7406\u6559\u5E08\u754C\u9762");ng")));(new Font("宋体", , 16));idTextField = new JTextField();(10);nameTextField = new JTextField();(10);ageTextField = new JTextField();(10);passwordField = new JPasswordField();maleRadioButton = new JRadioButton("\u7537");ddGroup().addGroup.addGroup().addGap(121).addGroup.addGroup.addComponent(nameLabel).addComponent(idLabel).addComponent(sexLabel).addComponent(ageLabel)).addComponent(passwordLabel)).addGap(18).addGroup.addGroup().addGroup, false).addComponent(nameTextField,.addComponent(idTextField, , , 212,.addComponent(ageTextField, , , 216,.addComponent(passwordField, ).addPreferredGap, 56, ).addGroup().addComponent(maleRadioButton).addPreferredGap, 133,.addComponent(femaleRadioButton).addGap(41))).addGroup.addComponent(editButton).addComponent(addButton).addComponent(inquireButton).addComponent(deleteButton)).addGap(75)).addGroup().addGap(92).addComponent(scrollPane, , 487, )).addGap(69)));(.addGroup().addGap(26).addGroup.addComponent(idLabel).addComponent(idTextField, , ,.addComponent(addButton)).addGap(18).addGroup.addComponent(nameLabel).addComponent(nameTextField, , ,.addComponent(inquireButton)).addGap(18).addGroup.addGroup.addComponent(femaleRadioButton).addComponent(editButton)).addGroup.addComponent(sexLabel).addComponent(maleRadioButton))).addGroup.addGroup().addGroup.addGroup().addGap(16).addComponent(ageLabel)).addGroup().addGap(11).addComponent(ageTextField, , , )).addGap(18).addGroup.addComponent(passwordLabel).addComponent(passwordField, , , )).addGroup().addPreferredGap.addComponent(deleteButton))).addGap(18).addComponent(scrollPane, , 247,.addContainerGap(32, ));teacherTable = new JTable();(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent ae) {etColumn(0).setPreferredWidth(177);().getColumn(1).setPreferredWidth(102);().getColumn(2).setPreferredWidth(182);(teacherTable);getContentPane().setLayout(groupLayout);setTable(new Teacher());oString();TeacherDao teacherDao = new TeacherDao();if(id)){(this, "删除成功!");}else{(this, "删除失败!");}();oString());oString());oString());oString());oString();if()))(true);if()))(true);}protected void editTeacher(ActionEvent ae) {oString();String name = (), 1).toString();String password = (), 2).toString();String sex = (), 3).toString();String age = (), 4).toString();String editId = ().toString();String editName = ().toString();String editPassword = ().toString();String editSex = () () : ();String editAge = ().toString();if(editId) || !(id)){(this, "教工号不可修改!");return;}if(editName)){(this, "请填写要修改的姓名!");return;}if(editPassword)){(this, "请填写要修改的密码!");return;}if(editAge)){(this, "请填写要修改的年龄!");return;}if(editName) && (editPassword) && (editSex) && (editAge)){(this, "您还没有做任何修改!");return;}int n = (this, "您确定要修改吗","修改确认框", ;if(n != {return;}Teacher teacher = new Teacher();(editId);(editName);(editPassword);(editSex);(editAge);if(teacher)){(this, "修改成功!");}else{(this, "修改失败!");}();oString());oString();String name = ().toString();String password = ().toString();String sex = () () : ();String age = ().toString();if(id)){(this, "请填写教工号!");return;}if(name)){(this, "请填写姓名!");return;}if(password)){(this, "请填写密码!");return;}if(age)){(this, "请填写年龄!");return;}Teacher teacher = new Teacher();(id);(name);(password);(sex);(age);TeacherDao teacherDao = new TeacherDao();if(teacher)){(this, "添加成功!");}else{(this, "添加失败!");}("");("");("");("");();(true);setTable(new Teacher());quals判断用户身份是否教师,如果是,则列表只显示当前教师信息Teacher tea = (Teacher);());}DefaultTableModel defaultTableModel = (DefaultTableModel) ();(0);quals判断用户是否为教师addButton .setVisible(false); */public static void main(String[] args) {(new Runnable() {public void run() {try {EditPasswordFrame frame = new EditPasswordFrame();(true);} catch (Exception e) {();}}});}/*** Create the frame.*/public EditPasswordFrame() {setClosable(true);setTitle("\u4FEE\u6539\u5BC6\u7801\u754C\u9762");ng")));JLabel newPasswordLabel = new JLabel("\u65B0 \u5BC6 \u7801\uFF1A");ddGroup() .addGroup.addGroup().addContainerGap(108,.addGroup.addComponent(newPasswordLabel).addComponent(oldPasswordLabel).addComponent(confirmPasswordLabel)).addPreferredGap.addGroup, false).addComponent(newPasswordField, , , 196,.addComponent(oldPasswordField,.addComponent(confirmPasswordField, )).addGroup().addGap(221).addComponent(confirmButton))).addContainerGap(106, ));(.addGroup().addGap(85).addGroup.addComponent(oldPasswordLabel).addComponent(oldPasswordField, , , ).addGap(28).addGroup.addComponent(newPasswordField, , ,.addComponent(newPasswordLabel)).addGap(31).addGroup.addComponent(confirmPasswordField, , ,.addComponent(confirmPasswordLabel)).addPreferredGap, 72,.addComponent(confirmButton).addGap(52)));getContentPane().setLayout(groupLayout);}protected void confirmPassword(ActionEvent ae) {oString();String newPassword = ().toString();String conformPassword = ().toString();if(oldPassword)){quals判断身份是否为管理员AdminDao adminDao = new AdminDao();quals{理员登录主界面。