还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2AddStuInfo.javaimport java.awt.event.*;import java.awt.*;import javax.swing.*;public classAddStuInfo extendsStulnfo{StuBean getSnum=new StuBean;public AddStuInfo{添加学生信息this.setTitlethis.setResizablefalse;sNum.setEditablefalse;sNum.setTextn,+getSnum.getStuId;sName.setEditabletrue;sSex.setEditabletrue;sSethnic.setEditabletrue;sBirth.setEditabletrue;s Year.setEditable true;sMajor.setEditabletrue;sCollege.setEditabletrue;sHome.setEditabletrue;〃设置运行时窗口的位置Dimension screenSize=Toolkit.getDefaultToolkit.getScreenSize;this.setLocationscreenSize.width-400/2,screenSize.height-300/2+45;public voiddownlnit{增加addinfo.setText T;addinfo.setFontnew FontDialog”,0,12;downPanel.addaddlnfo;“清空;clearin fo.setTex tclearinfo.setFontnew FontnDialogn,0,l2;downPanel.addclearlnfo;退出;eixtInfo.setText“”eixtInfo.setFontnew FontnDialogn,0,l2;downPanel.addeixtlnfo;〃添加事件侦听addinfo.addActionListener this;clearlnfo.addActionListenerthis;eixtlnfo.addActionListenerthis;this.contentPane.adddownPanel,BorderLayout.SOUTH;public voidactionPerformedActionEvent e{Object obj=e.getSource;〃退出if obj==eixtlnfo{this.dispose;〃增加else if obj==addinfo{sNum.setEnabledfalse;sName.setEnabledfalse;sSex.setEnabledfalse;sSethnic.setEnabledfalse;sBirth.setEnabledfalse;sYear.setEnabledfalse;sMajor.setEnabledfalse;sCollege.setEnabledfalse;sHome.setEnabledfalse;addinfo.setEnabledfalse;clearinfo.setEnabledfalse;eixtlnfo.setEnabledfalse;StuBean addStu=new StuBean;addStu.stuAddsName.getText,sSex.getText,sBirth.getText,sHome.getText,sSethnic.getText,sYear.getText,sMajor.getText,sCollege.getText;this.dispose;AddStuInfo asi=new AddStuInfo;asi.downlnitQ;asi.packQ;asi.setVisibletrue;}{//清空else ifobj==clearinfosetNull;sNum.setText,,n4-getSnum.getStuId;}3EditStuInfo.javamport java.awt.^;import java.sql.*;import java.awt.event.*;import javax.swing.*;public classEditStuInfo extendsStulnfo{二String sNum_strpublic EditStuInfo{修改学生信息this.setTitlethis.setResizablefalse;sNum.setEdi tablefalse;请查询学号sNum.setTextsName.setEditablefalse;sSex.setEditablefalse;sSethnic.setEditablefalse;sBirth.setEditablefalse;sYear.setEditablefalse;sMajor.setEditablefalse;sCollege.setEditablefalse;sHome.setEditablefalse;〃设置运行时窗口的位置Dimension screenSize=Toolkit.getDefaultToolkit.getScreenSize;this.setLocationscreenSize.width-400/2,screenSize.height-300/2+45;}public voiddownlnit{searchinfo.setTextn学号查询;searchInfo.setFontnew FontnDialogn,0,l2;downPanel.addsearchlnfo;修改;modifyinfo.setTextmodifyinfo.setFontnew FontnDialogn,0,12;downPanel.addmodifylnfo;“清空;clearinfo.setTextclearInfo.setFontnew FontnDialogn,0,12;downPanel.addclearlnfo;退出;eixtlnfo.setTexteixtInfo.setFontnew FontnDialogn,0,l2;downPanel.addeixtlnfo;searchlnfb.setEnabledtrue;modifyinfo.setEnabledfalse;clearlnfo.setEnabledtrue;eixtlnfo.setEnabledtrue;〃添加事件侦听searchlnfo.addActionListenerthis;modifyinfo.addActionListenerthis;clearlnfo.addActionListenerthis;eixtlnfo.addActionListenerthis;this.contentPane.adddownPanel,BorderLayout.SOUTH;public voidactionPerformedActionEvent e{Object obj=e.getSource;String[]s=new String
[8];{〃退出ifobj==eixtlnfothis.dispose;〃修改else ifobj==modifyinfo{StuBean modifyStu=new StuBean;modifyStu.stuModifysNum.getText,sName.getText,sSex.getText,sBirth.getText,sHome.getText,sSethnic.getText,sYear.getText,sMajor.getText,sCollege.getText;modifyStu.stuSearchsNum.getText;s=modifyStu.stuSearchsNum_str;sName.setTexts[O];sSex.setTexts[l];sSethnic.setTexts
[2];sHome.setTexts
[3];sYear.setTexts
[4];sMajor.setTexts
[5];sCollege.setTexts
[6];sBirth.setTexts
[7];{//清空else ifobj==clearinfosetNull;请查询学号”;sNum.setText{〃学号查询else ifobj==searchinfoStuInfoSearchSnum siss=new StuInfoSearchSnumthis;siss.packQ;siss.setVisibletrue;trysNum_str=siss.getSnum;}catchException ex{没有查找至该学号!”;JOptionPane.showMessageDialognull,”StuBean searchStu=new StuBean;s=searchStu.stuSearchsNum_str;ifs==null{己录不存在!”;JOptionPane.showMessageDialognull,请查询学号sNum.setTextsName.setTextnn;sSex.setTextnn;sSethnic.setTextUH;sHome.setText,n,;sYear.setText,H,;sMajor.setTextnn;sCollege.setTextnn;sBirth.setText,H,;sName.setEditablefalse;sSex.setEditablefalse;sSethnic.setEditablefalse;sBirth.setEditablefalse;sYear.setEditablefalse;sMajor.setEditablefalse;sCollege.setEditablefalse;sHome.setEditablefalse;modifyinfo.setEnabledfalse;return;else{sNum.setTextsN um_str;sName.setTexts[O];sSex.setTexts[l];sSethnic.setTexts|2];sHome.setTexts
[3];sYear.setTexts
[4];sMajor.setTexts
[5];sCollege.setTexts
[6];sBirth.setTexts
[7];sName.setEditabletrue;sSex.setEditabletrue;sSethnic.setEditabletrue;sBirth.setEdi tabletrue;sYear.setEditabletrue;sMajor.setEditabletrue;sCollege.setEditabletrue;sHome.setEditabletrue;modifyinfo.setEnabledtrue;}根据学号,以及该学生所选择的课程,进行成绩登记,未选课的学生无法进行登记9修改成绩对登记的成绩信息进行修改10学生查询可以根据学生学号、学生姓名、学生性别、学生所学专业、学生所属学院、来对学生信息进行查询,所有符合查询条件的学生信息都将会被显示出来11课程查询可以按照课程名称,授课教师的姓名,对课程的详细信息进行查询,所有符合查询条件的课程信息都将会被显示出来12成绩查询根据学生的学号来查询该学生所有课程的成绩数据库设计
2.2数据库中应包含3个表,即课程信息表Course、学生信息表Student、和学生选课表SC设计表如表1,表2,表3所示表课程信息表1Course名称字段名称数据类型主键非空课程编号Cnum Char4Yes Yes课程名称Cname Varchar2No Yes授课教师Cteacher Varchar2No No上课地点Cplace Varchar2No No课程类别Ctype Charl No No表学生信息表2Student名称字段名称数据类型主键非空学号Snum Char10Yes Yes学生姓名Sname Varchar2No Yes性别Ssex Char2No No民族Sethnic Char2No No籍贯Shome Varchar2No No入学年份Syear Char4No No专业Smajor Varchar2No No学院Scollege Varchar2No No出生日期Sbirth Char8No No表学生选课表3SC名称字段名称数据类型主键非空学号Snum Char10Yes Yes课程编号Cnum Char4Yes Yes成绩Grade Number4,lNoNo设计方法
2.31学生管理系统主界面模块学生管理系统主界面模块包括StuMS.java和StuMain.java两个文件StuMS是学生管理系统的主运行类,其中有运行整个程序的main方法,该文件生成了StuMain类的一个实例,从而生成了学生管理系统的界面StuMain类继承自JFrame类,实现了事件侦听的接口,它有一个不带参数的构造方法StuMain,用来生成StuMain的实例StuMain类将所有的功能集中到菜单栏中,并通过调用其他模块来实现学生管理系统的各个功能2学生信息管理模块学生信息管理模块主要由Stulnfo.javaAddStuInfo.javaEditStuInfo.java、DelStuInfo.java SelectCourse.java和StuInfoSearchSnum.java共6个文件组成Stulnfo是AddStuInfo、EditStuInfo DelStuInfo这3个类的超类,由于AddStuInfo、EditStuInfo和DelStuInfo的界面显示有共同之处,所以编写包含共有界面的Stulnfo类,可以快速实现其3个子类的界面显示它们之间的构成关系如图1所示这6个类文件组成了主界面中“学生管理”菜单的内容,其中包括增加、修改、删除和学生选课功能增加学生信昌—AddStuInfo.java修改学生信息按学号查询.——EditStuInfo.java StuInfoSearchSnuin.java学生信息型类Stulnfo.java—删除学生信息按学号查询.——DelStuInfo.javaStuInfoSearchSnuin.java学生选课.—SelectCourse.java图学生信息管理功能结构图1其中StuInfoSearchSnum类是选择学号的类,该类利用getSnum方法将选择出的学号返回给调用它的类调用它的类包括EditStuInfo类和DelStuInfo类3课程信息管理模块课程信息管理模块主要由Courseinfo.java、AddCourselnfo.java EditCourseInfo.javaDelCourselnfo.java CourselnfoSearchCnum.java这5个文件组成,它们组成了主界面中“课程管理”菜单的内容,其中包括增加、修改和删除功能Courseinfo是AddCourselnfo.EditCourselnfo DelCourselnfo这3个类的超类,由于AddCourselnfo EditCourselnfo和DelCourselnfo的界面显示有共同之处,所以编写包含共有的Courseinfo类,可以快速实现其3个类的界面显示它们之间的构成关系如图2所示图课程信息管理功能结构图2CourselnfoSearchCnum类是选择课程号的类,该类利用getCnum方法将选择出的学号返回给调用它的类调用它的类包括EditCourselnfo类和DelCourselnfo类4成绩信息管理系统成绩信息管理模块主要由Gradeinfo.java、AddGradelnfo.java EditGradelnfo.java这3个文件组成,这3个文件组成了主界面中“成绩管理”菜单的内容,其中包括增加和修改功能Gradeinfo类是AddGradelnfo、EditGradelnfo这两个类的超类,由于AddGradelnfo和EditGradelnfo的界面显示有共同之处,所以编写包含共有界面的Gradeinfo类,可以快速实现其两个子类的界面显示3个文件构成的关系如图3所示图成绩信息管理功能结构图35信息查询模块信息查询模块主要包括学生查询、课程查询和成绩查询3个部分学生查询由StuSearchSnum.java StuSearchSname.java StuSearchSsex.java StuSearchScollege.javaStuSearchSmajor.java和ResultStudent.java这6个文件组成,包括按照学号查询、按照学生姓名查询、按照性别查询、按照学院查询与按照专业查询StuSearchSnumjava类是按照学学号查询学生信息的类,支持学号在一定范围内搜索操作者只需输入需要查询的学号范围,系统会将范围内的信息显示在屏幕上StuSearchSnameJava类是按照学生姓名查询学生信息的类,支持根据学生姓名进行搜索操作者输入需要查询的学生姓名,系统会将符合条件的信息显示在屏幕上同时,如果操作者不输入任何信息,系统将会搜索出所有的学生信息StuSearchSsex.java类、StuSearchScollege.java类、StuSearchSmajor.java类和ResultStudent.java类的实现功能与StuSearchSnameJava类功能相似6数据库操作模块Database.java类是对数据库进行操作的类,包括连接数据库、执行SQL语句、关闭数据库连接等;StuBean.java类是用语对学生相关信息进行数据库操作的类,包括学生信息的增加、修改、删除、查询等;CrsBean.java类似乎用于对课程相关信息进行数据库操作的类,包括课程信息的增加、修改、删除、查询等;csBean.java类是用语对选课信息及成绩的相关信息进行数据库操作的类,包括选课信息的、修改、查询,以及成绩的登记、修改、查询等设计结果与分析
3.1学生管理系统的主界面,如图4所示图主界面42添加学生信息界面,如图5所示图添加学生信息界面5⑶若要修改学生信息,先单击“学号查询”选择要修改的学生学号,点击确定后,对所显示的学生信息进行修改运行界面如图6所示图修改学生信息界面64选择“学号”和所要选择的“课程”进行学生选课操作,运行界面如图7所示图学生选课界面75添加课程信息,运行效果如图8所示图添加课程界面86若要修改课程信息,单击“查询”按钮,选择所要修改课程的课程编号,之后该信息会自动显示出来,此时可进行信息的修改,运行效果如图9所示图修改课程信息界面9⑺若要添加成绩信息,下拉列表中选择学号,课程名称,之后对该同学的成绩进行录入,运行效果如图10所不图添加成绩界面10⑻信息查询包括学生查询、课程查询、成绩查询若按学号查询,则弹出输入学号的界面,如图11所示单击“确定”后,则显示所要查询的信息结果如图12所示学号姓名性别民族籍贯入学年份专业学院出生日期周五男满浙江英语文法学院3020001982-02-04131小毛男汉辽宁2009计算机信息工程1986-1-132肖夏夏汉四川2008-09-01计菖机信息工程...1986-09-25图按学号索引界面n图学生信息查询结果界面12设计体会
4.通过这次课程设计,使我对JAVA这门课又做了一次系统的复习,对各个知识点也都有了更深刻的理解,让我掌握的更扎实,同时也增强了实际操作能力,了解了学生信息管理系统的工作流程以及工作模式,程序开发过程中涉及到了数据库的相关知识,使我对数据库的使用也更加的熟练,另一方面也对编程语言有了新的认识,为以后的学习打下了基础在本系统的开发过程中,在知识、经验方面都存在着不足另外,在整个开发的过程中,时间也比较仓促不能对学生信息管理系统的整个流程完全熟悉,在需求分析时未能做到完全满足用户的需求.参考文献5
[1]丁振凡.Java语言实用教程[M].北京:北京邮电大学出版社,
2005.2105-121⑵宛延闿.实用Java程序设计教程[M].北京机械工业出版社,
2006.4234-250
[3]张广彬,孟红蕊,张永宝.Java课程设计案例精编[M].北京清华大学出版社,
2005.2355-363
[4]朱喜福.Java程序设计[M].北京:人民邮电出版社,
2005.9179-203附录lStuMSjavaimport javax.swing.UIManager;import java.awt.*;public classStuMS{boolean packFrame=false;public StuMSQ{StuMain frame=new StuMain;〃设置运行时窗口的位置if packFrame{frame.pack;}else{frame.validate;}DimensionscreenSize=Toolkit.getDefaultToolkit.getScreenSize;Dimension frameSize=frame.getSize;if frameSize.heightscreenSize.height{frameSize.height=screenSize.height;if frameSize.widthscreenSize.width{frameSize.width=screenSize.width;frame.setLocationscreenSize.width-frameSize.width/2,screenSize.height-frameSize.height/2;frame.setVisibletrue;public staticvoid mainString[]args{〃设置运行风格try UIManager.setLookAndFeelUIManager.getSystemLookAndFeelClassName;}catchException e{e.printStackTrace;}new StuMS;。
个人认证
优秀文档
获得点赞 0