《简单学生信息管理系统java课程设计报告书.docx》由会员分享,可在线阅读,更多相关《简单学生信息管理系统java课程设计报告书.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库课程设计-简单学生信息管理系统学院:计算机科学学院 专业:软件工程02 学号:41109050209 姓名:李欢欢1设计目的目录错误!未定义书签。2设计任务22. 1任务说明22. 2系统目标22.2使用范围2. 3功能要求33设计内容33. 1界面构建33. 2详细设计41. 2. 1模块设计42. 2. 2数据库设计43. 2. 3运行调试4. 2. 4主要源代码5总结与展望参考文献错误!未定义书签。1设计目的本程序用于用户对少量学生信息进展简单的管理,本程序针感觉没什么新鲜感,它的跨平台特性也只是听听, 基本没有认 识,知道学到第七章图形界面用户编程的时候,我发现学会之后 自己可以
2、做出来的软件就更接近平时使用的软件了,不过由于平 时学习不刻苦,到时没有时间静下心来写java代码,知道结课 做课设,才静下心来开场研究java,结合以前的编程知识,做起 了自己的程序。我曾经用c语言做过这个系统,做起来会对比熟练,同时想 通过做课设学习一点数据库的知识,感觉这些知识更贴近实际应 用,选好之后开场准备课设,先从最简单的主窗体,到主窗体的 菜单,组件添加,再到各个功能的独立窗体的建设,再到最后的 数据库连接,功能的实现,一步步走来,收获颇多。其中独立窗 体中的组件排版是碰到的第一个问题,最简单的方法是在建每个 窗体时把所有需要的组件全部重新添加进去,但是这样代码会很 长,而却会多
3、占很多内存空间,于是我决定把个功能窗体中共同 的组件在一个新方法中统一加载,为了减小占内存空间,组建的 在主类的构造方法中生成,所有独立功能窗口公用组件,这样既 减少了代码额长度,又提高了程序的内存利用率。还有很多问题, 都在权衡之后得到了较优的解决方法。它能够使这次课设还让我 对java的跨平台性有了进一步认识,当我学好代码兴致勃勃的 想把它做成exe可执行文件时,在网上搜索之后发现它似乎很难 实现,就是应为它的java语言的实现机制,通过jre来执行执 行java代码,而不是调用系统本地代码。除此之外我还学到了新的编程技巧,比方对try, catch的运用。刚学的时候就是照 书本上的打,很
4、不情愿但是必须打的代码,在做课设时,我发现 他又很神奇的功能可以帮助我解决用其他方法不好解决的问题, 比方关闭窗口。刚开场程序只有主窗口时,关闭很好实现,但随 着程序功能的完善,需要关闭的窗口越来越多,需要关闭的类型 也便多了,到了关闭Dialog的时候,发现Dialog不能强制转化 为Frame,如果想用前面的方法管还得把多处代码进展修改,不 过我想到了用try来解决这个问题。参考文献1李钟尉,马文强,陈丹丹Java从入门到精通 第1版 清华大 学出版社2008. 92刘万军,梁清华,王松波,宋强Java程序设计实践教程 第1 版清华大学出版社2006. 9对于对安全系数要求不高,操作不是很
5、复杂的小型客户开发。本 程序可以实现对学生信息的添加、查询、修改、删除等操作,同 时支持查看所有学生信息,功能完善,界面简洁美观,布局合理, 操作简便,简单易用,任何人可轻松操作。同时,本程序对系统要求配置较低,运行速度快,而却对数 据库管理要求较低该数据库可实现关系较为简单的数据管理。2设计任务2. 1任务说明设计一个简单学生个人信息管理系统,该系统具有录入,查 询,修改三项 基本功能。要求如下:1具有简单的录入,查询和修改功能。2修改学生信息必须输入学号,然后对姓名、性别和专业 等修改;3使用文件存储数据。也可用数据库4学生个人信息必须包括:学号、姓名、性别、籍贯、系 别。2. 2系统目标
6、软件开发的意图便于用户对学生的管理,方便查看学生的情 况。如用户对学生 基本信息进展录入、查询、修改、删除等。2.2使用范围本系统仅针对用户对少量学生进展信息管理。2. 3功能要求1录入学生基本信息的功能2查询学生基本信息的功能3修改学生基本信息的功能4删除学生基本信息的功能5显示所有学生信息的功能3设计内容3. 1界面构建1、为了便于各种操作,软件采用多窗口的模式。用户可在 不同窗口进展相应操作录入、查询、修改、删除、显示所有学 生省信息。2、主窗口是用户进展各种操作的平台,具体操作在各个独 立功能窗口中完成。3、主窗口的主要功能位于菜单中,菜单为进入各个功能窗 口的唯一通道。4、当用户在进
7、展个别录入、删除或错误输入操作时,会弹出相应对话框提示用户。如当录入成功或删除成功,弹出成功以 及相应的简明信息提示当,当录入、删除失败以及输入不当是, 弹出错误以及简单的错误原因提示用户重新操作。5、界面布局尽量合理,各组件位置分布均匀美观。3. 2详细设计 3. 2. 1模块设进入界面添加删除修改查询3. 2. 2数据上志F学生信息表3. 2. 3运行调试操作界面添加学生信息修改学生信息查找学生信息3. 2. 4主要源代码import java.sqI.Connection;import java.sqI.Dr i verManager;import java.sqI.PreparedSt
8、atement;Str i ng Str i ng Str i ng Str i ng pub Ii cvo i dtry if (rs!=nulI) if (ps!=nulI) if (ct!=nulI)rs. c I ose ();ps. c I ose ();ct. c I ose ();import java.sqI.ResuItSet;pub I icclass Sq I He I per 对数据库进展操作PreparedStatement ps=nulI;Connection ct二null;ResuItSet rs=nulI;driver=com. mi crosoft. jdb
9、c. sqI server. SQLServerDr i ver;url = jdbc:microsoft:sqI server:/127. 0. 0. 1:1433;databaseName=JsqI;一 ii nuser- sa ;passwd=sa;c I ose () catch (Except i on e)e. pr i ntStackTrace (); )pub Iic ResuItSet queryExecute (Str i ng sqI)CI ass. forNamev ver);ct=Dr i verManager. getConnectiI, user, passwd)
10、; ps=ct. prepareStatement (sqI);rs=ps. executeQuery ();)catch (Except i on e)e. pr i ntStackTrace ();)finally()returnrs;)查询数据库操作pub Iic ResuItSet queryExectue (Str i ng sqI,Str i ng paras)tryCI ass. forName6ti ver); ct=Dr i verManager. getConnect/ o/7(ur I, user, passwd); ps=ct. prepareStatement (sq
11、I);for (int i=0; iparas. length; i+)(ps.setStr ing(i+1, parasi);)rs=ps. executeQuery ();)catch (Except i on e)(e. pr i ntStackTrace ();finally(returnrs;/把增、册k改放在一起对数据库操作SuppressWarnings (finaIly)pub Iicboolean updExecute (Str i ng sqI,String paras) boo Iean b=true;tryClass. forNamevi ver);ct=Dr iver
12、Manager. getConnectionurI, user, passwd);ps=ct.prepareStatement (sqI);for (int i=0; iparas. length; i+)(ps.setStr i ng (i+1, paras i);if (ps. executellpdate () !=1)(b=faIse;)catch (Except i on e)(b二fa Ise;e. pr i ntStackTrace ();)finally(return b;)import javax.swing.*;import java.sqI.import java. ut
13、il.*;import java.sqI.Connection;import java.sqI.Dr i verManager;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 Iicclass StuManger ext
14、ends JFrame implements Act ionLi stener (JPanel jp1,jp2;JLabel jl1;JButton jb1,jb2,jb3,jb4;JTabIe jt;JScroI I Pane jsp;JTextFieId jtf;StuMod ms;pub Iicstatiovoid ma i n (Str i ng args)StuManger s=new StuManger ();)pub I ic StuManger ()(jp1=new JPane I ();jtf二new JTextField (10);jb1=new JButton (“查询”
15、);jb1.addActionListener (this);j 11 =new JLabel (请输入名字”);jp1.add (j11);jp1. add (jtf);jp1 . add (jb1);jp2=new JPane I ();jb2=new JButton (“添加“);jb2.addActionListener (this);jb3=new JButton (删除);jb3.addActionListener (this);jb4=new JButton (修改);jb4. addActionLi stener (this);jp2. add (jb2);jp2. add (
16、jb3);jp2. add (jb4);ms=new StuMod ();Str ing paras=T;ms.queryStu (seiect * from stu where 1=?, paras);jt=new JTabIe (ms);jsp=new JScroI I Pane (jt);this. add (jsp);this.add (jp1,North);this. add (jp2, South);th i s. setS i ze (400, 300);this. setDef au I tC I oseOperat i on (JFrame. EX I T_ON_CLOS);
17、th i s. setV i s i b I e (true);)pub Iiovoid act i onPerformed (Act i onEvent e)/ TODO Auto-generated method stubif (e. getSource 0jb1) System.pr i nt I n (希望查询);Str ing name=this, jtf. getText (). tr im ();Str i ng sql = seIect * from stu where stuName=?;Str i ng paras = name;ms=new StuMod ();ms.qu
18、eryStu (sqI, paras);jt. setModeI (ms);)elseif (e. getSource () =jb2)(StuAddDia log g=new StuAddDia Iog (this, “添加学生“,true);ms二new StuMod ();Str i ng paras2= 1;ms. queryStu (seIect * from stu where 1=?,paras2);jt. setModeI (ms);)elseif (e. getSource () =jb4) (int rowNum=this. jt. getSe I ectedRow ();
19、if (rowNum=-1)(JOptionPane. showMessageDia/og(ris, ”请选择一亍”); return;)/new StuUpdDialog(this, “修改二 true, ms, rowNum);ms二new StuMod ();Str ing paras2=1;ms.queryStu (seiect * from stu where 1=?, paras2);jt. setModeI (ms);Str i ng stuId二(Str i ng)ms. getVaIueAt(rowNum, 0);System. out.pr i nt I n ( i d=+
20、stu I d);)/删除elseif (e. getSource () =jb3)int rowNum=this. jt. getSe I ectedRow ();if (rowNum=-1)(JOpt i onPane. showMessageDia Iog(hi s, ”请选择一行“); return;1jt.setModeI(ms);String stuId二(Str i ng)ms. getVaIueAt (rowNum,0);System. out.pr i nt I n ( i d=+stu I d);Str i ng sql = deIete from stu where st
21、u i d=?;Str i ng paras=stuId;StuMod temp=new StuMod ();temp. updStu (sqI, paras);ms二new StuMod ();String paras2= 1);ms. queryStu (seIect * from stu where 1=?, paras2);jt. setModeI (ms);)5总结与展望做课设让我对java有了新的认识,首先我接触了很多上课 见过见过但没有实际用过的类和方法,让我对编程有了许多新的 思想。大一学了 C语言,虽然当时学的还不错,由于学的都是入门 知识,所以自己做的都是DOS下执行的程序,虽然可以实现一定 的功能,但和自己平时用的软件相差很大。这学期刚开课学java