《J2EE课程设计》课设报告册Word文档下载推荐.docx
《《J2EE课程设计》课设报告册Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《J2EE课程设计》课设报告册Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
五、个人增加功能逻辑简述15
六、实验总结(手写)15
案例五:
在线考试系统16
学习并体会软件制作的过程,理解MVC的软件架构16
在线考试系统项目的编写。
16
在教师讲解下,以分组形式完成该项目的代码编写,组内成员可划分模块,独立完成其中的某个模块。
在编写的过程中,体会MVC的软件架构,及该架构的优势,争取运用到日后的项目编写中。
四、项目展示:
六、个人编写模块逻辑简述19
七、MVC功能简述20
八、实验总结(手写)20
课程设计心得体会21
面向对象基础内容
1、实验目的:
回顾并熟练面向对象基本内容
2、实验内容:
将猫和老鼠的小故事编写成代码
3、实验要求:
在教师讲解下,理解面向对象中的若干名词概念,同时通过代码的编写强化概念,以及这些概念在程序中的应用
4、实验过程:
1、理解对象、属性、类的概念,编写出猫类,老鼠类
publicclassCat{
Stringname;
intage;
}
publicclassMouse{
Stringname;
2、理解方法的作用
3、构造器的概念及对象创建过程
4、方法的重载
?
:
?
(?
)
?
publicvoidadd(){...}
publicintadd(inta){....}
publicvoidadd(charc){.....}
publicintadd(inta,charc){....}
publicvoidadd(chara,intc){....}
五、实验总结(手写)
类的继承于方法重写
回顾并熟练继承于方法重写的基本内容
编写继承代码。
将鸟类继承关系用代码表达。
在教师讲解下,独立完成代码编写,理解于体会继承的语法,以及继承中若干知识点的应用。
1>
理解继承中的要点:
AextendsBAisaB
1?
2?
Java?
?
3?
super()?
4?
super?
5?
6?
Object?
2>
理解并应用方法的重写
/?
重写要点:
1>
void?
2>
),?
?
鸟类:
鹰类:
继承与鸟类
鸭类:
继承与鸟类(说明方法的重写)
5、实验总结(手写):
封装、重写Object类与JavaBean规范
理解封装的重要性,强化编码规范度,为日后编码做铺垫。
通过点类的编写体会封装的重要。
在教师讲解下,独立完成代码编写,理解于体会封装的语法,以及实体类编写的过程中若干知识点的应用。
1、封装:
属性尽可能私有,同时提供公有的set、get方法
2?
Object?
飞扬的小鸟
通过该小游戏的案例,让同学明白面向面向对象的思想以及在实际变成中的简单应用。
飞扬的小鸟小项目的编写。
在教师讲解下,独立完成该项目中的大部分代码编写,同时运用所学知识,尽可能的开发出新的功能,加强创新性,提升编码能力,寻找编程乐趣。
1、功能描述
飞扬的小鸟”项目,主要包括:
开始状态、游戏状态、结束状态三种状态。
游戏是通过对鼠标的监听来实现的,“小鸟”在游戏界面中的上下飞扬,玩家通过鼠标点击来控制“小鸟”的位置变化,”小鸟”需要通过柱子间隙方可得分,当”小鸟”碰撞到柱子或者地面时,游戏结束。
2、分析项目功能,抽象所有的对象,形成所需的类
3、游戏编码和功能实现
2.2游戏运行界面
2.3游戏结束
五、个人增加功能逻辑简述
1.背景音乐:
AudioClipaudio1=Applet.newAudioClip(newURL("
file:
/F:
/30.mid"
));
audio1.loop();
添加背景音乐,重点是怎样把背景音乐的类加入到游戏的主类中。
需要导入的类:
importjava.applet.Applet;
import.URL;
importjavax.imageio.ImageIO;
importjava.applet.AudioClip;
通过生成AudioClip这样一个接口用于播放音频剪辑的简单抽象,多个audioclip项能够同时播放。
虽然audioclip是一个接口,不能直接创建实例,但java.applet.Applet对象提供了一个静态的方法newAudioClip(),因此可以直接利用上述语句,得到一个AudioClip的实例引用
2.通过关卡后跳出文字提示:
switch(start){
caseGAME_OVER:
g.drawImage(gameoverImg,0,0,null);
g.drawString("
太low了,回去练练吧!
"
20,100);
break;
caseSTART:
g.drawImage(startImg,0,0,null);
}
if(score%1==0){
加油,再接再厉"
65,60);
if(score%2==0){
哎哟,不错"
使用此图形的上下文的当前颜色绘制由指定迭代器给定的文本。
迭代器必须为每个字符指定字体。
最左侧字符的基线位于此图形上下文坐标系统的(x,y)位置处。
六、实验总结(手写)
在线考试系统
学习并体会软件制作的过程,理解MVC的软件架构
登录界面:
菜单界面
开始考试界面
提交试卷
分数查询
离开
6、个人编写模块逻辑简述
1.MVC登录流程实现
1)增加LoginFrame界面登录事件响应代码:
login.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
clientContext.login();
//将请求转发给控制器
}
});
2)在LoginFrame界面增加控制器(ClientContext)的引用和
对象注入代码
3)创建控制器类ClientContext类,添加登录响应方法
publicvoidlogin(){
//System.out.println("
Login"
);
try{
intid=loginFrame.getUserId();
Stringpwd=loginFrame.getPwd();
Useruser=examService.login(id,pwd);
//登录成功
loginFrame.setVisible(false);
menuFrame.updateView(user);
menuFrame.setVisible(true);
}catch(IdOrPwdExceptione){
//登录失败
JOptionPane.showMessageDialog(
loginFrame,e.getMessage());
}}
4)创建控制器类ClientContext类,中添加界面对象引用和
注入方法.达到控制器能够操作这些对象的目的
5)为登录界面增加方法,用来获取用户的ID和PWD
//务必将idField引用到界面控件对象,务必将pwdField引用到界面控件对象
6)增加业务处理模型接口ExamService,并且提供登录方法
/**考试软件的核心业务模型*/
7)为ClientContext增加业务层接口的引用
8)为MenuFrame界面增加更新用户信息的方法updateView
//务必将info引用到界面控件对象
9)为ClientContext增加show()方法,用来显示软件界面.
10)创建LoginTest,创建ExamService测试实现.组装对象,测试软件
2.实现退出系统的功能:
1)为ClientContext添加exit方法
2)绑定到登录界面的cancel按钮上
3.利用用户数据实现登录业务逻辑:
1)实现业务功能实现类ExamServiceImpl的login方法
登录业务逻辑实现:
publicUserlogin(intid,Stringpwd)
throwsIdOrPwdException{
Useruser=entityContext.getUser(id);
if(user==null){
thrownewIdOrPwdException("
查无此人!
if(user.getPasswd().equals(pwd)){
returnuser;
//登录成功
密码错误!
4.系统配置文件的加载:
1)Properties类继承于Hashtable是一个散列表.
2)Properties提供了load方法可以将client.properties文件
读取为散列表对象,简洁方便
3)Properties提供散列表查找方法getProperty(key)读取key
对应的value值.
4)创建Config类封装Properties方便配置文件的读取:
5.创建整合测试Main.class:
publicstaticvoidmain(String[]args){
//初始化软件组件(零件)
LoginFrameloginFrame=newLoginFrame();
ExamFrameexamFrame=newExamFrame();
MenuFramemenuFrame=newMenuFrame();
WelcomeWindowwelcomeWindow=newWelcomeWindow();
ClientContextclientContext=newClientContext();
ExamServiceImplservice=newExamServiceImpl();
Configconfig=newConfig("
client.properties"
EntityContextentityContext=newEntityContext(config);
//组装组件
service.setEntityContext(entityContext);
loginFrame.setClientContext(clientContext);
clientContext.setExamService(service);
clientContext.setLoginFrame(loginFrame);
clientContext.setExamFrame(examFrame);
clientContext.setMenuFrame(menuFrame);
clientContext.setWelcomeWindow(welcomeWindow);
//启动软件界面
clientContext.show();
6.开始考试功能实现
1)视图MenuFrame中增加事件监听
start.addActionListener(newActionListener(){
clientContext.start();
}});
2)控制器,增加事件响应方法start()
publicvoidstart(){
try{
//考试信息
ExamInfoexamInfo=examService.startExam();
//第一道考题
QuestionInfoquestionInfo=
examService.getQuestion(0);
examFrame.updateView(examInfo,questionInfo);
menuFrame.setVisible(false);
examFrame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
menuFrame,e.getMessage());
}}
3)业务层:
增加:
startExam()getQuestion()
开始考试业务描述:
开始考试时候,抽取考卷试题,每个level抽取2题
返回考试描述信息:
ExamInfo
考卷是:
有抽取的题目组成的线性表集合
获取试题:
根据题目序号获取指定试题
4)持久层
更新Main.class
7.上/下一题功能实现和交卷
8.1)视图(增加界面事件监听)
A增加对控制器的引用
privateClientContextclientContext;
publicvoidsetClientContext(ClientContextclientContext){
this.clientContext=clientContext;
}
B增加界面事件监听
C更新视图为下/上一题(更新用户的答案)
2)控制器(增加界面功能实现方法next()prev(),send())
/**当前正在答对题目,开始考试时候,初始化为第一题
每次翻页,更新为新的当前题目*/
privateQuestionInfocurrentQuestion;
/**当前考试的状态信息,在开始考试时候初始化为考试信息
*重构开始开始start()代码!
3)业务层(保存用户答案saveUserAnswers())
8.查看考分功能实现:
1)界面
result.addActionListener(newActionListener(){
clientContext.result();
}});
2)控制器
publicvoidresult(){
intscore=examService.getScore();
menuFrame,"
考试分数:
+score);
}}
3)业务层
publicintgetScore(){
if(!
finish)
thrownewRuntimeException("
还没有考试呀!
returnscore;
9.关闭窗口问题与窗口事件监听
1)设置默认的窗口关闭操作
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
2)绑定窗口关闭事件
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
clientContext.send();
七、MVC功能简述
MVC模式同时提供了对HTML、CSS和JavaScript的完全控制。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC分层有助于管理复杂的应用程序,因为可以在一个时间内专门关注一个方面。
例如,可以在不依赖业务逻辑的情况下专注于视图设计。
同时也让应用程序的测试更加容易。
MVC分层同时也简化了分组开发。
不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
MVC好处是它能为应用程序处理很多不同的视图。
在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式
控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。
它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
八、实验总结(手写)
课程设计心得体会(手写)