Java课设留言板.docx

上传人:b****3 文档编号:3813605 上传时间:2023-05-06 格式:DOCX 页数:15 大小:117.98KB
下载 相关 举报
Java课设留言板.docx_第1页
第1页 / 共15页
Java课设留言板.docx_第2页
第2页 / 共15页
Java课设留言板.docx_第3页
第3页 / 共15页
Java课设留言板.docx_第4页
第4页 / 共15页
Java课设留言板.docx_第5页
第5页 / 共15页
Java课设留言板.docx_第6页
第6页 / 共15页
Java课设留言板.docx_第7页
第7页 / 共15页
Java课设留言板.docx_第8页
第8页 / 共15页
Java课设留言板.docx_第9页
第9页 / 共15页
Java课设留言板.docx_第10页
第10页 / 共15页
Java课设留言板.docx_第11页
第11页 / 共15页
Java课设留言板.docx_第12页
第12页 / 共15页
Java课设留言板.docx_第13页
第13页 / 共15页
Java课设留言板.docx_第14页
第14页 / 共15页
Java课设留言板.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java课设留言板.docx

《Java课设留言板.docx》由会员分享,可在线阅读,更多相关《Java课设留言板.docx(15页珍藏版)》请在冰点文库上搜索。

Java课设留言板.docx

Java课设留言板

华北科技学院

 

课程设计说明书

 

班级:

计算B101姓名:

设计题目:

Java留言板设计

设计时间:

2013.1.7至2013.1.11

指导教师:

________________________________

评语:

________________________________

_________________________________________

_________________________________________

_________________________________________

_________________________________________

评阅成绩:

____评阅教师:

_____

 

第1部分《课程设计》目标和内容

《课程设计》实训课程是对学生的一种全面综合训练,它包括需求分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。

是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。

通常,课程设计的课题比平时的习题复杂的多,也更接近实际。

课程设计着眼于理论与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养程序设计工作所需要的知识综合能力和动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。

1.1课程设计目标

使学生综合使用所学过的JAVA语言程序设计知识,掌握面向对象程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的面向对象程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。

课程设计的目的和要求:

(1)使学生巩固和加强《JAVA程序设计》课程的理论知识。

(2)使学生掌握JAVA语言的基本概念、语法、语义和数据类型的使用特点。

(3)使学生掌握JAVA语言程序设计的方法及编程技巧,能正确使用JAVA语言编写程序。

(4)进一步理解与运用面向对象程序设计的思想和方法。

(5)使学生掌握调试程序的基本方法及上机操作方法。

(6)掌握书写设计开发文档的能力,使学生学会撰写训练总结报告。

实训的思想和方法还可以作为学生做毕业论文时的参考资料。

(7)通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。

为学生做毕业设计打好基础。

(8)初步掌握开发一个小型实用程序的基本方法:

结合实际应用的要求,使技能训练的内容既覆盖知识点,又接近工程实际需要。

通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。

(9)培养学生的创新能力和创新思维。

学生可以根据指导书和相关文献上的参考方法,自己设计出相应的应用程序。

(10)培养学生良好的程序设计风格。

在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。

学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。

1.2训练内容

1.2.1设计环境

1、硬件:

PC机,档次不低于CPU为P4,内存为512M,40G硬盘,其它硬件与此相配套。

2、软件:

操作系统为WindowsXP或Windows2007,设计语言为JAVA。

1.2.2基本要求

(1)课程设计可采取每人一题,可任选一题进行设计,至少包含五个功能模块。

或者每组完成一个课题,每组成员分工合作完成一个课程设计,每个人的任务不同;

(2)可以选择老师提供的参考选题,也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用。

(3)要求利用面向对象程序设计方法以及java的编程思想来完成系统的设计;

(4)要求有欢迎界面、菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可;

(5)模块化程序设计:

要求在设计的过程中,按功能定义函数书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现;

(6)学生所选课题必须上机通过,并获得满意的结果;

(7)程序书写风格:

锯齿型书写格式。

1.2.3设计步骤

(1)根据问题描述,进行需求分析,设计数据存储方式;

(2)总体设计。

分析系统功能,划分功能模块,确定各模块函数名称,对类的接口进行设计;

(3)详细设计。

主程序算法设计和各模块算法设计,对类的实现进行设计;

(4)编程实现;

(5)调试和测试;

(6)完成设计文档和课程设计说明书。

第2部分《课程设计》案例

