完整版数据库课程设计教务管理系统_第1页
完整版数据库课程设计教务管理系统_第2页
完整版数据库课程设计教务管理系统_第3页
完整版数据库课程设计教务管理系统_第4页
完整版数据库课程设计教务管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、洛阳理工学院课程设计报告课程名称数据库课程设计设计题目教务治理系统专 业计算机科学与技术班级学号姓名完成日期课程设计任务书设计题目:教务治理系统设计内容与要求:设计教务治理系统,类似于我校教务治理系统,有四类用户:教务员、学生、 教师、治理员教务员可以输入学生、教师、班级、课程信息.一个班级只属于一 个专业,一个学生只属于一个班级.教务员负责输入每个专业、每个班级需要学 习哪些课程,指定课程的任课教师.教师可以查看学习该课程的学生名单.课程 结束后,教师可以录入课程成绩.一个教师可以教授多个班的多门课程,每门课 由多位老师讲授.课程分两类,必修课和选修课.系统要记录每个学生学习各门 必修课的成

2、绩,还要记录学生选修了哪些选修课以及课程成绩.学生可以查看自 己各门课程的成绩.学生还可以进行评教,给老师打分.治理员可以输入教室信 息,并结合班级、课程、教室信息实现自动排课.要求:1 .完本钱系统的需求分析,写出功能需求和数据需求描述;2 .完成数据库的概念结构设计、逻辑结构设计、物理结构设计;3 .完本钱系统的局部功能模块的程序界面设计.指导教师:2021年12月29日课程设计评语成绩:指导教师:年 月 日目录、概述21.1、 本设计的目的与意义21.2、 数据库开发工具和应用程序开发工具 2二、需求分析22.1 功能需求22.2 数据需求2三、概念结构设计23.1、 E-R模型设计23

3、.2、 总体E-R图描述4四、逻辑结构设计44.1、 关系模型44.2、 关系模式的优化与说明4五、物理结构设计55.1 建立数据库55.2 表与表结构5六、应用程序设计66.1、 系统总体结构66.2、 系统界面与源代码 76.2.1、 界面86.2.2、 功能描述96.2.3、 程序源代码10七、设计总结23一、概述本系统后台数据库采用 Microsoft SQL Server数据库,该数据库系统在平安性、 准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用 Microsoft公司的Visual Studio 2021作为主要开发工具,可与 SQL Server 2021

4、数 据库无缝链接.二、需求分析2.1、 功能需求本系统的功能如下:1学生信息查询:学生可以根据学号、姓名、专业进行查询.2学生信息治理:主要是用于学生信息更新、插入、删除;3学生成绩录入:用于学生成绩治理,录入学生成绩,也可以更新;2.2、 数据需求本系统需要的数据如下:学生:学号、姓名、性别、年龄教师:工号、姓名、性别、年龄班级:班号、班名、人数、课程:课程号、课程名、上课时间、上课地点专业:专业号、专业名三、概念结构设计3.1、 E-R模型设计E-R图学生和教师实体及其属性E-R图教师与课程E-R图c Jn 属于n课程局部实体的E-R图必修成绩对应总体E-R图3.2、 总体E-R图描述学生

5、与班级之间的联系是所属关系一对多关系班级与专业之间的联系是所属关系一对多关系班级与课程之间的联系是学习关系多对多关系学生选修一门选修课一对多关系学生评教老师所教课程多对多关系老师教授课程多对多关系四、逻辑结构设计4.1、 关系模型学生也 姓名、性别、年龄、班号、选修课程号、分数教师工丛姓名、性别、年龄班级班生班名、人数、专业名课程课程号、课程名成绩必修课程号、班号、学号、分数评教学号、工号、课程号、评分教授工号、课程号课程表课程号、工号、上课时间、上课地点实现排课功能用户用户名、密码、用户类型存储登陆查询系统的人员信息加粗表示外键、加下划线表示主码4.2、 关系模式的优化与说明例如:教授关系的

6、依赖关系如下:工号、课程号一工号、课程号所以教授关系模式属于第三范式教师关系的依赖关系如下:工号一 工号、姓名、性别、年龄由于没有非主属性对码的局部函数依赖,也没有非主属性对码的传递函数依赖所以教师关系模式属于第三范式五、物理结构设计5.1、 数据库的建立熟看摩名玲卬.I静霜乐交件加:自值45并 变件直31霓阴& 耳舱大.田 目就雌毒妊行的也1 一 .异的1通,不限t雌 他*XmJe as 不话用 丁一i .哥置为 M不胃耽忙 .j亡Mr中1r- m谓,5.2、 表与表结构CnameGfmjtCmajorchar varchaf(20) tkiyintvar char (20)兀计川y

7、H 00n班级Class表的结构列名Coursename数据类型 vardiacClO) varchar(2O)课程Course表的结构翻据古型 fciT nuii值SnamecKkgSsexdnar(3)SftmyintSgradctinyintSt»nKi»odih(7)Cnochk口曰且曰0日曰口学生Student表的结构君数据爱型S?iKBic±iarC6)Tnamectisr(2D)Tscx Tagetmy4nt值O口曾口在教师Teacher表的结构列隹5? ngiHBBgJgratdeJtnocourse no数据类里char%)tinymtchar

