《java程序设计课程设计》 课程总结怎么写

您现在的位置: >> java程序设计 >> java课程设计心得体会
java课程设计心得体会
来源: 时间:
【java课程设计】Java 课程设计课程设计题目 姓名 组别 桂 斌 第组 画随机圆 学号 专业
计专 112 (专升本)计算机科学与技术专业本次 Java 课程设计我们这组做的课题是画随机圆,刚开始拿到题目我们组员都不知如 何下手,经过小组成员一起查找资料,并且开会讨论,我们确定了设计的设计目标以及具体 实现方式,包括如何将 Java 的运用到实际系统的详细设计之中。实验过程中,首先要将系统要实现的功能分为几大模块,然后每个组员分别完成,在此 过程中使我加深了对 Java 的理解,以及如何进行团队工作的划分,学会发现各组员的长处 并将其发挥出来。虽然大家没怎么学过 Java,但大家都有 C 语言基础,所以通过努力实验, 进一步培养我们利用 Java 语言进行编程和调试程序的能力,同时使我们能够学会将 C 语言 与 Java 语言结合起来编写较复杂具有实际意义和算法复杂度较小的程序。与此同时熟练掌 握 Java 语言的编辑,编译,调试程序,并将算法转变为程序实现。正确理解各种数据结构 的逻辑特性和存储表示和基本操作的算法实现。掌握算法的时间分析和空间分析的技术。针 对问题的特点选择合适的数据结构, 设计实用高效的算法, 提高大家的算法设计的能力和动 手实验的技能。实验过程中, 我们分为逻辑设计和详细设计两个步骤实现.逻辑设计指的是,对问题描述 中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主 程序模块和各抽象数据类型;详细设计则为定义相应的存储结构并写出各函数的伪码算法. 作为逻辑设计的结果,应写出每个抽象数据类型的定义,各主要模块的算法,并画出模块之间 的调用关系图;详细设计的结果是对数据结构的基本操作的规格说明做出进一步的求精,写 出数据存储结构的类型定义,按照算法书写规范用类 C 语言写出函数形式的算法框架。. 通过这次课程设计,使我灵活应用所学数据结构知识,独立完成问题分析,结合数据结 构理论知识,编写程序求解指定问题。初步掌握软件开发过程的问题分析、系统设计、程序 编码、 测试等基本方法和技能; 提高综合运用所学的理论知识和方法独立分析和解决问题的 能力;并用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提 高编程水平, 并在此过程中培养我们严谨的科学态度和良好的工作作风。熟练掌握数据的存 储表示和基本操作的实现, 能够利用存储设计算法解决简单的航空订票问题。同时在这学期 的实验中,培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。在实验课 上, 我学会了很多学习的方法。而这是日后最实用的。要面对社会的挑战, 只有不断的学习、 实践,再学习、再实践。这对于我的将来也有很大的帮助。以后,不管有多苦,我想我都能 变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我都可 以在实验结束之后变的更加成熟,会面对需要面对的事情,以及学会遇到问题,不急不慌, 慢慢解决它 这次课程设计本人主要参与了系统实现以及系统测试, 还有参与小组共同完成的编写代 码、实现功能模块。历时两个星期终于在大家的一起努力下顺利完成了。虽然过程辛苦是不 可避免, 但收获还是令人感到尤其的欣慰。在这次的课程设计中不仅检验了我所学习的知识, 也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终 完成整个事情。在设计过程中, 与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知 识综合应用的实践训练, 是我们迈向社会, 从事职业工作前一个必不少的过程。实验过程中, 也十分感谢实验指导老师马骏老师的指点与教导。这次课程设计不仅是对这学期所学知识的 一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程 设计使我明白了自己知识还比较欠缺, 只是学习书本知识还是远远不够的, 自己不会的东西 还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的 理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。学生签名:年月日
【java课程设计心得体会】不过,还有很多知识我都不懂,比如有点糊里糊涂的感觉。看来,课本的知识还是不够的,我应该扩展自己的课外知识,多多阅读课外的相关知识,这样才能对Java更加熟悉。 在此我要谢谢帮助我解决难题的同学们,没有他们的解答和热心帮助,我很难完成这个课设。如今科技发展迅速,而Java作为一门计算机语言类的重要课程,要学好Java 是必然的。我坚信,只要有兴趣,就能学好。我会培养好自己对Java的兴趣,而且继续保持下去,为以后的路做好铺垫。通过此次课程设计,使我更加扎实的掌握了有关~~~~~~~方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。 过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了~~~~~的识别和测试;熟悉了~~~~~~~;了解了~~~~~~~方法;以及如何提高~~~~~~的性能等等,掌握了~~~~~的方法和技术,通过查询资料,也了解了~~~~~~~原理。 我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。 回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
实验过程中,也对团队精神的进行了,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在梁强老师的辛勤指导下,终于游逆而解。同时,在梁强老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
课程设计的心得体会
做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。
我们组一共有三,但其他两个人是真的神龙见首不见尾,除了在最后答辩的时候他们一起坐在了我旁边,冠冕堂皇的指着我画了几遍的图说了几嘴,我想可能他们自己都不知道自己在说怎么,虽然有的东西他们也答出来了。我佩服他们的勇气,羡慕他们的运气(我见到的很多做了10 天的人最后的成绩都有不如他们的),但是鄙视他们的做法。
所幸的是,我得到了很多同学的帮助。我想没有他们我可能都要放弃了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。后来请教我们班的一个男生,每次跟他一起到试验室调试程序(他们组也只有他一个人动手),看他边做边给我讲解。最后在开发机上做出来的时候,虽然不是我自己写的,但看他那么高兴,我也有一种分享到的成就感。后来我们组就用了他写的程序,他自己又抽空做了些拓展。 【java课程设计心得体会】JAVA 课程设计用 Java 设计计算器 calculator内容提要:在本文构造实现了一个计算器擦亮 calculator,主要内容包括:calculator 的 功能需求分析;calculator 的基本设计思路和类的划分;calculator 的具体实现。关键字:Java、计算器 calculator 引言:设计实现一个 Java 应用程序的过程如下(1) 功能需求分析; (2) 设计和类划分; (3) 代码编写实现。本文就按照这个步骤来实现计算器 calculator 的制作。正文:1. calculator 功能需求分析作为计算器,至少应该具备以下几点功能(1) 计算器要有 GUI 界面。(2) 能运算小数,并且不会产生精度损失。(3) 用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和 混合运算。(4) 允许正负数间的运算。(5) 可以求一个数值的平方及倒数,可以进行阶乘运算。(6) 有菜单栏选项。具体的功能需求和界面我们可以模仿微软出品的 windowsXP 中自带的计算器。如 图一:图一windows XP 中的计算器界面图2. calculator 基本设计思路和类划分基于第 1 节中提出对于 calculator 功能需求的分析,对这个应用程序设分类如下(1) calculator:这个类的功能是实现一个框架 (2) calculatorFrame:这个类作为主类,实现主要功能:运算,按钮排布,菜单,颜 色设置,文本显示3. calculator 的具体实现第 1 页 共 24 页 JAVA 课程设计3.1 calculator 类的设计 calculator 用来定义一个计算器的框架 1.主要方法 下面以表格的形式列出 calculator 类至少应该具有的方法和功能描述 (如表一所示) 。表一 calculator 类的主要方法 方法 static void main (String args[]) 功能描述 calculator 应用程序的入口,是主方法3.2 calculatorFrame 类的设计 calculatorFrame 类实现整体功能,包括窗体的初始化、各种用户事件监听和响应(菜 单、运算、结果显示等等) 。1. 父类和主要接口 设计 calculator 整体 窗口特性继承自 JFrame 类。为了对用户命令做出响应(如帮助菜单栏弹出窗口) ,calculatorFrame 类必须能够 监听到用户的命令,因此设计 calculatorFrame 类实现 ActionListener 接口。2. 主要方法 下面以表格的形式列出 calculatorFrame 类至少应该具有的方法和功能描述(如表二 所示) 。表二 calculatorFrame 类的主要方法 方法 功能描述 重载 ActionListener 接口中的方法, 用于对用 户命令进行响应,用户命令包括“帮助” “版 权” “说明”以及各个按钮等void actionPerformed(ActionEvent e)3. 基本效果 图二为 calculator 的基本效果图。第 2 页共 24 页 JAVA 课程设计4. 代码分析calculator.java 代码如下//calculator.java /* *文件名:calculator.java *说明:calculatorFrame 主类,实现主要功能 */第 3 页 共 24 页 JAVA 课程设计//导入 AWT 包 import java.awt.*; import java.awt.event.*; //导入 SWING 包 import javax.swing.*; import javax.swing.event.*; class calculator { public static void main(String[] args) { calculatorFrame frame = new calculatorFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } //主类 calculatorFrame class calculatorFrame extends JFrame implements ActionListener { public calculatorFrame() { //设置框架主题及大小 setTitle(&计算器&); setSize(300,235); //将面板置于框架中 Container contentPane = getContentPane(); setResizable(false); //创建按钮面板 JPanel buttonPanel = new JPanel(); //创建数字键“1” b11=new JButton (&1&); //设置颜色 b11.setForeground(Color. BLUE); //创建事件监听器 b11.addActionListener(this); b12=new JButton (&2&); b12.setForeground(Color. BLUE); b12.addActionListener(this); b13=new JButton (&3&); b13.setForeground(Color. BLUE); b13.addActionListener(this);第 4 页 共 24 页 JAVA 课程设计b6=new JButton (&4&); b6.setForeground(Color. BLUE); b6.addActionListener(this); b7=new JButton (&5&); b7.setForeground(Color. BLUE); b7.addActionListener(this); b8=new JButton (&6&); b8.setForeground(Color. BLUE); b8.addActionListener(this); b1=new JButton (&7&); b1.setForeground(Color. BLUE); b1.addActionListener(this); b2=new JButton (&8&); b2.setForeground(Color. BLUE); b2.addActionListener(this); b3=new JButton (&9&); b3.setForeground(Color. BLUE); b3.addActionListener(this); b16=new JButton (&0&); b16.setForeground(Color. BLUE); b16.addActionListener(this); b17=new JButton (&+/-&); b17.setForeground(Color. BLUE); b17.addActionListener(this); b4=new JButton (&+&); b4.addActionListener(this); b9=new JButton (&-&); b9.addActionListener(this); b14=new JButton (&*&); b14.addActionListener(this); b19=new JButton (&/&); b19.addActionListener(this); b5=new JButton (&1/x&); b5.setForeground(Color. YELLOW); b5.addActionListener(this); b20=new JButton (&=&); b20.setForeground(Color. YELLOW); b20.addActionListener(this); //”.”显示不清晰,故采用“。”代替 b18=new JButton (&。&); b18.setForeground(Color. BLUE); b18.addActionListener(this); b10=new JButton (&x^2&);第 5 页 共 24 页 JAVA 课程设计b10.setForeground(Color. YELLOW); b10.addActionListener(this); b15=new JButton (&n!&); b15.setForeground(Color. YELLOW); b15.addActionListener(this); buttonPanel.add(b1); buttonPanel.add(b2); buttonPanel.add(b3); buttonPanel.add(b4); buttonPanel.add(b5); buttonPanel.add(b6); buttonPanel.add(b7); buttonPanel.add(b8); buttonPanel.add(b9); buttonPanel.add(b10); buttonPanel.add(b11); buttonPanel.add(b12); buttonPanel.add(b13); buttonPanel.add(b14); buttonPanel.add(b15); buttonPanel.add(b16); buttonPanel.add(b17); buttonPanel.add(b18); buttonPanel.add(b19); buttonPanel.add(b20); //对按钮面板 1 进行排版,四行五列 buttonPanel.setLayout(new GridLayout(4,5)); //建立容纳文本框的面板 JPanel textPanel = new JPanel(); addText = new JTextField(&0& , 20); addText.addActionListener(this); //文本框从右端开始显示 addText.setHorizontalAlignment(JTextField.RIGHT); textPanel.add(addText); //创建按钮面板 2 JPanel buttonPanel2=new JPanel(); b21=new JButton (&DEL &); b21.addActionListener(this); b21.setForeground(Color. RED); b22=new JButton (&CE&); b22.addActionListener(this); b22.setForeground(Color. RED); b23=new JButton (&C&); b23.addActionListener(this);第 6 页 共 24 页 JAVA 课程设计b23.setForeground(Color. RED); buttonPanel2.add(b21); buttonPanel2.add(b22); buttonPanel2.add(b23); buttonPanel2.setLayout(new GridLayout(1,5)); //创建菜单栏,并将菜单栏加入到框架中 JMenuBar menuBar=new JMenuBar(); setJMenuBar(menuBar); //创建“帮助(H) ”菜单 JMenu helpMenu=new JMenu(&帮助(H)&); helpMenu.setForeground(Color. BLUE); //设置菜单的快捷键 helpMenu.setMnemonic('H'); menuBar.add(helpMenu); JMenuItem copyrightItem = new JMenuItem(&版权&, 'b'); copyrightItem.addActionListener(this); JMenuItem explainItem=new JMenuItem(&说明&,'a'); explainItem.addActionListener(this); //将菜单项添加到“帮助”菜单中 helpMenu.add(copyrightItem); helpMenu.add(explainItem); //设置面板布局 contentPane.add(buttonPanel, BorderLayout.SOUTH); contentPane.add(buttonPanel2, BorderLayout.CENTER); contentPane.add(textPanel, BorderLayout.NORTH); } //设置用户点击菜单项和按钮时的响应动作 public void actionPerformed(ActionEvent e) { if (e.getActionCommand()==&版权&) { int selection=JOptionPane.showConfirmDialog( calculatorFrame.this, &制作人: 金华日, 章旭, 李伏俊&,&版权&, JOptionPane.DEFAULT_OPTION); }第 7 页共 24 页 JAVA 课程设计if(e.getActionCommand()==&说明&) { int selection=JOptionPane.showConfirmDialog( calculatorFrame.this, &此计算器可进行多种常规运算,欢迎大家使用。&,&帮助&, JOptionPane.DEFAULT_OPTION); } if((addText.getText()).equals(&0&)) { addText.setText(& &); } if(e.getSource()==b16) {c+=&0&; addText.setText(&&+c);} if(e.getSource()==b11) {c+=&1&; addText.setText(&&+c);} if(e.getSource()==b12) {c+=&2&; addText.setText(&&+c);} if(e.getSource()==b13) {c+=&3&; addText.setText(&&+c);} if(e.getSource()==b6) {c+=&4&; addText.setText(&&+c);} if(e.getSource()==b7) {c+=&5&; addText.setText(&&+c);} if(e.getSource()==b8) {c+=&6&; addText.setText(&&+c);} if(e.getSource()==b1) {c+=&7&; addText.setText(&&+c);} if(e.getSource()==b2) { c+=&8&; addText.setText(&&+c);} if(e.getSource()==b3) { c+=&9&; addText.setText(&&+c);}第 8 页 共 24 页 JAVA 课程设计if(e.getSource()==b18) { boolean clickable= for (int i = 0; i & addText.getText().length(); i++) if ('.' == addText.getText().charAt(i)) { clickable= } if(clickable) {c+=&.&; } addText.setText(c); } //平方 if(e.getSource()==b10) { nu =Double.parseDouble(addText.getText()); num=nu* addText.setText(String.valueOf(num)); c=&&; } //倒数 if(e.getSource()==b5) { nu =Double.parseDouble(addText.getText()); if(addText.getText().charAt(0)=='0'&&addText.getText().length()==1) addText.setText(&除数不能为 0&); else num=1/ addText.setText(String.valueOf(num)); c=&&; } //阶乘 if(e.getSource()==b15) { c=&&;num=1; nu =Double.parseDouble(addText.getText()); for (int n=1;n&=n++) { num=num*n; addText.setText(String.valueOf(num));第 9 页 共 24 页 JAVA 课程设计} } //响应“+/-”按钮 if(e.getSource()==b17) { String s=addText.getText(); if(addText.getText().charAt(0)=='-') { addText .setText(&&); for (int i=1;i&s.length();i++) { char q=s.charAt(i); addText.setText(addText.getText()+q); } } else addText.setText(&-&+s); } //将文本框清零 if(e.getActionCommand()==&CE&) {addText.setText(&0&); c=&&; } if(e.getActionCommand()==&C&) {addText.setText(&0&); c=&&; } //删除文本框中的最后一位数 if (e.getSource()==b21) { String g=addText.getText(); addText.setText(&&); for (int i=0;i&g.length()-1;i++) { char c=g.charAt(i); addText.setText(addText.getText()+ c); } } //响应“+” “-” “*” “/” 按钮 if(e.getSource()==b4) {f='+'; nu =Double.parseDouble(addText.getText()); c=&&; }第 10 页共 24 页 JAVA 课程设计if(e.getSource()==b9) {f='-'; nu =Double.parseDouble(addText.getText()); c=&&; } if(e.getSource()==b14) {f='*'; nu =Double.parseDouble(addText.getText()); c=&&; } if(e.getSource()==b19) {f='/'; nu =Double.parseDouble(addText.getText()); c=&&; } //进行运算,并将结果显示在文本框内 if(e.getSource()==b20) { nu2 =Double.parseDouble(addText.getText()); if(f=='+') {num=nu+nu2; addText.setText(String.valueOf(num)); c=&&;} if(f=='-') {num=nu-nu2; addText.setText(String.valueOf(num)); c=&&;} if(f=='*') {num=nu*nu2; addText.setText(String.valueOf(num)); c=&&;} if(f=='/') {num=nu/nu2; addText.setText(String.valueOf(num)); c=&&;} } } //定义各个变量类型 public JTextField addT第 11 页 共 24 页 JAVA 课程设计public JButton b1; public JButton b2; public JButton b3; public JButton b4; public JButton b5; public JButton b6; public JButton b7; public JButton b8; public JButton b9; public JButton b10; public JButton b11; public JButton b12; public JButton b13; public JButton b14; public JButton b15; public JButton b16; public JButton b17; public JButton b18; public JButton b19; public JButton b20; public JButton b21; public JButton b22; public JButton b23; public double num,nu,nu2; String c=&&; }5. 心得体会Java 监听器是 Java 功能实现的重要组成部分, 监听器中的接口也是很重要的一个环节。两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽 象父类,子类分别实现父类所定义的方法。问题的出现:Java 是一种单继承的语言, 一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给 它父类的父类加父类,直到移动到类等级结构的最顶端。这样一来,对一个具体类的 可插入性的设计,就变成了对整个等级结构中所有类的修改。在本次实验计算器中每个按钮功能的实现都离不开监听器,监听器的接口以及 实现将是 java 程序的主要内容。计算器菜单栏的实现就是监听器的具体表现,当监 听器发现“版权”指令时(e.getActionCommand()==&版权&),监听器就会做出反应, 弹出一个对话框,显示“制作人: 金华日, 章旭, 李伏第 12 页 共 24 页 JAVA 课程设计俊&,&版权&”,如果监听器接到指令(e.getSource()==b16)时,就会执行下面的功能 ( c+=&0&;addText.setText(&&+c); ) , 就 是 在 文 本 框 中 输 出 数 字 “ 0 ” 。if(e.getActionCommand()==&CE&){addText.setText(&0&); c=&&;}当 监 听 器 接 到 指 令“CE”时,就会自动清除文本框中的内容,初始文本框为“ 0”。当监听器收到指 令 为 “ DEL ” 时 ( if(e.getSource()==b21){String g=addText.getText();addText.setText(&&);for(inti=0;i&g.length()-1;i++){ch ar c=g.charAt(i);addText.setText(addText.getText()+ c);}} ) , 即是 清 除 在 文 本框中最后输入的数字,.length()的作用就是计算文本框中数字的长度,每按一次 “DEL”,就会清除一个刚输入的数字,一直到清除完文本框中所有的数字 。在刚开始实验的时候,按键总是没反应,后来才知道是没有安装监听器的原因, 加上监听器后又出现问题了,还是没反应,原因是没有让监听器实现其反应,即 actionPerformed 这个方法的实现。总之,本次实验就是这样一步步摸索出来的,哪 里出现问题,就在哪里寻找原因,还好总算把实验做出来了。第 13 页共 24 页 JAVA 课程设计JAVA 编程文本编辑器―editor 一、实验目的:本课程设计旨在加深学生对课堂讲授内容的理解, 使学生掌握解决实际应用问题时所应 具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想 及 Java 语言程序设计的规律与技巧,为进一步学习 Java 高级应用及今后从事专业工作打下 基础。二、实验要求:(1)问题描述准确、规范; (2)程序结构合理,调试数据准确、有代表性; (3)界面布局整齐,人机交互方便; (4)输出结果正确; (5)正确撰写实验报告。三、实验内容:(1) 用 Java 编写文本编辑器,综合掌握 Java 编程技巧及 Java 开发环境; (2) 要求该记事本可以设置文本的字体、大小、颜色等基本参数; (3) 可以读取计算机中 TXT 文件,可以生成一个新的 TXT 文件。四、实验步骤:(1) 上机实验之前, 学生应当为课程设计的内容作好充分准备。对每次上机需要完成的任务 进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程 序使用的数据,以便提高上机实验的效率。(2) 按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序 正常运行,得出正确的输出结果为止。(3) 根据实验结果,写出实验报告。实验报告应当包括:实验内容,程序流程图,类结构, 程序清单,运行结果,以及通过上机取得的经验。第 14 页共 24 页 JAVA 课程设计五、实验结果:图 2-1 文本编辑器的界面效果图图 2-2 字体大小及格式处理后的效果图第 15 页 共 24 页 JAVA 课程设计六、实验体会:Java 编程文本编辑器就是微软记事本的“缩略版” ,为什么这么说呢,文本编辑器的功 能之一就是实现文本的录入, 像记事本一样写入字体, 以及字体的颜色、 大小和字型的改变, 最主要的功能就是实现 TXT 文件的生成,即生成文件的格式是 TXT 格式。当然不单单只有 这些功能,本编辑器还能实现文件的打开和保存等功能。在本次实验中按钮功能的实现必须依靠监听器的功能,菜单栏中“文件”的功能就包括 本地文件的打开和保存,当监听器接受到“文件――打开”这个指令时,就会弹出一个如图 2―4 的对话框,列出本地的文件菜单。当监听器接到“格式――颜色――RED”这个指令 时,就会改变文本编辑区的文字颜色,由原来的黑色变为红色。但是这是有缺点的,文字颜 色的改变是所有文字颜色的改变,而不能改变其中的某些文字,所有的字体、字型的改变都 是整体性的改变,不能局部发生变化,这也是我们在实验中唯一没有做好的一部分,也是所 有同学都没法解决的问题,就是微软的记事本也没有解决这个问题。我想在以后的学习中, 随着能力的改变,一定会解决类似的问题,争取把实验做得更好。七、附件:(1) 程序流程图:引入各种图形所需要的包; 编写公共类 edit,定义各种变量;编写 textFrame 类; 添加菜单栏,并向各菜单添加菜单项及子 菜单; 添加带滚动条的文本域及工具栏; 为各菜单及工具添加事件监听器;第 16 页 共 24 页 编写 actionPerformed 方法;实现事件监听器,响应各菜单项 JAVA 课程设计(2) 程序清单://editor.java //引入图形界面所需要的包 import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; //创建窗口 public class editor { public static void main (String[] args) { textFrame frame=new textFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class textFrame extends JFrame implements ActionListener { public textFrame() { //设置窗口标题及大小 setTitle(&记事本&); setSize(600,540); //添加菜单 JMenuBar menubar =new JMenuBar(); setJMenuBar(menubar); //新建文件菜单 fileMenu =new JMenu(&文件(F)&); fileMenu.setForeground(Color. BLUE);//设置菜单颜色 fileMenu.setMnemonic('F');//设置快捷键 //创建文件下的各菜单项并添加事件监听器 openitem=new JMenuItem(&打开&); openitem.addActionListener(this); saveitem=new JMenuItem(&保存&);第 17 页 共 24 页 JAVA 课程设计saveitem.addActionListener(this); //添加菜单项 fileMenu.add(openitem); fileMenu.add(saveitem); //新建格式菜单 JMenu styleMenu =new JMenu(&格式(S)&); styleMenu.setForeground(Color. BLUE); styleMenu.setMnemonic('S'); //新建格式菜单下的子菜单 JMenu colorMenu=new JMenu(&颜色&); JMenu fontMenu=new JMenu(&字体&); styleMenu.add(colorMenu); //创建颜色菜单项并添加事件监听器 bitem=new JMenuItem(&BLUE&); bitem.addActionListener(this); bitem.setForeground(Color. BLUE); blitem=new JMenuItem(&BLACK&); blitem.addActionListener(this); blitem.setForeground(Color. BLACK); ritem=new JMenuItem(&RED&); ritem.addActionListener(this); ritem.setForeground(Color. RED); gitem=new JMenuItem(&GREEN&); gitem.addActionListener(this); gitem.setForeground(Color. GREEN); //添加菜单项 colorMenu.add(bitem); colorMenu.add(blitem); colorMenu.add(ritem); colorMenu.add(gitem); styleMenu.add(new JMenuItem(&_____&)); styleMenu.add(fontMenu); //创建并添加形体菜单项并添加事件监听器 songitem=new JMenuItem(&宋体&); songitem.addActionListener(this); huaitem=new JMenuItem(&华文行楷&); huaitem.addActionListener(this); liitem=new JMenuItem(&隶书&); liitem.addActionListener(this); fontMenu.add(songitem); fontMenu.add(huaitem); fontMenu.add(liitem); fontMenu.add(new JMenuItem(&_____&)); //创建复选菜单并添加事件监听器第 18 页 共 24 页 JAVA 课程设计bolditem=new JCheckBoxMenuItem(&加粗&); bolditem.addActionListener(this); italicitem=new JCheckBoxMenuItem(&倾斜&); italicitem.addActionListener(this); fontMenu.add(bolditem); fontMenu.add(italicitem); //新建帮助菜单并设置颜色及快捷键 JMenu helpMenu=new JMenu(&帮助(H)&); helpMenu.setForeground(Color. BLUE); helpMenu.setMnemonic('H'); //创建帮助菜单项并添加事件监听器 copyrightitem = new JMenuItem(&版权&, 'b'); copyrightitem.addActionListener(this); explainitem=new JMenuItem(&说明&,'a'); explainitem.addActionListener(this); helpMenu.add(copyrightitem); helpMenu.add(explainitem); //添加各菜单 menubar.add(fileMenu); menubar.add(styleMenu); menubar.add(helpMenu); Container contentPane=getContentPane(); //新建文本面板 JPanel TextPanel=new JPanel(); //设置文本域大小 text=new JTextArea(27,80); //设置初始字体 text.setFont(new Font(&宋体&,Font.PLAIN,13)); //为文本域添加滚动条 JScrollPane scrollpane=new JScrollPane (text); TextPanel.add(scrollpane); contentPane.add(TextPanel,BorderLayout.SOUTH); //新建工具面板 JPanel toolPanel=new JPanel(); //创建标签 JLabel l=new JLabel(&字体大小&); //新建组合框 sizeBox= new JComboBox(); //创建用来存放字体大小的数组并进行初始化 a=new int [16]; for(int i=0;i&=15;i++) { a[i]=(i+5)*2; sizeBox.addItem(&&+a[i]); }第 19 页 共 24 页 JAVA 课程设计//为组合框添加并实现事件监听器 sizeBox.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent event) { if( event.getStateChange() == ItemEvent.SELECTED) { text.setFont( new Font( text.getFont().getName(), text.getFont().getStyle(), a[sizeBox.getSelectedIndex()] ) ); } } } ); toolPanel.add(l); toolPanel.add(sizeBox); contentPane.add(toolPanel,BorderLayout.NORTH); } //实现事件监听器 public void actionPerformed(ActionEvent e) { Object s=e.getSource(); //实现版权菜单项 if (s==copyrightitem) { int selection=JOptionPane.showConfirmDialog( textFrame.this, &制作人: 金华日, 章旭, 李伏俊&,&版权&, JOptionPane.DEFAULT_OPTION); } //实现说明菜单项 if(s==explainitem) { int selection=JOptionPane.showConfirmDialog( textFrame.this, &该记事本为 527 组,版权所有,翻版必究。&,&说明&, JOptionPane.DEFAULT_OPTION); } //定义形体变量 int fontStyle=0; if(bolditem.isSelected()) fontStyle+=Font.BOLD; if(italicitem.isSelected()) fontStyle+=Font.ITALIC;第 20 页 共 24 页 JAVA 课程设计text.setFont(new Font(text.getFont().getName(), fontStyle,text.getFont().getSize())); //实现各字体菜单 if (s==huaitem) text.setFont(new Font(&华文行楷&,fontStyle, text.getFont().getSize())); if (s==songitem) text.setFont(new Font(&宋体&,fontStyle,text.getFont().getSize())); if (s==liitem) text.setFont(new Font(&隶书&,fontStyle,text.getFont().getSize())); //实现各种颜色菜单项 if (s==bitem) text.setForeground( Color.BLUE ); if (s==blitem) text.setForeground(Color.BLACK); if (s==ritem) text.setForeground(Color.RED); if (s==gitem) text.setForeground(Color.GREEN); //实现打开菜单项 if (s==openitem) { JFileChooser f=new JFileChooser(); //添加打开对话框 f.showOpenDialog(this); this.setTitle(f.getSelectedFile().getName()+& - 记事本&); try { FileReader fr = new FileReader(f.getSelectedFile()); BufferedReader br = new BufferedReader(fr); S while((str = br.readLine()) != null) { text.setText(text.getText()+str+&\n&); } br.close(); fr.close(); } catch(Exception ee) { ee.printStackTrace(); } } if(s==saveitem)第 21 页 共 24 页 JAVA 课程设计{ JFileChooser f=new JFileChooser(); //添加保存对话框 f.showSaveDialog(this); try{ String str=f.getSelectedFile().getAbsolutePath(); //保存文件并定义文件的类型 FileWriter fw=new FileWriter(str+&.txt&); BufferedWriter bw=new BufferedWriter(fw); PrintWriter pw=new PrintWriter(bw); pw.print(text.getText()); bw.close(); fw.close();} catch(Exception ee) { ee.printStackTrace(); } } } //定义各菜单及菜单项 public JMenu fileM public JMenu styleM public JMenu helpM public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JMenuI public JCheckBoxMenuI public JCheckBoxMenuI public JTextA//定义文本域 public int a[];//定义数组 a 用于存放字体大小 public JComboBox sizeB//定义组合框 }(3) 运行界面:第 22 页 共 24 页 JAVA 课程设计图 2-3 记事本界面效果图图 2-4 记事本打开对话框效果图第 23 页 共 24 页 JAVA 课程设计图 2-5 记事本字体运行效果图图 2-6 记事本“帮助”菜单运行效果图第 24 页 共 24 页
【java课程设计心得体会】完成的任务1. 2. 3. 4. 5. 登录模块 前台服务 权限管理 密码 MD5 加密 集成小组成员的各个模块心得与体会刚开始看这个项目的时候,觉得比较简单,总体的感觉是 java 的 swing 布局有些复杂, 其他的都还好!由于时间比较紧,发现了项目中的一些 bug,但还没有时间来得及一一修改 和完善,以后有时间,再完善。做这个项目的时候,由于有几门考试,所以没有花很多时间 考虑这个架构,而是参考了网上的一些代码,慢慢的理清了思路。起初,我的思路是使用三层架构,使用典型的 MVC 模式,M(模型)包括一些 java bean, 一些实体类和基础的方法,V(视图)主要是 swing 搭建的界面,C(控制器)则包括一些具 体的操作方法,以及调节模型和视图之间的调用关系等。这次,整个系统并没有完全使用 MVC 模式编写,只使用了一小部分,小组的其他成员,对 MVC 模式都不是很了解,此项目,使用 MVC 模式,我感觉还复杂一些,有很多多余的操作。本系统连接操作数据库使用的是 DBUtils,它是是操作数据库的组件,对传统操作数据库的 类进行二次封装,可以把结果集转化成 List。DBUtils 封装了对 JDBC 的操作,简化了 JDBC 操 作 , 可 以 少 写 代码 。ArrayHandler 将 ResultSet 中 第 一 行 的 数 据转 化 成对 象 数 组 ; ArrayListHandler 将 ResultSet 中 所 有 的 数 据 转 化 成 List , List 中 存 放 的 是 Object[] ; BeanHandler :将 ResultSet 中第一行的数据转化成类对象; BeanListHandler :将 ResultSet 中所有的数据转化成 List,List 中存放的是类对象 ;ColumnListHandler :将 ResultSet 中某 一列的数据存成 List,List 中存放的是 Object 对象; KeyedHandler :将 ResultSet 中存成映 射,key 为某一列对应为 Map。Map 中存放的是数据 ;MapHandler :将 ResultSet 中第一 行的数据存成 Map 映射;MapListHandler :将 ResultSet 中所有的数据存成 List。List 中存放 的是 Map ;ScalarHandler :将 ResultSet 中一条记录的其中某一列的数据存成 Object。前台服务模块,主要理解 Vector 的使用就可以了,Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需 要增大或缩小, 以适应创建 Vector 后进行添加或移除项的操作。Vector 可以扩展为二维或 者三维数组,在前台服务中,菜单列表和桌子列表的表格的数据源均来自 Vector,所以,需 要我们动态构造 Vector 添加到表格中去,并且呈现出来。修改数据的办法一般是,先修改 Vector 里面的值,然后更新到 table 中,或者直接修改 table 里面单元格的值。获得表格指定 行和列的值的方法是 table.getValueAt(row,column)。菜单和桌子列表都是用的 Vector 的二维 表现形式,其中把菜单和桌子关联起来用来了 Vector 的三维形式,主要是用来方便获取每 一桌的点的菜。其他的部分都是一些逻辑关系。很多时间,花费在了界面上面。业务逻辑的 处理,主要包括,首页是定桌,点菜,菜必须签单,才有效,结账的时候,必须没有未签单 的菜。其实菜单列表和桌子列表是通过三维的 Vector 关联起来的,通过桌子列表的索引, 可以查询到该桌子菜单列表的情况。结账这一块的时候,主要就是在结账成功后,相应的消 费信息才会真正的进入数据库。谈到登录模块,首先说密码加密。密码加密,其实就是,通过数据库,你无法看到真实 的密码,看到的是经过 MD5 算法加密后的 32 位字符。虽然,大都加密,都采用二次 MD5 加密,防止通过逆运算,破解,但这个系统,并没有搞到这么复杂,就采用了一次 MD5 加 密。密码加密后,登录系统和修改密码的时候,都需要做一次密码加密后的验证,添加新用 户的时候,也需要把密码加密后,加入到系统数据中。登录模块,就是密码的校验,很重要 的异常和用户的不输入的判断等。权限管理模块,本系统采用了二级权限管理,超级管理员和普通管理员,超级管理员,拥有 所有的操作权限,而普通管理员,只能前台服务和日结账,以及修改自己的密码。这个模块 的实现,其实也没有什么难度,只要在登录的时候,判断一下用户级别,如果是普通用户, 则设置一些按钮为不可用即可。集成小组成员的各个模块,这个工作可以说是最头疼的一个。开始,规划的蛮好,采用 MVC 模式编写,但后来发现,他们对这个都不知道,所以无法进行下去,考虑到后面的集 成问题,就部分采用了老师给的基本的数据库采用代码,但我还是保留了 MVC 的框架和一 些类,方便以后的扩展。鲁蒙
【java课程设计心得体会】关于 Javaweb 课程设计的 心得体会----在线测试系统 ----在线测试系统这次课程设计我做的是章节自测系统, 这次课程设计我做的是章节自测系统, 主要是 服务于学生进行阶段性自测和练习。服务于学生进行阶段性自测和练习。系统分为练习和 测试两部分,每一部分又各分若干专题。测试两部分,每一部分又各分若干专题。系统中采用 的技术主要有数据库连接技术、 的技术主要有:JDBC 数据库连接技术、和 MVC 三层架 集成开发环境。构利用 MyEclipse 集成开发环境。虽然系统的基本功能都已实现, 虽然系统的基本功能都已实现,但还是存在系统 不稳定等多个问题尚待解决。不稳定等多个问题尚待解决。这个系统主要是我自己 开发的,但也得到了老师和同学的很大帮助。开发的,但也得到了老师和同学的很大帮助。我正在 做系统的过程中遇到了很多问题, 做系统的过程中遇到了很多问题,有的是知识存储不 足,有的是考虑不够周全,之所以能够顺利实现基本 有的是考虑不够周全,之所以能够顺利实现基本 顺利实现基 功功能,离不开老师和同学的大力相助。事实证明, 功功能,离不开老师和同学的大力相助。事实证明, 只靠自己是不能顺利完成一套功能完整的系统的, 只靠自己是不能顺利完成一套功能完整的系统的,必 须充分利用团队的力量。须充分利用团队的力量。开发一套系统,最重要的是细心, 开发一套系统,最重要的是细心,并不是一定要 做到面面俱到, 做到面面俱到,但也要充分考虑到客户的需求和现实 意义,不管什么系统,只用运用到实际应用中, 意义,不管什么系统,只用运用到实际应用中,才具 有先现实意义。所以在准备工作中要正确分析社会需 有先现实意义。所以在准备工作中要正确分析社会需 准备工作中要正确分析社会 求了解现实应用,画出流程图,把大体框架做好,然 了解现实应用,画出流程图,把大体框架做好, 流程图 后再逐一细化。我们不可能做到面面俱到, 一定要 后再逐一细化。我们不可能做到面面俱到,但一定要 不可能做到面面俱到 做到步步扎实,作为一个程序编程人员 做到步步扎实,作为一个程序编程人员,要保持清醒 的头脑,以现实为依据, 的头脑,以现实为依据,让自己的每一行代码都能实 现自己的意义。现自己的意义。通过这次课程设计, 通过这次课程设计,我收获的不仅仅是课程上的 设计 知识得到实际应用, 知识得到实际应用,还有编程的基本习惯和开发系统 时应注意的流程。时应注意的流程。主要功能及规格分析 主要功能及规格分析 及规格 1.1 登录系统的主要功能要求 欢迎页面 系统登录 管理员或普通用户功能选择 1.2 在线考试系统的主要实现功能要求 用户修改登录密码 让用户选择考试科目 从试题库中随机出题给用户 根据随机出的题做出用户的考试页面 保存用户的答案 给用户的试卷评分 查询用户成绩 1.3 在线管理系统的主要功能要求 浏览整个系统中的各种用户(超级用户、 浏览整个系统中的各种用户(超级用户、 普通用户) 普通用户) 添加管理员和普通用户 浏览并添加考试科目 浏览并添加题库 管理员修改登录密码 1.4 在线阅卷系统的主要功能要求 浏览系统中考试科目 根据考试科目进行试卷批改 实现客观题的自动批改 实现主观题的人工批改2、功能需求和用例分析 系统功能需求2.1 系统功能需求:老师可以在网上完成一个考试从 题目设计,试题录入,考试安排,考试实施, 题目设计,试题录入,考试安排,考试实施,考卷批 改,分析统计;考试数据,其它数据要求储存在数据 分析统计;考试数据, 库上; 库上 ; 考试数据的存放和处理可以实现对学生公开 (学生自测成绩可自己查看)也可以实现非公开,需 学生自测成绩可自己查看)也可以实现非公开, 要一定的安全性保障。要一定的安全性保障。考生2.1.1 考生分布式的, (1).分布式的,从考试客户端连接到考试应用 服务器,在任何地方进行身份确认, 服务器,在任何地方进行身份确认,从而完成考试 (2).考生可以登陆后修改自己的密码 (2).题目具有一个稳定性和随机性,试卷生成方式 题目具有一个稳定性和随机性, 主要有两种(随机自动生成、固定试题、) 主要有两种(随机自动生成、固定试题、) (3).考生提交试卷后可以得知考试结果并且知道哪 里出错。里出错。老师2.1.2 老师(1).提供一个功能全面的考试管理客户端,可以进 提供一个功能全面的考试管理客户端, 行考试的设计和安排功能 (2).对考生进行身份管理 (3).对考试进行监控 (4).保存考试结果,供老师进行分析和察看。保存考试结果,供老师进行分析和察看。用例描述2.2 用例描述帐户管理 用例名称用例名称:帐户管理 参与者参与者超级用户 功能描述功能描述:1. 查看学生详细信息 2. 添加和删除学生用户 3. 添加和删除用户 考试管理 用例名称用例名称:考试管理 参与者参与者超级用户 功能描述功能描述:1. 设置考试题型 2. 设置考试分值 3.设置考试时间和难度级别 3.设置考试时间和难度级别 4.设置题目显示方式 ( 4. 设置题目显示方式( 全屏显示所以题还是一屏一 设置题目显示方式 题) 5.设置出题方式(随机出题还是固定试题) 5.设置出题方式(随机出题还是固定试题) 设置出题方式 题库管理 用例名称用例名称:题库管理 参与者参与者超级用户 功能描述:1.题库分类和题型管理 功能描述:1.题库分类和题型管理 2.添加和删除、 2.添加和删除、修改试题 添加和删除 3.试题成批倒入 3.试题成批倒入 在线阅卷 用例名称用例名称:在线阅卷 参与者参与者超级用户 功能描述:1.查看学生是否交卷 功能描述:1.查看学生是否交卷 2.系统对照题库答案给出考试成绩. 2.系统对照题库答案给出考试成绩. 系统对照题库答案给出考试成绩 开始考试 用例名称用例名称:开始考试 参与者参与者普通用户 功能描述:提示普通用户输入参数, 功能描述:提示普通用户输入参数,系统将进行随机 抽题, 抽题,然后进入考试界面 修改密码 用例名称用例名称:修改密码 参与者参与者码 考试记录用例名称考试记录用例名称:考试记录 参与者参与者普通用户 普通用户 功能描述功能描述:用户为了安全起见可以修改自己的登录密

我要回帖

更多关于 java程序设计课程简介 的文章

 

随机推荐