2.1问题陈述及其需求分析

2.1.1问题陈述

本次课设的目标是制作一个留言板,可以进行简单的留言和回复。

(1)模块的组合及测试,查找出程序的错误并改正;

(2)窗口的创建和分配;设计留言板的界面;

(3)组合其余的工作;使程序完整化;

(4)编写具体的计算方法;添加功能代码。

2.1.2功能需求分析

设计简易计算器程序,实现简单的留言和回复功能,具体任务如下:

(1)留言板窗口界面布局设计;

(2)各种功能的分析;

(3)编程实现具体的留言功能;

(4)运行测试程序,调试纠正运行错误。

(5)调试无误,运行,测试具体留言功能。

2.2总体设计

2.2.1功能结构图设计

依据程序的功能需求,描述该系统功能的结构图如图2所示。

图2系统功能结构图

2.3详细设计

2.3.1留言板设计示意图:

主类和类间关系:

程序编写参照教材例题的格式,主类就是一个main函数,然后通过调用text类的方法来实现留言板的各个功能。

在类text中,要进行初始的布局设计,将留言板窗口的整体布局设计好之后,再在每个JPanel面板行进行局部设计,全部细节设计好之后,可以先运行一下程序,看窗口是否是自己需要的样子,留言板成型后再在按钮上添加监视器,以实现用户对留言板的动态控制。

text类

主类

调用text方法

实现留言板功能

2.3.1运行调试与分析讨论

(1)编译后运行程序出现的最初界面:

(2)在各个文本框中输入文字后,单击“提交”按钮,每个文本框中的文本将会按照事先设定的格式在文本域中输出;当输出文本超出文本域时会出现滚动窗格,以便继续输出文本。

如下图所示:

(3)当需要重新编辑留言但不需要更改主题和留言者的姓名的时候,单击“清空”按钮就可以重新编辑留言,如下图所示:

(4)当需要退出该留言板的编辑时,可以单击窗口右上角的叉号,该界面就会关闭。

2.4设计体会与小结

本次实验主要通过基于AWT的图形用户界面设计,设计出一个可以满足基本需求的留言板,该留言板包括一些常用的标准组件,如标签、按钮、文本框、文本域以及滚动窗格等。

该留言板涵盖了FlowLayout布局、BorderLayout布局和BoxLayout布局,并多次应用中间容器JPanel面板向其中加入各种组件。

在界面布局好了以后,还要通过监听来处理组件上发生的界面事件。

JTextField就可以触发ActionEvent事件,为了监视到ActionEvent事件,事件源要使用addActionEvent()方法获得监视器,然后做出相应的反应,从而实现动态控制。

 

2.5参考文献

[1]耿祥义,张跃平,《JAVA大学实用教程》,电子工业出版社.

[2]

附件:

参考源程序

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.util.*;

importjava.lang.*;

publicclassMessage1

{

publicstaticvoidmain(Stringargs[])

{

Testwin=newTest("留言板");

}

}

classTestextendsJFrameimplementsActionListener,ItemListener