8、(6) vafFtfvartlOj允许Null值口日昌口评教Judge表的结构列名数据类型尤许a值Tcour&enQchar (9) vardhar(lO)教授Teach)表的结构Y.r 工工可 ehar£7) eharCZ) tmyint自TSGrade表的结构列名允许Null值数据类型* | 2B| char (7)Anarnediar(20)Asexchar (3)治理员admin表的结构 六、应用程序设计6.1、 系统总体结构1主界面:登陆界面,通过选择用户类型,输入用户名密码,点击登录进入不 同界面.2子界面:不同用户类型的界面不相同,学生可以查询成绩,治理员可以添

9、加 学生信息以及查询删除学生信息.6.2、 系统界面与源代码6.2.1、 界面登陆界面学生界面治理员界面6.2.2、 功能描述1学生查询学习课程的成绩2治理员治理学生信息武崎 075治理员删除学生信息输入你的学号士 4查询成德成拮加下:5删除学号为1的触发触发器功能FormJogin (1J Java Application C:Program FiIesJavaJrel.B.0 144birjavaw.exe6.2.3、 程序源代码 治理员实现查询、删除功能的代码删除学号为 1的用到了触发器: package Manager.zhen;import java.awt.*;import jav

10、a.awt.EventQueue;import javax.swing.JInternalFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.table.DefaultTableModel;import javax.swing.ComboBoxModel;import javax.swing.GroupLayout;import javax.swing.GroupLayout.Alignment;import javax.swing.JLabel;import java

11、x.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.LayoutStyle.ComponentPlacement;import javax.swing.JButton;import javax.swing.JTable;import javax.swing.JComboBox;import javax.swing.JDesktopPane;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql

12、.*;import java.util.Vector;import javax.swing.DefaultComboBoxModel;import javax.swing.JScrollPane;import javax.swing.ScrollPaneConstants;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;public class Form_edit extends JInternalFrame private JDesktopPane Desktop;private DbUtil dbUti

13、l = new DbUtil();private JPanel contentPane;private JTextField txt_sno;private JTable table;private JTextField txtsname;private JTextField txtcno;private JTextField txtgrade;private JTextField txtsno;/* Launch the application.*/public static void main(String口 args) EventQueue.invokeLater(new Runnabl

14、e() public void run() try Form_bookedit frame = new Form_bookedit(); frame.setVisible(true); catch (Exception e) e.printStackTrace(););/* Create the frame.*/public Form_edit() setEnabled(false);setClosable(true);setTitle("u67E5u8BE2u6210u7EE9");/setDefaultCloseOperation(JFrame.EXIT_ON_CLOS

15、E);setBounds(100, 100, 487, 412);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5);setContentPane(contentPane);JLabellblNewLabel=newJLabel("u8F93u5165u4F60u7684u5B66u53F7uFF1A");txt_sno = new JTextField();txt_sno.setColumns(10);JButtonbtn_searchgrade =newJButton(

16、"u67E5u8BE2u6210u7EE9");btn_searchgrade.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) SearchActionPerformed(arg0););JLabellblNewLabel_2=newJLabel("u6210u7EE9u5982u4E0BuFF1A");JScrollPane scrollPane = new JScrollPane();scrollPane.addMouseList

17、ener(new MouseAdapter() Overridepublic void mousePressed(MouseEvent e) mousePressed(e););JLabel lblNewLabel_1 = new JLabel("u5B66 u53F7");JLabel lblNewLabel_3 = new JLabel("u59D3 u540D");JLabel lblNewLabel_4 = new JLabel("u73ED u7EA7");JLabel lblNewLabel_5 = new JLabel(

18、"u6210 u7EE9");txtsname = new JTextField();txtsname.setColumns(10);txtcno = new JTextField();txtcno.setColumns(10);txtgrade = new JTextField();txtgrade.setColumns(10);JButton btnalter = new JButton("u4FEEu6539");btnalter.addActionListener(new ActionListener() public void actionPe

19、rformed(ActionEvent e) ModifyActionPerformed(e););JButton btndelete = new JButton("u5220u9664");btndelete.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) DelActionPerformed(e););JComboBox usertype = new JComboBox();txtsno = new JTextField();txtsno.setColum

