java实习报告
目录
一、 前言.......................................................... 2
1. 课设题目..................................................... 2
2. 课设目的..................................................... 2
3. 开发环境..................................................... 2
二、 课设内容...................................................... 3
1. 系统功能需求................................................. 3
2. 数据库需求................................................... 4
1) student(学生信息表).................................... 4
2) teacher(教师登录表).................................... 4
3) score(教师登录表)...................................... 4
三、 设计过程...................................................... 4
1. 时间安排..................................................... 4
2. 具体操作..................................................... 5
3. 调试过程..................................................... 6
1) 系统测试................................................. 6
2) 问题与解决方法........................................... 6
四、 小节.......................................................... 7
五、 参考资料...................................................... 8
一、前言
1. 课设题目
学生信息管理系统的设计与开发
2. 课设目的
《Java程序设计》课程是电子商务专业的一门专业必修课程,特针对此课程进行为期三周的实践教学,旨在提升本专业学生对此课程中的理论知识的综合应用能力、提高学生的逻辑思维能力、软件开发能力。
本次课程实习要求学生用Java技术在Windows平台下开发学生信息管理系统。通过此程序的开发能够切实提高学生的程序设计水平,在实践中掌握面向对象程序设计的开发思想。
3. 开发环境
操作系统;Windows XP
编程环境:MyEclipse 6.0
主要技术:Java Swing实现窗体界面
JDBC实现数据库操作
系统架构:三层架构(MVC)+DAO设计模式
数据库:MySQL5.0
二、课设内容
1. 系统功能需求
学生信息管理系统主要对在校学生的个人基本信息以及成绩信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供成绩查询功能。我们的目标就是为该系统提供前台用户界面设计以及后台连接数据库程序设计,系统程序界面采用Java Swing组件实现,数据库操作采用JDBC实现。
学生信息管理系统要面对教师和学生用户。对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。对于学生,不需要查询自己的基本信息,只需要查询成绩。为了保护学生成绩隐私,每位学生登录系统后只能查询。
教师方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。在查找学生成绩信息时,只能依据学生姓名和学号进行查找。在修改功能里面,包括对学生基本信息
表和学生成绩表进行增加和删除记录。
学生方面:学生通过自己的用户名和密码登录此系统后, 可以查询自己本学期的各科成绩信息。系统模块结构图4如示。
图4 系统模块结构图
2. 数据库需求
依据功能需求,学生信息管理系统主要有三个表:student表、teacher表和score表。
1) student(学生信息表)
此表有六个属性,分别为:id(主键,自动递增),num(学号),sname(姓名),sex(性别),age(年龄),dept(系别)。
2) teacher(教师登录表)
此表有三个属性列,分别为:id(主键,自动递增),tname(教师账户),password
(登录密码)。
3) score(教师登录表)
此表有六个属性列:分别为:id(主键,自动递增),num(学号),sname(学生姓名),course(课程名称),score(考试成绩),credit(学分)。
三、设计过程
1. 时间安排
2. 具体操作
按照实习安排,我们在第十六周星期一第一大节在21阶梯开了实习动员大会。刘帆老师为我们讲解了这次实习的具体安排和要求,讲述了本次实习的重要性。积极调动了我们参加实习的热情。
十六周星期二,我们去专业机房进行实习。老师带领我们进行了对系统功能的分析,初步了解了系统概要和系统组成。我们将需要安装的软件装载到自己的机子上面,为实习做基础准备。星期三,我们按照实习指导书进行数据库设计,搭建了自己的数据库,并进行测试与连接。星期四,我们开始程序编写,进行项目环境搭建,我们在网上查找资料,阅读我们的《java语言程序设计》课本,认真编写,有问题就请教同学和老师。
接下来的一周多时间我们一直进行程序的编写和调试,我们逐渐完成着实习指导书上的目标,初步实现了系统登录功能、学生查询自己成绩功能、录入学生信息功能、查询学生信息功能、删除学生信息功能、录入学生成绩功能、查询学生成绩功能、删除学生成绩功能。
3. 调试过程
1) 系统测试
功能性:系统正确实现了通过学生系统管理基础数据的功能,实现了基础数据管理,基础信息管理,教师管理的查询,添加,修改,删除的功能,学生查询功能。
系统在实现用户管理下的权限管理功能时,存在重大的缺陷,权限控制不严密,权限设计有遗漏。
现有系统实现了如下易用性:
① 查询,添加,删除,修改操作相关提示信息的一致性,可理解性
② 输入限制的正确性
③ 输入限制提示信息的正确性,可理解性,一致性
现有系统存在如下易用性缺陷:
① 界面排版不够美观
② 输入,输出字段的可理解性差
③ 输入缺少解释性说明
兼容性:现有系统未进行其他兼容性测试
2) 问题与解决方法
问题一:编译器找不到类。
解决方法:
确保你已经导入了类或者它的包。
如果对CLASSPATH环境变量有进行设置,要重新复位。
确保类名的拼写跟定义的一样,要注意大小写问题。
如果类在包中,要确保它们处在正确的子目录中。
同时,一些程序员从.java文件名字为类使用不同的名字。要确保你是使用类名字而不是文件名。实际上,使类名和文件名相同就不会出现这个错误了。
问题二:注释器不能找到其中一个类
解决方法:
确保指定的是类名而不是类的文件名。
如果对CLASSPATH环境变量有进行设置,要重新复位。
如果类在包中,要确保它们处在正确的子目录中。
确保从.class文件所在的目录中调用这个注释器。
问题三:无意地增加一个分号(;)来过早终止语句?比如:
for (int i = 0; i < arrayOfInts.length; i++) ;
arrayOfInts = i
问题四:忘记在在switch语句中的每一个case语句使用break
问题五:在应该使用比较运算符号==的时候使用了赋值运算符=
四、小节
通过这一期的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要学会熟练操作的。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。克服了Java学习上的一道道难关,现在自己已经基本掌握了java的基础知识,实训即将结束了,我非常怀念大学的校内实训,在实训的这短短大半个月时间里,我每一天过的都市踏实的,充实的;在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。
所以学好java语言有很大的用处,这次实训,面对一道陌生的题目和要求时,不应慌张和无措,首先应该想到这和课本上的哪些知识具有结合点,回忆和分析这种结构的算法和具体实施方法,综合考虑其他的方面,例如:该题的易写性和易懂性及其他的问题的可利用性。在编写时,一个小小的符号,一个常量变量的设定,这都无不考量着我们的细心和严谨,所以学习JAVA,不仅对我们以后学习其他语言有很大的好处,而且也让我们知道了和理解了作为一个编程人员首先应具有的良好心理素质,那就是冷静思考和专心致志。对待学术知识应该是严谨和认真。
感谢学校和老师能够为我们提供这次机会,让我们更好的掌握和了解JAVA这门语言。谢谢!
五、参考资料
JAVA语言程序设计(第三版)
JAVA实习指导书
JAVA面向对象程序设计(第2版)北京邮电大学出版社
第二篇:java软件开发专业实习报告
JAVA软件开发专业实习报告
一、实习的时间:20##年4月5日—20##年6月20日
二、实习的地点:软帝有限公司
三、实习的目的:
进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,培养我们综合运用已学知识Java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
四、实习的方式、方法:实践操作
五、实习的要点:
1.MySql数据库和SQL 数据库的使用;
2. Java中的常用设计模式;
3. 控制技术-Servlet技术
4. 页面设计-JSP页面;
六、实习的内容:
Mysql数据库
1) MySQL数据库管理系统概述
MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。MySQL AB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。
数据库是数据的结构化集合。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。
MySQL服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了MySQL服务器和其他数据库管理器的比较结果。
MySQL服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。尽管MySQL始终在不断发展,但目前MySQL服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性,这使的MySQL十分适合于访问Internet上的数据库。
2) MySQL稳定性
每次发布的MySQL服务器均是可用的。仅当用户尝试源自“灰色区域”的代码时才会出现问题。当然,新用户不了解“灰色区域”是什么。因此,在本节中,我们介绍了目前已知的这类区域。本节所作的介绍主要针对MySQL服务器5.0版和更高版本。在最新的版本中,更正了所有已知和通报的缺陷,但“缺陷”一节所列的除外,这类缺陷与设计有关。
java与SQL的应用
Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、SQL Server 2000、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。
SQL Server2000是微软公司新一代的数据库产品,它是在SQL Server7.0建立的坚固基础上产生的,并对SQL Server7.0做了大量扩展。SQL Server2000通过高端硬件平台以及最新网络和存储技术的支持,可为最大的Web站点和企业级应用提供可扩展性和高可靠性。
Java中的常用设计模式
1) 工厂模式
客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。
3)工厂方法模式
核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。
控制技术-Servlet技术
1) 什么是Servlet?
一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。
javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。
2) Servlet的生命周期
一个servlet的生命周期由部署servlet的容器来控制。当一个请求映射到一个servlet时,该容器执行下列步骤。
页面设计-JSP页面
1)MVC 模式
为了把表现层presentation从请求处理request processing 和数据存储data storage中分离开来,SUN公司推荐在JSP文件中使用一种“模型-视图-控制器”Model-view-controller 模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如Struts 和Spring framework)。
2) JSP技术的强势
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
3) JSP技术的弱势
(1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。
4) JSP内置对象
(1)request对象:
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
(2)response对象:
对客户的请求做出动态的响应,向客户端发送数据。
(3)session对象
session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
(4)application对象
服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
(5)out对象
out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。
七、实践的感受和体会:
实习是为将来打基础的重要阶段,珍惜自己每一个工作的机会,不论什么人,什么学历,从事什么工作,好好的表现、展示自己的能力,不要错过好的机遇。没有一件事情是轻轻松松的,但每一件事都是让人成长的,经历一段过程,喜悦或是艰辛,尽管经历的方式不尽相同,但它的结果是相同的,我们都会因涉事而成长。
通过实习,我自身发生了重大的转变。首先,进入公司,你就是一名职业人,不再是一名学生,你要具备一名职业人应具备的素养,不迟到不早退是必然的,而且还要时刻严格要求自己,公司的规定要严格遵守。然后,在技术上也有了很大的提高,学习了很多公司自己的框架和工具,这都是一些前辈的宝贵经验。而且所作的软件应用性更强。所以,我要坚定自己的信念,在公司好好实习,争取提早转正,我相信我会在JAVA开发这条路上走的更长更远。