java毕业论文范文第1篇学生姓名________学号___________专业____班级____指导教师200年月语言的出现自从1946年世界上第一台电子计算机问世以来,计算模式的发展经历了三个阶下面是小编为大家整理的java毕业论文范本,供大家参考。
java毕业论文范文 第1篇
学生姓名 _______ _
学 号 ___________
专 业 ____ 班 级 ____ 指导教师
200 年 月
语言的出现
自从1946年世界上第一台电子计算机问世以来,计算模式的发展经历了三个阶段:集中计算模式、分散计算模式和网络计算模式。Internet的出现,为在网络计算模式下的科学计算和信息处理提供了良好平台。然而,要充分利用网络计算模式的功能与效益,平台的运行环境是个制约因素,而Java语言和Java技术则是解决这一问题的最佳途径。
1991年,SUN公司的Jame Gosling,Bill Joe等人试图为电视、烤箱等家用电器开发一种交互式的软件系统,这种应用需要的是那种小而可靠的系统,它能够移植,并且实时性好,适用于网络分布环境。流行的C++是自然的选择。不过,开发过程中遇到的许多难以克服的困难使他们意识到必须彻底解决问题了,最终,开发成功了一个名为Oak的软件,此中蕴藏着Java的原型,当时,并未引起人们的注意。1994年下半年,随着Internet的迅猛发展,环球信息网WWW的快速增长,促进了Java语言研制的进展,使得它逐渐成为Internet上倍受欢迎的开发与编程语言。1995年5月Java正式问世,一些著名的计算机公司纷纷购买了Java语言的使用权,如Microsoft、IBM、Netscape、Novell、Apple、DEC、SGI等。因此,Java语言被美国著名杂志PC Magazine评为1995年十大优秀科技产品(计算机类仅此一项入选)之一,随之大量出现了用Java编写的软件产品,受到工业界的重视与好评,认为“Java是八十年代以来计算机界的一件大事”。微软总裁比尔〃盖茨在认真观察了一段时间后,确认“Java是长时间以来最卓越的程序设计语言”,并确定微软整个软件的开发战略从PC单机时代向以网络为中心的计算时代转移,而购买Java则是他的重大战略决策的实施部署。
因此,Java的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。SUN Microsystem公司的总裁Scott McNealy认为:Java对Internet和WWW开辟了一个崭新的时代。
有人预言:Java将成为网络上的“世界语”,今后,用其他语言编写的软件统统都要用Java语言来改写。
语言的主要特点
Java语言是一种适用于网络编程的语言,它的基本结构与C++极为相似,但却简单得多。它集成了其它一些语言的特点和优势,又避开了它们的不足之处。它的主要特点如下:
简单性
Java与C++相比,不再支持运算符重载、多级继承及广泛的自动强制等易混淆和较少使用的特性,而增加了内存空间自动垃圾收集的功能,复杂特性的省略和实用功能的增加使得开发变得简单而可靠。
简单化的另一个方面是Java的系统非常小,其基本解释和类支持部分只占40KB,附加的基本标准库和线程支持也只需增加175KB。因此,Java应用软件能在相当小的系统之上独立工作。
平台独立性
这是Java最吸引人的地方。由于它采用先编译成中间码(字节码),然后装载与校验,再解释成不同的机器码来执行,即“Java虚拟机”的思想,“屏蔽”了具体的“平台环境”特性要求,使得只要能支持Java虚拟机,就可运行各种Java程序。
面向对象的技术
面向对象(O-O)的技术是近年来软件开发中用得最为普遍的程序设计方法,,它通过把客观事物进行分类组合、参数封装、用成员变量来描述对象的性质、状态,而用方法(成员函数)来实现其行为和功能。O-O技术具有继承性、封装性、多态性等众多特点,Java在保留这些优点的基础上,又具有动态联编的特性,更能发挥出面向对象的优势。
多线程
多线程机制使应用程序能并行执行,Java有一套成熟的同步原语 ,保证了对共享数据的正确操作.通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现网络上实时的交互行为。
动态性
Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。
安全性
Java有建立在公共密钥技术基础上的确认技术.指示器语义的改变将使应用程序不能再去访问以前的数据结构或是私有数据,大多数病毒也就无法破坏数据.因而,用Java可以构造出无病毒、安全的系统。
Java语言除上述主要特点外,还有高性能、分布性、强大性、解释性、可移植性等,此处不再 赘述。
语言的发展
Java自正式问世以来已经历了四年的历程,时间虽短,发展极快。一年一度在美国旧金山召开的世界Java One语言开发者大会(Java One Developer Conference)盛况空前正说明了这一点。四年中每年的Java One大会,既是了解Java最新技术动态、应用成果和下一步发展趋势的最好场所,又是推动下一年Java快速发展的重要动力。首届Java One大会于1996年召开,各届简况如下:
1996年5月29-31日,第一届,出席会议者6500余人,来自工业界的超过一半。有人评价说:“这是近年计算机界最光辉的一次盛会”。工业界相当看好Java语言,认为它的使用将会引起一场软件革命:从软件的设计风格、设计方法、设计目标到设计过程,都会产生彻底的变革,“甚至会改变此星球的生活方式”。
1997年,第二届,出席会议者10000人。Java的追随者不断增加,应用开发迅速起步。
1998年3月24-27日,第三届,出席会议者14000余人(注册人数),注册门票售价1195美元,否则1395美元,即使如此,仍有不少人不惜工本,挤入会场。本次会议除了软件巨头微软未参加会议外,几乎所有的计算机公司都参加了。展厅内设300多个展台,先后举行了90场专题讨论会,每场参加的人数从千人至五六千人不等。会议的主题是:通过Java的培训来带动Java软件的开发和技术研究,从而发展生产力,获取高额利润,提高生活质量,推动信息产业的进步。会议展出的内容大致如下:
Java开发工具软件,如:JMF、JDK、Symantec Visual Cafe、Java Dynamic Management Kit、JFC、JNDI、Java Studio 等;
企业信息管理解决方案软件,如:EJB(Enterprise JavaBeans);
基于Java技术的信息家电,如:机顶盒、Java电话等;
个人信息综合服务(Java戒指)、社会信息综合查询亭(Kiosk);
电子商务软件、智能卡、Java Card API 等;
网络计算环境下的Java服务器软件、远程方法调用(RMI)、基于Java技术的移动计算设备;
JMS(Java Message Service)用于出版、票据订阅的软件;
JOS(Java OS)、基于Java技术的NC和Java Station。
1999年6月15-18日,第四届,出席会议者达20XX0人,300多家厂商参展,举办400多场技术讲座,555名演讲者慷慨陈词,精彩纷呈。这次大会的主要特点是:
Java框架结构被梳理清晰
本次JavaOne大会上,Sun公司的一个重大举措就是公布了Java平台的最新架构。重新定义的Java平台以Java 2为核心,由面向企业和服务器市场的企业版Java 2(J2EE)、面向传统PC客户机市场的标准版Java 2(J2SE)和面向信息电器等后PC终端设备市场的Micro版Java 2(J2ME)三大部分组成。其中,J2EE包括Enterprise JavaBeans(EJB)、Java Server Pages & Java Servlets、Java Mail API和Java Massage Service组成。而J2ME则是原有的Personal Java、EmbeddedJava、JavaCard以及刚刚推出的Kjava组成。虽然新框架结构中的内容都是已有的,但这样重新定义和组合,使得Java平台的概念简单化,从而变得易于理解,更适合于进行市场推广。
2)重点放在企业平台
随着Internet的飞速发展,企业计算模式正摒弃C/S结构而采用Web-Browser结构,此即瘦客户端/胖服务器、大容量数据库的3层或N层体系结构。由于Java的特点,使得它在开发服务器端的应用程序方面有着得天独厚的优势,面向服务器端的J2EE为当今逐渐流行的N层体系结构提供了一个标准的Java计算平台:界面一致、工具简易、丰富、Web页面互联便捷,从而能大大加速和简化各种应用系统的开发。
3) 加速后PC时代的进程
计算机的发展创造了Internet,但是计算机现在却不是访问Internet的唯一方式。正在出现的信息化、智能化的消费类电子产品打破了PC作为信息终端的垄断地位,成为人类进入Internet的新门户。信息终端的多元化预示着所谓后PC(post-PC)时代的到来。消费类的信息终端量大面广,是典型的瘦客户机,其本身的资源和能力不能与PC相比,但必须更加智能化,并对服务器端的管理提出了更高的要求。而Java平台恰恰满足了这种要求。本次大会推出的Kjava虚拟机能运行在16以上的微处理器上,占用内存少,人们可以随心所欲,在资源有限的设备上方便地开发出各种各样的应用,直接运行在不同的消费类或其它电子设备上;而Jini的出现为Java网络连接提供了公共标准,使得任何Java设备都可以连入网络中被自动识别,并可充分利用网络上已有的各种资源。大力推进Jini的发展是Sun公司加速后PC时代进程的一项重要策略。
4)应用系统异彩纷呈
与上届大会一样,展出内容有:应用工具、应用系统、信息家电等。特别在实时系统开发方面,以IBM为首开发出了应用于工业实时环境的Java嵌入系统,展现出Java在工业领域的广阔应用前景。
Java语言的出现和发展,得到了IT业界的青睐,它像一面大旗,凝聚了世界众多的厂商与Sun公司一道,结成了对抗微软垄断的联盟。许多知名厂商纷纷购买Java许可证,目前已有90多万个软件开发商加入了Java阵营,1亿个Java最终用户,几千种Java应用软件产品,1500余种Java书籍(自Java问世4年来,平均每天出版一本)。这真是IT业界的盛事!
IBM公司提出“高举Java大旗,全力以赴”的口号,它在全世界的11个国家有28个实验室,集聚了2500余名技术人员,全天侯24小时进行全方位开发;芯片巨人Intel提出“抓住时机,占领Java阵地”!决心使Intel芯片系统成为开发Java应用运行的最佳平台;Novell则宣称“Java是Novell的未来,未来是服务器端Java的市场”;作为Java发明者的Sun公司,坚持“保卫Java大旗,发展Java之路”的方针,通过对Java的“研究椘拦罈构造棽馐詶推广”的过程,从而占领市场。此外,HP、Oracle、Apple、Sybase、Netscape、Informi_、3Com、Motorola等公司均是Sun的坚强同盟。
在我国,Java的引进与开发起步早,发展水平基本与世界同步。目前,Sun公司已在中国建成了由5个授权中心、20多个Internet/Intarnet Java解决方案中心和10所Java大学、若干培训中心组成的三级结构。全面推动Java在中国的普及、应用、研究、开发,培养了数以十万计的Java开发人员。此外,Sun还牵头成立了中外软件厂商的开发联盟。
在中国,Java的开发可以说是“人才济济,成果累累”。如清华大学王克宏教授带领的课题组面向全国,自96年开始举办了多期Java培训班和讲座,开设了数期本科生、研究生Java课程,出版了“Java系列丛书”10余册 ,承担了国家“九五”攻关项目“基于Java技术的交互式远程教学系统”,并与日本就Java开发进行了国际合作,成绩斐然;东大阿派下属的宝钢东软软件技术研究中心是国内是首屈一指的Java研发骨干企业,该中心从95年起就开始了Java的研发,目前,已掌握了Personal Java的核心移植技术,并成功地将JVM移植到汽车导航平台。此外,他们还开发出支持Jini协议的即插即用网络打印机软件,以及一套Jini信息家电网络的可视化演示环境,完成了基于JavaBeans的组件化软件开发及运行支持环境等多项成果;在台湾,22家知名计算机公司成立了“Java联盟”,并在台北建立了“Java开发中心”,新竹建立了“Java语言实验室”;在
香港,举行了全岛Java杯比赛,掀起了学习Java的热潮 。Java的浪潮汹涌澎湃,席卷全球!
Java技术
Java发展至今日,已不仅仅是一种编程语言,实际上已形成了一门技术.其内容包括:
1)Java软件包
Java语言及其编程技术、JavaOS、Java开发环境与工具、Java语言的各种软件包、数据库接口JDBC等。
2)Java虚拟机及其规范
3) Java嵌入技术(Java芯片)
已推出的有Java戒指、Java卡等。1999年8月2日,Sun公司宣布名为MAJC的专门为Java语言设计的的芯片优化研制成功,欲与Intel试比高低。该芯片在设计时采用了模块式高性能计算引擎,实质为一种芯片级并行处理机,能以更有效的方式分解计算任务,特别适合处理多媒体数据。Sun公司希望通过MAJC芯片的发布催生出一个基于Java语言的微处理器家族,与Intel公司竞争。设想中的Java处理器将应用在从低价消费电子产品到高端因特网服务器领域。
4)Java计算
基于Java技术的企业Internet/Intranet信息系统以及其他应用系统。
5)Jini技术
1999年初正式发布后,立刻得到业界的广泛支持。Jini的出现为Java网络连接提供了公共标准,使得任何Java设备都可以连入网络中被自动识别,并可充分
利用网络上已有的各种资源。它把网络上的各类设备(包括消费类电子设备如移动电话、PDA、DTV、HPC、NC、游戏机、电冰箱、智能卡等等)和各种软件组合成一个单一、动态的分布式系统,使网络更易于操纵、易于管理,具有更高的可配臵性。Jini将使网络具有自发性,它的出现大大扩展了“计算”和“计算机”的含义,极大地简化了网络操作,对家庭用户来说,使用网上设备即插即用,就像使用电话一样方便。Java和Jini 不仅可以不依赖于Windows为代表的操作系统,而且引导着信息产业的潮流,使Sun公司能在未来的、非PC类电子产品的数字化市场中强占制高点。
6)Jiro平台
异质网络环境中安装的存储系统的多样性和分布性,给存储管理带来了巨大的挑战。用户和开发人员都希望能有一种技术,能更好地促进企业存储管理方案的开发。而Jiro平台正是解决此问题的革命性方案。Jiro平台实现了Java和Jini 技术,它是一个便于用户管理异质网络上由各种服务器、存储和设备组成的混合环境的开放式存储管理平台。它对操作系统是中立的。Jiro为跨异质存储局域网(SAN)的管理服务和设备提供了一个开放平台,允许服务器、存储和联网设备在异质网络环境中无缝地协同工作。Jiro平台为开发者带来的好处有:
允许开发者利用各种实现管理存储网络的目标功能创建应用;
提供了一个可以在各种应用、服务和设备之间交互操作的组件模型; 允许设备易被增加、删除;
允许应用或服务被自动更新。
1999年7月,Sun发布了正式的Jiro规范草案,供公众讨论、修改。目前,Jiro平台的团体成员已超过25家,支持Jiro平台的厂商超过300家。有眼光的厂商纷纷加入到这些组行列,从而加快了Jiro的发展。
结语
Java自问世以来,以其得天独厚的优势,在IT业界掀起了研究、开发它的浪潮,显示了“鹏程万里”的美好前景。作为一种与底层硬件无关的、“编写一次,到处运行”的高级语言和计算平台,Java天生就具有将网络上的各个平台连成一体的能力,真正实现了“网络就是计算机”的理念。以Java为代表的网络的成长,改变了我们的联系方式、生活方式、学习方式和经营方式。它的来到使我们目睹了一场类似印刷术的重大变革。毫无疑问,它将影响人类社会的发展,这就是:Java加速人类进入网络时代!
Java是当今IT产业和人类文明的创新和希望!
java毕业论文范文 第2篇
编号
_学院
免费的
毕 业 论 文
学生姓名 _______ _
学 号 ___________
专 业 ____
班 级 ____
指导教师
200 年 月
语言的出现
自从1946年世界上第一台电子计算机问世以来,计算模式的发展经历了三个阶段:集中计算模式、分散计算模式和网络计算模式。Internet的出现,为在网络计算模式下的科学计算和信息处理提供了良好平台。然而,要充分利用网络计算模式的功能与效益,平台的运行环境是个制约因素,而Java语言和Java技术则是解决这一问题的最佳途径。
1991年,SUN公司的Jame Gosling,Bill Joe等人试图为电视、烤箱等家用电器开发一种交互式的软件系统,这种应用需要的是那种小而可靠的系统,它能够移植,并且实时性好,适用于网络分布环境。流行的C++是自然的选择。不过,开发过程中遇到的许多难以克服的困难使他们意识到必须彻底解决问题了,最终,开发成功了一个名为Oak的软件,此中蕴藏着Java的原型,当时,并未引起人们的注意。1994年下半年,随着Internet的迅猛发展,环球信息网WWW的快速增长,促进了Java语言研制的进展,使得它逐渐成为Internet上倍受欢迎的开发与编程语言。1995年5月Java正式问世,一些著名的计算机公司纷纷购买了Java语言的使用权,如Microsoft、IBM、Netscape、Novell、Apple、DEC、SGI等。因此,Java语言被美国著名杂志PC Magazine评为1995年十大优秀科技产品(计算机类仅此一项入选)之一,随之大量出现了用Java编写的软件产品,受到工业界的重视与好评,认为“Java是八十年代以来计算机界的一件大事”。微软总裁比尔·盖茨在认真观察了一段时间后,确认“Java是长时间以来最卓越的程序设计语言”,并确定微软整个软件的开发战略从PC单机时代向以网络为中心的计算时代转移,而购买Java则是他的重大战略决策的实施部署。
因此,Java的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。SUN Microsystem公司的总裁Scott McNealy认为:Java对Internet和WWW开辟了一个崭新的时代。
有人预言:Java将成为网络上的“世界语”,今后,用其他语言编写的软件统统都要用Java语言来改写。
语言的主要特点
Java语言是一种适用于网络编程的语言,它的基本结构与C++极为相似,但却简单得多。它集成了其它一些语言的特点和优势,又避开了它们的不足之处。它的主要特点如下:
简单性
Java与C++相比,不再支持运算符重载、多级继承及广泛的自动强制等易混淆和较少使用的特性,而增加了内存空间自动垃圾收集的功能,复杂特性的省略和实用功能的增加使得开发变得简单而可靠。
简单化的另一个方面是Java的系统非常小,其基本解释和类支持部分只占40KB,附加的基本标准库和线程支持也只需增加175KB。因此,Java应用软件能在相当小的系统之上独立工作。
平台独立性
这是Java最吸引人的地方。由于它采用先编译成中间码(字节码),然后装载与校验,再解释成不同的机器码来执行,即“Java虚拟机”的思想,“屏蔽”了具体的“平台环境”特性要求,使得只要能支持Java虚拟机,就可运行各种Java程序。
面向对象的技术
面向对象(O-O)的技术是近年来软件开发中用得最为普遍的程序设计方法,,它通过把客观事物进行分类组合、参数封装、用成员变量来描述对象的性质、状态,而用方法(成员函数)来实现其行为和功能。O-O技术具有继承性、封装性、多态性等众多特点,Java在保留这些优点的基础上,又具有动态联编的特性,更能发挥出面向对象的优势。
多线程
多线程机制使应用程序能并行执行,Java有一套成熟的同步原语 ,保证了对共享数据的正确操作.通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现网络上实时的交互行为。
动态性
Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。
安全性
Java有建立在公共密钥技术基础上的确认技术.指示器语义的改变将使应用程序不能再去访问以前的数据结构或是私有数据,大多数病毒也就无法破坏数据.因而,用Java可以构造出无病毒、安全的系统。
Java语言除上述主要特点外,还有高性能、分布性、强大性、解释性、可移植性等,此处不再 赘述。
语言的发展
Java自正式问世以来已经历了四年的历程,时间虽短,发展极快。一年一度在美国旧金山召开的世界Java One语言开发者大会(Java One Developer Conference)盛况空前正说明了这一点。四年中每年的Java One大会,既是了解Java最新技术动态、应用成果和下一步发展趋势的最好场所,又是推动下一年Java快速发展的重要动力。首届Java One大会于1996年召开,各届简况如下:
1996年5月29-31日,第一届,出席会议者6500余人,来自工业界的超过一半。有人评价说:“这是近年计算机界最光辉的一次盛会”。工业界相当看好Java语言,认为它的使用将会引起一场软件革命:从软件的设计风格、设计方法、设计目标到设计过程,都会产生彻底的变革,“甚至会改变此星球的生活方式”。
1997年,第二届,出席会议者10000人。Java的追随者不断增加,应用开发迅速起步。
1998年3月24-27日,第三届,出席会议者14000余人(注册人数),注册门票售价1195美元,否则1395美元,即使如此,仍有不少人不惜工本,挤入会场。本次会议除了软件巨头微软未参加会议外,几乎所有的计算机公司都参加了。展厅内设300多个展台,先后举行了90场专题讨论会,每场参加的人数从千人至五六千人不等。会议的主题是:通过Java的培训来带动Java软件的开发和技术研究,从而发展生产力,获取高额利润,提高生活质量,推动信息产业的进步。会议展出的内容大致如下:
Java开发工具软件,如:JMF、JDK、Symantec Visual Cafe、Java Dynamic Management Kit、JFC、JNDI、Java Studio 等;
企业信息管理解决方案软件,如:EJB(Enterprise JavaBeans);
基于Java技术的信息家电,如:机顶盒、Java电话等;
个人信息综合服务(Java戒指)、社会信息综合查询亭(Kiosk);
电子商务软件、智能卡、Java Card API 等;
网络计算环境下的Java服务器软件、远程方法调用(RMI)、基于Java技术的移动计算设备;
JMS(Java Message Service)用于出版、票据订阅的软件;
JOS(Java OS)、基于Java技术的NC和Java Station。
1999年6月15-18日,第四届,出席会议者达20XX0人,300多家厂商参展,举办400多场技术讲座,555名演讲者慷慨陈词,精彩纷呈。这次大会的主要特点是:
Java框架结构被梳理清晰
本次JavaOne大会上,Sun公司的一个重大举措就是公布了Java平台的最新架构。重新定义的Java平台以Java 2为核心,由面向企业和服务器市场的企业版Java 2(J2EE)、面向传统PC客户机市场的标准版Java 2(J2SE)和面向信息电器等后PC终端设备市场的Micro版Java 2(J2ME)三大部分组成。其中,J2EE包括Enterprise JavaBeans(EJB)、Java Server Pages & Java Servlets、Java Mail API和Java Massage Service组成。而J2ME则是原有的Personal Java、EmbeddedJava、JavaCard以及刚刚推出的Kjava组成。虽然新框架结构中的内容都是已有的,但这样重新定义和组合,使得Java平台的概念简单化,从而变得易于理解,更适合于进行市场推广。
2)重点放在企业平台
随着Internet的飞速发展,企业计算模式正摒弃C/S结构而采用Web-Browser结构,此即瘦客户端/胖服务器、大容量数据库的3层或N层体系结构。由于Java的特点,使得它在开发服务器端的应用程序方面有着得天独厚的优势,面向服务器端的J2EE为当今逐渐流行的N层体系结构提供了一个标准的Java计算平台:界面一致、工具简易、丰富、Web页面互联便捷,从而能大大加速和简化各种应用系统的开发。
3) 加速后PC时代的进程
计算机的发展创造了Internet,但是计算机现在却不是访问Internet的唯一方式。正在出现的信息化、智能化的消费类电子产品打破了PC作为信息终端的垄断地位,成为人类进入Internet的新门户。信息终端的多元化预示着所谓后PC(post-PC)时代的到来。消费类的信息终端量大面广,是典型的瘦客户机,其本身的资源和能力不能与PC相比,但必须更加智能化,并对服务器端的管理提出了更高的要求。而Java平台恰恰满足了这种要求。本次大会推出的Kjava虚拟机能运行在16以上的微处理器上,占用内存少,人们可以随心所欲,在资源有限的设备上方便地开发出各种各样的应用,直接运行在不同的消费类或其它电子设备上;而Jini的出现为Java网络连接提供了公共标准,使得任何Java设备都可以连入网络中被自动识别,并可充分利用网络上已有的各种资源。大力推进Jini的发展是Sun公司加速后PC时代进程的一项重要策略。
4)应用系统异彩纷呈
与上届大会一样,展出内容有:应用工具、应用系统、信息家电等。特别在实时系统开发方面,以IBM为首开发出了应用于工业实时环境的Java嵌入系统,展现出Java在工业领域的广阔应用前景。
Java语言的出现和发展,得到了IT业界的青睐,它像一面大旗,凝聚了世界众多的厂商与Sun公司一道,结成了对抗微软垄断的联盟。许多知名厂商纷纷购买Java许可证,目前已有90多万个软件开发商加入了Java阵营,1亿个Java最终用户,几千种Java应用软件产品,1500余种Java书籍(自Java问世4年来,平均每天出版一本)。这真是IT业界的盛事!
IBM公司提出“高举Java大旗,全力以赴”的口号,它在全世界的11个国家有28个实验室,集聚了2500余名技术人员,全天侯24小时进行全方位开发;芯片巨人Intel提出“抓住时机,占领Java阵地”!决心使Intel芯片系统成为开发Java应用运行的最佳平台;Novell则宣称“Java是Novell的未来,未来是服务器端Java的市场”;作为Java发明者的Sun公司,坚持“保卫Java大旗,发展Java之路”的方针,通过对Java的“研究椘拦罈构造棽馐詶推广”的过程,从而占领市场。此外,HP、Oracle、Apple、Sybase、Netscape、Informi_、3Com、Motorola等公司均是Sun的坚强同盟。
在我国,Java的引进与开发起步早,发展水平基本与世界同步。目前,Sun公司已在中国建成了由5个授权中心、20多个Internet/Intarnet Java解决方案中心和10所Java大学、若干培训中心组成的三级结构。全面推动Java在中国的普及、应用、研究、开发,培养了数以十万计的Java开发人员。此外,Sun还牵头成立了中外软件厂商的开发联盟。
在中国,Java的开发可以说是“人才济济,成果累累”。如清华大学王克宏教授带领的课题组面向全国,自96年开始举办了多期Java培训班和讲座,开设了数期本科生、研究生Java课程,出版了“Java系列丛书”10余册 ,承担了国家“九五”攻关项目“基于Java技术的交互式远程教学系统”,并与日本就Java开发进行了国际合作,成绩斐然;东大阿派下属的宝钢东软软件技术研究中心是国内是首屈一指的Java研发骨干企业,该中心从95年起就开始了Java的研发,目前,已掌握了Personal Java的核心移植技术,并成功地将JVM移植到汽车导航平台。此外,他们还开发出支持Jini协议的即插即用网络打印机软件,以及一套Jini信息家电网络的可视化演示环境,完成了基于JavaBeans的组件化软件开发及运行支持环境等多项成果;在台湾,22家知名计算机公司成立了“Java联盟”,并在台北建立了“Java开发中心”,新竹建立了“Java语言实验室”;在香港,举行了全岛Java杯比赛,掀起了学习Java的热潮 。Java的浪潮汹涌澎湃,席卷全球!
Java技术
Java发展至今日,已不仅仅是一种编程语言,实际上已形成了一门技术.其内容包括:
1)Java软件包
Java语言及其编程技术、JavaOS、Java开发环境与工具、Java语言的各种软件包、数据库接口JDBC等。
2)Java虚拟机及其规范
3) Java嵌入技术(Java芯片)
已推出的有Java戒指、Java卡等。1999年8月2日,Sun公司宣布名为MAJC的专门为Java语言设计的的芯片优化研制成功,欲与Intel试比高低。该芯片在设计时采用了模块式高性能计算引擎,实质为一种芯片级并行处理机,能以更有效的方式分解计算任务,特别适合处理多媒体数据。Sun公司希望通过MAJC芯片的发布催生出一个基于Java语言的微处理器家族,与Intel公司竞争。设想中的Java处理器将应用在从低价消费电子产品到高端因特网服务器领域。
4)Java计算
基于Java技术的企业Internet/Intranet信息系统以及其他应用系统。
5)Jini技术
1999年初正式发布后,立刻得到业界的广泛支持。Jini的出现为Java网络连接提供了公共标准,使得任何Java设备都可以连入网络中被自动识别,并可充分利用网络上已有的各种资源。它把网络上的各类设备(包括消费类电子设备如移动电话、PDA、DTV、HPC、NC、游戏机、电冰箱、智能卡等等)和各种软件组合成一个单一、动态的分布式系统,使网络更易于操纵、易于管理,具有更高的可配置性。Jini将使网络具有自发性,它的出现大大扩展了“计算”和“计算机”的含义,极大地简化了网络操作,对家庭用户来说,使用网上设备即插即用,就像使用电话一样方便。Java和Jini 不仅可以不依赖于Windows为代表的操作系统,而且引导着信息产业的潮流,使Sun公司能在未来的、非PC类电子产品的数字化市场中强占制高点。
6)Jiro平台
异质网络环境中安装的存储系统的多样性和分布性,给存储管理带来了巨大的挑战。用户和开发人员都希望能有一种技术,能更好地促进企业存储管理方案的开发。而Jiro平台正是解决此问题的革命性方案。Jiro平台实现了Java和Jini 技术,它是一个便于用户管理异质网络上由各种服务器、存储和设备组成的混合环境的开放式存储管理平台。它对操作系统是中立的。Jiro为跨异质存储局域网(SAN)的管理服务和设备提供了一个开放平台,允许服务器、存储和联网设备在异质网络环境中无缝地协同工作。Jiro平台为开发者带来的好处有:
允许开发者利用各种实现管理存储网络的目标功能创建应用;
提供了一个可以在各种应用、服务和设备之间交互操作的组件模型;
允许设备易被增加、删除;
允许应用或服务被自动更新。
1999年7月,Sun发布了正式的Jiro规范草案,供公众讨论、修改。目前,Jiro平台的团体成员已超过25家,支持Jiro平台的厂商超过300家。有眼光的厂商纷纷加入到这些组行列,从而加快了Jiro的发展。
结语
Java自问世以来,以其得天独厚的优势,在IT业界掀起了研究、开发它的浪潮,显示了“鹏程万里”的美好前景。作为一种与底层硬件无关的、“编写一次,到处运行”的高级语言和计算平台,Java天生就具有将网络上的各个平台连成一体的能力,真正实现了“网络就是计算机”的理念。以Java为代表的网络的成长,改变了我们的联系方式、生活方式、学习方式和经营方式。它的来到使我们目睹了一场类似印刷术的重大变革。毫无疑问,它将影响人类社会的发展,这就是:Java加速人类进入网络时代!
Java是当今IT产业和人类文明的创新和希望!
java毕业论文范文 第3篇
一、引言
加深对《Java2面向对象程序设计》课程所学知识的理解,进一步巩固 Java语言的语法规则。分析系统的可行性,让系统有一个明确的方向,使开发更具合理性,并能分析出系统的具体流程,为后面的开发做好铺垫。明确本次课程设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧。并学会编制结构清晰、风格良好的、数据结构适当的Java语言程序,从而具备解决综合性实际问题的能力
二、课题内容
用Java设计一个职工信息管理系统,并实现相关功能。
三、系统程序要求
1、设计一个职工信息管理系统
2、要求包括职工信息包括职工号、姓名、性别、年龄、学历、工资、
住 址、电话(职工号不重复)
3、本系统功能描述:
职工信息录入功能(职工信息用文本保存);
职工信息浏览功能;
查询功能(至少一种查询方式):
按工资查询, 按学历查询
4、职工信息删除、修改功能(这两个功能任选)。
四、程序设计思想
该课题要求是输入职工信息,对职工信息进行一系列的处理。既要输入工号又要能查找到与之对应的职工,还要对实现建立,显示,查找,删除,信息的保存。
因为考虑到信息管理信息的实用性,我额外添加了一个“读文件”功能,使利用void read()方法来实现的。这个“读文件模块"!是我用来扩充信息管理系统功能的!可以使系统在用户不用输入信息就能读取先前已存在的职工信息文件。
根据课题要求,我是这样设计的:首先对要实现的功能类型分为三大类——Public类、方法类、信息类;然后细分为六个方法——void caidan()、void creat()、void output()、void search()、void delete()、void read ()。这些类和方法构成了能够实现不同功能的模块,很好地体现了面向对象的Java语言的编程模块块的思想。
我通过调用各功能模块的几个方法,随后在各个method中具体实现相关的功能。当然要利用throws IOE_ception进行一些异常处理,包括输入异常和数据的异常。在数据的录入与输出的过程中涉及到文件的相关操作(包括打开与关闭等)最后是系统的安全退出。大部分功能都是在具体的模块中加以实现的。
如search方法实现查询职工信息功能;caidan方法实现系统选择菜单界面的输出等相关功能;delete方法用于职工信息删除;output方法用于职工信息的输出及浏览等系列功能。
五、程序源代码及其解析
package staff;//包
import ;
public class StaffInfomation {
public static void main(final String[] args) throws IOE_ception
//throws IOE_ception用来抛出io的错误,文件读写错误, 主要涉及到java的安全机制
{
staffInfo staffOne[]=new staffInfo[100]; //定义100个类数组
for(int j=0;j<100;j++) staffOne[j] = new staffInfo();
//建立这100个类的对象
final ways staffTwo=new ways(); //建立这个方法类的对象
(staffOne);
(staffOne);
(staffOne);
(staffOne);
(staffOne);
//以上几个方法分别对应着:caidan菜单选择、增加(建立)职工信息、输出(预览)、查询、删除这些功能,以数组类为参数
}
}
class staffInfo
//职工信息类换句话说就相当与c语言里面的结构体,存放职工的信息
{
public String name;
public String num;
public String se_;
public String age;
public String record;
public String position;
public String wanges;
public String tel;
public String addr;
//把name、num、se_、age、record等声明为全局变量,因为它们贯穿于整个程序中,方便其它方法、类调用它们
}
class ways //方法类,主要实现职工信息的建立,显示,查找,删除,信息的保存与读取;这个类是整个程序的操作类。
{
public String recordkey;
public int i=0;//i用来存放职工的人数
public String filename="";
BufferedReader buf=new BufferedReader(new InputStreamReader());
//此处是JAVA语言中输入数据的基本格式,功能有如C中的scanf函数
void caidan(staffInfo staffOne[]) throws IOE_ception
{
final BufferedReader buf=new BufferedReader(new InputStreamReader());
// 参看书34页,产生Buf对象;buf是BufferedReader类的变量,此处将读入字符串至buf
int choice;
do{
("☆★☆★☆★☆★电子信息系40706班★贺 雪 设计★☆★☆★☆\n\n");
("┏━━━━━━━━━━━━━━━━━━┓");
("┃★ 职工管理系统主菜单界面 ★┃");
("┣━━━━━━━━━━━━━━━━━━┫");
("┃ ★①.输入职工信息 ★ ┃");
("┃ ★ ②.预览职工信息 ★ ┃");
("┃ ★ ③.查找职工信息 ★ ┃");
("┃ ★ ④.删除职工信息 ★ ┃");
("┃ ★⑤.安全退出系统 ★ ┃");
("┃ ★ ⑥.读取数据 ★ ┃");
("┗━━━━━━━━━━━━━━━━━━┛");
(" 请输入您的选择(0--6):");
(());
switch(choice)
{
case 1:creat(staffOne);break;
case 2:output(staffOne);break;
case 3:search(staffOne);break;
case 4:delete(staffOne);break;
case 5:save(staffOne);break;
case 6:read(staffOne);break;
}
}while(choice!=0);
}
void creat(staffInfo staffOne[]) throws IOE_ception
//这个方法是实现“增加(建立)职工信息”;是建立信息模块
{
final BufferedReader buf=new BufferedReader(new InputStreamReader());
("\n请输入职工信息(以0结束)\n");
("姓名:\n\n");
staffOne[i]();
while(staffOne[i]("0")!=0)
//用数组staffOne[i]来暂存职工的序 号,并用compareTo方 法确定判定是否应该写入新信息
{
("工号:\n\n");
staffOne[i]();
("性别:\n\n");
staffOne[i]();
("年龄:\n\n");
staffOne[i]();
("学历:\n\n");
staffOne[i]();
("职位:\n\n");
staffOne[i]();
("工资:\n\n");
staffOne[i]();
("电话:\n\n");
staffOne[i]();
("住址:\n\n");
staffOne[i]();
i++;
("请输入下一个职工信息:\n\n");
staffOne[i]();
}
}
void output(staffInfo staffOne[]) throws IOE_ception
//这里是实现“输出(预览)职工信息”output的模块
{
("--------------------------------------");
(" _员工信息表_ );
("------------------------------------");
("姓名 工号 性别 年龄 学历 职位 工资 电话号码 住址");
("---------------------------------");
if(i!=0)
{
for(int j=0;j
{
(staffOne[j].name+" "+staffOne[j].num+" "+staffOne[j].se_+" ");
(staffOne[j].age+" "+staffOne[j].record+" "+staffOne[j].position+" ");
(staffOne[j].wanges+" "+staffOne[j].tel+" "+staffOne[j].addr+"\n");
}
("------------------------------");
}
else ("没有员工信息!");
}
void search(staffInfo staffOne[]) throws IOE_ception
//这里是实现职工信息的查询功能的模块
{
final BufferedReader buf=new BufferedReader(new InputStreamReader());
("\n请输入您要查找的职工学历:");
();
boolean flg=true;
("------------------------------------");
(" _员工信息表_ );
("-----------------------------------");
("姓名 工号 性别 年龄 学历 职位 工资 电话号码 住址");
("---------------------------------------");
for(int j=0;j
{
if((staffOne[j].record))
//equals是字符串比较函数相等返回true
{
(staffOne[j].name+" "+staffOne[j].num+" "+staffOne[j].se_+" ");
(staffOne[j].age+" "+staffOne[j].record+" "+staffOne[j].position+" ");
(staffOne[j].wanges+" "+staffOne[j].tel+" "+staffOne[j].addr+"\n");
flg=false;
}
}
if(flg)
("对不起,查无此人!");
}
void delete(staffInfo staffOne[]) throws IOE_ception
{
final BufferedReader buf=new BufferedReader(new InputStreamReader());
("\n请输入您要删除的职工姓名:");
();
boolean flg=true;
for(int j=0;j
{
("staffOne[j].name="+staffOne[j].name);
("recordkey="+recordkey);
("(staffOne[j].name)="+(staffOne[j].name));
if((staffOne[j].name))
{
for(int k=j;k<=i-1;k++)
//利用顺序表的删除算法,删除值之后,再把后面的值往前移位,从而实现删除
{
staffOne[k].name=staffOne[k+1].name ;
staffOne[k].num=staffOne[k+1].num ;
staffOne[k].se_=staffOne[k+1].se_ ;
staffOne[k].age=staffOne[k+1].age ;
staffOne[k].record=staffOne[k+1].record ;
staffOne[k].position=staffOne[k+1].position ;
staffOne[k].wanges=staffOne[k+1].wanges ;
staffOne[k].tel=staffOne[k+1].tel ;
staffOne[k].addr=staffOne[k+1].addr ;
}
i--;//职工人数要减一
flg=false;
}
}
if(flg)
("对不起,查无此人!。");
else ("已经删除!。");
}
void save(staffInfo staffOne[]) throws IOE_ception
//数据的保存模块, 把输入的职工信息保存到相应的文件里。
{
int k;
final FileWriter fw=new FileWriter(filename);
//调用构造函数FileWriter()创建FileWriter类的对象。
//文件的读取(书216页13-2-2)
( i+"\n");//把职工的人数保存到文件中以便下次读取是使用
for( k=0;k
{
( staffOne[k].name+"\n");
( staffOne[k].num+"\n");
( staffOne[k].se_+"\n" );
( staffOne[k].age+"\n");
( staffOne[k].record+"\n");
( staffOne[k].position+"\n") ;
( staffOne[k].wanges+"\n");
( staffOne[k].tel+"\n");
( staffOne[k].addr+"\n");
}
();
("\n 系统已经安全退出!感谢您的使用!");
(0);
}
void read(staffInfo staffOne[]) throws IOE_ception
//这是程序的“读文件模块"!是我自己添加进去扩充系统功能的!可以使系统不用输入信息就能读取先前已存在的职工信息文件。
{
final FileReader fr=new FileReader(filename);
final BufferedReader bfr=new BufferedReader(fr);
//关于文件的读取不会的看看书216页13-2-2
if((())!=null)
(recordkey);
for(int j=0;j
{
staffOne[j](); 这是程序的“读文件模块",
是我自己添加进去扩充系统功
staffOne[j](); 能的!可以使系统不用输入信息
就能读取先前已存在的职工信息
staffOne[j](); 文件,从中读取数据。利用了书
本P216页13-2-2的文件相关知识
staffOne[j]();
staffOne[j]();
staffOne[j]() ;
staffOne[j]();
staffOne[j]();
staffOne[j]();
}
();
("\n 数据已经成功读取!");
}
}
六、心得体会
我自己感觉此次课程设计做得挺成功的,通过这一次,我学到了不少实际编程的知识。
在这次设计开始的第一天开始,我就开始着手修改一个用“职工信息管理系统”的JAVA程序。这一过程太不顺利,调试的时候都没有成功。后来我请教一个学长,在他的指导下我不断的发现错误,并改正它们,功夫不负有心人人,我的程序最后运行成功了。
这其中了不少的东西,磨砺了我的意志;同时还巩固了以前所学的知识,学到了不少书本上没有的知识;学到了很多java编程知识,并学会了简单的使用eclipse来开发java程序的一些使用技巧这次课程设计是对我本学期所学的知识的检验,由此我发现了不少的问题。可以说它给了我一次自我评估的机会。通过设计让我知道了那些方面我还是有欠缺的,促使我花时间弥补。
临近考试,时间太紧迫,致使程序实现的功能在方法上也许不是很完美,但我以后会多向老师请教,自己也要加强对Java 的学习。努力进一步提高自己的编程水平。
参考资料
1、《程序天下》
2、洪维恩、何嘉《java2面向对象程序设计》
3、Java天下-java、jsp编程论坛[黑咖啡屋]
4、黄旭等《java课程设计指导》
5、C编程设计(第三版) 谭浩强(著)
java毕业论文范文 第4篇
摘要
本文围绕Java编程语言在网络编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。
java语言,是目前比较流行的编程语言。经过10多年的发展,java已经渗透到全球每个角落。在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最令人瞩目的特点是具有跨平台性,使其不受平台不同的影响,并得到了广泛的应用。
设计内容:设计GUI界面的计算器。用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除等混合运算。
设计要求:
系统界面的上面是数字输入对话框,用来显示所输入的数字和运行的结果。
系统界面下面的左侧是记忆 + - _ /。
系统界面下面的中部是数字输入按钮,用来输入数字。
系统界面下面的右侧是运算符号按钮,用来实现具体的运算。
关键字:java面向对象 计算器 网络编程
第一章 概述
设计目的
计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的功能。本论文采用java编程语言实现计算器功能。该计算器大大的降低了数字计算的难度并且提高了计算的准确度和精确度。使用简单,适合广大工作人员和中小学生使用。
计算器系统概述
标准计算器的界面采用“图形界面程序设计(GUI)”。GUI为用户和应用程序之间的交互提供了直观、方便的交流方式。用户使用鼠标、键盘操作图形界面上的按钮、菜单等元素湘计算机系统发送命令,系统运行的结果以图形的方式显示给用户。
编写java计算器主要使用了Swing组件和AWT布局类。Swing组件主要包括按钮、标签、文本输入类、等组件,AWT主要运用了其中的布局管理器。
Swing组件
Swing组件的按钮用JButton类表示,计算器的界面主要由JButton按钮组成,以响应用户的操作;
Swing中的标签用JLabel类表示,标签上可以显示图标和文本;
Swing的文本输入类包括文本框JTe_tField、文本区JTe_tArea和密码框JPasswordField。
本计算器中仅仅使用了文本框JTe_tField,用于文本数字的显示。
AWT组件
布局管理器管理组件如何放置在容器中,AWT中最常用的四种布局类:FlowLayout、BorderLayout、GridLayout、CardLayout。本项目主要采用了GridLayout布局。
功能模块设计
★标准计算器。
以下是标准计算器的各项功能:
(1)加法:
两个及两个以上数据进行加法操作,可以为小数形式。
(2)减法:
两个及两个以上数据进行减法操作,可以为负数形式。
(3)乘法:
两个及两个以上数据进行乘法操作。
(4)除法:
两个及两个以上数据进行除法操作。
(5)开平方:
对任意数开平方,可以为小数(不能为负数)。
(6)求倒数:
对任意数求倒数,0除外。
(7)求百分数:
对任意一个数进行百分号操作。
系统功能图。
标准计算器
求倒数
开平方
求百分号
加法
减法
乘法
除法
图 计算器系统功能图
第二章 项目设计说明
标准计算器设计界面
图 计算器设计界面
标准计算器设计主要代码
标准计算器主要由一个菜单栏、一个文本框、27个按钮组成。
整体框架代码
JFrame f = new JFrame("标准计算器");
(400, 300);
Container contentPane = ();
菜单栏代码
图 菜单栏
JMenuBar mBar = new JMenuBar();
(true);
mEdit = new JMenu("编辑(E)");
();
mCopy = new JMenuItem("复制(C)");
(mCopy);
mPaste = new JMenuItem("粘贴(P)");
(mPaste);
mView = new JMenu("查看(V)");
();
(new JMenuItem("标准型"));
(new JMenuItem("科学型"));
();
(new JMenuItem("查看分组"));
mHelp = new JMenu("帮助(H)");
();
(new JMenuItem("帮助主题"));
();
(new JMenuItem("关于计算器"));
(mEdit);
(mView);
(mHelp);
(mBar);
(new BorderLayout());
文本框代码
图 文本框
JPanel pTop = new JPanel();
tResult = new JTe_tField("",26);
();
(false);
(tResult);
(pTop,);
计算器各功能键代码
图 各功能键图
bOther = new JButton("MC");
(this);
(); //字体颜色
(new Insets(3,2,3,2));//按钮边框和标签之间的空白
(bOther);
bOther = new JButton("MR");
(this);
();
(new Insets(3,2,3,2));
(bOther);
bOther = new JButton("MS");
(this);
();
(new Insets(3,2,3,2));
(bOther);
bOther = new JButton("M+");
(this);
();
(new Insets(3,2,3,2));
(bOther);
(pLeft,);
JPanel pRight = new JPanel();
(new BorderLayout());
JPanel pUp = new JPanel();
(new GridLayout(1,3,3,0));
bOther = new JButton("BackSpace");
(this);
();
(new Insets(3,0,3,5));
(bOther);
bOther = new JButton("CE");
(this);
();
(bOther);
bOther = new JButton("C");
(this);
();
(bOther);
数字键及运算符号代码
图 数字键图
JPanel pDown = new JPanel();
(new GridLayout(4,5,3,2));
bNumber = new JButton("7");
();
(this);
(new Insets(3,3,3,3));
(bNumber);
(注:其他数字键、运算符号键与“7”定义相同。)
第三章 程序运行效果
加法运算
本计算器可以实现多个运算数相加,例如:1+2+3+4
计算结果为10,所有数据均为double类型。
减法运算
本计算器可以实现多个运算数相减(正负数),例如:6-5-3-1
计算结果为-3,数据类型为double类型。
乘法运算
本计算器可以实现多个运算数相乘,例如2_3_4_5
运算结果为120,数据类型为double类型。
除法运算
本计算器可以实现多个运算数相除(除数不为0)例如:15/3/5/2
运算结果为,数据类型为double类型
当除数为0时,计算器自动报错,例如:15/0
开方运算
当被开方数为非负数时,计算器自动开方,例如:25开方
运算结果为
求倒数运算
当按下求倒数键时,计算器自动为运算数求其倒数。例如:5的倒数
运算结果为
第四章 项目重难点分析
重难点分析
Java计算器中整体框架的建立,按钮的设置,整体布局在操作过程中都是很顺畅的。计算器的关键步骤也是重点是实现计算器的计算方法。
实现两个数的加减乘除等运算是比较简单的,但是一个计算器需要做到的是实现多个运算数的运算。此时就用到了我在项目一开始定义的两个数据
每执行一次运算操作就把运算结果赋值给操作数1 “op1”,并判断下一步操作是“=”或者“其他运算符”,决定下一步计算器的操作。
程序中存在的问题
(1)菜单栏中虽然设置了编辑、查看、帮助等选项,但是项目中并没有实际的功能。
(2)程序中设置了内存的有关操作但是并没有达到其预期的功能。
(3)百分号的实际功能并没有实现。
(4)当被开方数是负数时,计算器并不能给出错误提示。
[参考文献]
《Java编程实用技术与案例 》 译作者:杨绍方
《软件工程Java语言实现SoftwareEngineeringwithJava》译者:袁兆山等
程序员天堂( 英文网站 大量的程序, 库, 包)
java毕业论文范文 第5篇
(5)删除购物车中的一个商品项
客户在查看购物车时,当向服务器发送一个“删除商品项”的请求时,会执行这个功能。删除商品项时,系统会自动更新购物车的总计值,如图4-9:
图4-9 删除商品
功能执行过程:
1从客户请求对象中获取商品的ID
2调用业务层的方法根据商品ID去数据查询商品的信息,返回商品对象
3从Session会话中获取购物车对象
4调用业务层的方法根据商品ID去删除购物车对象中的商品项
5将购物车重新加入到Session会话中,来更新Session会话中的购物车对象
部分代码实现:
//删除购物车中一个商品项
public ActionForward deleteById(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws E_ception {
String tempid = ("productId");
Long productId = (tempid);
HttpSession session = (false);
ShoppingCart cart = (ShoppingCart) session
.getAttribute("SHOPPING_CART");
(productId);
if (()) {
return ("inde_");
}
return ("success");
}
(6)清空购物车
客户在查看购物时不要想要所有所选的商品时,向服务器发送“清空购物车”请求时会执行此功能。如图4-10:
图4-10 清空购物车
执行此功能的步骤:
(1)从请求对象中获取Session会话
(2)从Session会话中获取购物车对象
(3)将购物车对象传给业务层的方法去清空购物车中的所有商品项
部分实现代码:
/_
也就是从session中把购物车清除掉;
/
public ActionForward clearShopCart(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws E_ception {
HttpSession session = (false);
IShoppingCart cart = (IShoppingCart) session
.getAttribute("SHOPPING_CART");
();
return ("inde_");
}
定单模块
生成订单是网上购物商城的最终目的,前面的所有的功能的实现都是为最后生成一个用户满意的订单做基础,在此要生成一个可以供用户随时查询订单号,还要保存用户订单中所购买的商品信息。当用户确认对购物车不再改变后,就可以到收银台结帐并生成订单。结帐的流程是:从购物车中读取商品名称,商品数量,商品价格信息,生成唯一的一个订单号,同时也把用户注册的基本信息读取出来,形成一个完整的订单写入数据库中。
1、创建一个订单
客户选好了所有的商品时,并确认要买时,会向服务器发送一个“生成定单”的请求,运行结果如图4-11:
图4-11 生成订单
此时用户可以添加收货人的地址,点击图中的用户信息“修改”,会弹出一个页面,在此修改收货人地址等信息,如图4-12:
图4-12 修改收货地址
/_
将修改后的地址保存到数据库中,其中保存了用户的信息:id
/
public void addUserItem(UserItem useritem) throws StoreE_ception {
try {
session = ();
t_ = ();
(useritem);
();
}
}
用户确认无误后点击图4-11的“提交订单“,会出现下图:
图4-13 订单列表
部分实现代码:
/_
确定定单
/
public ActionForward checkOut(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws E_ception {
ActionForward forward = null;
GregorianCalendar gc = new GregorianCalendar();
Long paywayid = (("payway"));
PayWay pw = new PayWay(paywayid);
List orderStatus = (List) ().getServletConte_t()
.getAttribute("all_orderStatus");
OrderStatus os = (OrderStatus) (1);
HttpSession session = (false);
User user = (User) ("USER");
ShoppingCart cart = (ShoppingCart) session
.getAttribute("SHOPPING_CART");
// Map orderLineMap = ();
Orders order = ();
(user);
(());
(() + "-" + () + ""
+ () + "" + ());
(pw);
(os);
try {
("=== begin to generator order =====");
(order);
("==== generator order success . . .");
forward = ("success");
} catch (ECPortE_ception be) {
forward = ("fail");
("==== save user order ", be);
();
}
(); // 定单产生后应清楚当明购物车中的商品
return forward;
}
/_
向数据库中保存一个指定的order对象;
/
public void save(Orders transientInstance) {
("saving Orders instance");
try {
getSession().save(transientInstance);
("save successful");
} catch (RuntimeE_ception re) {
("save failed", re);
throw re;
}
}
查看定单
客户确认了所有的订单选项后,可以向服务器 发送“查看定单明细”的请求:当用户点击了图4-13上的“明细”按钮是,页面运行结果如下:
图4-14 订单明细
部分代码实现:
/_
根据指定的order对象来获得属于该order的所有orderline项;
/
public ActionForward orderDetail(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws E_ception {
ActionForward forward = null;
String tempid = ("orderid");
Long orderid = (tempid);
Orders order = null;
try {
order = (orderid);
("=== get order ");
("ORDER", order);
forward = ("showinfo");
} catch (ECPortE_ception be) {
("==== get failed .====");
forward = ("fail");
}
return forward;
}
系统的测试
测试是软件开发必不可少的环节,每个开发者都应该养成良好的测试习惯,一个系统的完善就是通过不断地测试与维护来完成的。
测试的意义有以下几点[18]:
(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;
(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;
(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
测试一般有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,可以通过测试来检验产品的内部动作是否按照说明书的规定正常运行。前一个方法称为黑盒测试,后一个称为白盒测试。
对于本系统,我采取第一个方法,即黑盒测试。做完一个模块,就进行测试,看所做的模块能不能实现所需要的功能。经过了先期的模块测试和后期的综合测试,本系统实现了规格说明书的所有功能,达到了预期的要求。
小结
本章详细介绍了系统主要功能模块的具体实现,包括用户管理模块、购物车模块和定单模块,分析他们的设计思路,执行步骤,并给出了每个功能的主要实现代码,还有为每个功能的最终执行结果配上截图,让我们看到更直观的效果。最后对完成的系统进行了测试,介绍了两种主流的测试方法,给出了测试结果,达到了预期的要求。
第五章 总结与展望
开发Web站点,是一项复杂、繁重的工作,需要多方面的知识。
此次通过设计网上交易系统,使我接触到许多基于java语言的WEB网络开发方面的知识,包括HTML语言,CSS级联样式表,客户端开发语言JavaScript,MVC分层体系结构,支持MVC架构的struts框架,开源服务器Tomcat,mysql数据库,服务器端开发语言JSP等,这些语言(或技术)扩展了我的知识面,也使我在制作的过程中对它们的特点,应用方向等有了基本的了解,并在实际的应用中大致明白如何将它们融合运用,以开发出界面美观,功能强大的Web站点来。
通过本次亲自动手设计系统,我更加深刻的了解系统开发的全过程,从中我熟练掌握了B/S结构Web应用软件设计的思想及其开发的全过程。首先要进行系统的需求分析,分析系统要达到什么功能,系统要划分为几个模块来设计,系统的具体功能应当如何去实现;分析完之后,考虑其涉及到的计算机专业知识,把问题细化,把大的问题划分为小的问题,然后逐个进行解决。毕业设计开始阶段,由于我们没有软件架构的设计经验,所以在项目的业务流程和软件的开发规范上犯了很的错误,所以在后期的组装过程变的非常的困难。
设计收获:
掌握了网站开发的基本流程,设计整个网站的功能模块图;
掌握了如何搭建和配置一个Tomcat服务器;
掌握了使用JSP编程,实现对信息的显示、修改、删除和添加等;
遇到的问题:
中文乱码问题的解决
对于JSP中文乱码问题的处理,常用的方法有两种:一种方法是在JSP页面上设置页面的“contentType”属性。这种方法就是在页面开始时,设置页面的“contentType”属性,例如:
另一种方法是输出中文信息时使用“ISO 8859-1”编码。这种方法是在输出中文信息之前,对中文信息进行一次“ISO 8859-1”编码。
异常
一般是对一个为NULL值的变量进行操作引起的。为了避免这种异常,最好在对变量操作之前检查看它是否为NULL值。
语句换行书写时未加适当的空格而导致的错误。我们先看一段代码,
String test=aaa;
String sql=〞select _ from test〞+
〞where test1=’〞+a+〞’〞+
〞and test2=bbb〞;
上面所示的代码在执行时将转换成这样的SQL语句:
Select _from testwhere test1=’aaa’ and test2=bbb
从输出的SQL语句可以看出test和where之间,以及’aaa’和and之间都缺空格,这样是不能从数据库中取出数据的.正确的写法如下:
String test=aaa;
String sql=〞select _ from test〞+
〞 where test1=’〞+a+〞’〞+
〞 and test2=bbb〞;
后续工作展望
由于个人能力有限以及实践经验欠缺,系统基本满足在线电子产品交易的功能需求,本系统不可避免有不足之处,如一些系统功能过于简单,所以系统的功能还算不上很完善。希望老师和同学能给予建议和指导。
参考文献
[1] 景玉建.电子商务的发展与前景[J].《职业时空》,20XX年第13期,P10-11
[2] 张孝祥.深入Java Web开发内幕——核心基础[M].北京:电子工业出版社.北京
致谢
本次毕业设计的最终完成离不开很多人的大力协助。衷心的感谢上海达内科技有限公司在我实习期间交给我这个项目任务,使我有了设计课题,还感谢在实习期间给我帮助的项目经理以及公司同事。真诚的感谢本次毕业设计的指导老师-宋玲教授,给了我自由选题的机会,在我的论文审稿阶段指出了很多方面的不足,并一一给出修改意见,对我进行悉心指导,对我的毕业论文最终完成给予了极大的支持和帮助。
特别感谢曹杰师兄,在毕业设计中遇到难点的时候,热情和耐心地给予指导,对我毕业设计工作的顺利完成有着重要的意义。
最后,再一次感谢所有帮助过我的人们!
推荐访问: