java大作业.docx

上传人:b****7 文档编号:9969355 上传时间:2023-02-07 格式:DOCX 页数:27 大小:1.28MB
下载 相关 举报
java大作业.docx_第1页
第1页 / 共27页
java大作业.docx_第2页
第2页 / 共27页
java大作业.docx_第3页
第3页 / 共27页
java大作业.docx_第4页
第4页 / 共27页
java大作业.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

java大作业.docx

《java大作业.docx》由会员分享,可在线阅读,更多相关《java大作业.docx(27页珍藏版)》请在冰豆网上搜索。

java大作业.docx

java大作业

Java语言课程设计报告

 

专业计算机科学与技术班级09级(5)班

课题六小说阅读器

报告成绩

 

日期:

2012年4月19日

 

一、课程设计目的3

1.1、对java语言知识的巩固3

1.2、提高运用java语言的能力4

二、课程设计要求5

三、设计题目分析5

3.1、题目简介5

3.2、设计要求5四、课程设计内容6

4.1、总体设计6

4.2、详细设计9

4.3、调试与测试15

五、设计心得与总结18

六、建议19

七、评阅意见21

 

一、设计的目的

Java程序设计是计算机网络工程专业一门重要的专业必修课。

为了进一步巩固课堂上所学到的知识,深刻把握Java技术的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设Java程序设计的课程设计。

通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。

该课程设计主要是Java语言程序设计的实现。

通过该课程设计,可以将学生课堂上掌握的理论知识与处理数据的业务相结合,以检验我们掌握知识的宽度、深度及对知识的综合运用能力。

1.1对java语言知识的巩固

Java作为新一代的面向对象编程语言,具有跨平台、安全、高可靠、多线程等特点,在计箅机网络及通信应用软件开发上得到广泛的应用。

巩固Java语言的基本语法、面向对象编程方法和Java高级技术。

主要内容包括:

Java语言基础、数据类型、Java类和对象、JavaI/O流、Java图形界面以及JDBC数据库编程、Java网络编程和线程编程。

Java语言是完全面向对象的,所有设计都必须在类中实现,一个java程序就是多个类的集合;为8种基本数据类型提供相应的基本数据类型包装类,是基本数据类型与类相关联;将数组设计为引用类型,使用方法与对象相同,并且每个数组都有长度属性;不支持类似C语言的面向过程设计,不支持类似C++语言的全称变量、goto语句、宏定义、全局函数等语法规则,不支持结构、联合和指针等数据类型。

Java语言通过应用模型实现了指针的功能,通过类实现了结构类型。

Java应用程序有两种形式:

Application和Applet。

Application是能够独立运行的应用程序,有控制台图形用户界面两种运行方式。

Java应用由一个或多个扩展名为“.java”的文件组成。

一个java应用程序就是多个类的集合,类有关键字Class声明,类中包含成员变量和成员方法,main()方法是类首先执行的方法,语句必须写在类的方法中。

例如基于控制台运行的Application应用程序如下:

publicclassHello

{

publicstaticvoidmain(Stringargs[])

{

System.out.println(“Hello”);

}

}

Java程序所有语句都必须写在类中,class是声明的关键字,Hello是类名。

在main()方法中,用标准输出语句System.out.println()在屏幕上显示一个字符串“Hello!

”。

文件名为“Hello.java”。

Applet是可以嵌入Web页面的最小应用,它不能独立运行,必须嵌入到超文本(*.html)中,游浏览器中的java解释器解释执行。

Applet只是Application的特殊形式,要编写Applet,必须知道如何编写Application。

如显示字符串“Hello!

”的Applet应用程序如下:

importjava.awt.*;

importjava.applet.Applet;

publicclassHelloAppletextendsApplet

{

Publicvoidpaint(Graphicsg)

{

g.setColor(red);

g.drawString(“Hello!

”,20,20);

}

}

其次,在编写程序时可以加入注释部分,以说明变量的含义、语句的作用和程序段的功能,从而帮助人们理解和阅读程序。

当然也可以不加。

因此,一个好的程序应该有详细的注释。

在添加程序注释时必须注意,注释内容一定放在“/*”和“*/”之间。

而且“/*”和“*/”必须成对出现,“/*”和“*/”之间还不能有空格。

注释部分只适用于阅读,对程序的运行不起任何作用,这个和在C语言中发挥的作用可以说是一模一样的。

1.2提高应用java语言的能力

Java语言是一门优秀的计算机程序设计语言。

是目前软件设计中最具生命力的计算机编程语言。

不仅可以用来开发大型的应用程序,而且,也可以用在网络程序设计中。

