




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华 北 科 技 学 院课程设计说明书班级: 计算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、 软件:操作系统为Windows XP或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附件:参考源程序import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import java.lang.*;public class Message1public static void main(String args)Test win=new Test(留言板);class Test extends JFrame implements ActionListener,ItemListenerJMenuBar menubar;JMenu menu1,menu2;JMenuItem itemCopy,itemCut,itemPaste,itemOpen,itemSave;JTextArea Say,Reply;JPopupMenu menu;JTextField inputName,inputSay,inputReply;JPanel pSouth,pNorth,pEast;JButton A,B,D;JLabel C1,C2,C3;JScrollPane JPane1,JPane2;JComboBox ListFont;JSplitPane splitPane;Test(String s) setTitle(s); menubar=new JMenuBar(); menu1=new JMenu(文件); itemOpen=new JMenuItem(打开); itemSave=new JMenuItem(保存); menu1.add(itemOpen); menu1.addSeparator(); menu1.add(itemSave); menubar.add(menu1); setJMenuBar(menubar); menu2=new JMenu(编辑); itemCopy=new JMenuItem(复制); itemCut=new JMenuItem(剪切); itemPaste=new JMenuItem(粘贴); menu2.add(itemCopy); menu2.addSeparator(); menu2.add(itemCut); menu2.addSeparator(); menu2.add(itemPaste); menubar.add(menu2); menu=new JPopupMenu(); menu.add(itemCopy); menu.add(itemCut); menu.add(itemPaste); inputName=new JTextField(6); inputSay=new JTextField(20); inputReply=new JTextField(20); pNorth=new JPanel(); pSouth=new JPanel(); C1=new JLabel(姓名); pNorth.add(C1); pNorth.add(inputName); C2=new JLabel(留言:); pNorth.add(C2); pNorth.add(inputSay); C3=new JLabel(回复:); pSouth.add(C3); pSouth.add(inputReply); B=new JButton(确定); A=new JButton(确定); pNorth.add(B); pSouth.add(A); B.addActionListener(new ActionListener() /提交留言 public void actionPerformed(ActionEvent e) String text1,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(new ActionListener() /提交回复 public void actionPerformed(ActionEvent e) String text; text=inputReply.getText(); inputReply.setText(null); if(inputReply.getText()!=) Reply.insert(n,Reply.getCaretPosition(); Reply.insert(回复留言:+text,Reply.getCaretPosition(); ); add(pSouth,BorderLayout.SOUTH); Say=new JTextArea(留言内容:); Reply=new JTextArea(回复内容:); Say.setCaretPosition(5); Reply.setCaretPosition(5); Say.addMouseListener(new MouseAdapter() /弹出式菜单 public void mousePressed(MouseEvent e) if(e.getModifiers()=InputEvent.BUTTON3_MASK) menu.show(inputSay,e.getX(),e.getY(); ); Reply.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) if(e.getModifiers()=InputEvent.BUTTON3_MASK) menu.show(inputReply,e.getX(),e.getY(); ); JPane1=new JScrollPane(Say); JPane2=new JScrollPane(Reply); add(JPane1,BorderLayout.CENTER); add(JPane2,BorderLayout.CENTER); splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,Say,Reply); splitPane.setDividerLocation(400); pEast=new JPanel(); GraphicsEnvironment f=GraphicsEnvironment.getLocalGraphicsEnvironment(); String fontName=f.getAvailableFontFamilyNames(); ListFont=new JComboBox(fontName); pEast.add(new JLabel(字体); pEast.add(ListFont); D=new JButton(清空); D.addActionListener(new ActionListener() /清空 public void actionPerformed(ActionEvent e) Say.setText(留言内容:); Reply.setText(回复内容:); Say.setCaretPosition(5); Reply.setCaretPosition(5); ); pEast.add(D); pEast.setLayout(new GridLayout(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); public void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 针灸学治疗考试试题及答案
- 沿海三副考试试题及答案
- 航海操作考试题及答案
- 2025年甘肃省委宣传部直属事业单位选聘考试试题(含答案)
- 2024年中西医结合临床执业医师卫生资格定期考核题库(附含答案)
- 北京消防培训知识课件
- 护理查房复习试题及答案
- 传染病及突发公共卫生事件培训测试题(附答案)
- 2025年中小学“学宪法、讲宪法”知识竞赛题库及参考答案
- 2025低压电工资格考试题(含答案)
- 车站值班员技师考试论文
- YS/T 587.12-2006炭阳极用煅后石油焦检测方法 第12部分:粒度分布的测定
- GB/T 9871-2008硫化橡胶或热塑性橡胶老化性能的测定拉伸应力松弛试验
- GB/T 26480-2011阀门的检验和试验
- GB/T 19861-2005丙烯酸系阴离子交换树脂强碱基团、弱碱基团和弱酸基团交换容量测定方法
- GB/T 11085-1989散装液态石油产品损耗
- GB 30000.3-2013化学品分类和标签规范第3部分:易燃气体
- 5S培训题库及答案
- 碳纤维、粘钢加固施工方案
- (完整版)沪教牛津版小学一至六年级英语单词汇总(最新)
- 四年级数学上册《大数的认识》单元测试卷
评论
0/150
提交评论