Java课程设计报告学生信息管理系统_第1页
Java课程设计报告学生信息管理系统_第2页
Java课程设计报告学生信息管理系统_第3页
Java课程设计报告学生信息管理系统_第4页
Java课程设计报告学生信息管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录 第一章 总体设计11.1本系统的主要功能11.2系统包含的类及类之间的关系11.3 java源文件及其功能11.4相关文件及其功能2第二章 详细设计32.1主类mainwindow32.2类database42.3类stubean52.4类inputstudent62.5类modifystudent72.6类querystudent82.7类deletestudent9第三章 功能测试及运行效果103.1 系统主界面103.2 录入学生信息界面113.3 查询学生信息界面113.4 修改学生信息界面123.5 修改学生信息界面12工作总结13参考文献14 第一章 总体设计1.1本系统的

2、主要功能 本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询、删除学生信息的功能。1.2系统包含的类及类之间的关系本系统共包括7个java源文件和3个辅助文件。类之间的关系如图1-1所示mainwindowinputstudentmodifystudendeletestudentquerystudentdatabaseimageiconstubeanfilestubeandatabasefilestubeandatabasestubeandatabase图 1-1 类之间的关系图1.3 java源文件及其功能1.mainwindow.java该类负责创建学生信息管理系统的

3、主窗口,该类还有main方法,程序从该类开始执行。 2.inputstudent.java该类创建的对象是mainwindow类的重要成员之一,负责提供录入学生基本信息的界面。 3.modifystudent.java该类创建的对象是mainwindow类的重要成员之一,负责提供修改学生基本信息的界面。4.deletestudent.java该类创建的对象是mainwindow类的重要成员之一,负责提供删除学生基本信息的界面。5.querystudent.java该类创建的对象是mainwindow类的重要成员之一,负责提供查询学生基本信息以及打印基本信息的界面。6.database.java

4、该类负责提供打开与关闭数据库连接的功能。7.stubean.java该类负责数据库操作,包括对学生信息数据库的添加、查询、修改、删除。1.4相关文件及其功能1.welcome.jpg为主窗口的背景图片,mainwidow需要调用该文件。 2.icon.jpg该文件是窗口最小化时的窗口图标,mainwidow需要调用该文件。 3.专业.txt该文件为专业组合的组合键提供下拉菜单的内容,inputstudent与modifystudent需要调用该文件。4 scmanage.mdb该文件为本程序数据源,负责保存学生基本信息,database连接到该数据库第二章 详细设计2.1主类mainwindo

5、w(1)成员变量见表2-1表2-1 主要成员变量(属性)成员变量描述变量类型名称面板inputstudentins面板modifystudentmos面板deletestudentdes面板querystudentqus菜单栏jbuttonbarbar菜单组jmenumenusystem menustu菜单项jmenuitemitemwel itemexit itemsearch itemadd itemedit itemdelete布局管理器cardlayoutcard(2)方法见表2-2表2-2 主要方法方法名称返回类型功能备注mainwindow无类型创建窗口构造方法actionperf