当前Java已成为网络时代最为重要的编程上具之一。

为了适应企业的需要,提升毕业生的就业率.几乎所有的大、中专院校都竞相开设了Java语言程序设计课程。

而这种市场对Java人才的需求使得学生不得不具备:

沟通能力,Java软件开发的动手能力,Java软件开发的创新能力,同时还要具有社会的适应能力。

加强实训在Java的学习中.我们对理论的学习已有一定的基础,对项目也有了一定的认识。

以课程设计开始从而进一步提高我们的实践能力,使我们在毕业时至少有相当于半年的Java软件开发的能力,更进一步适应社会和企业的需求。

通过对我们Java能力的培养提出几点看法,可以提高学生对Java语言学习的认识以及增强自学性。

也可以提高学生对所学知识的综合运用,适应社会和企业的需求,达到高校的培养目标。

这门课是对大二的java的一个重要的补充,与理论学习骑着相辅相成的作用。

通过本程序的训练,我们增强对编程的进一步认识,进一步掌握编程思路,是我们具备了基本的程序设计与调试技能,加强了相关概念的理解更准确的掌握了java语言的特点及语法,熟练掌握了java语言的编程方法,具有运用java语言解决和处理实际问题的能力。

培养学生程序设计的逻辑抽象能力和编程素质,使学生养成良好的程序设计风格,培养学生的自学能力,获取计算机新知识、新技术的能力,使学生具备一定的实践能力和创新能力,为将来打下坚实的基础。

上机实验之前,学生应该为每次上机内容做好充分的课前准备,对每次上级完成的内容都要进行认真的分析,选择合适的算法或者说是代码,列出具体步骤,写出符合题目要求的程序步骤。

按照实验目的和实验内容以及思考题的要求进行上机操作,录入程序,编译程序,反复修改,知道使用要求的算法,使程序正常运行得出正确的输出结果为止。

根据实验结果,写出实验报告。

实验报告应包括:

实验目的,程序清单呢,运行结果,所选取的算法及其优缺点、以及通过上机取得的结果得出的哪些经验。

根据各模块的知识点,划分成基础型、应用型、综合设计型到创兴提高的循序渐进的四个层次。

基础型实验为应知的基础语法实验。

 

二、课程设计的要求

本课程设计是重要的实践性环节之一,是在学习完《高级程序设计语言(C)》课程之后进行的一次全面的综合练习。

为了能够更好的掌握C语言程序,要求必须选出具体的题目,这样才能通过自己亲手编写程序,掌握编写程序的方法及要点。

要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本内容的理解。

同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统的练习。

1)掌握Java的语言规范,面向对象的核心概念和特性。

2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等。

3)掌握Java应用软件的开发环境和开发过程。

4)掌握基于Jsp网站的开发环境和开发过程。

5)掌握面向对象的思想和程序设计方法。

三、设计题目分析

3.1题目简介

编写小说阅读器

3.2设计要求

编写界面良好、操作方便的文本书籍阅读器,应包含各种模式(分页、全屏、文章结构控制等)、有书签、有记忆、有各种阅读模式的功能。

其功能包括以下几点:

根据系统自带的文档编辑器的特征设计,包括如下的功能模块:

一、整体结构框架包括:

菜单栏和文档编辑区

二、每个框架分别包含不同的子框架,各个模块的具体框架:

1.菜单栏:

文件、字体、速度、帮助

2.菜单栏中各个子菜单功能

文件:

新建、打开、保存、另存为、退出

字体:

斜体、粗体、原字体

速度:

原速、阅读速度

帮助:

关于制作者

3.子菜单功能的实现主要的几个功能介绍

1)打开与另存为:

两个窗体调用系统函数直接利用,注意格式的选择。

2)速度:

通过对阅读速度的选择设置自动翻页的速度。

4.文本显示区

监视文本内容是否改变、控制每页出现的文字。

三、系统运行环境与开发工具

程序设计主要分为两大部分:

简单GUI设计和程序功能设计。

通过GUI设计实现图形用户界面,提供图形菜单,方便用户操作。

使用Java语言编写一个能够对输入文字进行操作,具有合理的界面,能够在界面中实现右键快捷方式,对文档内容进行编辑操作,并且能够顺利退出的程序。

通过设计和实现一个具有基本功能的文本编辑器,提高我们对Java语言设计的掌握能力,理论联系实际,进一步提高软件开发技术,从而培养我们分析、解决问题的能力。

 

四、课程设计内容

课程设计内容这部分包括了课程的总体设计和详细设计,以及程序的调试与测试。

