还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据库课程设计-简单学生信息管理系统学院计算机科学学院专业软件工程学号02姓名李欢41109050209欢目录1设计目的错误!未定义书签2设计任务
22.1任务说明
22.2系统目标
22.2使用范围
2.3功能要求33设计内容
33.1界面构建
33.2详细设计
2.1模块设计
2.2数据库设计
43.
2.3运行调试
4.
2.4主要源代码5总结与展望参考文献错误!未定义书签1设计目的本程序用于用户对少量学生信息进展简单的管理,本程序针感觉没什么新鲜感,它的跨平台特性也只是听听,基本没有认识,知道学到第七章图形界面用户编程的时候,我发现学会之后自己可以做出来的软件就更接近平时使用的软件了,不过由于平时学习不刻苦,到时没有时间静下心来写java代码,知道结课做课设,才静下心来开场研究java,结合以前的编程知识,做起了自己的程序我曾经用c语言做过这个系统,做起来会对比熟练,同时想通过做课设学习一点数据库的知识,感觉这些知识更贴近实际应用,选好之后开场准备课设,先从最简单的主窗体,到主窗体的菜单,组件添加,再到各个功能的独立窗体的建设,再到最后的数据库连接,功能的实现,一步步走来,收获颇多其中独立窗体中的组件排版是碰到的第一个问题,最简单的方法是在建每个窗体时把所有需要的组件全部重新添加进去,但是这样代码会很长,而却会多占很多内存空间,于是我决定把个功能窗体中共同的组件在一个新方法中统一加载,为了减小占内存空间,组建的在主类的构造方法中生成,所有独立功能窗口公用组件,这样既减少了代码额长度,又提高了程序的内存利用率还有很多问题,都在权衡之后得到了较优的解决方法它能够使这次课设还让我对java的跨平台性有了进一步认识,当我学好代码兴致勃勃的想把它做成exe可执行文件时,在网上搜索之后发现它似乎很难实现,就是应为它的java语言的实现机制,通过jre来执行执行java代码,而不是调用系统本地代码除此之外我还学到了新的编程技巧,比方对try,catch的运用刚学的时候就是照书本上的打,很不情愿但是必须打的代码,在做课设时,我发现他又很神奇的功能可以帮助我解决用其他方法不好解决的问题,比方关闭窗口刚开场程序只有主窗口时,关闭很好实现,但随着程序功能的完善,需要关闭的窗口越来越多,需要关闭的类型也便多了,到了关闭Dialog的时候,发现Dialog不能强制转化为Frame,如果想用前面的方法管还得把多处代码进展修改,不过我想到了用try来解决这个问题参考文献
[1]李钟尉,马文强,陈丹丹Java从入门到精通第1版清华大学出版社
2008.9
[2]刘万军,梁清华,王松波,宋强Java程序设计实践教程第1版清华大学出版社
2006.9对于对安全系数要求不高,操作不是很复杂的小型客户开发本程序可以实现对学生信息的添加、查询、修改、删除等操作,同时支持查看所有学生信息,功能完善,界面简洁美观,布局合理,操作简便,简单易用,任何人可轻松操作同时,本程序对系统要求配置较低,运行速度快,而却对数据库管理要求较低该数据库可实现关系较为简单的数据管理2设计任务
2.1任务说明设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能要求如下〔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.2数据上志F学生信息表
3.
2.3运行调试操作界面添加学生信息修改学生信息查找学生信息
3.
2.4主要源代码import java.sqI.Connection;import java.sqI.Dr iverManager;import java.sqI.PreparedStatement;import java.sqI.ResuItSet;pub Iicclass SqI HeI per〃对数据库进展操作PreparedStatement ps=nulI;Connection ct二null;ResuItSet rs=nulI;Str i ngdriver=com.mi crosoft.jdbc.sqI server.SQLServerDr iver;url=jdbc:microsoft:sqI server://
127.
0.
0.1:1433;databaseName=JsqI;Str ing Str i一ii nuser-sa;ng Str i ngpasswd=sa;pub Iicvo ic I osedtry{if rs!=nulI rs.c Ioseif ps!=nulI;if ct!=nulI ps.c Iose catchEx;cept i on ect.cIosee.pr;i ntStackTrace;}pub IicResuItSet queryExecuteStr ing sqICIass.forName^v\ver;ct=Dr iverManager.getConnectiI,user,passwd;ps=ct.prepareStatement sqI;rs=ps.executeQuery;catch Excepti onee.pr intStackTrace;finallyreturnrs;〃查询数据库操作pub IicResuItSet queryExectueStr ing sqI,Str ing[]parastryCI ass.forName^6ti ver;ct=Dr iverManager.getConnect/o/7ur I,user,passwd;ps=ct.prepareStatement sqI;for inti=0;iparas.length;i++ps.setStr ingi+1,paras[i];rs=ps.executeQuery;catch Excepti onee.pr intStackTrace;}finally}returnrs;//把增、册k改放在一起对数据库操作@SuppressWarnings finaIlypub Iicboolean updExecuteStr ing sqI,String[]paras{boo Ieanb=true;try{Class.forName^vi ver;ct=Dr iverManager.getConnection^urI,user,passwd;ps=ct.prepareStatement sqI;for inti=0;iparas.length;i++ps.setStr ing i+1,paras[i];}if ps.executellpdate!=1b=faIse;catch Excepti oneb二fa Ise;e.pr intStackTrace;finallyreturn b;import javax.swing.*;import java.sqI.import java.util.*;import java.sqI.Connection;import java.sqI.Dr iverManager;import java.sqI.PreparedStatement;import java.sqI.ResuItSet;import java.util.Vector;import java.awt.*;import java.awt.Event.*;import java.awt.event.Act i onEvent;import java.awt.event.ActionListener;//学生管理类pub IicclassStuManger extendsJFrame implementsAct ionListener JPaneljp1,jp2;JLabel jl1;JButton jb1,jb2,jb3,jb4;JTabIe jt;JScroI I Pane jsp;JTextFieId jtf;StuMod ms;pub Iicstatiovoidma in Str ing[]args{StuManger s=new StuManger;pub Iic StuMangerjp1=new JPaneI;jtf二new JTextField10;jb1=new JButton“查询”;jb
1.addActionListener this;j11=new JLabel请输入名字”;jp
1.add j11;jp
1.add jtf;jp
1.add jb1;jp2=new JPaneI;jb2=new JButton“添加“;jb
2.addActionListener this;jb3=new JButton删除;jb
3.addActionListener this;jb4=new JButton修改;jb
4.addActionLi stenerthis;jp
2.add jb2;jp
2.add jb3;jp
2.add jb4;ms=new StuMod;Str ing[]paras={T};ms.queryStu seiect*from stu where1=,paras;jt=new JTabIems;jsp=new JScroIIPanejt;this.add jsp;this.add jp1,North;this.add jp2,South;th is.setS ize400,300;this.setDef auI tCI oseOperationJFrame.EX IT_ON_CLOS^;th is.setV is ibIe true;pub Iiovoidact ionPerformed ActionEvente{//TODO Auto-generated methodstubif e.getSource0—jb1{System.pr int In希望查询;Str ingname=this,jtf.getText.tr im;Str ing sql=seIect*from stuwhere stuName=;Str ing paras[]={name};ms=new StuMod;ms.queryStu sqI,paras;jt.setModeI ms;elseif e.getSource==jb2StuAddDia logg=new StuAddDiaIog this,“添加学生“,true;ms二new StuMod;Str ing□paras2={1};ms.queryStu seIect*from stuwhere1=,paras2;jt.setModeI ms;elseif e.getSource==jb4int rowNum=this.jt.getSe IectedRow;if rowNum==-1JOptionPane.showMessageDia/og^r\is,”请选择一^亍”;return;//new StuUpdDialogthis,“修改二true,ms,rowNum;ms二new StuMod;Str ing[]paras2={1};ms.queryStu seiect*from stuwhere1=,paras2;jt.setModeI ms;Str ing stuId二Str ingms.getVaIueAtrowNum,0;System.out.pr int Ini d=+stu Id;//删除elseif e.getSource==jb3{int rowNum=this.jt.getSe IectedRow;if rowNum==-1JOpt ionPane.showMessageDiaIog^hi s,”请选择一行“;return;1jt.setModeIms;String stuId二Stringms.getVaIueAt rowNum,0;System.out.pr int Ini d=+stu Id;String sql=deIete from stuwherestu id=;String[]paras={stuId};StuMod temp=new StuMod;temp.updStu sqI,paras;ms二new StuMod;String[]paras2={1;ms.queryStu seIect*fromstuwhere1=,paras2;jt.setModeI ms;}5总结与展望做课设让我对java有了新的认识,首先我接触了很多上课见过见过但没有实际用过的类和方法,让我对编程有了许多新的思想大一学了C语言,虽然当时学的还不错,由于学的都是入门知识,所以自己做的都是DOS下执行的程序,虽然可以实现一定的功能,但和自己平时用的软件相差很大这学期刚开课学java。