学生信息管理系统数据库java(共65页).doc

上传人:飞****2 文档编号:14137549 上传时间:2022-05-03 格式:DOC 页数:55 大小:989KB
返回 下载 相关 举报
学生信息管理系统数据库java(共65页).doc_第1页
第1页 / 共55页
学生信息管理系统数据库java(共65页).doc_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《学生信息管理系统数据库java(共65页).doc》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库java(共65页).doc(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上数据库原理与应用课程设计报告选题名称: 学生信息管理系统 组 长: 李盟 指导教师: 汤嘉立 设计日期: 2016.06.132016.06.24 学号姓名小组评分教师评分李盟90李玲90徐兰90许媛媛901. 课程设计目的:数据库是一门实践性很强的课程,为了使学生加深对数据库基本知识的理解,掌握数据库设计和开发的基本方法,学生自选题目,要求学生完成一个完整的数据库设计过程和基本的开发过程,从而培养学生在数据库应用领域中的分析问题和解决问题的能力。2. 课程设计内容:(1)数据库设计教师讲解数据库的设计方法以及PowerDesigner的使用,学生自选题目,要求学生根

2、据题目的需求描述,进行实际调研,提出完整的需求分析报告、用PowerDesigner建立概念模型、逻辑模型、物理模型。在物理模型中根据需要添加必要的约束、视图、触发器和存储过程等数据库对象,最后生成创建数据库的脚本,提出物理设计的文档。要求学生提交的报告包含:l 需求说明书l 概念数据模型(E-R数据模型)l 逻辑数据模型(含关系规范化)l 物理数据模型(含约束、视图、触发器、存储过程、安全设计、恢复方案、事务设计等等)l 创建数据库的脚本(数据库对象的定义语言)l 物理设计的文档(数据库的实施规划)(2)数据库开发在数据库设计的基础上开发一个基本的数据库应用系统,要求有基本的数据查询功能和数

3、据管理功能,并能将存储过程、触发器、事务控制等运用其中。开发工具可以自己选择。3. 课程设计要求:数据库课程设计单独设课,为2周独立实践环节(40学时),一般4人1组,指定1人为组长(也可申请独立完成),但每人要承担独立的工作、独立完成课程设计报告。通过以上过程,锻炼学生从实际应用出发,进行需求分析,利用PD工具建立数据库模型、完善数据库模型,到最后的数据库实施和应用系统开发。希望通过这个过程可以巩固所学知识,提高学生的综合分析问题和解决问题的能力。4. 实验条件:(1) 硬件条件:PC机。(2) 软件条件:(Elipse、SQL Server2008、PowerDesigner)5. 实验方

4、法与步骤:一、 需求分析(一)目标学生信息管理系统的目标是方便学校教务处系统的管理学生的信息,并为学校和学生间提供一个信息共享的平台。随着学校的普及和人们文化水平的提高,高效的教学管理系统越来越广泛应用于各类信息化学校。学生信息管理系统要求实用性强、使用方便、效率高和安全可靠等特点。用户管理:用户共分为管理员,教师和学生。学生和教师通过注册建立账户,管理员由系统设定统一的用户名和密码。经分析我们认为学生学籍管理系统的具体要求为: 1.能全面管理学校教学相关的各类主体,如用户管理员,学生用户以及选修课程表 2.通过使用计算机能方便的维护(包括插入、删除、修改)各信息表 3能方便的实现基于多个表的

5、连接查询 4系统具有操作方便、简捷等特点(二)需求陈述 学生对功能的需求分析: 查询个人基本信息 查询学生课程信息 查询学生成绩信息 管理员对功能的需求分析:添加、删除、修改、查询学生信息添加、删除、修改、查询课程信息修改、查询用户信息查询选课信息修改、查询成绩信息二、 概念数据模型设计(A)局部E-R模型(B)整体E-R模型三、 逻辑模型设计(A)将概念数据模型转化成逻辑数据模型(B)对模型进行必要的完善和优化四、 物理模型设计(A)将逻辑数据模型转化成物理数据模型(B)对模型进行必要的完善和优化(C)根据需要设计视图、存储过程和触发器等(D)描述安全管理方案、备份恢复策略、并发控制策略等五

6、、 系统实现描述数据库实施的方法和过程,详细文档以附件1形式提交。6. 个人工作报告除上一步骤要求的完整文档外,每个人需陈述自己所承担的工作、在讨论中的个人见解,提供个人所承担工作的有关文档(可能是不完整的),并对个人的工作情况、收获等进行总结。(1) 承担的工作及贡献l 需求分析阶段l 概念模型设计阶段局部E-R模型: 整体E-R模型:l 逻辑模型设计阶段Student(sno,sn,sa,ss,sd)Course(cno,cn,pcno)Sc(sno,cno,g)Unpw(un,pw,qx)l 物理模型设计阶段s(学生信息表)字段名称数据类型描述snochar (10)学号,关键字snch

7、ar (20)姓名saint年龄sschar (10)性别sdchar (10)院系c(课程信息表)字段名称数据类型描述cnochar (10)课程号,关键字cnchar (30)课程名pcnochar (10)先行课程号sc(选课信息表)字段名称数据类型描述snochar (10)学号,关键字cnochar (10)课程号,关键字gint成绩unpw(用户信息表)字段名称数据类型描述unchar (10)用户名,关键字pwchar (10)密码qxint角色1.视图:2. s(学生信息表)3. c(课程信息表) 4. sc(选课信息表) 5. unpw(用户信息表) l 实施和实现阶段详细见

8、附件1。(2) 课程设计个人总结徐兰:两个星期的时间非常快就过去了,这半个月我不敢说自己有多大的进步,但是获得了不少的知识,也了解了项目开发的部分过程。虽说上过数据库相关的课程,有做过数据库相关的实验,但是没有亲身经历过相关的设计工作细节。这次课程设计给我提供了一个很好的机会。通过这次课程设计发现这其中需要的很多知识我们没有接触过,上网查找资料的时候发现我们以前学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有狠毒已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要自己不断的大量的时间,通过不断的自学,不断地发现问题,思考问题,进而解决问题

9、。这次的课程设计也是为我们以后的毕业设计作品提前打好基础。在这次的课程设计中,我负责的是创建数据库,这些就让我用到了数据库的很多知识,对SQL语言,数据库的创建、修改、删除有了更深的了解,并且更加熟练的掌握了数据库中的SQL语句。我想我做的是组里面最简单的工作,因为我做的是有基础的,组长做的JAVA前台就比较的累了,她还要先去学习。在她做的时候我也学习了一下,为之后打个基础。通过这次课程设计的完成,是我对自己所学知识进一步的了解,同时通过实践发现自己的不足,对知识的掌握及运用存在诸多的不完善。所以在今后的学习中,我会继续努力,完善自我,同学的帮助和学校的精心安排是这个课题能够顺利进行。李玲:在

10、本次课程设计中,我负责课程设计报告的整理与编写,通过整理报告,我对于SQL,JAVA的编程方式以及他们之间的相互连接,基本运用有了全方位的认识,我的分析能力,独立思考能力都得到了一定程度的提高。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重

11、重,但可喜的是最终都得到了解决。实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。让我更加深切的体会到团队合作的重要性。许媛媛:这次的数据库课程设计,我主要是负责前期资料的收集,在设计期间及时提供相关的有利资料。两个星期的时间非常快就过去了,这两个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了系统开发的过程。两周课程设计让我对java语言等编程技术产生了浓厚的兴趣,更重要的是增强了我学习的自信心。刚开始我们查找资料、了解有关的知识,相互探讨,了解学生信息管理系统的需求,做

12、好需求分析后,开始系统的设计,画出E-R图,写出各个实体的属性。在我搜集资料的过程中,发现这其中需要的很多知识是我们之前没有接触过的,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。这次的系统设计不仅使我们学会了把数据库的各个模块联系起来,并与java相连接,更让我懂得了如何设计一个系统,了解了系统设计的过

13、程。李盟:在本次课程设计中,本组课程选题名称为“学生信息管理系统”,由于我担任的是组长,因此我不仅负责自己的部分,还负责课题布置与集中交流。我在本小组中的主要任务是java程序的编写及修改。在课程设计初期,我们小组首先确定的课题题目,在细致地讨论了系统的需求,列出了相应的模块,并进行了结构化设计。然后我再根据我们的初步研究结果,确定我的编程方向,开始我的任务。我通过借阅相关书籍,上网查阅资料等方式,完成了我的系统编程初稿。但在系统测试阶段,出现了很多的问题和错误。 比如数据库文件的导入路径出错,导致数据库连接错误;通过老师的指导,幸而解决了此问题。通过这次课程设计,我不仅清楚地知道了自己在数据

14、库原理知识和编程语言方面的不足,还认识到了在合作过程中,个人的力量总是不足的,需要大家一起协作。我们真切地体验了软件项目管理技能和方法,熟悉了软件工具与环境,把课堂学习的理论知识很好的在实践中运用了起来。我们小组成员之间合作默契,奋斗虽是艰苦的,但收获是快乐的。我们相信,在大家的不懈努力之下目标一定可以达成,我们也将在学习数据库及其他网络编程语言的道路上更加进步。7. 总结(组长完成):小组分工情况说明及工作量(工作量以百分比表示)李盟:前台页面设计31%李玲:报告整理23%徐兰:后台SQL建表23%许媛媛:收集资料23%小组工作总结 课程设计诚然是一门专业课,给我们很多专业知识以及专业技能上

15、的提升,同时又是一门讲道课,一门辩思课,给了我们许多道,给了我们很多思,给了我们莫大的空间。同时,设计让我们感触很深。使我们对抽象的理论有了具体的认识。在经历了将近两个星期的课程设计过程后,本系统基本能够完成学生学籍信息和学生的成绩的查询、插入、删除、修改等。这次的课程设计是分组讨论和制作的。我们小组从了解课题、理解课题、查找资料、确定思路到设计实施,学生信息管理系统初步形成。我们能从中深刻的感受到自己又收获了很多东西。 首先,更进一步的了解了数据库的基本操作, 在这之前,数据库的学 习仅仅刚开了个头,我们只是在了解一些概念性的东西。在做这个系统之前,连基本的连接数据库,配文件DSN,数据库查

16、询语句等这些东西都不熟练。现在对于数据库的增删改查操作比较熟练了,对于初学者来说,比较头疼的就是对于单引号的处理。我的建议是如果不理解先把按照课本上正确的语句敲,然后在多次进行数据库的链接,增删改查操作中不断总结规律。 这次设计的学生信息管理系统,完全体现了自己在数据库语言和程序设计课程学习状况,充分地为自己以后更深入了数据库语言奠下深厚的基础。 纵观此学生信息管理系统的整体概况,目前,自我认为设计良好,相关功能都能够实现,功能强大,条理清晰,界面可观性比较好。并且特色在于,所设计的表单都在一个表单系统桌面中运行,比较符合系统的观念。 通过本次实践,我们学习了许多数据库的知识以及它与JAVA的

17、连接,而且学到了书本上学不到的东西,积累了一点经验和教训,有了些体会。1、必须详细准确的做好需求分析。 2、软件工程原理和方法是软件开发得以顺利进行的保障,一定要遵守,否则既费时又费力。 3、通过本次课程设计,端正了我们的学习态度,提高了实践能力。使我认识到应该以严谨的科学态度勇于去实践和探索。 这次课程设计既是一个学习的过程,也是一个实践的过程,它使我们获得了一些开发大型数据库系统的经验。还有就是由于我们对数据库知识的掌握有限和不牢固,角色和视图的创建没有想象中的完美,备份和还原也只是初步的形成,以致学生学籍管理系统只是达到了基本要求,有待进一步改善,希望老师给予批评。小组自评学号: 姓名:

18、 李萌 成绩:90学号: 姓名: 李玲 成绩:90学号: 姓名: 徐兰 成绩:90学号: 姓名: 许媛媛 成绩:90源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。专心-专注-专业附件1 系统实施一、 登录界面图片: 代码:package li;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class DLFrame extends JFrame implements ActionListener, ItemListener / 登录界面JPanel p1 = nu

19、ll;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel(用户:);JTextField txtUser = new JTextField();JLabel password = new JLabel(密码:);JPasswordField txtPwd = new JPasswordField(6);JLabel role = new JLabel(角色:);JComboBox cbrole = new JComboBox();JButton btnLogin = new JButton(登录);JButton btn

20、cz = new JButton(重置);JButton btnCancel = new JButton(取消);JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;public DLFrame() / 构造方法super(登录界面);p1 = new JPanel();p2 = new JPanel();p3 = n

21、ew JPanel();cbrole.addItem(管理员);cbrole.addItem(学生);image = new ImageIcon(Tulips.jpg);imageLabel = new JLabel(image);p1.add(imageLabel);this.setLayout(new FlowLayout();this.setBounds(100, 100, 246, 345);p2.setLayout(new GridLayout(4, 2);p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd)

22、;p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);bt

23、nCancel.addActionListener(this);public void connDB() / 连接数据库try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; DatabaseName=student,sa, 123);stmt = con.createState

