《数据库课程设计》报告模板_第1页
《数据库课程设计》报告模板_第2页
《数据库课程设计》报告模板_第3页
《数据库课程设计》报告模板_第4页
《数据库课程设计》报告模板_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库课程设计报告题 目: 学生管理系统 专 业: 软件工程 递交的材料清单:1. 学生管理系统代码一份2. 学生管理系统报告一份3.指导教师审阅意见及成绩评定:指导老师签章: 日 期: 年 月 日 目 录一概述1.1 项目背景 随着在校大学生人数的不断增加,教务系统的数据量也不断上涨。学校工作烦杂,资料繁多,因此对于具有良好数据库的系统需求越来越庞大。1.2 编写目的开发一套适合大众的,兼容性好的学生管理系统可以更加方便地对学生信息进行管理。1.3 项目名称学生管理系统1.4 开发环境Eclipse java 1.8mysql二需求分析2.1 问题的提出 作为学生管理系统,其总体结构的设计应

2、从架构、功能、信息、性能等各个方面保证整个学生管理系统功能的实现,使学生的信息更加方便管理。其总体设计原则如下:(1)简单性和实用性学生管理系统主要面向的是学生和教师,而每个人的水平良莠不齐,因此要求平台设计简单实用,又能满足大家会使用的实际要求。(2)集成性把学生子系统、后台系统管理和教师管理子系统,通过有机集成、形成一致的、可靠的、安全的、共享的信息系统。2.2 需完成的功能2.1管理员子系统2.1.1 用户登陆 管理员进入系统时需要输入自己的账号,密码。2.1.2 课程查询 管理员可以看到学生的课程信息2.1.3 添加学生信息 管理员把学生的信息添加系统和数据库里面2.1.4 删除学生信

3、息 管理员把学生的信息从系统和数据库里面删除2.1.5修改学生信息 管理员把学生的信息从系统和数据库里面修改2.1.6 查询学生信息 管理员可以查询学生的基本信息2.1.7添加教师信息 管理员把教师的信息添加系统和数据库里面2.1.8 浏览教师信息 管理员可以看到各个老师的基本信息2.2教师服务子系统2.2.1 用户登录教师进入系统时需要输入自己的账号,密码。2.2.2 课程查询 老师可以查询自己的课程和上课的学生2.2.3 添加课程老师可以添加自己需要上的课程2.2.4 浏览学生信息 老师可以看见学生的基本信息三数据库设计 3.1 概念模型设计 3.2 逻辑模型和物理模型设计课程信息表tea

4、chercourse:(课程号,课程名,教师号,时间,地点)学生信息表studentnew:(学号,姓名,性别,出生日期,学院)教师表teacher:(教师号,教师名,教师性别,教师系别)1、课程信息表(course)字段名描述数据类型字段限制classid课程号char(20)Primarykeyclassname课程名char(20)Not nullteachernumber教师号char(20)Not nulltime时间char(20)Not nullstunumber学生学号char(20)Not null2、学生信息表(student1)字段名描述数据类型字段权限number学号c

5、har(20)Primarykey name姓名char(20)Not null sex性别char(20)Not nullbirthday 出生日期char(20)Not null department部门char(20)Not null3.教师表(teacher)字段名属 性数据类型字段权限teachernumber教师号char(20)Primarykeyname教师名char(20)Not nullsex教师性别char(20)Not nullbirthday教室系别char(20)Not null四功能设计4.1 系统功能分析功能类别子功能管理员管理子系统用户登陆查询学生信息添加学生

6、信息修改学生信息删除学生信息浏览学生信息浏览课程信息添加教师信息浏览教师信息教师管理子系统用户登录 添加课程查询课程浏览学生信息4.2 系统功能模块设计(1) 密码验证模块,主要区分用户和实现登录密码的验证工作。(2) 增加学生记录模块,主要实现学生学号、姓名、性别、出生日期,学院等相关信息的录入和添加。(3) 浏览学生记录模块,可进行对学生信息的浏览。(4) 查询学生记录模块,可进行对学生信息的查询,并将查询到的学生信息显示出来。(5) 删除学生记录模块,可按照学号删除某一学生的信息。(6) 修改学生记录模块,可按照学号修改学生基本信息。(7) 增加教师记录模块,主要实现教工号、姓名、性别、

7、出生日期,相关信息的录入和添加。(8) 浏览教师记录模块,可进行对教师信息的浏览。(9) 浏览课程记录模块,可进行对学生课程信息的查询。(10)添加课程记录模块,可以添加新的课程给对应的学生。 五程序代码及其它5.1 主界面设计 管理员登录界面 教师登录界面 package stu.jdt;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.