20、ns(10);GroupLayout gl_contentPane = newGroupLayout(contentPane);gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addContainerGap().addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING).addGroup(gl_conten

21、tPane.createSequentialGroup().addComponent(lblNewLabel).addPreferredGap(ComponentPlacement.RELATED).addComponent(txt_sno,GroupLayout.PREFERRED_SIZE, 125, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED,89,Short.MAX_VALUE).addComponent(btn_searchgrade).addGap(29).addGroup(gl_co

22、ntentPane.createSequentialGroup().addComponent(lblNewLabel_2).addContainerGap(372,Short.MAX_VALUE).addGroup(gl_contentPane.createSequentialGroup().addComponent(scrollPane,GroupLayout.DEFAULT_SIZE, 433, Short.MAX_V ALUE).addContainerGap().addGroup(gl_contentPane.createSequentialGroup().addGap(46).add

23、Group(gl_contentPane.createParallelGroup(Alignment.LEADING, false).addGroup(gl_contentPane.createSequentialGroup().addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING , false).addComponent(lblNewLabel_1,GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(lblN

24、ewLabel_3,GroupLayout.DEFAULT_SIZE,GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE).addPreferredGap(ComponentPlacement.RELATED).addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addComponent(txtsname,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addComponent(t

25、xtsno,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addGap(41).addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING , false).addComponent(lblNewLabel_4,GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_V ALUE).addComponent(lblNewLabel_5,GroupLa

26、yout.DEFAULT_SIZE,GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE).addPreferredGap(ComponentPlacement.RELATED).addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)GroupLayout.PREFERRED_SIZE,.addComponent(txtcno,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addComponent(txtgrade,GroupLayout

27、.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addGap(32).addGroup(gl_contentPane.createSequentialGroup().addGap(10).addComponent(btnalter).addPreferredGap(ComponentPlacement.RELATED,GroupLayout.DEFAULT_SIZE, Short.MAX_V ALUE).addComponent(btndelete).addGap(62);gl_contentPane.s

28、etVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addContainerGap().addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel).addComponent(txt_sno,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,G

29、roupLayout.PREFERRED_SIZE).addComponent(btn_searchgrade).addPreferredGap(ComponentPlacement.RELATED).addComponent(lblNewLabel_2).addGap(18).addComponent(scrollPane,GroupLayout.PREFERRED_SIZE, 139, GroupLayout.PREFERRED_SIZE).addGap(18).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).

30、addComponent(lblNewLabel_1).addComponent(lblNewLabel_4).addComponent(txtcno,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addComponent(txtsno,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED

31、).addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_3).addComponent(txtsname,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addGroup(gl_contentPane.createParallelGro

32、up(Alignment.BASELINE).addComponent(lblNewLabel_5).addComponent(txtgrade,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addComponent(btnalter).addComponent(btnd

33、elete).addContainerGap(31, Short.MAX_VALUE);table = new JTable();table.setModel(new DefaultTableModel(new Object口 ,new String u5B66u53F7","u59D3u540D",u73EDu7EA7", "u6210u7EE9");scrollPane.setColumnHeaderView(table);scrollPane.setViewportView(table); / 让表列标题显示出来contentP

34、ane.setLayout(gl_contentPane);)public Form_edit(JDesktopPane tablel) this();this.Desktop=table1;/设置窗体居中显示this.setLocation(table1.getWidth()-this.getWidth()/2,(table1.g etHeight()-this.getHeight()/2);)private void fillTable(String Sno) / TODO Auto-generated method stubDefaultTableModeldtm=(DefaultTab

35、leModel)table.getModel(); dtm.setRowCount(0);/G青空原来的记录/连接数据库Connection con=null;try/数据库查询,并填充到JTABLE con=dbUtil.getCon();/下面可以写数据库访问语句,并执行.Statement stmt = con.createStatement();仓建 SQL 命令对象String sql = "select Sno,Sname,Cno,Sgrade from student where Sno like '%"+Sno.trim() +"%'

36、;" / 定义查询语句PreparedStatement pstm=con.prepareStatement(sql);ResultSet rs=pstm.executeQuery();/ JOptionPane.showMessageDialog(null,查询成功!");while(rs.next()Vector v=new Vector();v.add(rs.getString("Sno");v.add(rs.getString("Sname");v.add(rs.getString("Cno");v.add

37、(rs.getString("Sgrade");dtm.addRow(v);/数据库查询结束,最后关闭连接stmt.close();/关闭命令对象连接catch(Exception e1)e1.printStackTrace();/finally/try /dbUtil.closeCon(con);/ catch(Exception e1) / TODO Auto-generated catchblock/e1.printStackTrace();/private void ModifyActionPerformed(ActionEvent evt) if (txtsnam

38、e.getText().isEmpty()JOptionPane.showMessageDialog(null,请选择一条要 修改的记录!");return;Connection conn=null;String sql="update 图书 set 书名=?,作者=? where 书号=?" ;try conn=dbUtil.getCon();PreparedStatement pstm=conn.prepareStatement(sql);pstm.setString(1, txtcno.getText();pstm.setString(2, txtsname

39、.getText();pstm.setString(3, txtgrade.getText();int count=pstm.executeUpdate();if (count=0)JOptionPane.showMessageDialog(null,修改失败! ");elseJOptionPane.showMessageDialog(null,修改成功! ");削Table(""); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace();finallytry

40、if (conn!=null)dbUtil.closeCon(conn); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace();private void DelActionPerformed(ActionEvent evt) if (txtsno.getText().isEmpty()JOptionPane.showMessageDialog(null,请选择一条要 删除的记录!");return;Connection conn=null;/int count=0;String sno=txtsno.getText().toString();String sql="

温馨提示

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

评论

0/150

提交评论