24、ment(); catch (SQLException e) e.printStackTrace();public void closeDB() / 关闭连接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void itemStateChanged(ItemEvent e) if (e.getStateChange() = ItemEvent.SELECTED) JComboBox jcb = (JComboBox) e.getSource();qxian = jcb.getSele

25、ctedIndex();public void actionPerformed(ActionEvent e) Object source = e.getSource();String un = null;String pw = null;boolean success = false;/ 用于判断是否登录成功if (source = btnLogin) if (txtUser.getText().equals() | txtPwd.getText().equals() / 判断是否输入了用户名和密码JOptionPane.showMessageDialog(null, 登录名和密码不能为空!)

26、; else this.connDB();try rs = stmt.executeQuery(select * from unpw where qx=+ qxian);while (rs.next() un = rs.getString(un).trim();pw = rs.getString(pw).trim();if (txtUser.getText().equals(un) if (txtPwd.getText().equals(pw) actionCode = OK;this.setVisible(false);if (qxian = 0) new ManagerFrane();/

27、进入管理员界面if (qxian = 1) new StudentFrame();/ 进入学生界面success = true;break; else JOptionPane.showMessageDialog(null, 密码错误!);txtPwd.setText();success = true;if (!success) JOptionPane.showMessageDialog(null, 登录名错误!);txtUser.setText();txtPwd.setText(); catch (SQLException e1) e1.printStackTrace(); else if (

28、source = btncz) txtUser.setText();txtPwd.setText(); else if (source = btnCancel) System.exit(0);public static void main(String args)JPanel mainp=new JPanel();DLFrame student=new DLFrame();二、 管理员界面图片: 代码:package li;import java.awt.*;import java.awt.event.*;import javax.swing.*;class ManagerFrane exte

29、nds JFrame implements ActionListener / 管理员界面JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btns = new JButton(学生信息管理);JButton btnc = new JButton(课程信息管理);JButton btnsc = new JButton(选课信息管理);JButton btng = new JButton(成绩信息管理);JButton btnu = new JButton(用户信息管理);JButton btnClose = new JButton

30、(退出管理系统);JLabel l = new JLabel(管理员);ManagerFrane() / 构造方法super(学生信息管理系统);setSize(350, 200);add(North, p1);add(Center, p2);p1.add(l);p2.add(btns);p2.add(btnc);p2.add(btnsc);p2.add(btng);p2.add(btnu);p2.add(btnClose);btns.addActionListener(this);btnc.addActionListener(this);btnsc.addActionListener(thi

31、s);btng.addActionListener(this);btnu.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();public void actionPerformed(ActionEvent e) if (e.getActionCommand() = 学生信息管理)new SM().display();if (e.getActionCommand() =

32、 课程信息管理) new CM(课程信息管理).display();if (e.getActionCommand() = 选课信息管理) new SCM(选课信息管理).display();if (e.getActionCommand() = 成绩信息管理) new GM(成绩信息管理).display();if (e.getActionCommand() = 用户信息管理) new PM(用户信息管理).display();if (e.getActionCommand() = 退出管理系统) System.exit(0);(一) 学生信息管理代码:class SM extends JFram

33、e implements ActionListener / 学生信息管理JPanel p = new JPanel();JButton btnAdd = new JButton(增加);JButton btnDelete = new JButton(删除);JButton btnAlter = new JButton(修改);JButton btnSearch = new JButton(查询);JButton btnDisplay = new JButton(显示);JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();JTable sT

34、able;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object playerInfo;SSelect sst;String mxh = null;boolean bstd = false;SM() / 构造方法super(学生信息管理);add(South, p);this.add(Center, p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDispl

35、ay);SM(SSelect sst) / 构造方法super(学生信息管理);this.sst = sst;bstd = true;add(South, p);this.add(Center, p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(thi

36、s);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);/ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();public void display() / 显示所有学生的基本信息int i = 0;int j = 0;int k = 0;List al = new ArrayList

37、();try rs = stmt.executeQuery(select * from s);while (rs.next() / 找出表中的记录数赋给ial.add(rs.getString(sno);al.add(rs.getString(sn);al.add(rs.getString(ss);al.add(rs.getInt(sa);al.add(rs.getString(sd);i+; catch (SQLException e) e.printStackTrace();playerInfo = new Objecti5;String columnNames = 学号, 姓名, 年龄,

38、 性别, 院系 ;try rs = stmt.executeQuery(select * from s order by sno);while (rs.next() playerInfoj0 = rs.getString(sno);playerInfoj1 = rs.getString(sn);playerInfoj2 = rs.getInt(sa);playerInfoj3 = rs.getString(ss);playerInfoj4 = rs.getString(sd);j+; catch (SQLException e) e.printStackTrace();sTable = new

39、 JTable(playerInfo, columnNames);/ 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);public void delete() / 删除某个学生的基本信息String xh = null;String xm = null;int nl = 0;String xb = null;String yx = null;int row = -1;row = sTable.getSelectedRow();if (row = -1) / 判断要删除的信息是否被选中JOptionPane

40、.showMessageDialog(null, 请选择要删除的记录!); else if (!bstd) / 判断选择的是不是查询后的结果int j1 = 0;try rs = stmt.executeQuery(select * from s);while (rs.next() & j1 = row) / 找出当前被选中的记录在数据库中的对应xh = rs.getString(sno);xm = rs.getString(sn);nl = rs.getInt(sa);xb = rs.getString(ss);yx = rs.getString(sd);j1+; catch (SQLExc

41、eption e) e.printStackTrace();int i1 = 0;try int rs1 = stmt.executeUpdate(delete from s where sno=+ xh + ); / 删除数据库中当前被选中的记录stmt.executeUpdate(delete from unpw where un= + xh + );/ 删除对应的用户表中的记录JOptionPane.showMessageDialog(null, 记录删除成功!);this.dispose();new SM().display(); catch (SQLException e) e.printStackTrace(); else try int rs1 = stmt.executeUpdate(delete from s where sno=+ mxh + );

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