{

JMenuBarmenubar;

JMenumenu1,menu2;

JMenuItemitemCopy,itemCut,itemPaste,itemOpen,itemSave;

JTextAreaSay,Reply;

JPopupMenumenu;

JTextFieldinputName,inputSay,inputReply;

JPanelpSouth,pNorth,pEast;

JButtonA,B,D;

JLabelC1,C2,C3;

JScrollPaneJPane1,JPane2;

JComboBoxListFont;

JSplitPanesplitPane;

Test(Strings)

{

setTitle(s);

menubar=newJMenuBar();

menu1=newJMenu("文件");

itemOpen=newJMenuItem("打开");

itemSave=newJMenuItem("保存");

menu1.add(itemOpen);

menu1.addSeparator();

menu1.add(itemSave);

menubar.add(menu1);

setJMenuBar(menubar);

menu2=newJMenu("编辑");

itemCopy=newJMenuItem("复制");

itemCut=newJMenuItem("剪切");

itemPaste=newJMenuItem("粘贴");

menu2.add(itemCopy);

menu2.addSeparator();

menu2.add(itemCut);

menu2.addSeparator();

menu2.add(itemPaste);

menubar.add(menu2);

menu=newJPopupMenu();

menu.add(itemCopy);

menu.add(itemCut);

menu.add(itemPaste);

inputName=newJTextField(6);

inputSay=newJTextField(20);

inputReply=newJTextField(20);

pNorth=newJPanel();

pSouth=newJPanel();

C1=newJLabel("姓名");

pNorth.add(C1);

pNorth.add(inputName);

C2=newJLabel("留言:

");

pNorth.add(C2);

pNorth.add(inputSay);

C3=newJLabel("回复:

");

pSouth.add(C3);

pSouth.add(inputReply);

B=newJButton("确定");

A=newJButton("确定");

pNorth.add(B);

pSouth.add(A);

B.addActionListener(newActionListener(){//提交留言

publicvoidactionPerformed(ActionEvente)

{

Stringtext1,text2;

text1=inputName.getText();

text2=inputSay.getText();

inputSay.setText(null);

inputName.setText(null);

if(inputSay.getText()!

="")

{

Say.insert("\n",Say.getCaretPosition());

Say.insert(text1+"给您留言:

",Say.getCaretPosition());

Say.insert(text2,Say.getCaretPosition());

}

}

});

add(pNorth,BorderLayout.NORTH);

A.addActionListener(newActionListener(){//提交回复

publicvoidactionPerformed(ActionEvente)

{

Stringtext;

text=inputReply.getText();

inputReply.setText(null);

if(inputReply.getText()!

="")

{

Reply.insert("\n",Reply.getCaretPosition());

Reply.insert("回复留言:

"+text,Reply.getCaretPosition());

}

}

});

add(pSouth,BorderLayout.SOUTH);

Say=newJTextArea("留言内容:

");

Reply=newJTextArea("回复内容:

");

Say.setCaretPosition(5);

Reply.setCaretPosition(5);

Say.addMouseListener(newMouseAdapter(){//弹出式菜单

publicvoidmousePressed(MouseEvente)

{

if(e.getModifiers()==InputEvent.BUTTON3_MASK)

menu.show(inputSay,e.getX(),e.getY());

}

});

Reply.addMouseListener(newMouseAdapter(){

publicvoidmousePressed(MouseEvente)

{

if(e.getModifiers()==InputEvent.BUTTON3_MASK)

menu.show(inputReply,e.getX(),e.getY());

}

});

JPane1=newJScrollPane(Say);

JPane2=newJScrollPane(Reply);

add(JPane1,BorderLayout.CENTER);

add(JPane2,BorderLayout.CENTER);

splitPane=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,Say,Reply);

splitPane.setDividerLocation(400);

pEast=newJPanel();

GraphicsEnvironmentf=GraphicsEnvironment.getLocalGraphicsEnvironment();

StringfontName[]=f.getAvailableFontFamilyNames();

ListFont=newJComboBox(fontName);

pEast.add(newJLabel("字体"));

pEast.add(ListFont);

D=newJButton("清空");

D.addActionListener(newActionListener(){//清空

publicvoidactionPerformed(ActionEvente)

{

Say.setText("留言内容:

");

Reply.setText("回复内容:

");

Say.setCaretPosition(5);

Reply.setCaretPosition(5);

}

});

pEast.add(D);

pEast.setLayout(newGridLayout(9,0,1,10));

add(pEast,BorderLayout.EAST);

add(splitPane,BorderLayout.CENTER);//组件的字体

ListFont.addItemListener(this);

inputSay.addActionListener(this);

itemCopy.addActionListener(this);

itemCut.addActionListener(this);

itemPaste.addActionListener(this);

validate();

setBounds(100,100,600,600);

setSize(1000,500);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

publicvoiditemStateChanged(ItemEvente)

{

Stringname=(String)ListFont.getSelectedItem();

Fontf=newFont(name,Font.BOLD,32);

Fontg=newFont(name,Font.ITALIC,12);

Say.setFont(f);

Reply.setFont(f);

inputName.setFont(g);

inputSay.setFont(g);

inputReply.setFont(g);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==Say)

Say.append(inputName.getText()+"留言:

"+inputSay.getText());

elseif(e.getSource()==itemCopy)

Say.copy();

elseif(e.getSource()==itemCut)

Say.cut();

elseif(e.getSource()==itemPaste)

Say.paste();

elseif(e.getSource()==Reply)

Reply.append("回复留言:

"+inputReply.getText());

elseif(e.getSource()==itemCopy)

Reply.copy();

elseif(e.getSource()==itemCut)

Reply.cut();

elseif(e.getSource()==itemPaste)

Reply.paste();

}

}

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2