还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据库课程设计-简单学生信息管理系统学院计算机科学学院专业软件工程02姓名李欢欢目录1设计目的错误!未定义书签2设计任务
22.1任务说明
22.2系统目标
22.2使用范围
22.3功能要求23设计内容
33.1界面构建
33.2详细设计3模块设计3数据库设计3运行调试3主要源代码45总结与展望7参考文献错误!未定义书签1设计目的本程序用于用户对少量学生信息进行简单的管理,本程序针对于对平安系数要求不高,操作不是很复杂的小型客户开发本程序可以实现对学生信息的添加、查询、修改、删除等操作,同时支持查看所有学生信息,功能完善,界面简洁美观,布局合理,操作简便,简单易用,任何人可轻松操作同时,本程序对系统要求配置较低,运行速度快,而却对数据库管理要求较低该数据库可实现关系较为简单的数据管理2设计任务
2.1任务说明设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能要求如下:
(2)修改学生信息必须输入学号,然后对姓名、性别和专业等修改;
(3)使用文件存储数据(也可用数据库)
(4)学生个人信息必须包括学号、姓名、性别、籍贯、系别
2.2系统目标软件开发的意图便于用户对学生的管理,方便查看学生的情况如用户对学生根本信息进行录入、查询、修改、删除等
2.2使用范围本系统仅针对用户对少量学生进行信息管理
2.3功能要求1录入学生根本信息的功能2查询学生根本信息的功能3修改学生根本信息的功能4删除学生根本信息的功能5显示所有学生信息的功能3设计内容
3.1界面构建
1、为了便于各种操作,软件采用多窗口的模式用户可在不同窗口进行相应操作(录入、查询、修改、删除、显示所有学生省信息)
2、主窗口是用户进行各种操作的平台,具体操作在各个独立功能窗口中完成
3、主窗口的主要功能位于菜单中,菜单为进入各个功能窗口的唯一通道
4、当用户在进行个别录入、删除或错误输入操作时,会弹出相应对话框提示用户如当录入成功或删除成功,弹出成功以及相应的简明信息提示当,当录入、删除失败以及输入不当是,弹出错误以及简单的错误原因提示用户重新操作
5、界面布局尽量合理,各组件位置分布均匀美观
3.2详细设计
3.
2.1模块设进入界面修改查询学生信息表
3.
2.3运行调试添加学生信息修改学生信息查找学生信息
3.
2.4主要源代码importimportimportimportpublicclassSqlHelper//对数据库进行操作PreparedStatementps=null;Connectionct=null;ResultSetrs=null;Stringdriver=;Stringurl=;Stringuser=san;Stringpasswd=san;publicvoidclosetryifrs!=nullrs.close;ifps!=nullps・close;ifct!=nullct・close;}catchExceptionee.printStackTrace;}pxiblicResultSetqueryExecuteStringsql{tryClassforNamedriver;ct=DriverManager.getConnectionurluserzpasswd;ps=ct.prepareStatementsql;rs=ps・executeQuery;catchExceptionee・printStackTrace;}finally}returnrs;}//查询数据库操作publicResultSetqueryExectueStringsqlString[]parastry{ClassforNamedriver;ct=DriverManager.getConnectionurlfuserpasswd;ps=ct.prepareStatementsql;forinti=0;iparas.length;i++ps.setStringi+lparas[i];}rs=ps・executeQuery;catchExceptione{e.printStackTrace;}finally}returnrs;}//把增、删、改放在一起对数据库操作@SuppressWarningsfinallypublicbooleanupdExecuteStringsqlzString[]parasbooleanb=true;tryClass・forNamedriver;ct=DriverManager.getConnectionurluserpasswd;ps=ct.prepareStatementsql;forinti=0;iparas.length;i++ps・setstringi+1paras[i];ifps・executeUpdate!=1{b=false;}catchExceptione{b=false;e.printStackTrace;}finally{returnb;}importjavax.swing.*;importjava.sql.*;importjava.util.夫;importimportimportimportimportimportjava.awt・夫;importimportimport//学生管理类publicclassStuMangerextendsJFrameimplementsActionListenerJPaneljpljp2;JLabelj11;JButtonjbljb2jb3jb4;JTablejt;JScrollPanejsp;JTextFieldjtf;StuModms;publicstaticvoidmainString[]argsStuMangers=newStuManger;}publicStuMangerjpl=newJPanel;jtf=newJTextField10;jbl=newJButton”查询”;jbladdActionListenerthis;jll=newJLabeln请输入名字”;jpl.addjll;jpl・addjtf;jpl・addjbl;jp2=newJPanel;jb2=newJButton”添加;jb2・addActionListenerthis;jb3=newJButton”删除;jb3・addActionListenerthis;jb4=newJButton”修改”;jb4・addActionListenerthis;jp2・addjb2;jp2・addjb3;jp2・addjb4;ms=newStuMod;String[]paras=nln;ms.queryStuselect夫fromstuwhere1=nparas;jt=newJTablems;jsp=newJScrollPanejt;this・addjsp;this.addjplNorth”;this.addjp2South;this.setSize400300;thissetDefaultCloseoperationJFrame・EXITONCLOSE;this・setVisibletrue;publicvoidactionPerformedActionEvente{//TODOAuto-generatedmethodstubife.getSource==jblSystemout.printIn”希望查询;Stringname=this.jtf.getText・trim;Stringsql=nselect*fromstuwherestuName=n;Stringparas[]=name;ms=newStuMod;ms・queryStusqlparas;jt・setModelms;elseife.getSource==jb2{StuAddDialogg=newStuAddDialogthis”添加学生”,true;ms=newStuMod;String[]paras2={nlM;ms.queryStunselect*fromstuwhere1=”,paras2;jt・setModelms;elseife.getSource==jb4introwNum=this.jt.getSelectedRow;ifrowNum==-l-JOptionPane.showMessageDialogthisf”请选择一彳亍”;return;}//newStuUpdDialogthis”修改”,truemsrowNum;ms=newStuMod;String[]paras2=M1n;ms.queryStuselect夫fromstuwhere1=paras2;jt・setModelms;Stringstuld=Stringms.getValueAtrowNum0;System.out.printinnid=n+stuld;}//删除elseife.getSource==jb3{introwNum=this.jt.getSelectedRow;ifrowNum==-lJOptionPane.showMessageDialogthisr”请选择一行;return;jt・setModelms;Stringstuld=Stringms.getValueAtrowNum0;Systemout.printinnid=n4-stuld;Stringsql=ndeletefromstuwherestuid=n;String[]paras=stuld;StuModtemp=newStuMod;temp.updStusqlparas;ms=newStuMod;String[]paras2=nl};ms.queryStuselect夫fromstuwhere1=”,paras2;jt・setModelms;}}}5总结与展望做课设让我对java有了新的认识,首先我接触了很多上课见过见过但没有实际用过的类和方法,让我对编程有了许多新的思想大一学了C语言,虽然当时学的还不错,由于学的都是入门知识,所以自己做的都是DOS下执行的程序,虽然可以实现一定的功能,但和自己平时用的软件相差很大这学期刚开课学java感觉没什么新鲜感,它的跨平台特性也只是听听根本没有认识,知道学到第七章图形界面用户编程的时候,我发现学会之后自己可以做出来的软件就更接近平时使用的软件了,不过由于平时学习不刻苦,到时没有时间静下心来写java代码,知道结课做课设,才静下心来开始研究java结合以前的编程知识,做起了自己的程序我曾经用c语言做过这个系统,做起来会比拟熟练,同时想通过做课设学习一点数据库的知识,感觉这些知识更贴近实际应用,选好之后开始准备课设,先从最简单的主窗体,到主窗体的菜单,组件添加,再到各个功能的独立窗体的建立,再到最后的数据库连接,功能的实现,一步步走来,收获颇多其中独立窗体中的组件排版是碰到的第一个问题,最简单的方法是在建每个窗体时把所有需要的组件全部重新添加进去,但是这样代码会很长,而却会多占很多内存空间,于是我决定把个功能窗体中共同的组件在一个新方法中统一加载,为了减小占内存空间,组建的在主类的构造方法中生成,所有独立功能窗口公用组件,这样既减少了代码额长度,又提高了程序的内存利用率还有很多问题,都在权衡之后得到了较优的解决方法它能够使这次课设还让我对java的跨平台性有了进一步认识,当我学好代码兴致勃勃的想把它做成exe可执行文件时,在网上搜索之后发现它似乎很难实现,就是应为它的java语言的实现机制,通过jre来执行执行java代码,而不是调用系统本地代码除此之外我还学到了新的编程技巧,比方对trycatch的运用刚学的时候就是照书本上的打,很不情愿但是必须打的代码在做课设时,我发现他又很神奇的功能可以帮助我解决用其他方法不好解决的问题,比方关闭窗口刚开始程序只有主窗口时,关闭很好实现,但随着程序功能的完善,需要关闭的窗口越来越多,需要关闭的类型也便多了,到了关闭Dialog的时候,发现Dialog不能强制转化为Frame如果想用前面的方法管还得把多处代码进行修改,不过我想到了用try来解决这个问题参考文献李钟尉,马文强,陈丹丹Java从入门到精通第1版清华大学出版社20XX.9刘万军,梁清华,王松波,宋强Java程序设计实践教程第1版清华大学出版社
2006.9。