《数据库信息管理系统》课程设计报告学生成绩管理系统_第1页
《数据库信息管理系统》课程设计报告学生成绩管理系统_第2页
《数据库信息管理系统》课程设计报告学生成绩管理系统_第3页
《数据库信息管理系统》课程设计报告学生成绩管理系统_第4页
《数据库信息管理系统》课程设计报告学生成绩管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库开发与实践数据库信息管理系统课程设计报告学院:现代科技学院专业:计算机科学与技术班级:08-3班 姓名:学号:指导教师:同组成员: 2011年7月1日一开发背景及目的学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件学生成绩,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社

2、会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。通过调研目前教学管理系统中的成绩管理子系统,了解成绩管理子系统的业务流程;通过分析比较,结合用户对成绩管理子系统的改进意见与实现情况,运用面向对象思想方法,设计和实现一个满足功能和性能,并有所创新的成绩管理子系统,以提高成绩管理的自动化、友好性等。本系统基于oracle10数据库和前台java语言图形界面

3、设计,并且通过odbc进行后台数据库和前台界面的连接。二数据结构及数据库设计(后台设计)2.1由需求分析,e-r图如下:2.2数据结构学生管理=学籍,学生学籍,组成:学号,姓名,性别,出生日期,班级,电话班级管理=班级,班级情况,组成:班号,年级,班主任,教室课程管理=课程,课程分配,组成:课程号,课程名字,课程形式,备注年级课程=年级课程,年级课程分配,组成:年级,课程号成绩=成绩,成绩情况,组成:考试学期,学号,课程名字,成绩,评语分级用户=用户,用户管理,组成:用户名,口令,权限2.3由e-r图,有如下至少满足3nf的的关系模式学生(学号,姓名,性别,出生日期,班级,电话);班级(班号,

4、年级,班主任,教室);课程(课程号,课程名字,课程形式,备注);年级课程(年级,课程号);成绩(考试学期,学号,课程名字,成绩,评语分级);2.4数据流数据流如下图所示:2.5系统功能结构图2.6流程图查询用户登入数据库后台插入管理2.7数据库设计本例采用oracle10作为后台数据库。2.7.1模型设计用powerdesigner画出对应的cdm图,有系统自动生成pdm图pdm图如下:2.7.2建立数据库表学生表:create table student(student_id int primary key,student_name varchar(50) unique,student_se

5、x char(2),born_date datetime,class_no int,tele_number varchar(50)班级表:create table class(class_no int primary key,grade int,director char(10),classroom_no char(10) 课程表:create table course(course_no int primary key,course_name varchar(50),course_type char(10),course_des char(50)课程年级表:create table grad

6、ecourse(grade char(10),course_name char(20)成绩表create table result(exam_no char(10),student_id int,course_name varchar(50),result float, level char(10) 2.7.3建立数据库触发器语句:create table student_before_log( student_id number(9,0), student_name varchar2(50), student_sex char(4), born_date date, class_no num

7、ber(4,0), tele_number varchar2(50), ru_date date, address varchar2(50), when date);create or replace trigger biufer_studentbefore insert or update or deleteon studentfor each rowbegin insert into student_before_log values(:old.student_id,:old.student_name,:old.student_sex,:old.born_date,:old.class_n

8、o,:old.tele_number,:old.ru_date,:old.address,sysdate);end;create table class_before_log( class_no number(4,0), grade number(20,0), director char(10), classroom_no char(10), when date);create or replace trigger biufer_classbefore insert or update or deleteon classfor each rowbegin insert into class_b

9、efore_log values(:old.class_no,:old.grade,:old.director ,:old.classroom_no,sysdate);end;create table course_before_log( course_no number(20,0), course_name varchar2(50), course_type varchar2(50), course_des char(50), when date);create or replace trigger biufer_coursebefore insert or update or delete

10、on coursefor each rowbegin insert into class_before_log values(:old.course_no,:old.course_name,:old.course_type ,:old.course_des,sysdate);end;create table result_before_log( exam_no char(10), student_id number(9,0), student_name varchar2(50), class_no number(4,0), course_name varchar2(50), result bi

11、nary_float , when date);create or replace trigger biufer_resultbefore insert or update or deleteon resultfor each rowbegin insert into result_before_log values(:old.exam_no,:old.student_id,:old.student_name ,:old.class_no,:old.course_name,:old.result,sysdate);end;建立的表如下图:3 建立用户界面(前台设计)本实验采用odbc进行前台j

12、ava语言和后台oracle数据库的链接,连接过程如下:3.1前台程序,用户登陆连接数据库代码:import java.sql.*; public class qtdm public static void main(string args) throws sqlexception, classnotfoundexception /定义了数据库连接串 string dburl = jdbc:odbc:test; /数据库的用户名 string user = test; /数据库的用户口令 string password = test; / 加载jdbc-odbc bridge驱动程序 clas

13、s.forname(sun.jdbc.odbc.jdbcodbcdriver); / 与url指定的数据源建立连接 connection conn = drivermanager.getconnection(dburl, user, password); /采用statement进行查询 statement state = conn.createstatement(); system.out.println(sucessful ); state.close();conn.close(); / 关闭statement,其上的resultset也将关闭 3.2插入信息代码:import java.

14、awt.cardlayout;import java.awt.color;import java.awt.font;import java.awt.event.actionevent;import java.awt.event.actionlistener;import javax.swing.jframe;import javax.swing.jlabel;import javax.swing.jmenu;import javax.swing.jmenubar;import javax.swing.jmenuitem;public class xueshengjm extends jfram

15、e implements actionlistenerjmenubar jm = new jmenubar();jmenu jm1 = new jmenu(信息);jmenu jm2 = new jmenu(成绩);jmenuitem jmi1 = new jmenuitem(录入);jmenuitem jmi2 = new jmenuitem(查询);jmenuitem jmi21 = new jmenuitem(录入);jmenuitem jmi22 = new jmenuitem(查询);public xueshengjm() this.settitle(老师界面); this.setl

16、ayout(null); this.setjmenubar(jm); jm.add(jm1); jm.add(jm2); jm1.add(jmi1); jm1.add(jmi2); jlabel jl1 = new jlabel(欢迎进入老师查询界面); jmi1.addactionlistener(this); jmi2.addactionlistener(this); jm2.add(jmi21); jm2.add(jmi22); jm2.addactionlistener(this); jmi2.addactionlistener(this); jmi21.addactionlisten

17、er(this); this.add(jl1); jl1.setforeground(color.red); jl1.setfont(new java.awt.font(宋体,font.plain,20); jl1.setbounds(150, 80, 200, 200); this.setbounds(400, 250, 500, 400); this.setvisible(true); public void actionperformed(actionevent e) public static void main(string agrs) new xueshengjm(); 3.3添加

18、学生信息代码:import java.awt.color;import java.awt.font;import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.awt.event.windowevent;import java.awt.event.windowlistener;import java.sql.connection;import java.sql.drivermanager;import java.sql.resultset;import java.sql.sqlexcept

19、ion;import java.sql.statement;import javax.swing.buttongroup;import javax.swing.jbutton;import javax.swing.jframe;import javax.swing.jlabel;import javax.swing.joptionpane;import javax.swing.jradiobutton;import javax.swing.jtextfield;public class chaxun extends jframe implements actionlistener jlabel

20、 jl = new jlabel(查询成績,jlabel.center); jlabel jlnumber = new jlabel(请输入学号:); jtextfield jtnumber =new jtextfield(); jbutton jbset =new jbutton(查询); jbutton jbnext = new jbutton(重置); jbutton jbcr = new jbutton(插入); jlabel jlname = new jlabel(姓名); jtextfield jtname = new jtextfield(); jlabel jlclass =

21、new jlabel(班级); jtextfield jtclass = new jtextfield(); jlabel jl1 = new jlabel(数学); jtextfield jt1 = new jtextfield(); jlabel jl2 = new jlabel(语文); jtextfield jt2 =new jtextfield(); string sql= ; public chaxun()this.settitle(查询成绩);this.setlayout(null);jl.setforeground(color.red);jl.setfont(new java.

22、awt.font(宋体,font.plain,19);jl.setbounds(100, 30, 200, 40);this.add(jl);jlnumber.setbounds(100, 80, 100, 20);this.add(jlnumber);jtnumber.setbounds(200, 80, 80, 20);this.add(jtnumber);jlname.setbounds(100, 160, 80, 20);this.add(jlname);jtname.setbounds(200, 160, 80, 20);this.add(jtname);jl2.setbounds(

23、100, 240, 100, 20);this.add(jl2);jt2.setbounds(200, 240, 80, 20);this.add(jt2);jlclass.setbounds(100, 280, 60, 20);this.add(jlclass);jtclass.setbounds(200, 280, 80, 20);this.add(jtclass);jl1.setbounds(100, 320, 60, 20);this.add(jl1);jt1.setbounds(200, 320, 80, 20);this.add(jt1);jbset.setbounds(80, 1

24、20, 90, 20);this.add(jbset);jbset.addactionlistener(this);jbnext.setbounds(190, 120, 90, 20);this.add(jbnext);jbnext.addactionlistener(this);jbcr.setbounds(300, 120, 90, 20);this.add(jbcr);jbcr.addactionlistener(this);this.setbounds(400, 250, 500, 400);this.setvisible(true);/通过内部内重写关闭的方法 public void

25、 actionperformed(actionevent e) / todo auto-generated method stub if(e.getsource()=jbcr) /处理登录事件; this.hide(); xiugai cx=new xiugai(); if(e.getsource()=jbset) string snumber =jtnumber.gettext(); string sname=jtname.gettext(); string sclass=jtclass.gettext(); string ssex =女; string sbir =jt2.gettext(

26、); string scollect=jt1.gettext(); sql=select*from student where id=+snumber+; try class.forname(sun.jdbc.odbc.jdbcodbcdriver); connection cot = drivermanager.getconnection(jdbc:odbc:/student,root,123); statement stm =cot.createstatement();/提交查巡 resultset rs =stm.executequery(sql);/取得查巡結果 if(rs.next(

27、) string name =rs.getstring(2); jtname.settext(name); string clas =rs.getstring(3); jtclass.settext(clas); string collect=rs.getstring(5); jt1.settext(collect); string bir = rs.getstring(6); jt2.settext(bir); /对数苦苦进行查询 int n = stm.executeupdate(sql); if(n0) joptionpane.showmessagedialog(null, 查询成功);

28、 else joptionpane.showmessagedialog(null, 查询失败); /通过showmessagedialog()打印信息 else joptionpane.showmessagedialog(null, 次用户不在); catch(exception ee) if(e.getsource()=jbnext) jtnumber.settext(null); jtname.settext(null); jtclass.settext(null); jt1.settext(null); jt2.settext(null); public static void qtlj

29、(string args) throws sqlexception, classnotfoundexception /定义了数据库连接串 string dburl = jdbc:odbc:test; /数据库的用户名 string user = test; /数据库的用户口令 string password = test; / 加载jdbc-odbc bridge驱动程序 class.forname(sun.jdbc.odbc.jdbcodbcdriver); / 与url指定的数据源建立连接 connection conn = drivermanager.getconnection(dbur

30、l, user, password); /采用statement进行查询 statement state = conn.createstatement(); system.out.println(sucessful ); public static void main(string args) new chaxun(); 3.4修改学生信息代码:import java.awt.color;import java.sql.*; import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.aw

31、t.event.windowevent;import java.awt.event.windowlistener;import java.sql.connection;import java.sql.drivermanager;import java.sql.resultset;import java.sql.sqlexception;import java.sql.statement;import javax.swing.buttongroup;import javax.swing.jbutton;import javax.swing.jframe;import javax.swing.jl

32、abel;import javax.swing.joptionpane;import javax.swing.jradiobutton;import javax.swing.jtextfield;public class xiugai extends jframe implements actionlistener jlabel jl = new jlabel(添加基本信息,jlabel.center);jlabel jlnumber =new jlabel (学号:);jtextfield jtnumber = new jtextfield();jlabel jlname = new jla

33、bel(姓名:);jtextfield jtname = new jtextfield();jlabel jlclass = new jlabel(班级:);jtextfield jtclass = new jtextfield();jlabel jlsex = new jlabel(性别:);buttongroup bg = new buttongroup();jradiobutton jrb1 = new jradiobutton(男);jradiobutton jrb2 = new jradiobutton(女);jlabel jl1 = new jlabel(学院:);jtextfie

34、ld jt1 = new jtextfield();jbutton jbadd = new jbutton(添加);jbutton jbnext = new jbutton(重置);string sql=;public xiugai() this.settitle(添加学生信息); this.setlayout(null); jl.setforeground(color.red); jl.setbounds(100, 30, 200, 40); this.add(jl); jlnumber.setbounds(100, 80, 100, 20); this.add(jlnumber); jtn

35、umber.setbounds(200, 80, 80, 20); this.add(jtnumber); jlname.setbounds(100, 120, 60, 20); this.add(jlname); jtname.setbounds(200, 120, 80, 20); this.add(jtname); jlsex.setbounds(100, 160, 100, 20); this.add(jlsex); jrb1.setbounds(200, 160, 40, 20); jrb2.setbounds(300, 160, 40, 20); this.add(jrb1); t

36、his.add(jrb2); bg.add(jrb1); bg.add(jrb2); jlclass.setbounds(100, 240, 60, 20); this.add(jlclass); jtclass.setbounds(200, 240, 80, 20); this.add(jtclass); jl1.setbounds(100, 280, 60, 20); this.add(jl1); jt1.setbounds(200, 280, 100, 20); this.add(jt1); jbadd.setbounds(80, 320, 90, 20); this.add(jbadd

37、); jbadd.addactionlistener(this); jbnext.setbounds(190, 320, 90, 20); this.add(jbnext); jbnext.addactionlistener(this); this.setbounds(400, 250, 500, 400); this.setvisible(true); public void actionperformed(actionevent e) if(e.getsource()=jbadd) string snumber= jtnumber.gettext(); string sname = jtname.gettext(); string sclass = jtclass.gettext(); string ssex =女; if(jrb1.isselected() ssex=男; string scollect = jt1.gettext(); sql=select * from student wh

温馨提示

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

最新文档

评论

0/150

提交评论