课程设计校园一卡通学生信息管理系统_第1页
课程设计校园一卡通学生信息管理系统_第2页
课程设计校园一卡通学生信息管理系统_第3页
课程设计校园一卡通学生信息管理系统_第4页
课程设计校园一卡通学生信息管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、校园一卡通学生信息管理系统课程设计报告1目录引言-2正文-2结论和建议-3致谢-4参考文献-4附录-4202 引 言利用计算机进行校园一卡通学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。本设计就是一个为实现信息化管理而开发的信息管理系统,能够进行信息存储、查询、修改等能功。该系统由六个模块构成,包括学籍管理系统的主界面模块、学生卡信息及充值模块、学生消费管理模块、查询与打印学生消费信息模块、删除学生信息模块和数据库操作模块。通过这些模块的有机结合,能方便的对学生卡使用信息进行综合管理,从而实现了信息化管

2、理的目的。3正 文 3.1 系统需求分析(1)学生信息管理系统主界面 欢迎界面包括背景图片及字幕(可以设计成滚动字幕效果),左上方的菜单条设计成下拉式。包括录入学生基本信息、修改学生基本信息、删除学生基本信息、查询及打印学生基本信息和返回主页面五项菜单项。涉及的类managerwindow在managerwindow.java文件 (2)学生卡信息及充值模块 采用网格布局设置学号、姓名、性别、专业、年级等,右侧为选择照片区,最下面设置录入及重置按钮。类inputstudent在inputstudent.java文件 (3)学生消费管理模块 左侧是修改项目,输入要修改的学号、姓名、性别、专业、年

3、级、出生等;右侧选择修改的照片。下设录入修改及重设按钮。类modifysituation在modifysituation.java文件。 (4)查询与打印学生消费信息模块 另外打开新的查询对话框,同样按学号、姓名等查询。下设打印类型按钮。类inquest在inquest.java文件 (5)删除学生信息 同样设置删除的对象,包括学号、姓名、性别等。另设置删除按钮,家监视器弹出警告对话框。类delete在delete.java文件。 3.2 数据库模型分析与设计数据库模型描述了在数据库中结构化和操纵数据的方法,模型的结构部分规定了数据如何被描述(例如哈希表、表等);模型的操纵部分规定了数据的添加

4、、删除、显示、维护、打印、查找、选择、排序和更新等操作。数据库模型的分类:分层模型、关系模型、网络模型和对象模型。本设计使用sql server数据库。 3.3 系统功能测试功能测试主要是测试程序模块是否实现了设计中所要求的功能。功能测试中需要注意的有:(1)查询功能中,有按单一查询条件进行查询的,也有按多个查询条件组合查询的。这里要注意的多个查询条件之间的关系。 (2)录入功能中,需要注意的是前台设置的数值长度是否大于后台数值长度,以及前台和后台的数据结构是否相符,很多时候录入功能无法实现是由于这些原因。还有就是必须录入的字段的设置时候有误。(3)测试删除功能中需要注意的是单击删除按钮后,一

5、般会出现提示信息,询问是否确定删除。通常情况下,我们单击确认按钮查看信息是否被删除掉了,而忽略了单击取消按钮后程序的反应:这时有可能的是没有删除,还有一种可能是即便单击了取消按钮,也一样删除了数据。另外,在删除多条记录的时候,要注意连续选中的几条记录是否真正都被删除掉了,即如果再按照这种查询方式查询,时候还能查询出来。有的时候需要在数据库中设立一个标志位,而不是真正的物理删除。所以在下一次查询中,可能还会被查询出来,这主要是因为在查询条件中没有将标志考虑在内。(4)关于修改功能的测试主要是看修改确认后是否数据真正已被修改了。这是最基本的功能,需要注意的是看是否能把不应该修改的数据也修改成功了。

6、 3.4 关于web 本课程设计没有实现网络功能。4、结论和建议 经过这次课题的设计并实现,尽管会遇到很多难题,但是让我更加受益的是在这次课题中得到的经验、心得和锻炼。我发现开发项目的过程其实就是个不断的解决问题的过程,从中也感觉到项目开发的快乐,一个人永远有学不玩的知识,就算是项目开发中的知识点都学了,但在实际的开发过程中仍然会遇到不少问题,遇到问题时要做到两点:一个是“查”,一个是“问”。不懂的地方就得要自己找答案,可以从书本、网络中查找解决的答案;再一个就是问周边的同学。比如,在本科课题的编写代码部分,本人就参考了java 核心技术,从中得到了图形编程的很多有用的方法。这次课程的设计给我

