J2EE应用开发课程设计任务书.docx
- 文档编号:11939584
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:19
- 大小:23.21KB
J2EE应用开发课程设计任务书.docx
《J2EE应用开发课程设计任务书.docx》由会员分享,可在线阅读,更多相关《J2EE应用开发课程设计任务书.docx(19页珍藏版)》请在冰豆网上搜索。
J2EE应用开发课程设计任务书
枣庄学院
信息科学与工程学院
课程设计任务书
题目:
校园一卡通学生信息管理系统设计
学号:
201012220219
姓名:
李云英
专业:
计算机应用技术
课程:
J2EE应用开发
指导教师:
孙晓飞职称:
助教
完成时间:
2012年11月----2012年12月
枣庄学院信息科学与工程学院制
2012年12月28日
课程设计任务书及成绩评定
课程设计的任务和具体要求
课程设计任务:
(1)掌握软件开发的基本工作流程,巩固JAVA程序设计课程所学的内容;
(2)培养学生的计算机思维能力以及合作的精神,培养学生分析、解决问题的能力,提高学生的科技论文写作能力。
具体要求:
(1)研究课程设计任务,并进行系统需求分析;
(2)对系统进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;
(3)实现各功能模块代码;
(4)组装各模块,并测试、完善系统。
指导教师签字:
、日期:
指导教师评语
成绩:
指导教师签字:
日期:
课程设计所需软件、硬件等
软件:
netbeansIDE、JDK、SQLServer2005数据库
硬件:
计算机相关硬件
课程设计进度计划
起至日期
工作内容
备注
12月15日—12月17日
12月18日—12月19日
12月20日—12月24日
12月25日—12月27日
需求分析
框架设计
代码实现
写课程设计书
参考文献、资料索引
序号
文献、资料名称
编著者
出版单位
[1]王克宏、郝建文.Java技术教程[M].北京:
清华大学出版社,2002年
[2]基于JAVA的学生信息管理系统李伟电子科技大学【硕士】电子科技大学2009-04-010578
[3]J2EE框架及全文检索技术在信息管理系统中的应用徐立峰电子科技大学【硕士】电子科技大学2009-10-01
[4]JavaEE编程技术清华大学出版社、北京交通大学出版社郝玉龙编著
目录
引言
1、正文……………………………………………………………………………4
1.1系统分析………………………………………………………………4
1.2数据库模型分析与设计………………………………………………4
1.3系统功能测试…………………………………………………………5
2、主要代码实现…………………………………………………………………5
3、结论和建议……………………………………………………………………15
4、致谢……………………………………………………………………………15
5、参考文献………………………………………………………………………15
引言
利用计算机进行校园一卡通学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。
本设计就是一个为实现信息化管理而开发的信息管理系统,能够进行信息存储、查询、修改等能功。
该系统由六个模块构成,包括学籍管理系统的主界面模块、学生卡信息及充值模块、学生消费管理模块、查询与打印学生消费信息模块、删除学生信息模块和数据库操作模块。
通过这些模块的有机结合,能方便的对学生卡使用信息进行综合管理,从而实现了信息化管理的目的。
1、正文
1.1系统需求分析
(1)学生信息管理系统主界面
欢迎界面包括背景图片及字幕(可以设计成滚动字幕效果),左上方的菜单条设计成下拉式。
包括录入学生基本信息、修改学生基本信息、删除学生基本信息、查询及打印学生基本信息和返回主页面五项菜单项。
涉及的类ManagerWindow在ManagerWindow.java文件
(2)学生卡信息及充值模块
采用网格布局设置学号、姓名、性别、专业、年级等,右侧为选择照片区,最下面设置录入及重置按钮。
类InputStudent在InputStudent.java文件
(3)学生消费管理模块
左侧是修改项目,输入要修改的学号、姓名、性别、专业、年级、出生等;右侧选择修改的照片。
下设录入修改及重设按钮。
类ModifySituation在ModifySituation.java文件。
(4)查询与打印学生消费信息模块
另外打开新的查询对话框,同样按学号、姓名等查询。
下设打印类型按钮。
类Inquest在Inquest.java文件
(5)删除学生信息
同样设置删除的对象,包括学号、姓名、性别等。
另设置删除按钮,家监视器弹出警告对话框。
类Delete在Delete.java文件。
1.2数据库模型分析与设计
数据库模型描述了在数据库中结构化和操纵数据的方法,模型的结构部分规定了数据如何被描述(例如哈希表、表等);模型的操纵部分规定了数据的添加、删除、显示、维护、打印、查找、选择、排序和更新等操作。
数据库模型的分类:
分层模型、关系模型、网络模型和对象模型。
本设计使用SQLServer数据库。
1.3系统功能测试
功能测试主要是测试程序模块是否实现了设计中所要求的功能。
功能测试中需要注意的有:
(1)查询功能中,有按单一查询条件进行查询的,也有按多个查询条件组合查询的。
这里要注意的多个查询条件之间的关系。
(2)录入功能中,需要注意的是前台设置的数值长度是否大于后台数值长度,以及前台和后台的数据结构是否相符,很多时候录入功能无法实现是由于这些原因。
还有就是必须录入的字段的设置时候有误。
(3)测试删除功能中需要注意的是单击"删除"按钮后,一般会出现提示信息,询问是否确定删除。
通常情况下,我们单击"确认"按钮查看信息是否被删除掉了,而忽略了单击"取消"按钮后程序的反应:
这时有可能的是没有删除,还有一种可能是即便单击了"取消"按钮,也一样删除了数据。
另外,在删除多条记录的时候,要注意连续选中的几条记录是否真正都被删除掉了,即如果再按照这种查询方式查询,时候还能查询出来。
有的时候需要在数据库中设立一个标志位,而不是真正的物理删除。
所以在下一次查询中,可能还会被查询出来,这主要是因为在查询条件中没有将标志考虑在内。
(4)关于修改功能的测试主要是看修改确认后是否数据真正已被修改了。
这是最基本的功能,需要注意的是看是否能把不应该修改的数据也修改成功了。
2、主要代码实现
附部分主要源代码:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
importjavax.swing.filechooser.*;
publicclassModifySituationextendsJPanelimplementsActionListener{
StudentPicturepic;
HashMap
JTextField学号,姓名,年级,出生;
JComboBox专业;
JButton选择照片;
JRadioButton男,女;
ButtonGroupgroup=null;
JButton充值金额,录入修改,重置;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
FilesystemFile,imagePic;
JComboBoxoldMess;
Studentstu=null;
publicModifySituation(Filefile){
systemFile=file;
pic=newStudentPicture();
学号=newJTextField(6);
姓名=newJTextField(6);
专业=newJComboBox();
try{
FileReaderinOne=newFileReader("专业.txt");
BufferedReaderinTwo=newBufferedReader(inOne);
Strings=null;
inti=0;
while((s=inTwo.readLine())!
=null)
专业.addItem(s);
inOne.close();
inTwo.close();
}
catch(IOExceptionexp){
专业.addItem("数学");
专业.addItem("计算机科学与技术");
}
年级=newJTextField(6);
出生=newJTextField(6);
选择照片=newJButton("选择");
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);
oldMess=newJComboBox();
充值金额=newJButton("充值金额");
录入修改=newJButton("录入修改");
录入修改.setEnabled(false);
选择照片.setEnabled(false);
重置=newJButton("重置");
学号.addActionListener(this);
充值金额.addActionListener(this);
录入修改.addActionListener(this);
重置.addActionListener(this);
选择照片.addActionListener(this);
Boxbox1=Box.createHorizontalBox();
box1.add(newJLabel("输入要修改信息的学号:
",JLabel.CENTER));
box1.add(学号);
box1.add(充值金额);
Boxbox2=Box.createHorizontalBox();
box2.add(newJLabel("(新)姓名:
",JLabel.CENTER));
box2.add(姓名);
Boxbox3=Box.createHorizontalBox();
box3.add(newJLabel("(新)性别:
",JLabel.CENTER));
box3.add(男);
box3.add(女);
Boxbox4=Box.createHorizontalBox();
box4.add(newJLabel("(新)专业:
",JLabel.CENTER));
box4.add(专业);
Boxbox5=Box.createHorizontalBox();
box5.add(newJLabel("(新)年级:
",JLabel.CENTER));
box5.add(年级);
Boxbox6=Box.createHorizontalBox();
box6.add(newJLabel("(新)出生:
",JLabel.CENTER));
box6.add(出生);
Boxbox7=Box.createHorizontalBox();
box7.add(newJLabel("学生已有的数据:
",JLabel.CENTER));
box7.add(oldMess);
BoxboxH=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());
JPanelpicPanel=newJPanel();
picPanel.setBackground(Color.green);
picPanel.add(newJLabel("选择照片:
",JLabel.CENTER));
picPanel.add(选择照片);
JPanelputButton=newJPanel();
putButton.setBackground(Color.yellow);
putButton.add(录入修改);
putButton.add(重置);
JPanelmessPanel=newJPanel();
messPanel.setBackground(Color.pink);
messPanel.add(boxH);
setLayout(newBorderLayout());
JSplitPanesplitV=
newJSplitPane(JSplitPane.VERTICAL_SPLIT,picPanel,pic);
JSplitPanesplitH=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,messPanel,splitV);
add(splitH,BorderLayout.CENTER);
add(putButton,BorderLayout.SOUTH);
validate();
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==充值金额||e.getSource()==学号){
oldMess.removeAllItems();
Stringnumber="";
imagePic=null;
stu=null;
number=学号.getText();
if(number.length()>0){
try{
inOne=newFileInputStream(systemFile);
inTwo=newObjectInputStream(inOne);
基本信息表=(HashMap
inOne.close();
inTwo.close();
}
catch(Exceptionee){}
if(基本信息表.containsKey(number)){
录入修改.setEnabled(true);
选择照片.setEnabled(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(imagePic);
pic.repaint();
姓名.setText(stu.getName());
年级.setText(stu.getGrade());
出生.setText(stu.getBorth());
}
else{
录入修改.setEnabled(false);
选择照片.setEnabled(false);
Stringwarning="该学号不存在!
";
JOptionPane.showMessageDialog(this,warning,"警告",
JOptionPane.WARNING_MESSAGE);
clearMess();
}
}
else{
录入修改.setEnabled(false);
选择照片.setEnabled(false);
Stringwarning="必须要输入学号!
";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
clearMess();
}}
elseif(e.getSource()==录入修改){
Stringnumber="";
number=学号.getText();
if(number.length()>0){
try{
inOne=newFileInputStream(systemFile);
inTwo=newObjectInputStream(inOne);
基本信息表=(HashMap
inOne.close();
inTwo.close();
}
catch(Exceptionee){}
if(基本信息表.containsKey(number)){
Stringquestion="该生基本信息已存在,您想修改他(她)的基本信息吗?
";
JOptionPane.showMessageDialog(this,question,"警告",
JOptionPane.QUESTION_MESSAGE);
Stringm="基本信息将被修改!
";
intok=JOptionPane.showConfirmDialog(this,m,"确认",
JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION){
Stringname=姓名.getText();
if(name.length()==0)
name=stu.getName();
Stringdiscipling=(String)专业.getSelectedItem();
if(discipling==null)
discipling=stu.getDisciping();
Stringgrade=年级.getText();
if(grade.length()==0)
grade=stu.getGrade();
Stringborth=出生.getText();
if(borth.length()==0)
borth=stu.getBorth();
Stringsex=null;
if(男.isSelected())
sex=男.getText();
else
sex=女.getText();
if(imagePic==null)
imagePic=stu.getImagePic();
Student学生=newStudent();
学生.setNumber(number);
学生.setName(name);
学生.setDiscipling(discipling);
学生.setGrade(grade);
学生.setBorth(borth);
学生.setSex(sex);
学生.setImagePic(imagePic);
try{
outOne=newFileOutputStream(systemFile);
outTwo=newObjectOutputStream(outOne);
基本信息表.put(number,学生);
outTwo.writeObject(基本信息表);
outTwo.close();
outOne.close();
clearMess();
}
catch(Exceptionee){}
录入修改.setEnabled(false);
选择照片.setEnabled(false);
}
elseif(ok==JOptionPane.NO_OPTION){
录入修改.setEnabled(true);
选择照片.setEnabled(true);
}
}
else{
Stringwarning="该学号没有基本信息,不能修改!
";
JOptionPane.showMessageDialog(this,warning,"警告",
JOptionPane.WARNING_MESSAGE);
录入修改.setEnabled(false);
选择照片.setEnabled(false);
clearMess();
}
}
else{
Stringwarning="必须要输入学号!
";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
录入修改.setEnabled(false);
clearMess();
录入修改.setEnabled(false);
选择照片.setEnabled(false);
}
}
elseif(e.getSource()==选择照片){
JFileChooserchooser=newJFileChooser();
FileNameExtensionFilterfilter=newFileNameExtensionFilter(
"JPG&GIFImages","jpg","gif");
chooser.setFileFilter(filter);
intstate=chooser.showOpenDialog(null);
FilechoiceFile=chooser.getSelectedFile();
if(choiceFile!
=null&&state==JFileChooser.APPROVE_OPTION){
选择照片.setText(choiceFile.getName());
imagePic=choiceFile;
pic.setImage(imagePic);
pic.repaint();
}
}
elseif(e.getSource()==重置){
clearMess();
录入修改.setEnabled(false);
选择照片.setEnabled(false);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2EE 应用 开发 课程设计 任务书