数据库课程设计-学生信息管理系统.docx_第1页
数据库课程设计-学生信息管理系统.docx_第2页
数据库课程设计-学生信息管理系统.docx_第3页
数据库课程设计-学生信息管理系统.docx_第4页
数据库课程设计-学生信息管理系统.docx_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

数 据 库 课 程 设 计 报 告题 目:_学生信息管理系统_学 院:_信息工程学院_时间:_2014年7月5日_目 录第一章 需求分析1 1.1 大致功能1 12基本功能1 第二章 概念分析2 2.1 数据库设计2 22 e-r图6 第三章 系统流程分析7 3.1 步骤7 32 数据流程图8 第四章 逻辑结构设计11 4.1关系模式转换11 4.2数据字典12 第五章 系统功能实现13 第六章 数据源代码17 第七章 实验总结35 参考文献35第一章 需求分析 学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用sqlserver2005数据库作为后台的数据库进行信息的存储,用sql语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用odbc驱动实现前台java与后台sql数据库的连接。画出反映当前系统工作的数据流程图。数据流程图是逻辑模型的图形表示,即使不是专业的计算机技术人员也能非常容易理解,它是一种很好的系统构造的表示方法。画数据流程图是应该从已获得的人工处理流程中去掉物理因素,只保留数据、信息处理部分。 学生管理系统需要用java语言编写登录窗口、学生界面、教师界面及增删插,写完之后用access2007数据库连接,在进入控制面板,打开“管理工具数据源(odbc)”,弹出“odbc数据源管理器”,在“用户dsn”选项卡中,单击选中名称为“ms access database ”,驱动程序为“microsoft access driver(*.mdb,*.accdb)”的选项,然后单击 “添加”按钮,弹出“创建新数据源”对话框,选择“microsoft access driver(*.mdb,*.accdb)”,单击“完成”按钮,弹出 odbc microsoft access 安装 对话框,在 数据源名 中输入 你的access 数据库名称,比如 “sa”,然后单击 “选择”按钮,在弹出的 对话框中找到 你电脑上的数据库文件(如我的 “sa”数据库文件),最后单击确定按钮,返回相应的对话框,然后选择 “确定” “完成”,最后回到 “odbc数据源管理器”可以看到 用户数据源中出现了“sa”数据源。1.该系统实现的大致功能: 1.1用户登陆界面。该界面可以选择使用者的身份,“管理员,教师,学生”。不同的身份有不同的操作界面和功能权限。id号和密码输入正确即可登录。学生管理界面。提供了学生学籍信息的查询,相关科目的成绩查询和排名,修改登录密码等功能。 1.2教师管理界面。提供了对学生学籍信息的查询,添加,修改,删除;学生成绩的录入,修改,删除,查询班级排名。修改密码等功能。2.系统需求的基本功能:学生基本信息管理:增添,查找,修改,删除.学生成绩管理:增添,查找,修改.课程管理:查找,修改,增添.选课管理:查找,增添,修改.班级管理:查找,修改,删除.系别管理:查找,修改.第二章 概念分析表1-1实体属性教师教师id,教师姓名,登录密码课程课程号,课程名称,教师id班级班级号,班级名称,总人数学籍学号,姓名,性别,班级号,籍贯,登录密码成绩学号,课程号,成绩本课题的关系数据模型的数据结构可分为三个表来表示:学生信息表(student)、课程信息表(course)、学生选课表(sc);学生信息表用于记录学生的基本信息,如表1-2;课程信息表用于记录课程的基本信息,如表1-3;学生选课表如下表1-4。表1-2 学生信息表(student)名称数据类型主键非空学号number(10)yesyes学生姓名varchar2noyes性别char(2)nono年龄char(2)nono专业varchar2nono学院char(8)nono表1-3课程信息表(course)名称数据类型主键非空课程编号char(4)yesyes课程名称varchar2noyes授课教师varchar2nono上课地点varchar2nono课程类别char(1)nono表1-4 学生选课表(sc)名称数据类型主键非空学号char(10)yesyes课程编号char(4)yesyes成绩char(10)noyes表1-5老师信息表(teacher)名称数据类型主键非空姓名char(10)yesyes课程char(4)noyes班级char(10)noyes表1-6用户信息表(student 或 teacher)名称数据类型学生姓名char(10)登录密码char(4)入学时间性别课程号课程名政治身份电话课程类型学生姓名学习课程 民族班级年龄学号学分学时籍贯班级设置课程设置班级班级号系班主任辅导员 er图第三章 系统流程分析3.1步骤:(1) 首先确定学生管理系统的用户。(2) 学生管理系统的用户基本分为两类,分别是老师和学生。不管是哪种用户都是必须经过登录才能进入学生管理系统的,所以该系统必须有一个登录界面,并且在该界面中能够让用户选择用户是老师还是学生。该系统是不会对外开放的,所以也不存在注册界面。(3) 因为用户分为两种,所以每一种用户进行操作的界面应该是不同的。首先是学生界面,在其中应该只有查询成绩和个人信息查询和插入。主要来学习如何进行学生界面开发。(4) 除了学生界面外,还要有一个老师界面。老师在老师界面中可以对学生信息进行管理,包括查询、修改和删除。同样也可以对学生的成绩进行管理,包括查询和插入,由于输入错误还要能够对学生的成绩进行修改,由于学生作弊还能够将学生的成绩进行删除。(5) 首先数据库中应该有老师和学生这两个表,表中应该最少有用户名和密码两项,使用表中的这两项就可以进行登录。在学生表中还应该具有一些和学籍相关的信息,包括年龄、班级等内容,这样就可以在系统中对学生信息进行操作。(6) 除此之外还需要一个成绩表,通过该表老师可以对学生的成绩进行查询、插入、修改和删除。学生也可以通过该表对自己的成绩进行查询。(7) 不管是老师和学生进入学生管理系统都是从登录界面进入的。在登录界面中应该是让用户选择自己身份的,然后系统将根据用户的选择来判断用户的身份并进行查询不同的数据库。(8) 对界面设计好基本形式后,就可以进行程序开发。首先要定义两个标签和两个文本框,分别来表示用户名和密码。并且还需要定义一个下拉列表让用户来进行身份选择,其中选项包括“学生”和“老师”。在程序的最后还定义了两个按钮,从而让用户输入用户名和密码后进行登录。(9) 在学生界面中,学生可以对自己的信息进行查询,在第一次登录时还可以对自己的信息进行插入,并且学生能够查询自己的成绩。(10) 因为学生要完成对信息和成绩的操作,所以这里的设计是在界面中定义两个菜单,分别进行信息和成绩的操作。因为对信息的操作包括插入和查询,所以还需要在信息菜单下定义“插入”和“查询”两个子菜单。(11) 对界面进行设计后,就可以进行程序开发。同样首先是创建一个窗口,在窗口中要创建两个菜单,并且在信息菜单下还要创建“插入”和“查询”两个子菜单。(12) 在学生界面中单击“信息”菜单下的“插入”子菜单,就会进入学生插入界面,在该界面中学生可以输入自己的信息。(13) 学生第一次插入信息后,老师是可以对学生的信息进行修改和删除的。除此之外,学生还可以查询自己被修改后的信息,在信息菜单下有一个查询子菜单,单击该菜单就触发事件,从而进入查询学生信息界面。(14) 在学生界面中还有一个“成绩”菜单,在学生的界面该菜单下只有一“查询”子菜单。单击“查询”子菜单,将触发事件,进入到查询成绩界面3.2数据流程图登录教师登录学生登录学生管理学籍管理成绩管理班级管理课程管理插入查找修改删除查找插入修改修改查找修改查找学生注册基本信息输入课程基本信息班级设置班级课程设置学籍信息管理班级管理成绩信息输入班级课程管理成绩信息管理班级设置学生注册课程设置学生信息输入成绩信息管理成绩信息输入课程管理班级信息管理学生信息管理课程信息输入班级信息输入第四章 逻辑设计4.1将概念结构设计阶段设计好的基本e-r图转换为关系模式: 1.学生(学号,姓名,性别,年龄,班级,备注,出生日期,入学时间,班级编号,家庭地址) 2.课程(课程编号,课程名称,课程类别,学分,学时) 3.班级(系,班级号,指导老师)4.2数据字典名字:学生基本信息管理别名:描述:反映出学生的基本信息情况定义:学生基本信息管理=姓名+年龄+性别+学号+班级+电话入学时间+出生年月+家庭地址+备注位置:学生信息输入学生信息查询学生信息修改名字:课程基本信息管理别名:描述:反映出学生在学校学习的课程的基本情况定义:课程基本信息管理=课程编号+课程名称+课程类型+学分+学时位置:课程信息输入课程信息查询课程信息修改名字:用户基本信息别名:描述:反映出用户的用户名和密码定义:用户基本信息=用户名+密码位置:界面登录系统第五章 系统功能的实现5.1用户登录模块5.2学生界面模块5.3教师界面模块5.4查询学生信息模块5.5添加学生基本信息模块5.6添加学生成绩模块第六章 程序原代码:登陆界面import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class systems extends jframe implements actionlistenerstatic systems ss;jpanel panel = new jpanel();jlabel label1 = new jlabel(输入姓名:);jtextfield name = new jtextfield();jlabel label2 = new jlabel(密 码:);jpasswordfield pwd = new jpasswordfield();jbutton enter = new jbutton(登录);jbutton exit = new jbutton(退出);string url = d:systemstitle.jpg;buttongroup bgp = new buttongroup();jradiobutton stu = new jradiobutton(学生);jradiobutton tch = new jradiobutton(教师);public systems()super(登录系统);this.setresizable(false); jlabel img = new jlabel(new imageicon(url);img.setbounds(0,0,500,100);panel.add(img);stu.setbounds(165,210,70,20);tch.setbounds(265,210,70,20);bgp.add(stu);bgp.add(tch);panel.add(stu);panel.add(tch);enter.setbounds(150,250,80,20);exit.setbounds(270,250,80,20);enter.addactionlistener(this);exit.addactionlistener(this);panel.add(enter);panel.add(exit); panel.setlayout(null);this.add(panel);label1.setbounds(135,130,100,25);panel.add(label1); name.setbounds(265,130,100,25);panel.add(name);label2.setbounds(135,165,100,25);panel.add(label2); pwd.setbounds(265,165,100,25);panel.add(pwd);this.setbounds(100,100,500,350);this.setvisible(true);this.setdefaultcloseoperation(jframe.exit_on_close);public void actionperformed(actionevent e)if(e.getsource()=enter)string username , password;username = name.gettext(); password = pwd.gettext();tryclass.forname(sun.jdbc.odbc.jdbcodbcdriver);catch (classnotfoundexception ce)joptionpane.showmessagedialog(ss,ce.getmessage();if(stu.isselected()try connection con = drivermanager.getconnection(jdbc:odbc:sysdb,sa,); statement stmt = con.createstatement(); resultset rs = stmt.executequery(select * from stu); while(rs.next() if(rs.getstring(id).equals(username)&(rs.getstring(pwd).equals(password) joptionpane.showmessagedialog(ss,登陆成功);students stu = new students(); else joptionpane.showmessagedialog(ss,登录失败); rs.close(); stmt.close(); catch (sqlexception se) joptionpane.showmessagedialog(ss,se.getmessage(); else if(tch.isselected()tryconnection con = drivermanager.getconnection(jdbc:odbc:systchdb,sa,);statement stmt = con.createstatement();resultset rs = stmt.executequery(select * from tch);while(rs.next()if(rs.getstring(id).equals(username)&(rs.getstring(pwd).equals(password)joptionpane.showmessagedialog(ss,登陆成功);elsejoptionpane.showmessagedialog(ss,登录失败);catch (sqlexception se)joptionpane.showmessagedialog(ss,se.getmessage();elsesystem.exit(0);public static void main(string args)systems sys = new systems();6.1学生界面import java.awt.*;import javax.swing.*;import java.awt.event.*;public class students extends jframe implements actionlistenerjmenubar jmb = new jmenubar();jmenu message = new jmenu(信息);jmenu score = new jmenu(成绩);jmenuitem item1 = new jmenuitem(插入);jmenuitem item2 = new jmenuitem(查询);jmenuitem item3 = new jmenuitem(查询);public students()super(学生界面);this.setsize(500,400);this.setvisible(true);this.setresizable(false);this.setdefaultcloseoperation(jframe.exit_on_close);this.setjmenubar(jmb);jmb.add(message);jmb.add(score);message.add(item1);message.add(item2);score.add(item3);item1.addactionlistener(this);item2.addactionlistener(this);item3.addactionlistener(this); public void actionperformed(actionevent e)if(e.getsource()=item1)addmsg ad = new addmsg();else if(e.getsource()=item2)serch ser = new serch();elsescore so = new score();public static void main(string args)students stu = new students();6.2添加学生信息import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class addmsg extends jframe implements actionlistenerstatic addmsg s;/*添加学生信息控件*/jpanel jpl = new jpanel();jlabel label1 = new jlabel(添加基本信息,jlabel.center);jlabel label2 = new jlabel(学号:,jlabel.center);jlabel label3 = new jlabel(姓名:,jlabel.center);jlabel label4 = new jlabel(性别:,jlabel.center);jlabel label5 = new jlabel(班级:,jlabel.center);jlabel label6 = new jlabel(学院:,jlabel.center);jtextfield num = new jtextfield(2);jtextfield nam = new jtextfield(4);buttongroup bgp = new buttongroup();jradiobutton man = new jradiobutton(男);jradiobutton women = new jradiobutton(女);jtextfield clas = new jtextfield();jtextfield scl = new jtextfield();jbutton reset = new jbutton(重置);jbutton addmsg = new jbutton(添加);public addmsg()super(添加学生信息);this.setresizable(false);this.setsize(500,400);this.setvisible(true);this.setdefaultcloseoperation(jframe.exit_on_close);this.add(jpl);jpl.setlayout(null);addmsg.addactionlistener(this);reset.addactionlistener(this);/*插入面板*/label1.setbounds(100,20,300,20);jpl.add(label1);label2.setbounds(100,50,70,20);jpl.add(label2);num.setbounds(190,50,140,20);jpl.add(num);label3.setbounds(100,90,70,20);jpl.add(label3);nam.setbounds(190,90,140,20);jpl.add(nam);label4.setbounds(100,130,70,20);jpl.add(label4);man.setbounds(190,130,60,20);women.setbounds(270,130,60,20);jpl.add(man);jpl.add(women);bgp.add(man);bgp.add(women);label5.setbounds(100,170,70,20);jpl.add(label5);clas.setbounds(190,170,140,20);jpl.add(clas);label6.setbounds(100,210,70,20);jpl.add(label6);scl.setbounds(190,210,140,20);jpl.add(scl);reset.setbounds(120,250,90,20);addmsg.setbounds(240,250,90,20);jpl.add(reset);jpl.add(addmsg);public void actionperformed(actionevent e)if(e.getsource()=addmsg)string sex;if(man.isselected() sex=男;else sex=女; tryclass.forname(sun.jdbc.odbc.jdbcodbcdriver);catch (classnotfoundexception ce)joptionpane.showmessagedialog(s,ce.getmessage();tryconnection con = drivermanager.getconnection(jdbc:odbc:sysdb,sa,);statement stmt = con.createstatement();int a = stmt.executeupdate(insert into stu(id , pwd , name , sex , class , collage)values(+num.gettext()+,+12345678,+nam.gettext()+,+sex+,+clas.gettext()+,+scl.gettext()+);if(a=1)joptionpane.showmessagedialog(s,已成功添加);elsejoptionpane.showmessagedialog(s,添加失败);stmt.close();catch (sqlexception se)joptionpane.showmessagedialog(s,se.getmessage();elsenum.settext();nam.settext();clas.settext();scl.settext();num.requestfocus();public static void main(string args)addmsg amg = new addmsg();6.3添加学生成绩import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class addscore extends jframe implements actionlistenerstatic addscore ss;jlabel label = new jlabel(学号:) , new jlabel(计算机网络:) , new jlabel(linux操作系统:) , new jlabel(计算机专业英语:) , new jlabel(计算机信息技术基础:) , new jlabel(java程序设计:) , new jlabel(数据库应用实训教程:) , new jlabel(高等数学:) , new jlabel(xml:); jtextfield txt = new jtextfield() , new jtextfield() , new jtextfield() , new jtextfield() , new jtextfield() ,new jtextfield() , new jtextfield() ,new jtextfield() ,new jtextfield() ;jbutton add = new jbutton(添加);jbutton reset = new jbutton(重置);jpanel jpl = new jpanel();jlabel title = new jlabel(添加学生成绩 , jlabel.center);font f = new font(黑体 , font.bold , 16 );int s = 100;public addscore()super(添加学生信息);this.setresizable(false);this.setsize(500,600);this.setdefaultcloseoperation(exit_on_close);this.setvisible(true);this.add(jpl);add.addactionlistener(this);reset.addactionlistener(this);jpl.setlayout(null);title.setbounds(150,40,200,20);title.setfont(f);title.setforeground(color.red);jpl.setbackground(color.light_gray);jpl.add(title);for(int i = 0 ; i label.length ; i+)labeli.setbounds(100,s,140,20);jpl.add(labeli);txti.setbounds(260,s,140,20);jpl.add(txti);s=s+40;add.setbounds(150,s,80,20);reset.setbounds(250,s,80,20);jpl.add(add);jpl.add(reset);public void actionperformed(actionevent e)if(e.getsource()=add)tryclass.forname(sun.jdbc.odbc.jdbcodbcdriver);catch (classnotfoundexception ce)joptionpane.showmessagedialog(ss,ce.getmessage();tryconnection con = drivermanager.getconnection(jdbc:odbc:sysdb,sa,);statement stmt = con.createstatement();int a = stmt.executeupdate(insert into 计算机系成绩(sid , 计算机网络 , linux操作系统 , 计算机专业英语 , 计算机信息技术基础 , java程序设计 , 数据库应用实训教程 , 高等数学 , xml)values(+txt0.gettext()+,+txt1.gettext()+,+txt2.gettext()+,+txt3.gettext()+,+txt4.gettext()+,+txt5.gettext()+,+txt6.gettext()+,+txt7.gettext()+,+txt8.gettext()+);if(a=1)joptionpane.showmessagedialog(ss,添加成功);elsejoptionpane.showmessagedialog(ss,添加失败);catch (sqlexception se)joptionpane.showmessagedialog(ss,se.getmessage();elsefor(int i = 0 ; itxt.length ; i+)txti.settext();txt0.requestfocus();public static void main(string args)addscore as = new addscore();6.4查询学生信息import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class serch extends jframe implements actionlistener/*查询学生信息控件*/static serch s;jpanel jpl = new jpanel();jlabel sch = new jlabel(查询学生信息,jlabel.center);jlabel label1 = new jlabel(请输入学号:,jlabel.center);jbutton serch = new jbutton(查询);jlabel label2 = new jlabel(姓名:,jlabel.center);jlabel label3 = new jlabel(班级:,jlabel.center);jlabel label4 = new jlabel(学校:,jlabel.center);jlabel label5 = new jlabel(性别:,jlabel.center);buttongroup bgp = new buttongroup();jradiobutton man = new jradiobutton(男);jradiobutton women = new jradiobutton(女);jtextfield num = new jtextfield();jtextfield nam = new jtextfield();jtextfield clas = new jtextfield();jtextfield scl = new jtextfield();jbutton reset = new jbutton(重置);public serch()this.setsize(500,400);this.setvisible(true);this.setresizable(false);this.setdefaultcloseoperation(jframe.exit_on_close);this.add(jpl);jpl.setlayout(null);serch.addactionlistener(this);reset.addactionlistener(this);/*查询面板*/sch.setbounds(100,20,300,20);jpl.add(sch);label1.setbounds(100,60,100,20);jpl.add(label1);num.setbounds(220,60,140,20);jpl.add(num);serch.setbounds(120,100,90,20);reset.setbounds(260,100,90,20);jpl.add(serch);jpl.add(reset);label2.setbounds(100,140,70,20);jpl.add(label2);nam.setbounds(190,140,140,20);jpl.add(nam);label5.setbounds(100,180,70,20);jpl.add(label5);man.setbounds(205,180,60,20);women.setbounds(285,180,60,20);bgp.add(man);bgp.add(women);jpl.add(man);jpl.add(women);label3.setbounds(100,220,70,20);jpl.add(label3);clas.setbounds(190,220,140,20);jpl.add(clas);label4.setbounds(100,260,70,20);jpl.add(label4);scl.setbounds(190,260,140,20);jpl.add(scl);public void actionperformed(actionevent e)string id = num.gettext();if(e.getsource()=serch)tryclass.forname(sun.jdbc.odbc.jdbcodbcdriver);catch (classnotfoundexception ce)joptionpane.showmessagedialog(s,c

温馨提示

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

评论

0/150

提交评论