java实训总结报告(精选8篇)
java实训报告总结4000【1】
一、实训目的
1.熟练掌握Java面向对象程序设计的基础知识。
2.熟练掌握Java中常用的Swing组件的使用方法。
3.熟练掌握Java程序中图形用户界面设计的方法。
4.熟练掌握使用JDBC操作数据库的方法。
5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。
二、课程设计报告内容
2.1 实训内容
本课程设计的题目是设计一个简化的图书管理系统。
该系统从图书馆管理人员的角度出发,实现对图书信息、读者信息的浏览、添加、删除和查询,同时还可以对读者借书、还书过程进行操作和控制。
设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。
系统功能分析是在系统开发的总体任务的基础上完成的。
该管理系统需要完成的基本功能主要有:
用户管理:主要包括用户的添加、修改和删除。
读者管理:主要包括读者信息的浏览、添加、删除和查询。
图书管理:主要包括图书信息的浏览、添加、删除和查询。
借还书管理:主要包括借书、还书和续借。
2.2 实训设备或软、硬件
硬件:PⅣ及以上性能的PC机;
软件:Windows 或Windows XP系统;JDK工具;JCreator4.0环境
2.3 功能设计及思想
首先设计测试登录窗口:Text.java
接下来设计LoginFrame.java(登录窗口)、MainFrame(主窗体)
Addbookframe.java(图书入库窗口)、AddReaders.java(添加读者窗口)、AddUserframe.java(添加用户窗口)、Borrowframe.java(借书窗口)、Retumframe.java(还书窗口)、Queryframe.java(图书查询窗口)。
导入部分及实现的接口
三、结论
Java实训在不知不觉中就结束了,我感觉自己还有好多东西要学,还有好多的东西不懂呢!这是我大学以来第3次实训,每次实训我都感觉学到了好多东西!因为是一天到晚的不间断训练,所以记的会非常牢固。
不像平时上课,每上两次的理论课却只有45分钟的实际操作。
在课上,有老师在前面演示我们都还能跟着做,可轮到我们独立完成的时候,因为实际操作的少,早就忘光了!我很感谢学校有实训这样的安排,把我们这一学期学的东西系统的集中的进行训练,对我们计算机水平的提高发挥着重要作用!还要感谢我们的侯老师,侯老师学识渊博,也很有耐心,即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导,还给我们讲一些学习java的方法,让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,什么也学不好!
经过这次的实训,我真真确确的感受到了这些开发工具能让我们提高工作的效率,更直观更便捷的切入主题。
这次我们学习的是制作图书信息管理系统,由老师给我们指导。
当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的耐心与细心又太差,根本检查不出来是哪里出了错!这时候,侯老师都会耐心的过来帮助我,我很感谢侯老师也很感谢学校能安排这么优秀的侯老师来教我们!只是,我们太顽皮,有很多东西老师讲了我们也没能记住,我想在此说一句:老师,您辛苦了,下学期我们一定认认真真的好好学!
实训课是在学习与探索中度过的,短暂的15天实训是结束了,但其中让我们学到了许多知识,出现许多未知的为什么,如图书管理数据库的初步设置、JDBC和SQL Server服务器的连接、数据备份与还原的步骤,报表的设计与实现、如何设置数据源、通过ADO访问数据库的方法、探听器、各种Java Swing组件的使用,绑定控件的属性设置、如何实现Click事件、实现它的获得方法、设置注册焦点
探听器、获取当前日期、以及利用函数之间的相互转换等等一系列的问题,正是在老师和同学的共同努力之下,我才一步步把问题解决了,最终完成了不可能完成的任务。
为期15天的实训课就这样结束了,我发现我对java有了新的认识,以前只知道玩游戏、娱乐和简单的应用。
通过这次的实训,我了解到,要真真正正的掌握这些开发工具还不是一件简单容易的事儿,但真正掌握后,它带个我们的将是无穷的`便捷与科技,我喜欢高端便捷的生活。
我希望我能做计算机这个万能机器人的主人而不是奴隶,我会努力加油的!
通过实训,我不仅巩固了旧知识,也学到了新的知识,并且把所学的应用到实际操作中,提高了我们的实际动手能力和逻辑思维能力。
也让我们对软件开发的流程有一定了解,并且对开发软件有了一些初步的经验。
真正做到了学习与实际应用相结合,真的很感谢老师为我们争取的这次实训机会,在这次实训期间我获益匪浅。
最后,谢谢老师在实习过程给予的帮助!老师辛苦了!感谢学校,感谢老师给我的帮助,让我的思想、技能又上了一个台阶!
四、结束语
java毕业实习报告范文【2】
作为就业>培训,项目的好坏对培训质量的影响非常大,常常是决定性的作用。
这篇文章是关于在学习JAVA软件开发时练习项目的总结,简单总结为以下几点:
1、项目一定要全新的项目,不能是以前做过的
2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统
3、在开发时要和企业的开发保持一致
4、在做项目的时候不应该有参考代码
长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。
一:项目的地位
因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。
他们欠缺的主要是两点:
(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。
(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。
解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。
二:如何选择项目
项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据Java的研究和实践经验总结,选择项目的时候要注意以下方面:
1:项目不能太大,也不能太小
这个要根据项目练习的阶段,练习的时间,练习的目标来判断。
不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。
2:项目不能脱离实际应用系统
项目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。
因为培训的时间有限,必须让学员尽快地融入到实际项目的开发当中去。
任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。
3:项目应能覆盖所学的主要知识点
学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。
4:最后综合项目一定要是实际应用系统
学员经过这个项目的练习,就要走上实际的工作岗位了,如果这个系统还达不到实际应用系统的标准,学员练习过后也还是达不到企业实际的需要,那么这个培训应该说质量就不高了。
理想的状况是这个项目就是实际项目,到时候学员就业到另外一个公司,不过是换个地方干活而已,完全没有技能上的问题。
三:Java怎么选择项目
这个不是靠想象,而是根据实际的情况一步一步分析出来的(呵呵要卖弄一下:这也算是逻辑思维),当然这里只是讨论方法,不涉及具体的项目案例。
我们可以采用倒推的方式来分析:
(1)最终的项目一定是真实的项目,也就是要把学员训练到能够独立开发实际应用,通常我们还不能选最简单的项目,因为学员的吸收还要有一个折扣,所以最终的项目应该选实际项目中中等难度的项目
(2)最终项目定下来过后,开始分解这个项目,看看为了达到完成这个项目需要哪些技术和知识点,以及每部分知识点的深度,然后定出每个分阶段的任务
(3)然后开始选择分阶段的项目,分阶段的项目应该比刚才分析出来的分阶段任务稍稍复杂点,这样才能达到训练的目标。
定下分阶段项目后,同样去分解,定出为了完成他所需要的各部分知识点和深度。
(4)然后是选择上课期间的演示项目,演示的项目是为了做分阶段项目服务的,可以认为是分阶段项目的分阶段项目
(5)最终把要求掌握的知识点和要求掌握的深度,分散到日常教学和练习中。
好了,把上面的分析用正向描述就是:日常教学和练习中学习和掌握的知识
==〉演示项目
==〉分阶段项目
==〉综合项目
==〉胜任企业实际开发需要。
附注:有了好的项目还要有好的训练方法(这个另外立文讨论),最最基本和重要的一条就是:绝对要指导学生亲自动手做,而不是看和听,所以尽量不要选择有现成代码的项目,演示用的项目也最好不配发代码,让学生能够跟着做出来才是真的掌握了。
上面阐述了Java对项目的态度和基本选择方法,这里再把其中几个重要的、与众不同的特点阐述如下:
1:真项目
项目一定要真实,要是企业实际应用的,不能是教学性的项目,否则会脱离实达不到项目实训的效果。
还有一个一定要是最新的项目,企业的要求也是在不断变化的,应用技术的方向和层次也在不断变化,这些都体现在最新项目的要求上,旧项目所要求的技术和层次很可能已经过时了,根本达不到训练的目的。
Java的做法是:没有固定项目,每个班做项目之前会从企业获取最新的项目需求,然后经过挑选和精心设计,以保证既能训练技术,又能得到实际的开发经验。
这样实现了跟企业的同步,企业做什么,我们就学什么,然后也跟着做什么。
2:真流程
开发的流程也要跟企业的实际开发保持一致。
从项目立项开始,到需求分析、概要设计、详细设计、编码、测试的各个环节,都要完全按照真实的开发流程来做。
Java的主力老师都是实战出身,在Java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。
3:真环境
开发的环境也要跟企业一样,包括常用的开发工具、开发平台、应用服务器、常用插件、测试工具、项目管理工具、项目管理文档等等。
Java的做法是:构建跟企业完全一样的环境,然后跟企业开发一样,分团队开发。
老师就相当于项目经理,一个班分成多个小组,每个组有自己的Team
Leader,大家分工合作,共同完成项目。
4:真开发
这是Java最与众不同的一点,Java深知:软件是做出来的,而不是听出来或者看出来的,企业需要能实际开发的人员,而不是只听过、看过但不能做的人。
所以Java非常强调:项目一定要让学生动手写出来。
Java的做法是:老师做为项目经理,带领着大家一起去做需求分析、概要设计、数据结构设计、接口设计、重要业务流程的分析设计等,然后由学生们分团队进行开发,实现整个项目。
这里有几个与众不同:
(1):现场带领学生一起做分析和设计,而不是预先做好了来讲讲。
因为需要学生学习的是分析设计的过程和方法,而不是已经做好的结果。
(2):Java选用的项目基本都是企业最新的项目,很多都是Java的学生和企业在同期开发,所以是不配发源代码的。
这样也断绝了学生的依赖思想,认认真真去开发。
可能有同学会问:为什么不选择有源代码的项目呢,那样还可以参考学习啊!
这是一个典型的误区:觉得通过看人家的代码能够加快自己的学习。
这个方法对有经验的人来讲是对的,但是对于还在学习期间,没有经验的学员来讲,就是一个认识的误区了。
因为你也许能看懂代码的语法,但根本看不懂代码背后的含义,看不懂代码的设计,看不懂为什么要这么实现,看不懂代码所体现的思想,其实,看了跟没看没有多大区别。
事实上,Java界最不缺的就是代码了,那么多开源软件,小到一个工具,到企业级ERP都有开源的,而且很多都是大师级的作品,说实话比你参考的那些代码质量高多了,但是又有多少人能真正看明白呢,原因就在于达不到那个水平,看不懂代码背后所体现的设计和思想以及为什么要这么做,效果也就不好了。
当然不排除有这样的高人是能够完全能理解和掌握这些大师级作品的,但估计不会是刚开始学习Java开发的学生,所以Java根据多年的培训经验,友情提示:在初学阶段,看一千遍,听一千遍,都不如自己动手写一遍所达到的学习效果。
自己能写出来的功能才是你真正掌握的功能,而不是你看得代码或者是听老师讲的,就算讲过看过,但是自己做不出来,那都不算会。
(3):Java在课堂上除了带领学生去分析设计外,还会分析一些重点、难点功能的实现机制和原理,然后指导学生去实现。
5:真技术
Java在每个项目中,特别会抽取有难度的部分让学生们在老师指导下实现,专门啃硬骨头,那才能真正锻炼学生的开发能力。
比如:在做OA类的项目时,会重点去做工作流、公文收发、在线Office控制等;
在做CRM类项目时:会重点去做销售>自动化和市场块的业务;在做人力资源类项目的时候会重点去做人力跟踪和人力评测模型等……
Java在每个项目中,都会使用目前企业最新最流行的技术,按照最新的难度去要求,从而让学员能更符合企业的需要。
6:真经验
Java的项目都是企业最新的真实项目,经过开发训练,学员能够积累足够的真实的开发经验,以胜任企业的工作需要。
在进行项目分析时,还会全面讲解项目所要求的业务,让学员从业务和技术上都能充分积累。
7:真实力
作为就业培训,项目的好坏对培训质量的影响非常大,常常是决定性的作用。
这篇文章是关于在学习JAVA软件开发时练习项目的总结,简单总结为以下几点:事实上,不采用有源代码的教学性项目对Java的要求非常高。
试想一下,如果项目分发下去,老师带着分析后,学生都不会做会出现什么样的后果?这对Java的教学质量提出了极高的要求,如果教学质量达不到让学员独立开发的水平,对依靠质量取胜和口碑发展的Java将是毁灭性的。
另外一个,由于是全真的项目,在开发的过程中,肯定会有很多的问题出现,这些都要老师去解决,由于不像教学项目那样预先做好,又需要老师能很快地解决各个问题,这对老师的真实开发水平有极高的要求,这可是需要真功夫的。
总结
关键词 实训课程 过程管理 企业过程管理文档
中图分类号:G420 文献标识码:A
0 引言
实训是职业技能实际训练的简称,是指在学校控制状态下,按照人才培养规律与目标,对学生进行职业技术应用能力训练的教学过程。基于案例的Web开发实训是软件技术(Java)专业的一门核心课程,旨在培养学生使用主流框架技术开发Java Web应用的能力。通过与企业工程师交流,借鉴主流软件开发企业的过程管理文档,课程中引入了项目过程管理方法,在课堂环境中模拟软件企业真实管理情景,注重软件开发过程管理。
1 过程管理的必要性
实训是对实际软件开发工作的一种模拟,早先我们主要是针对工作任务的模拟,要求学生在一定的时间范围内完成相应的任务,而对于过程管理不够重视。通常班级学生有40到50名,对每位同学的过程管理需要花费很多的精力,因此过程管理难度比较大,教师重点关注验收考核环节。为了有效地实行过程控制,需要找到一种简单的方法,便于教师对实训进行控制。过程管理要求实训过程可度量、可控制,可度量指可以对学生在实训中完成的中间结果进行评测和度量,可控制是指发现进度异常并做出调整。引入过程管理使学生在实训中了解企业的管理模式,在迈上工作岗位时可以适应企业要求。
2 过程管理实施
2.1 项目任务书
项目任务书详细描述项目的具体需求,项目开发过程中的特定要求,项目完成时间节点。Java Web应用开发任务书包括实训概况,实训功能,实训流程图和实训原型以及开发成员配置建议。实训概括是对实训目的、环境要求进行简单描述,功能是指实训中完成的系统功能,实训流程图展示了完成实训的步骤,实训原型使用原型工具开发出系统操作界面,便于软件开发人员与系统分析人员之间交流,开发成员配置是对该项目开发过程中人员配置的建议。
2.2 项目计划表
制定计划是整个项目管理过程中最重要的一个环节。计划表是项目开发前对项目开发进度的预估和安排,包括任务名称、工期、开始时间、完成时间和资源名称等。在Java Web应用开发中具体包括项目启动、任务书发布、开发团队成立、开发环境确认和熟悉、项目计划、程序设计、系统测试、项目审核等过程,期中程序设计又可以细分为数据库设计与开发、系统架构设计、系统模块设计与开发、测试用例设计等。项目计划表的制定需要依据项目任务书的具体需求、项目完成人开发能力、开发时间限制等要素来完成。项目计划的制定具有一定的限制性,计划由开发小组完成初稿交教师(项目经理)审核,审核未通过要求该小组内部讨论修订,审核通过后由教师(项目经理)下发该文档,在实训中对项目的检查就是以项目计划表作为依据。
2.3 日报表
日报表是软件研发工程师(学生)每天工作情况的总结。软件研发工程师(学生)对比项目计划表规定的每日工作内容,找出差距并给出整改方案,日报中还包含次日工作安排。日报表是整个过程控制中的较为重要的一个环节。教师(项目经理)通过审查研发工程师(学生)的日报表及时发现问题并做出相应处理,实现过程控制。当日报表中反映出来某位学生不能及时完成任务,则需要与之沟通,了解原因,给予必要的指导。
2.4 审核问题一览表
在项目开发过程中遇到问题是不可避免的,关键是需要及时发现、记录和解决。问题的解决过程就是学习的过程。问题记录项目包括项目名称,项目编号,审核类型,项目实施阶段,审查对象,问题发现时间,不一致性问题描述,不一致问题严重程度,不一致问题优先级,解决期限,解决措施,当事人,验证日期及结果,不一致问题出现次数,处理状态等。
审核问题一览表不仅对学生具有意义,便于在解决问题过程中学习,同时也是课程考核的依据。根据审核问题一览表中的记录,我们可以判断学生对于软件设计开发过程中的思考是否深入。将所有学生的审核问题一览表总结起来就生成软件开发注意事项,提示学生在开发过程中容易出现的问题。
2.5 测试实验项目表
测试实验项目表中包括项目模块名称、预测结果说明、执行结果描述、执行结果、试验人、日期、BUG描述、对应人、对应日期、确认结果、确认日期等。其中“项目模块名称”简单描述被测试模块名称,“预测结果说明”描述正常情况下的预期结果,“执行结果”描述该模块测试的结果,“BUG描述”记录测试过程中遇到的BUG,“对应人”表示解决该BUG的人,“对应日期”表示解决问题的时间。测试实验项目表是对项目的测试进行详细描述。
3 结束语
要实现过程可控,学生需要掌握管理文档的使用方法,并按照要求切实执行,具体实施过程中注意以下两点。一是加深对文档的理解。对学生来说使用和编写企业管理文档具有一定的难度,在项目开发前,需要详细讲解各种管理文档,用真实的案例做介绍。学生只有充分理解,才能在学习中灵活应用。二是及时审核。许多学生对管理文档不重视,往往在实训的最后两天做总结性的编写,用项目的实际进度表代替项目计划表,对项目开发不做规划,这种现象将导致过程管理失败。因此教师在实训中需要不间断审核学生提交的文档,从文档中发现问题并及时反馈,保障实训有序进行。
国家示范骨干高职院软件技术及专业群建设优质核心课程《Java Web应用开发》课程建设项目资助,南京信息职业技术学院课程改革专项《基于框架的Web开发实训》项目资助
参考文献
[1] 严明良,刘颖.高职院校实训教学体系构建的研究与实践[J].实验室研究与探索,2008(6).
[2] 李红梅,张红延,卢苇.面向能力培养的软件工程实践教学体系[J].高等工程教育研究,2009(2).
姓名:孙尊路
班级:软件111
学号:1132304117
在为期一周的实训后,给我最大感触的是只要坚持去做,总有办法能完成。在实训中,我们做的是商品购物的一个网站,其功能类似于先前做的新闻管理网站,主要包括添加,查询,修改,删除等几个功能。在实训中,遇到了很多的问题,首先人员的分配时很重要的,只有明白自己做的模块,熟悉自己要做哪些功能?如何去做?然后小组之间互相讨论,最终形成一个统一的商品管理网站的构想。在实训过程中,我负责的是后台代码的实现,在一开始,就遇到了很多的错误,经过组员的讨论,错误一点一点的给克服啦!虽然中间出现了一些不同的见解,但是根据项目的需要,我们经过了逐个的筛选,最终达成了一致意见。我觉得一个成功的网站必须有一个足够丰富的数据库,数据库的创建也是必需的一个步骤,如果数据库都存在问题的话,可想而知,麻烦是很大的。实训中发现,平时所学的基础知识是多么的重要,只有牢牢地掌握书本上的基础知识,才能在实训中,不会磕磕绊绊,才能够理解代码的含义,找出相应的错误。
这次实训,我们更多学到的是不断地就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识。最后在自己的努力下,终于基本上成功了,心情也是有点小愉悦。
通过此次短暂的作业设计,我深有感触。从一开始的构思再到今天写下这份总结。期间时间虽短但是也学到了不少的知识。在刚开始构想只有大体的思路,忽略了一些细节,因此在我真正做设计方案时发现有很多错误,有的时候要解决一个错误反反复复会花上很多时间。在做的过程中,也会有很多意想不到的错误,其中有的错误到最后解决的时候却是发现犯得很幼稚,不过这样的错误多了,在不知不觉中对一些命令知识分外的熟悉了起来,并且自身的排错能力也得到很大的提高。
此次的方案设计,让我第一次摸索java的需求去构建框架,在设计过程中总是会遇到一些很小的问题,虽然不明显,却可以影响到整个软件的运作。
在这次实习过程中,我发现平时学习的知识与实践环节所用到的有一定的差距,往往我觉得自己掌握的很好或者自认为熟练的技术却在此次实践环节中往往出问题,书本上的知识只提供方法的借鉴,实践中自己必须摸索出适合具体工作的方法,这一切都离不开钻研精神与勤学好问的精神.在人与人相处过程中我收获更大,首先要谦虚谨慎,不能自以为是,认为自己懂得很多,而仅仅埋头苦干,而不向他人请教,工作不但是实践与应用的过程,同时也是学习的过程,我们必须加强与他人的沟通学习,以便获得与他人的交流。
1.熟练掌握Java面向对象程序设计的基础知识。
2.熟练掌握Java中常用的Swing组件的使用方法。
3.熟练掌握Java程序中图形用户界面设计的方法。
4.熟练掌握使用JDBC操作数据库的方法。
5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。
二、课程设计报告内容
2.1 实训内容
本课程设计的题目是设计一个简化的图书管理系统。
该系统从图书馆管理人员的角度出发,实现对图书信息、读者信息的浏览、添加、删除和查询,同时还可以对读者借书、还书过程进行操作和控制。
设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。
系统功能分析是在系统开发的总体任务的基础上完成的。
该管理系统需要完成的基本功能主要有:
用户管理:主要包括用户的添加、修改和删除。
读者管理:主要包括读者信息的浏览、添加、删除和查询。
图书管理:主要包括图书信息的浏览、添加、删除和查询。
借还书管理:主要包括借书、还书和续借。
2.2 实训设备或软、硬件
硬件:PⅣ及以上性能的PC机;
软件:Windows 或Windows XP系统;JDK工具;JCreator4.0环境
2.3 功能设计及思想
首先设计测试登录窗口:Text.java
接下来设计LoginFrame.java(登录窗口)、MainFrame(主窗体)
Addbookframe.java(图书入库窗口)、AddReaders.java(添加读者窗口)、AddUserframe.java(添加用户窗口)、Borrowframe.java(借书窗口)、Retumframe.java(还书窗口)、Queryframe.java(图书查询窗口)。
导入部分及实现的接口
三、结论
Java实训在不知不觉中就结束了,我感觉自己还有好多东西要学,还有好多的东西不懂呢!这是我大学以来第3次实训,每次实训我都感觉学到了好多东西!因为是一天到晚的不间断训练,所以记的会非常牢固。
不像平时上课,每上两次的理论课却只有45分钟的实际操作。
在课上,有老师在前面演示我们都还能跟着做,可轮到我们独立完成的时候,因为实际操作的少,早就忘光了!我很感谢学校有实训这样的安排,把我们这一学期学的东西系统的集中的进行训练,对我们计算机水平的提高发挥着重要作用!还要感谢我们的侯老师,侯老师学识渊博,也很有耐心,即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导,还给我们讲一些学习java的方法,让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,什么也学不好!
经过这次的实训,我真真确确的感受到了这些开发工具能让我们提高工作的效率,更直观更便捷的切入主题。
这次我们学习的是制作图书信息管理系统,由老师给我们指导。
当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的耐心与细心又太差,根本检查不出来是哪里出了错!这时候,侯老师都会耐心的过来帮助我,我很感谢侯老师也很感谢学校能安排这么优秀的侯老师来教我们!只是,我们太顽皮,有很多东西老师讲了我们也没能记住,我想在此说一句:老师,您辛苦了,下学期我们一定认认真真的好好学!
实训课是在学习与探索中度过的,短暂的15天实训是结束了,但其中让我们学到了许多知识,出现许多未知的为什么,如图书管理数据库的初步设置、JDBC和SQL Server服务器的连接、数据备份与还原的步骤,报表的设计与实现、如何设置数据源、通过ADO访问数据库的方法、兼听器、各种Java Swing组件的使用,绑定控件的属性设置、如何实现Click事件、实现它的获得方法、设置注册焦点
兼听器、获取当前日期、以及利用函数之间的相互转换等等一系列的问题,正是在老师和同学的共同努力之下,我才一步步把问题解决了,最终完成了不可能完成的任务。
为期15天的实训课就这样结束了,我发现我对java有了新的认识,以前只知道玩游戏、娱乐和简单的应用。
通过这次的实训,我了解到,要真真正正的掌握这些开发工具还不是一件简单容易的事儿,但真正掌握后,它带个我们的将是无穷的便捷与科技,我喜欢高端便捷的生活。
我希望我能做计算机这个万能机器人的主人而不是奴隶,我会努力加油的!
通过实训,我不仅巩固了旧知识,也学到了新的知识,并且把所学的应用到实际操作中,提高了我们的实际动手能力和逻辑思维能力。
也让我们对软件开发的流程有一定了解,并且对开发软件有了一些初步的经验。
真正做到了学习与实际应用相结合,真的很感谢老师为我们争取的这次实训机会,在这次实训期间我获益匪浅。
最后,谢谢老师在实习过程给予的帮助!老师辛苦了!感谢学校,感谢老师给我的帮助,让我的思想、技能又上了一个台阶!
四、结束语
《Java图书管理系统项目》心得:
其实在学习图书管理系统实训时,我们就已经开展了SQL的学习,虽然它们之间存在不同,但是属于同一种语言——计算机语言,但是实际上呢!它们的思想是不同的,JAVA只是一种面向对象语言,而该项目实战是教我们如何制作一个实用型的软件,从实际出发,一步一步的按照老师的规定进行,按正规模式的方式制作软件,从初期的项目分析,书写可行性报告,到项目分工,最后开始书写代码,一天一天的写编程日记,把每一天遇到或完成的事情记录下来,一步步设计完成自已的工作,想象自己是一个程序设计师,我主要完成界面及其代码的设计,而其中有很多东西是我们所不知道,正向所有编程人员一样,我们是边学边作,而且书写代码的速度要很快,因为一个项目不应该在书写代码的方面浪费时间,在这期间很训练人,因为每天写代码时,都写的一身热汗,着急呀!可是当完成每天的任务,而多完成时有很大的成就感了,这当然是一个心里成就了,因为我暂时还没有写完这个程序了。
说真的,我写完这个图书信息管理系统时,真的感觉很累了,不过又很轻松了,因为终于完成了,不过在看了其他同学设计的程序时,心里也感到众多不足,因为我们设计的程序,在判断某些输入资料时,总是不严谨,可能给日后用户带来很多不方便,而且在日后的维护工作会很大,这样的程序,作为一个日后的程序员是不应该出现的。
其中,对了SQL语言的使用是相当的重要的,因为没有了SQL语言的支持,对数据库表的操作,是根本无法实现的,对数据的增加、删除、修改,都是一样的。
发现对于软件来说,对数据库的操作是至关重要的,因为有很多软件都是这样的,无论是什么都要对数据进行操作,统计、分类、查询、修改、删除等,而正因为这样,我在开始写程序时的SQL基础不好,所以出现在众多难题,而翻书查寻便是经常事情了,因为知识用到时方恨少了,其实我感觉用JAVA设计图形界面,是很费劲的,嗯用它作手机游戏看起来还不错,或者用它网络B/S、都是很好的,因为它就是为了网络而生的。
总的来说,对于开展这样的实用型项目,我个人认为是非常重要的,这种实训突破了以前我的思维模式和惯性作法,以前对于程序来说,一开始就制作从来也不计划,如果遇到了与想象中的不一样的难题,就把这部分删除掉,最近制作出来的程序,往往是功能不完善、功能不明确,没有具体的规划和文档,到最后让别人很难理解,自已也是很难弄明白。
没有一个良好的程序设计思想,当然了学习项目实战后,丢掉了那样坏毛病,建立了良好的设计思想和编程过程。
有很多不理解现在变成了现在的理解感谢,因为往往一些正确的思想,总是一开始不被人接受,而到最近时才会被理解认同,我也这样认为了。
通过这次的训练,掌握运用了java程序设计的一些思想,了解了Java面向对象程序设计的基础知识,熟练掌握了Java中常用的Swing组件的使用方法以及Java程序中图形用户界面设计的方法、使用JDBC操作数据库的方法。
初步了解了如何将复杂的问题层层分析成较小的子问题,实现Java编程的实际操作,掌握如何运用Java解决一些常见的编程问题,并学会、掌握分析解决问题的方法,并运用Java的程序结合自己对Java程序的初步认识与理解进行对照,查找自己与Java程序设计的偏差与不足之处,培养自己Java的思维。
本次实训项目通过分析并实现了图书管理系统。
本系统的设计让大家了解如何根据实际问题,分析功能需求,将复杂的问题分析成子问题,达到模块化设计系统功能的目标。
同时,可以利用这种方法制作通讯录管理、课程管理、工资管理、图书管理等小型管理系统,此外,此次实训培养了我们java 的思维能力,让我们对java有了更深层次的学习与理解,通过两周的实训可以去解决一些简单的编程问题,并对其出现的错误能以与改正和讨论同时,也对以前自己朦胧而不解的问题有了很好的理解,也知道了一些贵重的资料为何要施加密码,如银行卡。
对java的理论有了更深的理解,同时也可以运用本次的实训设置一些简单的系统,
总之,我们从这次的实训中受益匪浅,我对这次实训还是比较满意的,它使我学到了很多东西、学到了更深刻的知识,为我以后的学习做了引导,点明了方向,我相信在不远的未来定会有属于我们自己的一片美好天空!漫漫长路任我行,我需踏实脚下的路,一步步的前行。
用现在的付出和汗水去勾画未来美好的明天。
最后,在侯老师的细心辅导下,我有了很大的进步,知识得到了扩充,认识得到了加深,也使得我的自学能力得到了很大的提高,在此,我向侯老师表示由衷地感谢。
一、实训的性质、目的与任务
计算机信息管理专业的java实训在教学计划中是实训、实习课程。它涵盖了java开发和工程组织、数据结构等多项相关知识。
由于计算机技术不断发展,尤其是软件开发的发展,使得计算机软件的使用已渗透到各行各业,因此社会对软件开发人才的需求不断增大。整个实训课程教学内容从应用的角度出发,在理论和实践上掌握java工程开发的理念、类的组织、类的结构关系、面向对象中流的使用等技术。使学生能独立设计基于Eclipse控制台开发的小型系统。
本次实训重点和难点:
利用java搭建工程文件结构;B/S程序;数据库前后台程序;C/S程序。
二、实训内容和实训要求
1.实训内容
(1).掌握Eclipse中工程的使用,项目的调试、编译、链接、运行。
(2).面向对象程序设计中类的组织和类之间的关系分析。
(3).构造函数的应用。
(4)继承和派生的使用
(5).多态性和接口的使用。
(6).网络编程的组织与使用。
2、教学手段与教学方法
充分利用多媒体设备组织教学。在备课时,教师将一部分实训内容的步骤制作成课件,在教学中通过投影演示教学,另一部分部分的实训内容进行现场教学,让学生边听讲,边练习。学生的学习兴趣得到激发,动手能力也得到了锻炼和提高。最后将实训的最终效果演示。
本实训要以能力培养为主线,强化实践性教学,突出“理论教学为实践教学服务”的教改重点。
3.实训要求
学会Eclipse完成工程的创建;掌握面向对象中类、继承、多态性的开发思想;掌握网络编程的概念; 独立设计B/S螃蟹过街游戏;考试管理管理系统;C/S网络
三、实训方案
教科书 264页
15.1——15.5标题 即可
四、实训结果与分析
自己分析
五、实训总结、体会:
通过这一期的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要学会熟练操作的。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。克服了Java学习上的一道道难关,现在自己已经基本掌握了java的基础知识,实训即将结束了,我非常怀念大学的校内实训,在实训的这短短半个月时间里,我每一天过的都市踏实的,充实的;
五、实训总结、体会:
时光如梭,光阴似箭,JAVA实训一晃而过,回想起整个学习过程,心里感触颇多。由于大
一、学了C语言,从未学过JAVA,但我喜欢编程,也算是爱屋及乌吧,JAVA实训刚开始时当然很难通过两个月的实训,我感到自己学到了很多东西,虽说不精,但已经入门,于世间万物之中,遇见我所遇见的事物;于千万年之中,时间的无涯荒野里,没有早一步,也没有晚一步,刚巧赶上了,上苍让我有机会接触编程,给了我一条路。我很清楚以后的路还很长,再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。任何业绩的质变都来自于量变的积累,成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成,让我们将事前的忧虑,换为事前的思考和计划吧!在实训的过程中,我深深感觉到自身所
学知识的有限
五、实训总结、体会:
这也让我感觉实训远比想像的难度大,不是网上随便搜一下就可以交差的!不仅需要自己看懂代码,还需要根据自己的需要添加模块,充实代码。
从网上搜的代码都是字符界面的,老师说既然字符界面的没挑战性,那就做图形界面的好了。做图形界面就有点犯难了,首先没有什么程序可以参照了,必须自己充分理解字符界面的源代码,然后逐步修改完善。
我依据课本上的GUI章节设计了此次的java简单程序,基本实现了课题的要求,还添加了图片以增加视觉效果,以及确定按钮方便用户确定输入数字。
通过这次实训我的体会归纳为以下4点:
1、态度第一。摆正自己的心态,不要以为什么东西上网搜搜就可以了,一定要有自己的东西。只有自己付出过,当程序运行成功时的那种喜悦才会令自己有一种莫名的自豪感。态度决定一切!
2、兴趣是关键。我的学习完全是兴趣导向的,所以压力并不大。因为有兴趣,所以我会很想充分理解一切细节。又因为理解,所以许多原本片片断断的知识都可以渐渐互相融会贯通,累积技术能量,理论和实务之间的藩篱被打破了,学习效率倍增。学习并快乐着!
3、敢于挑战。不安于现成的程序,要敢于用多种方法实现一个目的。现在的网络科技很发达,想要一个源程序的确很简单,所以很多人都是在自己都不明白题目要求时,就可以在网上搜到一模一样的代码,根本没有自己的东西。挑战自我是项艰巨的任务。只有坚持自己多看代码多写程序才会有更多的收获。
姓
名: 学
号: 专
业: 班
级:
ATM取款机 课程设计过程概述
2009年6月,JAVA游戏开发课程设计在实验楼三楼机房进行,持续时间为两周。这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。这次课程设计的主要内容是独立用JAVA语言开发一个小的应用程序。我开发了一个ATM柜员机。课程设计题目描述和基本设计要求
我设计的ATM柜员机主要是由各个Windows窗口组成,它是由登录页面、选择服务、取款、查询余额、修改密码和退卡等功能。它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求。系统需求分析 3.1 功能需求分析
本ATM柜员机的主要功能如下所述:
要求使用图形用户界面。当输入给定的卡号和密码(初始卡号为000000和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
查询余额:初始余额为50000元
ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ATM存款:不能出现负存款。
修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。3.2 其他需求分析
(1)性能描述
实时性好、灵活性强、易于不同年龄阶段的人操作。(2)设计约束
开发工具:JCrator ProV3.5.0 运行环境:Windows 2000以上 能实现用户所定义的各项需求。(3)界面要求
以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、最大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。系统设计 4.1 总体设计
我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。其功能结构图如下所示:
图1
ATM功能结构示意图
4.2 ATM柜员机界面设计
我觉得一个系统的界面应该要简单明了,当然样式美观就更好了。我设计的界面主要是由窗体组成,操作简单。而每一个窗口则执行相应的功能。
一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。
(1)窗体的设计
窗体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询余额,还有取款等。相应源代码为:WindowBox(String s,Account act){super(“ATM柜员机”);}、Selection(String s,Account act){ } 向Frame窗口中添加组件使用add()。super(s);
例如:button1 = new Button(“存款”);
p1.add(button1);this.add(p1);每个Frame在其右上角都有三个控制图标,分别代表将窗口最小化、窗口最大化和关闭的操作,其中最小化和最大化操作Frame可自动完成,而关闭窗口操作实现需要书写有关的代码,在我的程序中我采用的是对WINDOWS_CLOSING事件做出响应,调用dispose()方法关闭窗口。Frame也可以引发WindowsEvent类代表的窗口事件。相应源代码为:
addWindowListener(new WindowAdapter()//窗口侦听器,以从此窗口接收窗口事件 {public void windowClosing(WindowEvent e)//处理窗口关闭事件
{ System.exit(0);} });}(2)窗体的主要结构的设计
我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件。所以整个设计就趋向简单化了。
为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了动作事件的监听接口ActionListener的监听者,然后为监听者定义actionPerformed(ActionEvent e)方法,在这个方法中调用e.getSource()或e.getActionCommand()来判断用户点击的菜单子项,并完成这个菜单子项定义的操作。
4.3 各功能模块设计 4.3.1 登陆页面模块设计
与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。
我定义了文本框累的对象tf1,tf2。抓药是用于输入单行的文本;文本区调用public
String getText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。此模块相应的部分源代码为:
public void actionPerformed(ActionEvent e){
Account act;String card;
String pwd;
act=new Account(“000000”,“Devil”,“123456”,50000);//初始化
/*选择各种服务*/ if(e.getSource()== button1){
String number1,number2;
number1=tf1.getText();
number2=tf2.getText();/*判断密码和卡号是否正确*/ if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){
dispose();
/*卡号和密码都正确则进入功能选择窗口*/
}
Selection s = new Selection(“选择服务”,act);
}else{
}
dispose();
ErrorWarn ew = new ErrorWarn(“消息!”,act);
/*退卡*/ if(e.getSource()==button2){
}
System.exit(0);dispose();} 4.3.2 选择服务模块设计
在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的部分源代码为:
p.add(new Label(“请选择你要的服务”));
this.add(p);button1 = new Button(“存款”);p1.add(button1);this.add(p1);button2 = new Button(“取款”);p2.add(button2);this.add(p2);button3 = new Button(“查询余额”);p3.add(button3);this.add(p3);button4 = new Button(“退出”);p4.add(button4);this.add(p4);button5 = new Button(“修改密码”);p5.add(button5);this.add(p5);this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);
} });} button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);//setLayout(new GridLayout());setBounds(150,150,200,200);setVisible(true);validate();public void actionPerformed(ActionEvent e){
if(e.getSource()==button2){//取款
} if(e.getSource()==button3){//查询余额
} else if(e.getSource()==button4){//退出
} else if(e.getSource()==button5){//修改密码
ChangePassword cp = new ChangePassword(“修改密码”,act);dispose();
dispose();GetBalance gb = new GetBalance(“取款”,act);
Query q =new Query(“查询余额”,act);dispose();System.exit(0);dispose();
} }
} 4.3.3 取款模块设计
在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不可以为负,否则就会弹出报错的窗口。其方法为:
if(e.getSource()==button){
/*判断余额是否为负*/
if(act.get_Money()<0){
}
dispose();
ErrorWarn4 ew4 = new ErrorWarn4(“消息!”,act);
/*判断取款数额是否小于卡里余额*/ else if(money<=act.get_Money()){
/*取款的数额必须是100的倍数且每次最多只能取5000块*/
if((money%100!=0)||(money>=5000)){
}
act.set_Balance(money);//重新设置卡里的余额 this.setVisible(false);
dispose();
ErrorWarn6 ew6 = new ErrorWarn6(“消息!”,act);
/*取款后就再次进入选择界面*/
Selection s = new Selection(“选择服务”,act);
//dispose();}else if(money>act.get_Money()){
}
}
dispose();
ErrorWarn5 ew5 = new ErrorWarn5(“消息!”,act);4.3.4 修改密码模块设计
在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密码的界面。在修改密码时用到的方法为:
/*判断旧密码是是否正确*/ if(pwd2.equals(act.get_Password())){ /*判断两次输入的密码是否匹配*/ if(pwd3.equals(pwd4)){
/*如果都正确的话就设置新密码*/
act.setPassword(pwd3);dispose();Selection s = new Selection(“选择”,act);
}else{
dispose();}
ErrorWarn2 ew2 = new ErrorWarn2(“消息”,act);}else{
this.setVisible(false);
}
ErrorWarn3 ew1 = new ErrorWarn3(“消息”,act);
dispose();
4.3.5 退卡模块设计
在退卡模块设计中,这个方法就更加的简单了,它只是用了if(e.getSource()==button4){//退出
} System.exit(0);dispose();这个方法就可以实现了,这里就不再多说了。
4.4 异常处理情况说明
(1)打开、保存文件时的异常处理 需要处理的异常:IOException(2)数据库访问时的异常处理 需要处理的异常:SQLException(3)加载类时的异常处理
需要处理的异常:ClassNotFindException,当应用程序试图使用Class类中的forName方法通过字符串名加载类时,但是没有找到具有指定名称的类的定义。
(4)加载URL时的异常
需要处理的异常:MalformedURLException,抛出这一异常指示出现了错误的 URL。或者在规范字符串中找不到任何合法协议,或者无法分析字符串。系统实现与测试
(1)打开DOS,编译运行程序后,将会看到如下的界面,如图2所示。如果输入的密码或卡号不正确的话就会报右下图的错误。
图2 主界面—登陆页面
(2)选择服务界面效果
当输入的密码和卡号正确,单击确定后就会进入到选择服务的界面,如图3所示。然后就可以选择所需要的服务了。
图3 选择服务界面
(3)取款界面,如图4所示。
图4 取款界面
当输入的钱数不是100的倍数或每一次大于5000时就会报图5的错误。
图5 输入错误1 当取款时如果超过卡里的余额的话就会报图6的错误。
图6 输入错误2(4)查询余额界面,如图7所示。
图7 查询余额界面
经过测试,所有的功能基本上都实现了,而且运行正常。课程设计总结
6.1 遇到的问题及解决办法
在此次课程设计中,我遇到了一些问题,如:对于面向对象的方法了解不够透彻,运用到实际的软件开发中存在着困难;对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误,而且要在短时间内用Java语言来设计一个具
体的系统是一个较大的挑战;还有对于正规开发一个系统的流程不熟悉,适应起来比较慢,编写各个模块相对应的操作时,自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。
对于以上的问题,自己有清楚的认识,解决办法是需要大量阅读相关的书籍,对于书上以及网站上下载的资料中的Java实例必须有清楚的理解,还有就是多跟精通此方面的老师和同学交流,取其精华。对于实际动手能力与系统开发的流程的适应,必须多进行实际的练习与操作,才能有大的进步。
6.2 心得体会
在这次的学课程设计中,我主要运用了Java语言的界面设计、异常处理、、Awt控件、Swing控件,输入输出流等,综合运用了Java语言。我深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。
通过这两个礼拜的课程设计我真的学到了很多的东西,当然这也和我的同学的帮助是离不开的。好了,下面就谈一下我在这些天的体会吧:
在这次的课程设计中,主要是运用JAVA语言来编写一个小的应用程序,当然还可以用其他的技术来辅助了。在这个小应用程序当中,我用了Java外还用了Swing控件。输入输出流等技术。由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。正因为这样,才锻炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。此外,我还感受到了面向对象语言的类库的强大的功能,掌握了运用JAVA中的类实现某些基本功能,并学会了自己查询使用类的方法,也就是要会用API文档,为以后更好的学习面向对象语言奠定了基础。
通过将近两周的努力,这次课程设计终于结束了,在这个过程当中,我学到了很多的知识,同时也感谢我的同学的帮助和指导。在以后的学习当中,我会更加努力的学习好专业知识,并将所学的知识用于实践当中去,以便牢固掌握知识。
参考文献
[1] 王萌,刘婧,来宾著.JAVA程序设计[M]北京 冶金工业出版社,2004 [2] 黄聪明
精通 JAVA2程序设计[M]北京:清华大学出版社,2004.4 [3] 王文涛,袁海燕 JAVA实用程序设计100例[M]北京:人民邮电出版社,2005.5 [4] 雍俊海 JAVA程序设计[M]北京:清华大学出版社,2006.8 [5] 刘宝林 JAVA程序设计与案例[M]北京:高等教育出版社,2006.11 附录
import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;import java.io.*;
/*登陆页面首窗口*/ class WindowBox extends Frame implements ActionListener{
Box baseBox,box1,box2;TextField tf1,tf2;Button button1;Button button2;WindowBox(String s){//构造方法 super(s);
tf1 = new TextField(6);
tf2 = new TextField(6);
box1= Box.createVerticalBox;box1.add(new Label(“请输入你的卡号”));//输入卡号 box1.add(Box.createVerticalStrut(8));box1.add(new Label(“请输入你的密码”));//输入密码
} box2=Box.createVerticalBox();box2.add(tf1);//box2.add(new TextField(16));box2.add(Box.createVerticalStrut(8));box2.add(tf2);//box2.add(new TextField(16));baseBox=Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(10));baseBox.add(box2);add(baseBox);button1= new Button(“确定”);//加入按钮 button1.addActionListener(this);add(button1);
button2 = new Button(“退卡”);//退卡按钮 button2.addActionListener(this);add(button2);setLayout(new FlowLayout());/*监听器*/ this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
});System.exit(0);} setBounds(120,125,200,175);setVisible(true);
public void actionPerformed(ActionEvent e){ Account act;String card;
String pwd;
act=new Account(“000000”,“Devil”,“123456”,50000);//初始化
/*选择各种服务*/ if(e.getSource()== button1){
String number1,number2;//输入的两个卡号和密码的变量
number1=tf1.getText();
number2=tf2.getText();
/*判断两次输入的卡号和密码是否正确*/ if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){
dispose();
Selection s = new Selection(“选择服务”,act);
}else{
dispose();
ErrorWarn ew = new ErrorWarn(“消息!”,act);//报输入密码或卡号不正确
} }
/*主函数*/ class ATM{
}
} if(e.getSource()==button2){
} System.exit(0);dispose();//退出
} public static void main(String [] args){ } new WindowBox(“登录页面”);/*选择服务*/ import java.awt.*;import java.awt.event.*;class Selection extends Frame implements ActionListener{
Button button1,button2,button3,button4,button5;Panel p1 = new Panel();Panel p2 = new Panel();Panel p3 = new Panel();Panel p4 = new Panel();Panel p5 = new Panel();Panel p = new Panel();Account act;
public Selection(){} Selection(String s,Account act){
super(s);this.act=act;this.setLayout(null);this.setLayout(new GridLayout(6,1));p.add(new Label(“请选择你要的服务”));this.add(p);
/*各种服务功能*/ button1 = new Button(“存款”);
} p1.add(button1);this.add(p1);button2 = new Button(“取款”);p2.add(button2);this.add(p2);button3 = new Button(“查询余额”);p3.add(button3);this.add(p3);button4 = new Button(“退出”);p4.add(button4);this.add(p4);button5 = new Button(“修改密码”);p5.add(button5);this.add(p5);this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
});System.exit(0);} button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);setBounds(150,150,200,200);setVisible(true);validate();public void actionPerformed(ActionEvent e){
}
} if(e.getSource()==button2){//取款
} if(e.getSource()==button3){//查询余额
} else if(e.getSource()==button4){//退出
} else if(e.getSource()==button5){//修改密码
}
ChangePassword cp = new ChangePassword(“修改密码”,act);dispose();System.exit(0);dispose();Query q =new Query(“查询余额”,act);dispose();dispose();GetBalance gb = new GetBalance(“取款”,act);
/*class Test4{ public static void main(String [] args){
Selection s = new Selection(“选择”);
/*取款功能*/ import javax.swing.*;import java.awt.*;
}*/ } import javax.swing.border.*;import java.awt.event.*;class GetBalance extends Frame implements ActionListener{
Box baseBox, box1,box2;Button button;TextField tf;Account act;GetBalance(String s,Account act){//构造函数
super(s);this.act=act;button=new Button(“确定”);Panel panel = new Panel();Panel panel1 = new Panel();tf = new TextField(6);this.setLayout(new GridLayout(2,1));panel1.add(new Label(“请输入你想取钱的数目”));panel1.add(tf);panel.add(button);this.add(panel1);this.add(panel);button.addActionListener(this);this.addWindowListener(new WindowAdapter(){
});public void windowClosing(WindowEvent e){
}
System.exit(0);setBounds(200,200,150,150);this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
于5000
} //System.out.println(e.getActionCommand());double money;
money = Double.parseDouble(tf.getText().trim());if(e.getSource()==button){ if(act.get_Money()<0){//判断余额是否为负
dispose();
ErrorWarn4 ew4 = new ErrorWarn4(“消息!”,act);} else if(money<=act.get_Money()){//取钱的数额不大于余额 if((money%100!=0)||(money>=5000)){//取钱数为100的倍数或不大
dispose();
ErrorWarn6 ew6 = new ErrorWarn6(“消息!”,act);
}
act.set_Balance(money);//重置余额
this.setVisible(false);
Selection s = new Selection(“选择服务”,act);//返回选择服务窗口
//dispose();
}else if(money>act.get_Money()){判断取款数额是否大于余额
dispose();
ErrorWarn5 ew5 = new ErrorWarn5(“消息!”,act);
} }
} /* public static void main(String[] args){
}
/*修改密码功能*/ import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class ChangePassword extends Frame implements ActionListener{
Panel panel1 = new Panel();Panel panel2 = new Panel();Panel panel3 = new Panel();Panel panel = new Panel();TextField tf4,tf5,tf6;Button button;Account act;ChangePassword(String s,Account act){
super(s);this.act=act;
GetBalance test = new GetBalance(“dfdf”);} GetBalance gb = new GetBalance(“取款”);tf4 = new TextField(6);tf5 = new TextField(6);tf6 = new TextField(6);button = new Button(“确定”);
button.addActionListener(this);/*建立新密码*/
} /*判断事件源,看条件是否成立再修改密码*/ public void actionPerformed(ActionEvent e){ if(e.getSource()==button){ String pwd2,pwd3,pwd4;
pwd2 = tf4.getText();
panel1.add(new Label(“请输入你的旧密码:”));panel1.add(tf4);panel2.add(new Label(“请输入你的新密码:”));panel2.add(tf5);panel3.add(new Label(“请再次输入你的新密码”));panel3.add(tf6);panel.add(button);this.add(panel1);this.add(panel2);this.add(panel3);this.add(panel);setLayout(new GridLayout(4,1));setBounds(200,200,250,250);this.setVisible(true);/*窗口事件*/ this.addWindowListener(new WindowAdapter(){
});public void windowClosing(WindowEvent e){
}
System.exit(0);
} }
pwd3 = tf5.getText();
pwd4 = tf6.getText();
} if(pwd2.equals(act.get_Password())){//判断旧密码是否正确
if(pwd3.equals(pwd4)){//判断两次输入的新密码是个匹配
act.setPassword(pwd3);//启用新的密码 dispose();Selection s = new Selection(“选择”,act);//返回选择服务窗口
}else{
//this.setVisible(true);
//ErrorWarn2 ew = new ErrorWarn2(“消息”,act);
dispose();}
ErrorWarn2 ew2 = new ErrorWarn2(“消息”,act);}else{
this.setVisible(false);
}
ErrorWarn3 ew1 = new ErrorWarn3(“消息”,act);
dispose();/*查询余额功能*/ import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class Query extends Frame implements ActionListener{
//Account act;Button button;Account act;Query(String s,Account act){//构造函数
} public void actionPerformed(ActionEvent e){ if(e.getSource()==button){ dispose();
super(s);this.act = act;
button=new Button(“确定”);//TextField tf = new TextField(6);Panel panel1 = new Panel();Panel panel = new Panel();panel1.add(new Label(“你的余额为: ” + act.get_Money()));//查询余额的方法 //panel1.add(tf);
button.addActionListener(this);panel.add(button);this.add(panel);this.add(panel1);this.setLayout(new GridLayout(2,1));this.addWindowListener(new WindowAdapter(){
});public void windowClosing(WindowEvent e){
}
System.exit(0);setBounds(200,200,150,150);setVisible(true);
}
} Selection s = new Selection(“选择服务”,act);//返回选择服务窗口 } /*账户*/ import java.io.*;
/*该类为实现客户信息及部分功能*/ class Account { private String code
=null;
//信用卡号
private String name
=null;
//客户姓名
private String password=null;
//客户密码
private double money
=0.0;
//卡里金额
/********************/ public Account(String code,String name,String password,double money){
this.code=code;
this.name=name;
this.password=password;
this.money=money;}
public String get_Code(){//取得卡号
return code;}
public String get_Name(){//取得名字
return name;}
public String get_Password(){//取得密码
return password;}
public double get_Money(){//取得余额
return money;}
/*得到剩余的钱的数目*/ protected void set_Balance(double mon){
money-= mon;} /*重置秘密的方法*/ public String setPassword(String pwd){
【java实训总结报告】推荐阅读:
实训中期总结报告12-27
学生实习(实训)总结报告封面09-11
专科实训总结报告10-21
实训总结报告5000字12-01
plc实训报告总结01-10
水利实训报告总结02-03
电机拆装实训报告总结06-23
物流沙盘实训报告总结07-01
物流认知实训报告总结01-02
vbse实训报告总结采购01-20