为了能更明确说明程序的内容,下面我以小节的形式一点一点给出程序内容及功能的说明。

4.1总体设计

一、程序设计思路

在本程序中,设计了一个菜单栏和文本内容区。

设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。

JMenu用来制作菜单,菜单包括“文件”“字体”“关于”。

JTextPane主要用来显示文本。

为了加入颜色的设置,所以加了一个JColorChooser组件。

二、模块说明图

 

在图中,首先创建一个名为mynotepad的类并继承JFrame类作为最底层的容器。

 

 

 

 

 

在图中,构造一个mynotepad类时要做三件事情,分别是初始化容器(initTextContent)、初始化组件(initMenu、initAboutDialog)、设置事件监听器。

三、程序流程

 

FalseFalse

 

truetruetruetruetruetruetruetrue

 

四、程序相关说明

整个阅读器分为2快:

菜单栏和文字显示入区。

本程序中首先定义一个mynotepad类继承JFrame作为最底层容器。

(1).Textcontent为程序文本输入区。

(2).Menu为菜单栏。

(3).AboutDialog为关于对话框。

(4).要想阅读器完成需求分析中相应的功能,还必须添加事件监听器。

事件监听器不仅要添加在菜单栏和文字显示区,还需加在容器中。

本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。

另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并

五、程序运行界

1图为初次进入系统的功能模块图

4.2详细设计

这部分包含了功能模块的说明和工作流程图。

要想让该程序实现其所要求的程序功能,必须设计出每部分所需要的程序语句。

一、构建菜单栏及其下拉菜单

JLabelbook_name=newJLabel("书名信息");

JLabelsize=newJLabel("字体大小");

JLabelziti=newJLabel("字体选择");

JLabelvt=newJLabel("阅读速度");

JComboBoxsize1=newJComboBox();

JComboBoxziti1=newJComboBox();

JComboBoxvt1=newJComboBox();

JComboBoxbackg=newJComboBox();

menubar=newJMenuBar();

menu1=newJMenu("文件");

menu2=newJMenu("字体");

menu3=newJMenu("速度");

menu4=newJMenu("帮助");

menu_open=newJMenu("打开");

menuItemNew=newJMenuItem("新建(N)",KeyEvent.VK_N);

menuItemOpen=newJMenuItem("打开(O)",KeyEvent.VK_O);

menuItemSave=newJMenuItem("另存为(S)",KeyEvent.VK_S);

menuItemExit=newJMenuItem("退出(E)",KeyEvent.VK_E);

menuItemItalic=newJMenuItem("斜体(I)",KeyEvent.VK_I);

menuItemPlain=newJMenuItem("正常(P)",KeyEvent.VK_P);

menuItemBold=newJMenuItem("粗体(B)",KeyEvent.VK_B);

menuItemsudu=newJMenuItem("阅读速度(Y)",KeyEvent.VK_Y);

menuItemyuansu=newJMenuItem("原速");

menuItemHelp=newJMenuItem("关于");

menuItem_save_sign=newJMenuItem("加入书签");

menuItem_open_sign=newJMenuItem("打开书签");

menuItem_delete_sign=newJMenuItem("删除书签");

menuItem_open_file=newJMenuItem("打开文件");