7、以前所学的知识做了一个总结,为我深入学习编程做了铺垫。在本课题中存在的不足之处是在所难免的,本人将在日后加于改进。5、致谢感谢那些给我带来帮助的书籍和internet,还有周边的同学们。还要感谢我们的指导老师给我们这么多学生的文档认真批改,让我们知道在课程设计与实现的过程中存在的问题。6、参考文献1 王克宏、郝建文. java技术教程 m. 北京:清华大学出版社,2002年2 基于java的学生信息管理系统 李伟 电子科技大学 【硕士】电子科技大学 2009-04-01 0 578 3 j2ee框架及全文检索技术在信息管理系统中的应用 徐立峰 电子科技大学 【硕士】电子科技大学 2009-10

8、-01 7、附录附部分主要源代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;import javax.swing.filechooser.*;public class modifysituation extends jpanel implements actionlistener studentpicture pic; hashmap 基本信息表=null; jtextfield 学号,姓名,年级,出生; jcombobox 专业; jbu

9、tton 选择照片; jradiobutton 男,女; buttongroup group=null; jbutton 充值金额,录入修改,重置; fileinputstream inone=null; objectinputstream intwo=null; fileoutputstream outone=null; objectoutputstream outtwo=null; file systemfile,imagepic; jcombobox oldmess; student stu=null; public modifysituation(file file) systemfi

