1、java课程设计学生信息管理系统-本页仅作为预览文档封面,使用时请删除本页-java课程设计学生信息管理系统(总33页)一引言1.1项目的名称学生信息管理系统1.2项目背景和目标 学生信息管理系主要对在校学生的个人基本信息以及成绩信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供成绩查询功能。我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设1.3项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的学生信息管理系统
2、二、需求分析21系统概述 此系统提供给教师用户和学生用户。教师登陆后可以对学生基本信息表和学生成绩表进行查看、增添新记录和删除记录等操作。学生登陆后能查询自己的成绩22系统运行环境 Java运行在eclipse软件上,数据库用mysql数据库23功能需求描述学生信息管理系统要面对教师和学生用户。对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。对于学生,不需要查询自己的基本信息,只需要查询成绩。为了保护学生成绩隐私,每位学生登录系统后只能查询自己的成绩,而无法看到别人的成绩三、系统设计31开发与设计的总体思想 教师方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这
3、个主界面里,可以选择要操作的类别,即查询功能还是修改功能。在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。在查找学生成绩信息时,只能依据学生姓名和学号进行查找。在修改功能里面,包括对学生基本信息表和学生成绩表进行增加和删除记录 学生方面:学生通过自己的用户名和密码登录此系统后, 可以查询自己本学期的各科成绩信息32系统模块结构图33数据库结构设计为了支持此学生信息管理系统,创建数据库studentmanage。在这个数据库中包含四个表:student表,teacher表,studentlogin表和sc
4、ore表。截图如下:在student(学生基本信息)表中,有五个属性列,分别为:num(学号),sname(学生姓名姓名),sex(性别),age(年龄),dept(系别)。其基本数据类型分别为:int,char,char,int,char。当查询学生基本信息时,从此表中获取数据。截图如下:在teacher(教师登陆)表中,有两个属性列,分别为:tname(教师姓名),password(登录密码)。其基本数据类型分别为:char,char。当教师用户登陆此系统时,从该表获取数据。截图如下:在studentlogin(学生登录)表中,有两个属性列,分别为:sname(学生姓名),password
5、(登录密码)。其基本数据类型分别为:char,char。当学生用户登陆此系统时,从该表获取数据。截图如下:在score(学生成绩)表中,有五个属性列,分别为:num(学号),sname(学生姓名),course(课程名称),score(考试成绩),credit(学分)。其基本数据类型分别为:int,char,char,int,int。当查询学生成绩信息时,从此表获取数据。截图如下:34模块设计总主界面登陆后,可以选择用户,是学生用户或者教师用户。如果选择学生用户,则进入学生登录界面,在这个界面上输入学生姓名和用户密码。输入后单击“成绩查询”按钮,若密码正确,这显示该学生本人本学期成绩,若密码不
6、正确,这提示密码错误。如果选择教师用户,则进入教师登陆界面,在这个界面上输入教师姓名和用户密码,输入后单击“登录”按钮,则进入教师主界面。在教师主界面可以选择进行查询操作还是修改操作。在查询操作中包含查询学生基本信息和查询学生成绩信息。若要查询学生基本信息,点击菜单项则进入学生基本信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个学生姓名。输入后,单击“检索”按钮,则开始数据库查询。如果数据库检索到所需信息,这生成列表显示检索结构,如果没有所需信息,则列表中的内容为空。若要查询学生成绩信息,则点击学生成绩查询菜单项,进
7、入成绩查询界面。在此界面的文本框中输入要查询成绩的学生姓名,然后单击检索按钮。若数据库中有此学生的成绩信息,则生成列表显示成绩信息,若没有此记录,则列表内容为空。如果教师要进行修改操作,则在教师主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:增加新生信息,删除毕业生信息(这两个是对学生基本信息表的操作),增加成绩信息,删除成绩信息(这两个是对学生成绩信息表的操作)。在增加信息操作中,按照标签提示一次输入要增添的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。在删除信息操作中,输入要删除信息的学生姓名,单击“删除”按钮,若删除成功
8、,则提示成功,若删除失败则提示失败。以上就是该学生信息管理系统的操作步骤。35系统流程描述四、系统实现本系统保存在studentmanage包里其中包含四个包:connection包,dao包,model包,ui包包中的类:(1)DBconnection类:此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。若连接成功,提示:connection success,若连接失败,提示:connection failureDBconnection类源代码:package connection;import class DBConnection public static Con
9、nection con=null; public static Connection getConnection() try String dbDriver=; (dbDriver); Driver Suceess); catch (ClassNotFoundException e) Driver not found); (); try con=(jdbc: age,root,root); Connection Suceess); catch (SQLException e) Connetion failure); (); return con; public static void clos
10、eConnection() if(con!=null) try (); database close success); catch (SQLException e) close failure); (); 包中的类:(1)StudentDao类:此类中有四个方法,studentLogin,addStudent,deleteStudent, queryStuden,作用分别是控制学生登陆,增加学生基本信息,查询学生基本信息,删除学生基本信息。studentLogin()方法中,有两个参数,分别传给select语句中的sname(学生姓名)和password(登录密码),利用select语句在s
11、tudentlogin表中检索学生登录信息。若存在此信息,返回true,否则返回falseaddStudent()方法中,有五个参数,分别传给insert语句中的num(学号),sname(学生姓名),age(年龄),sex(性别)和dept(系别),利用insert语句向student学生基本信息表中插入学生记录。若插入成功,返回true,否则返回falsedeleteStudent()方法中,有一个参数,传给delete语句中的sname(学生姓名),利用delete语句,把student表中相关学生信息删除。若删除成功,返回true,否则返回falsequeryStuden()方法中,有
12、两个参数,分别传给select语句中的field(查找方式)和key(查找内容),利用select语句,从student表中检索学生基本信息。若存在此信息,则返回一个ArrayList类的对象lis(表格),否则,异常处理StudentDao类源代码:package dao;import ;import ;public class StudentDao public boolean studentLogin(String sname,String password) DBConnection db=new DBConnection(); Connection con=(); boolean i
13、sfound=false; PreparedStatement pst; try pst = (select * from studentlogin where sname= and password=); (1, sname); (2,password); ResultSet rs=(); if() isfound=true; catch (SQLException e) (); return isfound; public boolean addStudent(int num, String sname, String sex, int age, String dept) Connecti
14、on con = (); PreparedStatement pst; try pst = (insert into student values(,); (1, num); (2, sname); (3, sex); (4, age); (5, dept); int count = ();etString(3), (4), (5); (student); catch (SQLException e) (); return lis; public boolean deleteStudent(String key) Connection con = (); Statement stm; try
15、stm = (); String sql = delete from student where sname like % + key + % ; int count = (sql); if (count = 1) return true; else return false; catch (SQLException e) (); return false; (2)TeacherDao类:此类中有一个方法:queryTeacher,作用是控制教师登陆 queryTeacher()方法中,有两个参数,分别传给select语句中的tname(教师姓名)和password(登陆密码),利用selec
16、t语句在teacher表中检索教师登陆信息。若存在此信息,返回true,否则返回falseTeacherDao类源代码:package dao;import ;public class TeacherDao public boolean queryTeacher(String tname,String password) DBConnection db=new DBConnection(); Connection con=(); boolean isfound=false; PreparedStatement pst; try pst = (select * from teacher wher
17、e tname= and password=); (1, tname); (2,password); ResultSet rs=(); if() isfound=true; catch (SQLException e) (); return isfound; public static void main(String args) (3)ScoreDao类:此类中有四个方法,queryScore,queryScore1,addScore,deleteScor作用分别是为教师用户提供查询学生成绩信息功能,为学生用户提供询本人成绩信息功能,添加成绩信息,删除成绩信息。queryScore()方法中
18、,有一个参数,传给select语句中的sname(学生姓名),利用select语句,查询学生成绩信息表中的内容。若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理queryScore1()方法中,有一个参数,传给传给select语句中的sname(学生姓名),这个sname的学生用户登录时输入的姓名。即此类的作用是每个学生登陆只能查看本人成绩。若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理addScore()方法中,有五个参数,分别传给insert语句中的num(学号),sname(学生姓名),course(课程名称),score(成
19、绩),credit(学分)。利用insert语句,将这些记录写入score表中。若插入成功返回true,否则返 回falsedeleteScore()方法中,有一个参数,传给delete语句中的sname(学生姓名),利用delete语句,把score表中相关学生信息删除。若删除成功,返回 true,否则返回falseScoreDao类源代码: package dao;import ;import ;import ;import ;public class ScoreDao public ArrayList queryScore(String key) ArrayList lis = new
20、ArrayList(); Connection con = (); Statement stm; try stm = (); String sql = select * from score where sname like % + key + % ; ResultSet rs = (sql); while () Score score = new Score(1), (2), rs .getString(3), (4), (5); (score); catch (SQLException e) (); return lis; public ArrayList queryScore1(Stri
21、ng key) ArrayList lis = new ArrayList(); Connection con = (); Statement stm; try stm = (); String sql = select * from score where sname like % + + % ; ResultSet rs = (sql); while () Score score = new Score(1), (2), rs .getString(3), (4), (5); (score); catch (SQLException e) (); return lis; public bo
22、olean addScore(int num, String sname, String course, int score, int credit) Connection con = (); PreparedStatement pst; try pst = (insert into score values(,); (1, num); (2, sname); (3, course); (4, score); (5, credit); int count = ();import .*;public class LoginUI extends JFrame JLabel l1; JButton
23、bt1, bt2; Container cp; public LoginUI() l1 = new JLabel(请选择用户类型); bt1 = new JButton(教师); bt2 = new JButton(学生); JPanel p1 = new JPanel(); (null); (150, 150, 120, 40); (l1); (120, 230, 80, 30); (bt1); (220, 230, 80, 30); (bt2); (new TeacherLoginActionListener();import .*;import ;public class Student
24、LoginUI extends JFrame JLabel l1, l2; JTextField t1; JPasswordField t2; JButton bt1, bt2; Container cp; public static String st1; public String st2; public StudentLoginUI() l1 = new JLabel(学生姓名); l2 = new JLabel(密码); t1 = new JTextField(12); t2 = new JPasswordField(12); bt1 = new JButton(成绩查询); bt2
25、= new JButton(退出); JPanel p1 = new JPanel(); (null); (150, 150, 80, 40); (l1); (250, 150, 80, 30); (t1); (150, 190, 80, 40); (l2); (250, 190, 80, 30); (t2); (150, 230, 120, 30); (bt1); (280, 230, 80, 30); (bt2); (new LoginActionListener();import .*;import .*;import ;import ;public class StudentScore
26、UI extends JFrame String aa=; JLabel selectionLabel; JPanel topPanel; Container container; JTable table; JScrollPane bookScrollPane; JPanel bottomPanel; public StudentScoreUI() container = (); selectionLabel = new JLabel(aa+同学本学期成绩如下); topPanel = new JPanel(); (new FlowLayout); (selectionLabel); , t
27、opPanel); table = new JTable(); bookScrollPane = new JScrollPane(table); , bookScrollPane); bottomPanel = new JPanel(); , bottomPanel); (学生成绩查询); (600, 450); (true); ScoreDao oneScore=new ScoreDao(); ArrayList lis = (aa); Vector head = new Vector(); (学号); (姓名); (学科); (成绩); (学分); Vector content = new
28、 Vector(); for (int i = 0; i (); i+) Vector row = new Vector(); Score oneScore1 = (Score) (i); (); (); (); (); (); (row); DefaultTableModel model = new DefaultTableModel(content, head); (model); repaint(); 执行截图如下:(4)TeacherLoginUI类:此类为教师登陆界面,在这个界面上有两个文本框,分别输入教师姓名和登录密码,还有两个按钮,登陆和退出。输入后,从两个文本框中获取用户输入的内容,点击“登陆”按钮时,调用TeacherDao类中的queryTeacher()方法验证是否存在该用户。若存在创建TeacherMainUI类的对象,即打开教师主界面,若不存在,则提示密码错误。TeacherLoginUI类源代码:package ui;import .*;import .*;import ;public class TeacherLoginUI extends JFrame JLabel l1,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1