menuItem_save_as=newJMenuItem("另存为”);

2图为各个菜单栏及下拉菜单的功能图

二、各菜单的监听事件

1、文件

menuItemNew.addActionListener(this);

menuItemOpen.addActionListener(this);

menuItemSave.addActionListener(this);

menuItemExit.addActionListener(this);

menuItemItalic.addActionListener(this);

if(e.getSource().equals(menuItemOpen)||e.getSource().equals(menuItem_open_file)){open();}

if(e.getSource().equals(menuItemSave)||e.getSource().equals(menuItem_save_as)){save();}

if(e.getSource().equals(menuItemExit)){exit();}

2、字体

menuItemItalic.addActionListener(this);

menuItemPlain.addActionListener(this);

menuItemBold.addActionListener(this);

if(e.getSource().equals(menuItemItalic)){italic();}

if(e.getSource().equals(menuItemPlain)){plain();}

if(e.getSource().equals(menuItemBold)){bold();}

3、速度

b_read.addActionListener(this);

b_stop.addActionListener(this);

b_icolo.addActionListener(this);

b_bcolo.addActionListener(this);

b_exit.addActionListener(this);

if(e.getSource().equals(menuItemsudu)){}

if(e.getSource().equals(menuItemyuansu)){speed=15000;start();}

if(e.getSource().equals(b_read)){start();}

if(e.getSource().equals(b_stop)){stop();}

if(e.getSource().equals(b_bcolo)){ziticolor();}

if(e.getSource().equals(b_exit)){exit();}

三、各按钮的功能及位置

JButtonb_ok=newJButton("确定");

JButtonb_read=newJButton("自动翻页");

JButtonb_stop=newJButton("停止翻页");

JButtonb_exit=newJButton("退出");

JButtonb_icolo=newJButton("背景颜色");

JButtonb_bcolo=newJButton("字体颜色");

book_name.setBounds(455,0,90,30);

size.setBounds(10,10,90,20);

size1.setBounds(10,30,90,20);

ziti.setBounds(10,50,90,20);

ziti1.setBounds(10,70,90,20);

vt.setBounds(10,90,90,20);

vt1.setBounds(10,110,90,20);

b_ok.setBounds(10,140,90,30);

b_read.setBounds(870,30,100,30);

b_stop.setBounds(870,80,100,30);

backg.setBounds(870,170,115,30);

b_bcolo.setBounds(870,220,100,30);

b_exit.setBounds(870,520,100,30);

四、实现自动翻页

java.util.Timertimer=newjava.util.Timer();

java.util.TimerTasktimertask=newTimerTask(){

publicvoidrun(){

Js.getVerticalScrollBar().setValue(position);

position=position+530;

}

};

publicvoidstart(){

timertask.cancel();

timertask=newTimerTask(){

publicvoidrun(){

position=Js.getVerticalScrollBar().getValue()+530;

Js.getVerticalScrollBar().setValue(position);

}

};

timer.schedule(timertask,0,speed*1000);

b_read.setEnabled(false);

b_stop.setEnabled(true);

}

publicvoidstop(){

timertask.cancel();

b_stop.setEnabled(false);

b_read.setEnabled(true);

}

五、异常处理

在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。

本程序中选用的异常处理机制是try,catch。

捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。

try{

FileWriterWritef=newFileWriter(file);

Writef.write(content.getText());

Writef.close();

}

catch(Exceptione){e.printStackTrace();}

}

voidunfold(){

try{

FileReaderReadf=newFileReader(file);

intlen=(int)file.length();

char[]buffer=newchar[len];

Readf.read(buffer,0,len);

Readf.close();

content.setText(newString(buffer));

}catch(Exceptione){e.printStackTrace();

}

4.3调试与测试

1、打开小说的界面

2、添加背景后的界面

3、改变字体颜色的界面

 

4、改变文本框中字体大小及颜色的界面

4.3.1、调试过程及数据结果的分析

所谓程序调试,是指对程序的查错和排错。

调试程序一般经过以下几个步骤:

一、.进行人工排查,即静态检查,在写好一个程序以后,不要匆匆忙忙上机,而应对纸面上的程序进行人工检查,这一不是十分重要的,它能让我们发现由于疏忽而造成的多数错误,如某条语句后忘写“;”,或“{}”没有成对出现。

为了更有效地进行人工检查,所编程序应力求做到以下几点:

1、应该采用结构化程序方法编程,以增加可读性,2、尽可能多加注释,以帮助每段程序的理解,3、在编写复杂的程序时,不要将全部语句都写在main函数中,而要更多的利用函数,用一个函数来出现一个单独独的功能,这样既易于阅读也便于调试。

二、在人工检查后,才可以上机调试,通过上机发现错误成为静态检查,在编译时,给出语法错误的信息,它包括哪一行错及错误类型,可以各根据提示的信息具体找出程序中出错之处并改正,应当注意的是:

有时提示出错行并不是真正出错的行,如果再提示出错的行上找不到错误的话应当到上一行再找,另外,有时提示出错的类型并非绝对准确,由于出错的情况繁多而且各种错误互有关联,因此,要善于分析,找出真正的错误,而不要只从字面意义上死抠出错误信息。

如果系统提示的错误信息多,应当从上到下逐一改正。

有时显示出一大片错信息往往使人感到问题严重,无从下手。

其实可能只有一二个错误。

例如,对所用变量未定义,编译时就会对所有含该变量的语句发出出错信息,只要加上一个定义变量,所有错误就都消除,不用再检查其他。

三、在改正语法错误后,程序经过连接就得到可执行的目标程序。

运行程序,输入程序所需数据,就可得到运行结果。

数据结果分析:

对于此程序他的数据较为简单。

有时,数据比较复杂,难以立即判断结果是否正确,可以事先找出一组具有特征的数据,输入这些数据可以很容易判断正确与否的结果。

运行结果不对

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1