8、JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class Choose extends JFrame implements ActionListener private JPanel jp = new JPanel();private boolean flag;private JButton jbArray = new J

9、Button(教师登陆), new JButton(管理员登陆) ;public boolean reflag() return flag;public Choose() jp.setLayout(null);for (int i = 0; i 2; i+) jbArrayi.setBounds(50 + i * 110, 130, 100, 56);jp.add(jbArrayi);jbArrayi.addActionListener(this);this.add(jp);this.setTitle(登陆);this.setResizable(false);this.setBounds(10

10、0, 100, 300, 250);this.setVisible(true);Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stubif (jbArray1.getActionCommand().equals(管理员登陆) this.setVisible(false);Textpass pass = new Textpass();if (jbArray0.getActionCommand().equals(教师登陆) this.setVisible(false);/ Tex

11、tpass pass1= new Textpass();密码登录界面package stu.jdt;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import ja

12、vax.swing.JTextField;public class Textpass extends JFrame implements ActionListener private JPanel jp=new JPanel();private boolean flag;private JLabel jlArray=new JLabel(用户名),new JLabel(密码),new JLabel();private JButton jbArray=new JButton(登陆),new JButton(清空);private JTextField jtxtName =new JTextFie

13、ld();private JPasswordField jtxtPassword= new JPasswordField();public boolean reflag()return flag;public Textpass()jp.setLayout(null);for(int i=0;i2;i+)jlArrayi.setBounds(30, 20+i*50, 80, 26);jbArrayi.setBounds(50+i*110, 130, 80,26);jp.add(jlArrayi);jp.add(jbArrayi);jbArrayi.addActionListener(this);

14、jtxtName.setBounds(80,20,180,30);jp.add(jtxtName);jtxtName.addActionListener(this);jtxtPassword.setBounds(80,70,180,30);jp.add(jtxtPassword);jtxtPassword.setEchoChar(*);jtxtPassword.addActionListener(this);jlArray2.setBounds(10, 180, 300, 30);jp.add(jlArray2);this.add(jp);this.setTitle(登陆);this.setR

15、esizable(false);this.setBounds(100, 100, 300, 250);this.setVisible(true);public void actionPerformed(ActionEvent e)if(e.getSource()=jtxtName)jtxtPassword.requestFocus();else if(e.getSource()=jbArray1)jlArray2.setText();jtxtName.setText();jtxtPassword.setText();jtxtName.requestFocus();elseif(jtxtName

16、.getText().equals(admin)&String.valueOf(jtxtPassword.getPassword().equals()JOptionPane.showMessageDialog(null, 管理员登录成功);this.setVisible(false);Function func = new Function();if(jtxtName.getText().equals(li)&String.valueOf(jtxtPassword.getPassword().equals()JOptionPane.showMessageDialog(null, 管理员登录成功

17、);this.setVisible(false);Function func = new Function();if(jtxtName.getText().equals(teacher)&String.valueOf(jtxtPassword.getPassword().equals(123)JOptionPane.showMessageDialog(null, 教师登录成功);this.setVisible(false);Teacher tea = new Teacher();5.2 其它界面设计与实现 添加学生信息package stu.jdt;import java.sql.*;impo

18、rt java.awt.*;import java.awt.event.*;import javax.swing.*;import com.mysql.jdbc.Driver;import stu.jdt.Window;public class Add extends JFrame private static final long serialVersionUID = -L;JLabel jlnumber = new JLabel(学号:);JLabel jlname = new JLabel(姓名:);JLabel jlsex = new JLabel(性别:);JLabel jlbirt

19、hday = new JLabel(出生日期:);JLabel jldepartment = new JLabel(学院:);JTextField jtnumber = new JTextField(, 20);JTextField jtname = new JTextField(, 20);JTextField jtsex = new JTextField(, 20);JTextField jtbirthday = new JTextField(, 20);JTextField jtdepartment = new JTextField(, 20);JButton buttonadd = n

20、ew JButton(添加);public Add() JPanel jpnumber = new JPanel();JPanel jpname = new JPanel();JPanel jpsex = new JPanel();JPanel jpbirthday = new JPanel();JPanel jpdepartment = new JPanel();JPanel jpforbutton = new JPanel(new GridLayout(1, 1);jpnumber.add(jlnumber);jpnumber.add(jtnumber);jpname.add(jlname

21、);jpname.add(jtname);jpsex.add(jlsex);jpsex.add(jtsex);jpbirthday.add(jlbirthday);jpbirthday.add(jtbirthday);jpdepartment.add(jldepartment);jpdepartment.add(jtdepartment);jpforbutton.add(buttonadd);buttonadd.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (e.getS

22、ource() = buttonadd) / AddConnection conn = null;Statement stat = null;PreparedStatement ps = null;String sql = INSERT INTO studentnew(number,name,sex,birthday,department) + values(?,?,?,?,?);try Class.forName(com.mysql.cj.jdbc.Driver);System.out.println(JBDC 加载成功!); catch (Exception a) / System.out

23、.println(JBDC 狗带!);a.printStackTrace();try conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/sys?serverTimezone=UTC, root,);ps = conn.prepareStatement(sql);ps.setString(1, jtnumber.getText();ps.setString(2, jtname.getText();ps.setString(3, jtsex.getText();ps.setString(4, jtbirthday.getTe

24、xt();ps.setString(5, jtdepartment.getText(); ps.executeUpdate(); System.out.println(插入数据成功!);JOptionPane.showMessageDialog(null, 添加成功); catch (SQLException b) b.printStackTrace();JOptionPane.showMessageDialog(null, 该记录已经存在); finally try conn.close();System.out.println(MySQL 关闭成功); catch (SQLExceptio

25、n c) System.out.println(MySQL 关闭失败 );c.printStackTrace(););this.setTitle(添加学生信息);this.setLayout(new GridLayout(9, 1);this.add(jpnumber);this.add(jpname);this.add(jpsex);this.add(jpbirthday);this.add(jpdepartment);this.add(jpforbutton);this.setLocation(400, 400);this.setSize(550, 500);this.setVisible

26、(true); 修改学生信息package stu.jdt;import java.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import stu.jdt.Window; public class Modify extends JFrame private static final long serialVersionUID = -L; JLabel jlnumber = new JLabel(学号:);JLabel jlname = new JLabel(姓名:);JLabel jlsex

27、 = new JLabel(性别:);JLabel jlbirthday = new JLabel(出生日期:);JLabel jldepartment = new JLabel(学院:);JTextField jtnumber = new JTextField(, 20);JTextField jtname = new JTextField(, 20);JTextField jtsex = new JTextField(, 20);JTextField jtbirthday = new JTextField(, 20);JTextField jtdepartment = new JTextF

28、ield(, 20);JButton buttonModify = new JButton(修改);/* JButton buttonreturn = new JButton(返回); */public Modify() JPanel jpnumber = new JPanel();JPanel jpname = new JPanel();JPanel jpsex = new JPanel();JPanel jpbirthday = new JPanel();JPanel jpdepartment = new JPanel();JPanel jpforbutton = new JPanel(n

29、ew GridLayout(1, 1);jpnumber.add(jlnumber);jpnumber.add(jtnumber);jpname.add(jlname);jpname.add(jtname);jpsex.add(jlsex);jpsex.add(jtsex);jpbirthday.add(jlbirthday);jpbirthday.add(jtbirthday);jpdepartment.add(jldepartment);jpdepartment.add(jtdepartment);jpforbutton.add(buttonModify);/* jpforbutton.a

30、dd(buttonreturn); */buttonModify.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String number = jtnumber.getText();String name = jtname.getText();String sex = jtsex.getText();String birthday = jtbirthday.getText();String department = jtdepartment.getText();Connecti

31、on conn = null;ResultSet res = null;Statement stat = null;String sql = SELECT number,name,sex,birthday,department FROM studentnew;try Class.forName(com.mysql.cj.jdbc.Driver); catch (Exception d) System.out.println(jdbc fall);d.printStackTrace();try conn = DriverManager.getConnection(jdbc:mysql:/loca

32、lhost:3306/sys?serverTimezone=UTC, root,);stat = conn.createStatement();res = stat.executeQuery(sql);while (res.next() / Modifyif (res.getString(1).equals(jtnumber.getText() try Class.forName(com.mysql.cj.jdbc.Driver); catch (Exception d) System.out.println(jdbc fall);d.printStackTrace();String sql2

33、 = UPDATE studentnew SET name= + name + WHERE number=+ jtnumber.getText() + ;String sql3 = UPDATE studentnew SET sex= + sex + WHERE number= + jtnumber.getText()+ ;String sql4 = UPDATE studentnew SET birthday= + birthday + WHERE number=+ jtnumber.getText() + ;String sql5 = UPDATE studentnew SET depar

34、tment= + department + WHERE number=+ jtnumber.getText() + ;try conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/sys?serverTimezone=UTC,root, );stat = conn.createStatement();stat.executeUpdate(sql2);stat.executeUpdate(sql3);stat.executeUpdate(sql4);stat.executeUpdate(sql5);JOptionPane.sh

35、owMessageDialog(null, 修改成功); catch (SQLException g) / TODO Auto-generated catch blockg.printStackTrace();try stat.close();conn.close(); catch (SQLException ar) ar.printStackTrace();break;/ Modify end catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace(); finally try conn.clos

36、e(); catch (SQLException ar) ar.printStackTrace(););/* * buttonreturn.addActionListener(new ActionListener() public void * actionPerformed(ActionEvent e) Window window = new Window(); ); */this.setTitle(修改学生信息);this.setLayout(new GridLayout(9, 1);this.add(jpnumber);this.add(jpname);this.add(jpsex);t

37、his.add(jpbirthday);this.add(jpdepartment);this.add(jpforbutton);this.setLocation(400, 300);this.setSize(550, 500);this.setVisible(true); 删除学生信息package stu.jdt;import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import stu.jdt.Window;public class Delete extends JFrame pr

38、ivate static final long serialVersionUID = -L;JLabel jlnumber = new JLabel(学号:);JTextField jtnumber = new JTextField(, 20);JButton buttondelete = new JButton(删除);/* JButton buttonreturn = new JButton(返回); */PreparedStatement ps = null;ResultSet res1 = null;public Delete() JPanel jpnumber = new JPane

39、l();JPanel jpforbutton = new JPanel(new GridLayout(1, 1);/ String strnum;jpnumber.add(jlnumber);jpnumber.add(jtnumber);jpforbutton.add(buttondelete);/* jpforbutton.add(buttonreturn); */buttondelete.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String number = jtnu

40、mber.getText();Connection conn = null;ResultSet res = null;Statement stat = null;String sql = DELETE FROM studentnew WHERE number= + number + ;try Class.forName(com.mysql.cj.jdbc.Driver); catch (Exception a) a.printStackTrace();try conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/sys?se

41、rverTimezone=UTC, root,);stat = conn.createStatement();stat.executeUpdate(sql);ps = conn.prepareStatement(SELECT * FROM studentnew);res1 = ps.executeQuery();int flag = 0;while (res1.next() if (number.toString() = res1.getString(1) flag = 1;System.out.println(res1.getString(1) + + number.toString();J

42、OptionPane.showMessageDialog(null, 删除成功); catch (SQLException h) h.printStackTrace();JOptionPane.showMessageDialog(null, 该记录不存在); finally try conn.close();System.out.println(close success!); catch (SQLException j) System.out.println(close go die!);j.printStackTrace(););/* * buttonreturn.addActionLis

43、tener(new ActionListener() public void * actionPerformed(ActionEvent e) Window window = new Window(); ); */this.setTitle(删除学生信息);this.setLayout(new GridLayout(9, 1);this.add(jpnumber);this.add(jpforbutton);this.setLocation(400, 300);this.setSize(550, 500);this.setVisible(true); 查询学生信息package stu.jdt

44、;import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import stu.jdt.Window;public class Select extends JFrame private static final long serialVersionUID = -L;JLabel jlnumber = new JLabel(学号:);JLabel jlname = new JLabel(姓名:);JLabel jlsex = new JLabel(性别:);JLabel jlbirthda

45、y = new JLabel(出生日期:);JLabel jldepartment = new JLabel(学院:);JTextField jtnumber = new JTextField(, 20);JLabel jname = new JLabel();JLabel jsex = new JLabel();JLabel jbirthday = new JLabel();JLabel jdepartment = new JLabel();JButton buttonSelect = new JButton(查询);/* JButton buttonreturn = new JButton

46、(返回); */public Select() JPanel jpnumber = new JPanel();JPanel jpname = new JPanel();JPanel jpsex = new JPanel();JPanel jpbirthday = new JPanel();JPanel jpdepartment = new JPanel();JPanel jpforbutton = new JPanel(new GridLayout(1, 1);jpnumber.add(jlnumber);jpnumber.add(jtnumber);jpname.add(jlname);jp

47、name.add(jname);jpsex.add(jlsex);jpsex.add(jsex);jpbirthday.add(jlbirthday);jpbirthday.add(jbirthday);jpdepartment.add(jldepartment);jpdepartment.add(jdepartment);jpforbutton.add(buttonSelect);/* jpforbutton.add(buttonreturn); */buttonSelect.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) Connection conn = null;ResultSet res = null;Stateme

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论