10、le=file; pic=new studentpicture(); 学号=new jtextfield(6); 姓名=new jtextfield(6); 专业=new jcombobox(); try filereader inone=new filereader(专业.txt); bufferedreader intwo= new bufferedreader(inone); string s=null; int i=0; while(s=intwo.readline()!=null) 专业.additem(s); inone.close(); intwo.close(); catch(

11、ioexception exp) 专业.additem(数学); 专业.additem(计算机科学与技术); 年级=new jtextfield(6); 出生=new jtextfield(6); 选择照片=new jbutton(选择); group=new buttongroup(); 男=new jradiobutton(男,true); 女=new jradiobutton(女,false); group.add(男); group.add(女); oldmess=new jcombobox(); 充值金额=new jbutton(充值金额); 录入修改=new jbutton(录入修

12、改); 录入修改.setenabled(false); 选择照片.setenabled(false); 重置=new jbutton(重置); 学号.addactionlistener(this); 充值金额.addactionlistener(this); 录入修改.addactionlistener(this); 重置.addactionlistener(this); 选择照片.addactionlistener(this); box box1=box.createhorizontalbox(); box1.add(new jlabel(输入要修改信息的学号:,jlabel.center)

13、; box1.add(学号); box1.add(充值金额); box box2=box.createhorizontalbox(); box2.add(new jlabel(新)姓名:,jlabel.center); box2.add(姓名); box box3=box.createhorizontalbox(); box3.add(new jlabel(新)性别:,jlabel.center); box3.add(男); box3.add(女); box box4=box.createhorizontalbox(); box4.add(new jlabel(新)专业:,jlabel.cen

14、ter); box4.add(专业); box box5=box.createhorizontalbox(); box5.add(new jlabel(新)年级:,jlabel.center); box5.add(年级); box box6=box.createhorizontalbox(); box6.add(new jlabel(新)出生:,jlabel.center); box6.add(出生); box box7=box.createhorizontalbox(); box7.add(new jlabel(学生已有的数据:,jlabel.center); box7.add(oldmes

15、s); box boxh=box.createverticalbox(); boxh.add(box1); boxh.add(box2); boxh.add(box3); boxh.add(box4); boxh.add(box5); boxh.add(box6); boxh.add(box7); boxh.add(box.createverticalglue(); jpanel picpanel=new jpanel(); picpanel.setbackground(color.green); picpanel.add(new jlabel(选择照片:,jlabel.center); pi

16、cpanel.add(选择照片); jpanel putbutton=new jpanel(); putbutton.setbackground(color.yellow); putbutton.add(录入修改); putbutton.add(重置); jpanel messpanel=new jpanel(); messpanel.setbackground(color.pink); messpanel.add(boxh); setlayout(new borderlayout(); jsplitpane splitv= new jsplitpane(jsplitpane.vertical

17、_split,picpanel,pic); jsplitpane splith=new jsplitpane(jsplitpane.horizontal_split,messpanel,splitv); add(splith,borderlayout.center); add(putbutton,borderlayout.south); validate(); public void actionperformed(actionevent e) if(e.getsource()=充值金额|e.getsource()=学号) oldmess.removeallitems(); string nu

18、mber=; imagepic=null; stu=null; number=学号.gettext(); if(number.length()0) try inone=new fileinputstream(systemfile); intwo=new objectinputstream(inone); 基本信息表=(hashmap)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee) if(基本信息表.containskey(number) 录入修改.setenabled(true); 选择照片.seten

19、abled(true); stu=基本信息表.get(number); oldmess.additem(姓名:+stu.getname(); oldmess.additem(专业:+stu.getdisciping(); oldmess.additem(年级:+stu.getgrade(); oldmess.additem(出生日期:+stu.getborth(); if(stu.getsex().equals(男) 男.setselected(true); else 女.setselected(true); imagepic=stu.getimagepic(); pic.setimage(i

20、magepic); pic.repaint(); 姓名.settext(stu.getname(); 年级.settext(stu.getgrade(); 出生.settext(stu.getborth(); else 录入修改.setenabled(false); 选择照片.setenabled(false); string warning=该学号不存在!; joptionpane.showmessagedialog(this,warning,警告, joptionpane.warning_message); clearmess(); else 录入修改.setenabled(false);

21、 选择照片.setenabled(false); string warning=必须要输入学号!; joptionpane.showmessagedialog(this,warning,警告,joptionpane.warning_message); clearmess(); else if(e.getsource()=录入修改) string number=; number=学号.gettext(); if(number.length()0) try inone=new fileinputstream(systemfile); intwo=new objectinputstream(inon

22、e); 基本信息表=(hashmap)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee) if(基本信息表.containskey(number) string question=该生基本信息已存在,您想修改他(她)的基本信息吗?; joptionpane.showmessagedialog(this,question,警告, joptionpane.question_message); string m=基本信息将被修改!; int ok=joptionpane.showconfirmdialog(thi

23、s,m,确认, joptionpane.yes_no_option,joptionpane.information_message); if(ok=joptionpane.yes_option) string name=姓名.gettext(); if(name.length()=0) name=stu.getname(); string discipling=(string)专业.getselecteditem(); if(discipling=null) discipling=stu.getdisciping(); string grade=年级.gettext(); if(grade.l

24、ength()=0) grade=stu.getgrade(); string borth=出生.gettext(); if(borth.length()=0) borth=stu.getborth(); string sex=null; if(男.isselected() sex=男.gettext(); else sex=女.gettext(); if(imagepic=null) imagepic=stu.getimagepic(); student 学生=new student(); 学生.setnumber(number); 学生.setname(name); 学生.setdisci

25、pling(discipling); 学生.setgrade(grade); 学生.setborth(borth); 学生.setsex(sex); 学生.setimagepic(imagepic); try outone=new fileoutputstream(systemfile); outtwo=new objectoutputstream(outone); 基本信息表.put(number,学生); outtwo.writeobject(基本信息表); outtwo.close(); outone.close(); clearmess(); catch(exception ee) 录

26、入修改.setenabled(false); 选择照片.setenabled(false); else if(ok=joptionpane.no_option) 录入修改.setenabled(true); 选择照片.setenabled(true); else string warning=该学号没有基本信息,不能修改!; joptionpane.showmessagedialog(this,warning,警告, joptionpane.warning_message); 录入修改.setenabled(false); 选择照片.setenabled(false); clearmess()

27、; else string warning=必须要输入学号!; joptionpane.showmessagedialog(this,warning,警告,joptionpane.warning_message); 录入修改.setenabled(false); clearmess(); 录入修改.setenabled(false); 选择照片.setenabled(false); else if(e.getsource()=选择照片) jfilechooser chooser=new jfilechooser(); filenameextensionfilter filter = new f

28、ilenameextensionfilter( jpg & gif images, jpg, gif); chooser.setfilefilter(filter); int state=chooser.showopendialog(null); file choicefile=chooser.getselectedfile(); if(choicefile!=null&state=jfilechooser.approve_option) 选择照片.settext(choicefile.getname(); imagepic=choicefile; pic.setimage(imagepic)

29、; pic.repaint(); else if(e.getsource()=重置) clearmess(); 录入修改.setenabled(false); 选择照片.setenabled(false); public void clearmess() 学号.settext(null); 姓名.settext(null); 年级.settext(null); 出生.settext(null); oldmess.removeallitems(); 选择照片.settext(选择); imagepic=null; pic.setimage(imagepic); pic.repaint(); im

30、port java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.hashmap;public class managerwindow extends jframe implements actionlistener inputstudent 基本信息录入; modifysituation 基本信息修改; inquest 基本信息查询与打印; delete 基本信息删除; jmenubar bar; jmenu filemenu; jmenuitem 录入,修改,查询与打

31、印,删除,欢迎界面; hashmap 基本信息=null; file file=null; cardlayout card=null; jlabel label=null; jpanel pcenter; public managerwindow() 录入=new jmenuitem(录入学生基本信息); 修改=new jmenuitem(修改学生基本信息); 查询与打印=new jmenuitem(查询与打印学生基本信息); 删除=new jmenuitem(删除学生基本信息); 欢迎界面=new jmenuitem(欢迎界面); bar=new jmenubar(); filemenu=n

32、ew jmenu(菜单选项); filemenu.add(录入); filemenu.add(修改); filemenu.add(查询与打印); filemenu.add(删除); filemenu.add(欢迎界面); bar.add(filemenu); setjmenubar(bar); label=new jlabel(学籍管理系统,jlabel.center); label.seticon(new imageicon(welcome.jpg); label.setfont(new font(隶书,font.bold,36); label.sethorizontaltextpositi

33、on(swingconstants.center); label.setforeground(color.red); 基本信息=new hashmap(); 录入.addactionlistener(this); 修改.addactionlistener(this); 查询与打印.addactionlistener(this); 删除.addactionlistener(this); 欢迎界面.addactionlistener(this); card=new cardlayout(); pcenter=new jpanel(); pcenter.setlayout(card); file=n

34、ew file(基本信息.txt); if(!file.exists() try fileoutputstream out=new fileoutputstream(file); objectoutputstream objectout=new objectoutputstream(out); objectout.writeobject(基本信息); objectout.close(); out.close(); catch(ioexception e) 基本信息录入=new inputstudent(file); 基本信息修改=new modifysituation(file); 基本信息查

35、询与打印=new inquest(file); 基本信息删除=new delete(file); pcenter.add(欢迎界面,label); pcenter.add(录入界面,基本信息录入); pcenter.add(修改界面,基本信息修改); pcenter.add(删除界面,基本信息删除); add(pcenter,borderlayout.center); validate(); setvisible(true); setbounds(100,50,460,280); setdefaultcloseoperation(jframe.do_nothing_on_close); add

36、windowlistener(new windowadapter() public void windowclosing(windowevent e) int n=joptionpane.showconfirmdialog(null,确认退出吗?,确认对话框, joptionpane.yes_no_option ); if(n=joptionpane.yes_option) system.exit(0); ); validate(); public void actionperformed(actionevent e) if(e.getsource()=录入) 基本信息录入.clearmess

37、(); card.show(pcenter,录入界面); else if(e.getsource()=修改) 基本信息修改.clearmess(); card.show(pcenter,修改界面); else if(e.getsource()=查询与打印) 基本信息查询与打印.clearmess(); 基本信息查询与打印.setlocation(getbounds().x+getbounds().width,getbounds().y); 基本信息查询与打印.setvisible(true); else if(e.getsource()=删除) card.show(pcenter,删除界面);

38、 else if(e.getsource()=欢迎界面) card.show(pcenter,欢迎界面); public static void main(string args) new managerwindow(); import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;import javax.swing.filechooser.*;public class inputstudent extends jpanel implements acti

39、onlistener student 学生=null; studentpicture pic; hashmap 基本信息表=null; jtextfield 学号,姓名,年级,出生; jbutton 选择照片; jcombobox 专业; jradiobutton 男,女; buttongroup group=null; jbutton 录入,重置; fileinputstream inone=null; objectinputstream intwo=null; fileoutputstream outone=null; objectoutputstream outtwo=null; fil

40、e systemfile,imagepic; public inputstudent(file file) systemfile=file; pic=new studentpicture(); 学号=new jtextfield(5); 姓名=new jtextfield(5); 专业=new jcombobox(); try filereader inone=new filereader(专业.txt); bufferedreader intwo= new bufferedreader(inone); string s=null; int i=0; while(s=intwo.readline()!=null) 专业.additem(s); inone.close(); intwo.close(); catch(ioexception exp) 专业.additem(数学); 专业.additem(计算机科学与技术); 年级=new jtextfi

温馨提示

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

评论

0/150

提交评论