《java学生管理系统.docx》由会员分享,可在线阅读,更多相关《java学生管理系统.docx(41页珍藏版)》请在三一办公上搜索。
1、数据库系统原理课程设计报告说明书学生信息管理系统学生姓名张艳华学 号1112211316所在专业计算机所在班级计3306指导教师王小海提交时间2011.11.12评阅情况读书笔记 错误!未定义书签。1. 学生信息管理系统概述21.1 研究背景21.2开发意义22. 系统需求分析22.1开发环境和软件22.2系统设计与功能分析23数据库设计33.1系统概念结构设计33.2系统逻辑结构设计43.3数据库实现63.3.1数据库关系图63.3.2 SQL语句实现64. 系统模块详细设计84.1 用户登录模块94.2各用户操作模块94.2.1管理员操作模块94.2.2 教师操作模块94.2.3学生操作模
2、块105. 系统运行与测试105.1管理员登录105.2教师登录135.3学生登录196 .课程设计总结2 27 .附录(代码)2 2I.读书笔记关于网上花店管理系统的读书笔记:在网上购物逐步平民化的今天,网上购物人数不断增加,现代IT技术和互联网 的结合。给了市场创造了无限商机!我阅读了一片“网上花店管理系统”的论文。该论 文主要研究网上花店管理系统。该系统以MySQL作为后台数据库,JSP作为前台开发 工具,通过Java中的JDBC连接数据库。提供给用户网上浏览,购买,支付等功能,同 时.管理员对可以该系统进行维护和管理!SQL Server安全可靠,性能好,易用性强,JSP的Web运用跨
3、平台,系统底层 采用Java开发。Java语言简单,面向对象,安全性高的特点,运用Serlvet模式和Tomcat 服务器。这几点的综合搭配使得该系统灵活方便易用,简化了动态网站的开发。网上花店管理系统实现了用户注册,网上订购支付,留言,购物车,鲜花资料管 理和用户管理,订单管理等功能。SQl数据库实现了用户注册登记信息的存储,和网站 资料维护,更新等使得数据的管理更加便利,高效JSP则为用户提高动态图形界面, 简化了操作,提高了易用性。论文还详细介绍了系统的逻辑结构设计,逻辑图,总功 能设计,和数据库设计等。该系统即使是不懂web技术的人也可以熟悉运用。开发工具和数据库的工具有很多,各有各的
4、优势。在互联网大行其道的时代,电 脑技术顺应着时代的发展,只有我们把握运用好各类技术,相互结合与利用,才能制作 出更好的软件和程序1. 学生信息管理系统概述1.1研究背景学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。随着在校大 学生人数的不断增加,教务系统的数量也不断的上涨,。学校工作繁杂、资料众多,人 工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这 种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新 等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规 化的管理,与世界接轨的重要条件。所以如何自动
5、高效地管理信息是这些年来许多人所研 究的。1.2开发意义随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。 我们使用电脑的高效率才处理数据信息成为可能。学生学籍管理系统的出现,正是管 理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的 图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应于。通过这个系统, 可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置 疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教 学质量与办学水平有着显著意义。2. 系统需求分析2.1开发环境和软件(1)
6、操作系统:Windows 7(2)数据库软件:SQL Server 2005(3)Java 开发工具:Eclipse2.2系统设计与功能分析学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护, 使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005 数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加, 查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java 与后台SQL数据库的连接。Java语言跨平台性强,可以在windows, linux,ubuntu 等系统下使用,方便简单,安全性好。S
7、QLServer2005数据库高效安全,两者结合可 相互利用各自的优势。该系统实现的大致功能:1. 用户登陆界面。该界面可以选择使用者的身份,“管理员,教师,学生”。不同的 身份有不同的操作界面和功能权限。ID号和密码输入正确即可登录。学生管理界 面。提供了学生学籍信息的查询,相关科目的成绩查询和排名,修改登录密码等 功能。2. 教师管理界面。提供了对学生学籍信息的查询,添加,修改,删除;学生成绩的 录入,修改,删除,查询班级排名。修改密码等功能。3. 管理员管理界面。拥有最高的权限。允许添加教师信息和课程信息等。4. 登录的用户信息分别存储在SQL数据库的“管理员信息表”,“教师信息表”,“
8、学 籍信息表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。 保证了本学生管理系统的安全性。3数据库设计实体属性表:实体属性教师教师ID,教师姓名,登录密码课程课程号,课程名称,教师ID管理员管理员ID,登录密码班级班级号,班级名称,总人数学籍学号,姓名,性别,班级号,籍贯,登录密码成绩学号,课程号,成绩3.2系统逻辑结构设计教师信息表:字段名类型空值约束条件教师IDvarchar(8)not null主键教师姓名varchar(8)not null登录密码varchar(8)not null课程信息表:字段名类型空值约束条件课程号varchar(8)not null主键课程名称
9、varchar(12)not null教师IDvarchar(8)not null外键班级信息表:字段名类型空值约束条件班级号varchar(8)not null主键班级名称varchar(8)not null所属学院varchar(6)班级人数nchar(4)管理员信息表:字段名类型空值约束条件管理员IDvarchar(10)not null主键登录密码varchar(10)not null成绩信息表:字段名类型空值约束条件班级号varchar(15)not null主键,外键班级名称varchar(8)not null主键,外键所属学院smallintnot null学籍信息表:字段名类型
10、空值约束条件学号intnot null主键姓名varchar(30)not null性别char(2)班级号varchar(30)not null外键籍贯char(10)登录密码moneynot null3.3数据库实现3.3.1数据库关系图列名数据类型允许空?学号varchar(15)B?课程号varchar(8)B成绩smallintBB成绩信息表教师信息表呕教师I口教师姓名登录密码班缰信息表3.3.2 SQL语句实现数据表的创建:(1) 教师信息表创建:create table教师信息表(教师1。varchar(8) primary key ,教师姓名 varchar(8) not nu
11、ll unique,登录密码 varchar(8) not null,)(2) 课程信息表创建:create table课程信息表(课程号 varchar(8) primary key,课程名称 varchar(12) not null,教师工。varchar(8) not nullforeign key(教师ID) references 教师信息表(教师ID))(3)班级信息表创建:create table班级信息表(班级号 varchar(8) not null primary key, 班级名称 varchar(8) not null unique,所属学院varchar(8),班级人数
12、 nchar(4)(4) 学籍信息表创建:create table学籍信息表(学号 varchar(15) primary key,姓名 varchar(8) not null ,性 ljvarchar(4),班级号 varchar(8) not null ,籍贯 varchar(5),登录密码 varchar(6) not nullforeign key (班级号)references 班级信息表(班级号)(5) 成绩信息表创建:create table成绩信息表(学号 varchar(15),课程号 varchar(8),成绩 smallintprimary key(学号,课程号)fore
13、ign key (学号)references 学籍信息表(学号),foreign key (课程号)references 课程信息表(课程号)(6) 管理员信息表创建:create table 课程信息表(管理员 ID varchar(8) primary key,登录密码 varchar(12) not null)视图的创建:(1) “教师课程详细信息”视图创建:create view教师课程详细信息asSELECT教师信息表.教师ID,教师信息表.教师姓名,课程信息表.课程号,课程信息表.课程名称, 教师信息表.登录密码FROM 教师信息表JOIN 课程信息表ON教师信息表.教师ID =课
14、程信息表.教师ID(2) “学生成绩信息”视图创建:create view学生成绩信息、asSELECT学籍信息表.学号,学籍信息表.姓名,学籍信息表.性别,课程信息表.课程名称,成绩信息表.成绩FROM 成绩信息表JOIN学籍信息表ON成绩信息表.学号=学籍信息表.学号JOIN班级信息表ON班级信息表.班级号=学籍信息表.班级号JOIN 课程信息表ON课程信息表.课程号=成绩信息表.课程号存储过程创建:(1)“单科成绩排名”创建:create proc dbo.单科成绩排名kechenname char(8),classname char(8)asselect学籍信息表.学号,姓名,成绩fr
15、om成绩信息表join课程信息表on课程信息表.课程号=成绩信息表.课程号join学籍信息表on学籍信息表.学号=成绩信息表.学号join班级信息表on班级信息表.班级号=学籍信息表.班级号 where 课程名称=kechenname and 班级名称=classname order by 成绩desc“全班排名”创建:create proc dbo.全班排名class char(8)asselect学籍信息表.学号,姓名,avg (成绩)as平均分,sum (成绩)as总分 from成绩信息表join学籍信息表on成绩信息表.学号=学籍信息表.学号join班级信息表on班级信息表.班级号=学
16、籍信息表.班级号where班级信息表.班级名称=classgroup by学籍信息表.姓名,学籍信息表.学号order by avg (成绩)desc,学籍信息表.学号4.系统模块详细设计4.1用户登录模块4.2各用户操作模块4.2.1管理员操作模块(图1)4.2.2教师操作模块(图2)4.2.3学生操作模块5.系统运行与测试5.1管理员登录。学生 O教师 嬷管理灵点击“管理员”按钮。输入正确的ID和密码。验证成功则可进入管理员管理界面。管理员ID号和登录密码存在数据库中的管理员信息表表中存在的管理员才允许登录(1)添加教师信息。在弹出的输入栏中输入正确的数据。输入的数据会分别写进“教师信息表
17、”和“课程信息表”中。增加的教师信息,允许让更多的教师登录本系统进行管理操作!(2) 修改教师信息(3)删除信息修改输入的教师信息不存在,则(4) 查询教师信息教师|口教师姓名课程编号课程名称登录密码002郑赞红002数据库原理002003巩建华003管理学003004韩华004大学英语0045.2教师登录并输入正确的ID号和密码,即可登录成功!在登录界面选择“教师”按钮, 输入错误则会弹出提示! 教师I瞰密码有误!清重新输入!确定ID号输入正确,登录成功!进入教师管理的操作界面:I 知踏红走师!您好!欢迎登录教师管理系统确定(1) 显示学生信息。学号姓名性别班级精贯第1行记录:2003116
18、22121邱志坚信管1OS1惠州第N行记录:200311622122沈一鸣信管1OS1惠州第3行记录:200311622123温子民信管1睫1普宁第屿记录:200311622124吴晓阳信管1OS1汕头(2) 添加学生信息新添加的信息会保存在学籍信息表中!I(T)该学号的学生信息已存在确定学号疽008116约姓名:蔡文峰性别勇职级号g1藉爰:肇庆登录密码:1。1学生记录添加成功!确定如果输入的数据正确,则(3)修改学生信息,输入正确则显示!(4)删除学生信息,(5)录入学生成绩确定学号:2O0S11622124课程号:00芝成绩般学生成绩添前成功!(6)修改学生成绩(7)删除学生成绩(8)查询
19、学生成绩学号课程名称成绩200811622124数据库原理35200811622124管理学03200S11622124大学英语S1查询到该学生3科成绩(9)所有成绩排名学号姓名平均分总分第1 名:200811622124吴晓阳S3249第N名:200811622123温子民81243(10)单科成绩排名成绩81学号姓名第1名:200811622124吴晓阳第3名:20081162212S温子民(11)更改登录密码修改成功后即可用新的密码进行登录!IGJ密码I彦改成功!确定5.3学生登录输入正确的ID号和密码,即可正常登录!(1)显示学生信息学号姓名性别霜贯第1行记录:200811622121
20、邱志坚信管1睥1惠州第Z行记录:200811622122沈一鸣信管1睥1惠州第3行记录:200811622123温子民信管1OS1普宁第4行记录:200811622124吴晓阳信管1081汕头(2)查询个人成绩查询到该学生3科成绩学号课程名称成绩200311622123数据库原理36200311622123管理学30200011622123太学英语77(3) 单科成绩排名请输入要排名的料目:请输入要排名的班级:排名学号姓名成绩第 1 名:200811622124吴晓阳31第3名:200811622123温子民77(4) 全班成绩排名(5) 修改密码修改密码后会更新学生学籍表里面的登录密码,下次
21、就可以用新密码登录。点击退出系统后,就可以安全退出学生管理系统了!6 .课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践 能力的重要环节,是对学生实际工作能力的具体训练和考察过程.本次课程设计虽然很 辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过 程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同 学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设 计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到 的知识比整整一个学期学到的都多。理论和实践的相结
22、合是学习最有效的方法。在设计 的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢 固,通过这次课程设计之后,一定把以前所学过的知识重新温故。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远 不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社 会服务,从而提高自己的实际动手能力和独立思考的能力。7 .附录(代码)由于篇幅有限,所以只附上主要功能的代码:登陆界面与主功能界面:public class Sql extends JFrame implements ActionListenerJFrame mm=new JFra
23、me(您好!请您先登录!);JTextField t2=new JTextField(null,15);JTextField t4=new JPasswordField(null,15);public String zh=null;JRadioButton b=new JRadioButton(教师);JRadioButton b1=new JRadioButton(学生);JRadioButton b2=new JRadioButton(管理员);public void jiemian()mm.setSize(300,340);mm.setVisible(true);mm.setLocati
24、on(200,300);mm.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE );JLabel t1=new JLabel(ID号:);JLabel t3=new JLabel(密码:);JButton denglu2=new JButton(登录);denglu2.setContentAreaFilled(false);Container n=mm.getContentPane();n.setLayout(null);t1.setBounds(42,125,75,35);t2.setBounds(80,125,150,35);t3.setBoun
25、ds(40,180,75,35);t4.setBounds(80,180,150,35);denglu2.setBounds(102,245,70,30);n.add(t1);n.add(t2); n.add(t3); n.add(t4); n.add(denglu2);b.setBounds(130,85,70,30);b1.setBounds(70,85,70,30);b2.setBounds(190,85,70,30);ButtonGroup rgnew ButtonGroup();b.setSelected(false);b1.setSelected(true);b1.setSelec
26、ted(false);n.addb); n.add(b2); rg.add(b2); rg.add(b); n.add(b1); rg.add(b1);b.setContentAreaFilled(false);b1.setContentAreaFilled(false);b2.setContentAreaFilled(false);denglu2.addActionListener(this);public void actionPerformed(ActionEvent e) JButton denglu2=(JButton)e.getSource();if(b.isSelected()
27、zh=t2.getText();String mima=t4.getText();try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection c=DriverManager. getConnection ( jdbc:odbc:学生信息系统);Statement s=c.createStatement(ResultSet.TYPE SCROLL SENSITIVE,ResultSet.CONCURUPDATABLE);ResultSet r=s.executeQuery select * from 教师信息表 where 教师 ID=+
28、zh+ and 登录密码=+mima+);r.last();if(r.getRow()=1) mm.setVisible(false);r.beforeFirst();while(r.next()JOptionPane showMessageDialog ( null ,r.getString(教师姓名)+老师!您好!欢迎登 录教师管理系统! ”);JFrame mmm=new JFrame();mmm.setSize(400,420);mmm.setVisible(true);mmm.setLocation(200,300);setDefaultCloseOperation(JFrame.E
29、XIT_ON_CLOSE);JLabel aaa=newmmm.JButtonb1=newJButtonb2=newJButtonb3=newJButtonb4=newJButtonb5=newJButtonb6=newJButtonb7=newJButtonb8=newJButtonJLabel(学生信息管理:);JLabel aaa1=new JLabel(学生成绩管理:); JButton(显示学生信息);b1.setBounds(40,45,140,30);JButton(添加学生信息);b2.setBounds(200,45,140,30);JButton(修改学生信息);b3.se
30、tBounds(40, 90,140,30);JButton(删除学生信息);b4.setBounds(200,90,140,30);JButton(录入学生成绩);b5.setBounds(40, 170, 140, 30);JButton(修改学生成绩);b6.setBounds(2 00,170,14 0,30);JButton(删除学生成绩);b7.setBounds(40,215,140,30);JButton(查询学生成绩);b8.setBounds(200,215,140,30);JButton(所有成绩排名);b9.setBounds(40,260,140,30);JButto
31、nJButtonJButtonb9=newb12=new JButton(单科成绩排名);b12.setBounds(200,260,140,30);b10=new JButton(退出系统);b10.setBounds(60, 325, 100, 30);b11=new JButton(修改密码);b11.setBounds(220,325,100,30);JActionListener2a2=newJActionListener2();JActionListener3a3=newJActionListener3();JActionListener4a4=newJActionListener
32、4();JActionListener5a5=newJActionListener5();JActionListener7 a newJActionListener7();JActionListener8 a8=newJActionListener8();JActionListener9 a newJActionListener9();JActionListener10a10=newJActionListener10();JActionListener12a12 newJActionListener12();JActionListener11a11 newJActionListener11()
33、;aaa.setBounds(15,15,90,30); aaa1.setBounds(15,140,90,30);Container n=mmm.getContentPane();n.setLayout(null);JActionListener1();a1=newJActionListener1 n.add(b1);n.add(b2);n.add(b3);n.add(b4);n.add(b5);n.add(b6);n.add(b7);n.add(b8);n.add(b9);n.add(b10);n.add(aaa);n.add(aaa1);n.add(b11);n.add(b12);b1.
34、addActionListener(a1);b2.addActionListener(a2);b3.addActionListener(a3);b4.addActionListener(a4);b5.addActionListener(a5);b6.addActionListener(a7);b7.addActionListener(a8);b8.addActionListener(a9); b9.addActionListener(a10); b11.addActionListener(a1)b12.addActionListener(a12);b10.addActionListener n
35、ew ActionListener() public void actionPerformed (final ActionEvent e) System.exit (0););(JComponent) mmm.getContentPane().setOpaque(false);.URL url = Sql.class .getResource(未命名.jpg);ImageIcon img = new ImageIcon(url); JLabel background = new JLabel(img); mmm.getLayeredPane().add(background, new Inte
36、ger(Integer.MIN_VALUE);background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight(); elseJOptionPane.showMessageDialog( null,教师ID或密码有误!请重新输入! ) ; catch(Exception e1) e1.printStackTrace(); public static void main(String args)Sql app=new Sql(); app.jiemian(); 向数据库添加新的学生信息:class DataBase/ DataBas
37、e类public void Add(String xh,String xm,String xb,String bj,String jg,String mm) throws SQLException /为学籍管理系统添加新记录try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection c=DriverManager. getConnection ( jdbc:odbc:学生信息系统);Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCU
38、R_ UPDATABLE);ResultSet r=s.executeQuery( select 火 from 学籍信息表where 学号=+xh+);r.last();if(r.getRow()=1) JOptionPanes.howMessageDialog ( null,该学号的学生信息已存在); Else if (xh.equals()/判断新输入的学号是否为空JOptionPanshowMessageDialog ( null,学号不能为空); else s.executeUpdate insert into 学籍信息表 values (+xh+,+xm+,+xb+,+ bj+,+j
39、g+,+mm+); s.close();c.close();JOptionPane. showMessageDialog ( null , + 学号:+xh+ + 姓 名:+xm+ +性另lj: +xb+ + 班级号:+bj+ +籍贯:+jg+ + ”登录密码:+mm+学生记录添加成功! ) ; 中国渤海大学本科生课程设计 catch (ClassNotFoundException e) JOptionPane.showMessageDialog ( null ,数据添加异常! ) ; public void DisplayAll(ResultSet r)JFrame m new JFrame
40、(显示所有学生信息); m.setBounds(60,70,700,600); m.setVisible(true); JTextArea aa=new JTextArea(); aa.setBounds(0,0,700,600); Container c1=m.getContentPane(); c1.setLayout(null); c1.add(aa); try r.last();aa.append(t 学号 + t + 姓名 + t + 性别 + t + 班级 + t + 籍贯 + n); r.beforeFirst();while(r.next()aa.append第+r.getRo
41、w()+行记录:);aa.append(r.getString(学号); aa.append(t+r.getString(姓名); aa.append(t+r.getString(性别); aa.append(t+r.getString(班级); aa.append(t+r.getString(籍贯)+n); catch(Exception e) e.printStackTrace(); public void DisplayOne(String str22) throws Exception try Connection c=DriverManager. getConnection ( jdbc:odbc:学生信息系统); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSetr=s.executeQuery( select 学号,姓名,性别,班级名称 as 班