6、ormed无类型处理响应事件继承自父类抽象方法main无类型执行程序程序的主函数(3)源代码见文件mainwindow.java2.2类database(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称执行sql语句的接口statementstmt返回结果的接口resultsetrs数据库连接接口connectionconn字符串(sql语句、驱动)stringsql strurl(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注database无类型创建database对象构造方法openconn无类型打开数据库连接无executequeryresultset

7、执行sql查询语句,返回结果集rs返回resultset类型结果集executeupdate无类型执行sql更新语句无closestmt无类型关闭当前的statement对象无closeconn无类型关闭数据库连接无(3)源代码见文件database.java2.3类stubean(1)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称返回结果的接口resultsetrs字符串(sql语句 数据库属性)stringsql snum sname ssex smajor sgrade sbirth创建database对象databasedb(2)方法见表2-4表2-4 主要方法方法名

8、称返回类型功能备注stuadd添加学生信息无stumodify修改学生信息无studel删除学生信息无stusearchstring根据学号查询学生信息返回resultset类型结果集(3)源代码见文件stubean.java2.4类inputstudent(1)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称stubean对象类型stubeanaddstu querystu文本域jtextfieldsnum sname sgrade sbirth组合框jcomboboxsmajor单选框buttongroupboy,girl按钮多斥作用域buttongroupgroup按钮j

9、buttonentry reset(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注inputstudent无类型创建录入学生信息界面构造方法actionperformed无类型处理响应事件继承自父类抽象方法clearmess无类型清除文本框内容无(3)源代码见文件inputstudent.java2.5类modifystudent(1)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称stubean对象类型stubeanmodifystu querystu文本域jtextfieldsnum sname sgrade sbirth组合框jcomboboxsmajor单

10、选框buttongroupboy,girl按钮多斥作用域buttongroupgroup按钮jbuttonentry reset start(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注modifystudent无类型创建修改学生信息界面构造方法actionperformed无类型处理响应事件继承自父类抽象方法clearmess无类型清除文本框内容无(3)源代码见文件modify.java2.6类querystudent(1)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称stubean对象类型stubean querystu文本域jtextfieldsnum

11、sname sgrade sbirth smajor启动并执行打印作业printjobpri单选框buttongroupboy,girl按钮多斥作用域buttongroupgroup按钮jbuttonquert print面板(查询结果之后)jpanelmesspanel(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注querystudent无类型创建录入学生信息界面构造方法actionperformed无类型处理响应事件继承自父类抽象方法clearmess无类型清除文本框内容无(3)源代码见文件querystudent.java2.7类deletestudent(1)成员变量见

12、表2-5表2-5 主要成员变量成员变量描述变量类型名称stubean对象类型stubeandelstu querystu文本域jtextfieldsnum sname sgrade sbirth smajor单选框buttongroupboy,girl按钮多斥作用域buttongroupgroup按钮jbuttondel(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注inputstudent无类型创建录入学生信息界面构造方法actionperformed无类型处理响应事件继承自父类抽象方法clearmess无类型清除文本框内容无(3)源代码见文件deletestudent.jav

13、a工作总结通过这次课程设计,我锻炼了自己的动手能力,巩固了对面向对象程序设计概念的理解和java的运用,初步掌握java开发应用程序的基本方法,学习了对数据库的基本操作,能够对microsoft acess的表做基本处理,提高了自己综合运用所学知识的能力。深刻认识到了基本知识的重要性。现在我知道了,不知道函数怎么来的,根本什么也做不了。除非照抄别人的代码,那样也根本不可能知道功能是如何实现的。现在很有必要加强基本语法知识的学习了。java应用性很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。从而懂

14、得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。其中对java图像用户界面、java数据库jdbc的运用、内部匿名类等java知识有了更深的理解与应用。树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。提高了学习计算机的兴趣,增强了信心。在本次课程设计中,我遇到了很多的困难,这些困难搞得我焦头烂额,几度试图放弃,但最终坚持着一一把困难克服掉了。每当克服一个困难,都非

15、常的兴奋,这些都是自己努力的结果。现在,我有信心面对接下来的挑战,在不断的实践中锻炼自己,提高自己!经过几个星期的设计和开发,系统基本开发完毕。在本次课程设计中困难遇到不少,比如数据库的连接,sql语言的书写格式,全局参数的传递等。由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,功能不够完善等多方面问题。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,再到数据库设计、数据库结构实现及各功能模块的创建都需要从整体上考虑设计。这些都有待以后进一步改进。回顾起此次java课程设计

16、,我仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。参考文献1 耿祥义,张跃平.java 2实用教程(第三版)m.北京:清华大学出版社,20062 (美)霍斯特曼(horstmannc.s.)&nbs. java2核心技术(卷高级特性原书第7版)/sun公司核心技术丛书 m.机械工业出版社, 20064. 系统的主要源代码m

17、ainwindow.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;public class mainwindow extends jframe implements actionlistener inputstudent ins;modifystudent mos;querystudent qus;deletestudent des;/ 建立菜单栏jmenubar bar;/ 建立“系统管理”菜单组jmenu menusystem;jmenuitem itemexit;jm

18、enuitem itemwel;/ 建立“学生管理”菜单组jmenu menustu;jmenuitem itemsearch;jmenuitem itemadd;jmenuitem itemedit;jmenuitem itemdelete;file file = null;cardlayout card;jlabel label = null;jpanel pcenter;public mainwindow() / 事件处理public void actionperformed(actionevent e) /返回欢迎界面if(e.getsource() = itemwel)int ok

19、= joptionpane.showconfirmdialog(this, 确认返回吗?, 确认对话框,joptionpane.yes_no_option);if (ok = joptionpane.yes_option)card.show(pcenter,欢迎界面);/退出else if (e.getsource() = itemexit) int n = joptionpane.showconfirmdialog(this, 确认退出吗?, 确认对话框,joptionpane.yes_no_option);if (n = joptionpane.yes_option)system.exit

20、(0); /录入else if (e.getsource() = itemadd) ins.clearmess();card.show(pcenter, 录入界面); /修改else if (e.getsource() = itemedit) mos.clearmess();card.show(pcenter, 修改界面);/查询else if (e.getsource() = itemsearch) qus.clearmess();card.show(pcenter,查询界面); /删除else if (e.getsource() = itemdelete) card.show(pcente

21、r, 删除界面);public static void main(string args) new mainwindow(); database.javaimport java.sql.*;/连接数据库的类public class database private statement stmt=null;resultset rs=null;private connection conn=null;string sql;string strurl=jdbc:odbc:scmanage;public database() /打开数据库连接public void openconn()throws e

22、xceptiontryclass.forname(sun.jdbc.odbc.jdbcodbcdriver); conn=drivermanager.getconnection(strurl);catch(exception e) system.err.println(openconn:+e.getmessage();/执行sql查询语句,返回结果集rspublic resultset executequery(string sql)/执行sql更新语句 public void executeupdate(string sql)stmt=null;rs=null;trystmt=conn.cr

23、eatestatement(resultset.type_scroll_insensitive,resultset.concur_read_only);stmt.executequery(sql);mit();catch(sqlexception e)system.err.println(executeupdate:+e.getmessage(); public void closestmt()trystmt.close();catch(sqlexception e)system.err.println(closestmt:+e.getmessage(); /关闭数据库连接public voi

24、d closeconn()tryconn.close();catch(sqlexception ex)system.err.println(aq.closeconn:+ex.getmessage();/转换编码public static string togbk(string str)try if(str=null)str = ;elsestr=new string(str.getbytes(iso-8859-1),gbk); catch (exception e) system.out.println(e);return str;stubean.javaimport java.sql.*;

25、import javax.swing.*; /有关学生信息数据库操作的类public class stubean string sql;resultset rs = null;string snum;string sname;string ssex;string smajor;string sgrade;string sbirth;/添加学生信息 public void stuadd(string num, string name, string sex,string major, string grade, string birth)/ 修改学生信息 public void stumodif

26、y(string num, string name, string sex,string major, string grade, string birth)/删除学生信息 public void studel(string num)/ 根据学号查询学生信息 public string stusearch(string num)querystudent.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class querystudent extends jp

27、anel implements actionlistenerprivate static final long serialversionuid = 1l;/ 查询界面printjob pri;graphics g = null;stubean querystu = new stubean();jtextfield snum,sname,smajor,sgrade,sbirth;jradiobutton boy,girl;jbutton query,print;buttongroup group = null;jpanel messpanel;public querystudent()/事件处

28、理public void actionperformed(actionevent e) public void clearmess()snum.settext(null);sname.settext(null);smajor.settext(null);sgrade.settext(null);sbirth.settext(null);modifystudent.javaimport java.awt.*;import java.io.*;import javax.swing.*;public class modifystudent extends jpanel implements acti

29、onlistenerprivate static final long serialversionuid = 1l;/修改界面stubean modstu = new stubean();stubean querystu = new stubean();jtextfield snum,sname,sgrade,sbirth;jcombobox smajor;jradiobutton boy,girl;buttongroup group = null;jbutton start,entry,reset;jcombobox oldmess;public modifystudent()public

30、void actionperformed(actionevent e) string number = snum.gettext();string rs = new string4;rs = querystu.stusearch(number);if(e.getsource() = start|e.getsource() = snum)oldmess.removeallitems();if(rs != null)string q = 该生信息已存在,您想修改他(她)的基本信息吗?joptionpane.showmessagedialog(this,q,警告 ,joptionpane.quest

31、ion_message);entry.setenabled(true);oldmess.additem(姓名:+rs0);oldmess.additem(专业:+rs2);oldmess.additem(年级:+rs3);oldmess.additem(生日:+rs4); if(rs1.equals(男) boy.setselected(true); else girl.setselected(true);elseentry.setenabled(false);joptionpane.showmessagedialog(this,该学号不存在无法修改!,警告, joptionpane.warn

32、ing_message);clearmess();else if(e.getsource() = entry)if(rs != null)string m = 基本信息将被修改!;int ok = joptionpane.showconfirmdialog(this,m,确认,joptionpane.yes_no_option,joptionpane.question_message);if(ok = joptionpane.yes_option)string name = sname.gettext();string major = (string)smajor.getselectedite

33、m();string grade = sgrade.gettext();string birth = sbirth.gettext();string sex = null;if(boy.isselected()sex = boy.gettext();if(girl.isselected()sex = girl.gettext();modstu.stumodify(number, name, sex, major, grade, birth);else if(ok = joptionpane.no_option)entry.setenabled(true);elsestring w = 该学号没

34、有基本信息,不能修改!;joptionpane.showmessagedialog(this, w, 警告,joptionpane.warning_message);entry.setenabled(false);clearmess();else if(e.getsource() = reset)clearmess();entry.setenabled(false);public void clearmess()snum.settext(null);sname.settext(null);sgrade.settext(null);sbirth.settext(null);oldmess.rem

35、oveallitems();inputstudent.javaimport java.awt.*; import java.awt.event.*;import javax.swing.*; import java.io.*;public class inputstudent extends jpanel implements actionlistenerprivate static final long serialversionuid = 1l; /录入界面stubean addstu = new stubean();stubean querystu = new stubean();/设置

36、“录入界面”窗口jtextfield snum,sname,sgrade,sbirth;jcombobox smajor;jradiobutton boy,girl;buttongroup group = null;jbutton entry,reset;public inputstudent()/事件处理public void actionperformed(actionevent e) public void clearmess()snum.settext(null);sname.settext(null);sgrade.settext(null);sbirth.settext(null)

37、; (#)querystudent.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*; import java.util.*;public class querystudent extends jpanel implements actionlistenerprivate static final long serialversionuid = 1l;/ 查询界面printjob pri; graphics g = null;stubean querystu = new stubean();jtextfield

38、 snum,sname,smajor,sgrade,sbirth;jradiobutton boy,girl;jbutton query,print;buttongroup group = null;jpanel messpanel;public querystudent()/事件处理public void actionperformed(actionevent e) public void clearmess()snum.settext(null);sname.settext(null);smajor.settext(null);sgrade.settext(null);sbirth.set

39、text(null);deletestudent.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class deletestudent extends jpanel implements actionlistenerprivate static final long serialversionuid = 1l;/删除界面stubean querystu = new stubean();stubean delstu = new stubean();jtextfield snum,sname,sm

40、ajor,sgrade,sbirth;jradiobutton boy,girl;jbutton del;buttongroup group = null;public deletestudent()/处理事件public void actionperformed(actionevent e) if(e.getsource() = del|e.getsource() = snum)string number = ;number = snum.gettext();string rs = new string4;rs = querystu.stusearch(number);if(rs != nu

41、ll)string q = 该生信息已存在,您想删除该生的基本信息吗?;int yes = joptionpane.showconfirmdialog(this,q,确认,joptionpane.yes_no_option,joptionpane.question_message);if(yes = joptionpane.yes_option)sname.settext(rs0); smajor.settext(rs2);sgrade.settext(rs3); sbirth.settext(rs4);if(rs1.equals(男)boy.setselected(true);else girl.setselected(true);string m = 确定要删除该学号及全部信息吗?;int ok = joptionpane.showconfirmdialog(this,m, 确认,joptionpane.yes_no_option,joptionpane.question_message);if(ok = joptionpane.yes_option

温馨提示

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

评论

0/150

提交评论