java图书管理系统报告

2024-06-27 版权声明 我要投稿

java图书管理系统报告(精选10篇)

java图书管理系统报告 篇1

一、实习目的

本次实习的目的主要有2个:

(一)通过亲手对计算机硬件的拆卸,对计算机的硬件要有更深刻的认识和理解。

(二)通过设计图书管理系统,对相关编程知识有了更进一步的运用,以及其具体实现的细节也有了更深刻的认识。

二、实习单位及岗位介绍

本次实习在陕西科技大学理学院的综合实验室进行。

三、实习安排

本次实习的时间是三周:前一周进行硬件实习,后两周进行软件实习。

四、实习内容

(一)硬件实习:

2月23日开始了为期1周的硬件实习,在这段时间里,主要是进行了对计算机主机进行了装卸,通过装卸让我们对计算机内部各个部件的协同工作有了更深的认识。(二)软件实习:

3月1日开始了为期2周的软件实习。我选择的题目是“图书管理系统”,对于这个题目,整个系统是由3个数据表,3类用户,以及4类动作。1.配置数据库

在SQL Server2000中创建图书管理系统的数据库demo,创建3个数据表books,bookBrowse,UserTable。

2.生成配置文件hibernate.cfg.xml.文件如下:

陕西科技大学毕业实习(专业实习)报告

3.创建持久化对象以及创建映射文件:

4.Hibernate操作数据库的方法(HibernateUtil.java)。

陕西科技大学毕业实习(专业实习)报告

5.系统主界面(LibraryWindow.java)。6.用户管理:

1)用户登录(UserLogin.java)2)添加用户(UserAdd.java)3)修改用户(UserModify.java)4)删除用户(UserDelete.java)7.书籍管理模块:

1)书籍添加(BookAdd.java)

2)书籍信息修改(BookModify.java)3)书籍删除(BookDelete.java)4)书籍列表(BookList.java)8.借书管理模块:

1)借阅图书类(BorrowBook.java)2)修改出借图书信息(BorrowInfo.java)9.还书管理模块:

1)书籍还入(ReturnBook.java)2)还书信息类(ReturnInfo.java)10.部分运行效果图如下:

陕西科技大学毕业实习(专业实习)报告

陕西科技大学毕业实习(专业实习)报告

五、实习总结和体会

通过这次实习,我对计算机的软件和硬件有了全面的了解。

java图书管理系统报告 篇2

随着计算机技术的发展, 特别是计算机网络技术与数据库技术的发展, 使人们的生活与工作方式发生了很大的改观。网络技术的应用使得计算机之间通信、信息共享成为可能, 而数据库技术的应用则为人们提供了数据存储、信息检索、信息分析等功能, 从而令工作更高效地进行。图书管理系统作为计算机应用的一部分, 大大方便了图书的管理。国外的图书管理, 尤其是美国等欧洲国家的图书管理已发展的相当成熟并早已得到普及, 各大、中甚至很多小乡村都实行了通过网站或图书管理软件进行图书管理, 并且受到广大用户的一致认同。这种方式虽不能说完全没有问题, 但确实解决了传统图书管理的许多问题, 大大方便了工作人员对图书的管理, 加强了图书管理的效率。自20世纪90年代科学家们提出数字图书馆这一概念以来, 关于数字图书馆的研究已经有十几个年头。我国于1995年开始对此领域进行研究, 1998年升温, 迄今, 对图书馆的研究在认识、理论研究、关键技术方面都取得了很大进展。国内数字图书馆的实践活动大致可分为以下三种类型:资源服务型、服务研究型和联合建设型。总的来说, 缺乏系统、规范的信息管理手段。数据处理手工操作, 工作量大, 出错率高, 出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理, 由于信息比较多, 图书借阅信息的管理工作混乱而复杂。一般借阅情况是记录在借书证上, 图书的数目和内容记录在文件中, 图书馆的工作人员和管理员也只是当时对它比较清楚, 时间一长, 如再要进行查询, 就得在众多的资料中翻阅、查找了, 造成查询费时、费力。

1 图书管理系统设计与实现

图书管理系统是一个功能模块高度集成和协同的图书信息处理系统, 通过将图书馆的各种功能抽象并整合到软件, 从而达到同图书馆功能一样或优于其, 达到显示检索信息、提高工作效率、降低管理成本等目的。一个典型的图书管理系统应该能够管理所有的图书信息、读者信息, 还需要具备各种图书信息的检索查询功能。该系统还需要能够对图书的借阅、归还进行处理, 并对读者的罚款进行自动计算。通过该系统的自动化管理, 能够大大减少图书管理人员及其工作任务, 从而降低管理开销和成本。

一个完善的图书管理系统包括前台和后台。前台主要是显示在计算机屏幕上的图形用户界面 (GUI) , 有各种各样的指令菜单、文本显示框等。后台主要是为前台的一些操作提供数据支持, 也就是一个以数据作为支撑的系统数据库, 能够管理各类图书的信息、借书者的信息等等。一个最基本的图书管理系统应包括以下重要功能:

(1) 管理员可以方便地进行图书管理、读者管理和管理员 (包括操作人员) 管理。图书管理包括书籍信息以及图书的添加、修改和删除等。读者管理包括读者信息的添加、删除、修改等。管理员管理包括管理员信息的修改、删除、添加等。

(2) 读者和管理员可以修改自己的密码, 修改前需先核实自己的原始密码。

(3) 未注册读者 (游客) 也可以浏览所有的图书信息和图书分类信息, 但是无法借阅。

(4) 可模糊查询, 使用户得到更多的基于自身权限相关的信息。并且考虑到使用的简便性, 一些经常使用的输入无须用户输入, 比如进行图书查询时图书分类只须用户直接选择。

(5) 考虑程序执行特殊敏感操作时可能出现的情况, 例如删除某个用户, 应该弹出提示信息等。

一个图书管理系统若能实现以上各种功能, 那么此系统也就算是比较可行了。

1.1 功能分析

根据以上分析, 笔者所设计的图书管理系统有6个功能模块, 分别是图书类别管理模块、图书信息管理模块、读者信息管理模块、新书订购管理模块、图书借阅模块以及系统维护模块。其中各功能模块的具体说明如下:

(1) 登录模块:提供登录该系统的界面以及通过验证使用者输入的用户名和密码, 识别能否登录该系统。

(2) 查询模块:该模块主要实现图书种类信息的管理, 如图书类别的名称、可借天数、罚款数目等信息。

(3) 管理模块:该模块主要实现对使用当前系统的用户的增加、删除、修改、查询操作。能够增加用户、修改用户、删除用户、查询用户、修改密码和注销系统的功能。

(4) 借阅模块:该模块主要实现书籍借阅和归还信息的管理, 包括图书借阅、图书归还、图书借阅查询等子模块。

(5) 维护模块:该模块主要实现图书的增加、修改、删除和读者的增加、修改、删除等功能。

1.2 系统用例图设计

图书管理系统是一个可供图书馆内部人员、读者使用的系统, 也就是说所有的人都能够使用它。图书馆的工作人员主要负责图书借阅和归还事项的工作, 还能够对用户信息、书籍信息、读者信息等进行管理。下面以管理员为例绘制其所对应的用例图, 如图一所示。

1.3 系统登录模块

对于图书管理系统而言, 不是所有的用户都是可以进入的, 所以需要添加一个登陆模块。通过该模块来对用户的合法性进行判断, 只有合法的用户才能进入系统。登录模块的运行结果如图二所示。登陆窗体界面设计采用的是新建一个类LoginFrame类, 用来显示登录窗体。图书管理系统的主窗体模块是由2个部分组成:第一部分位于主窗体上端的系统菜单栏, 用来实现链接系统功能的菜单;第二部分位于菜单栏下的系统功能窗口区域, 主要用来显示各种功能窗口。

2 数据库分析与设计

数据库是数据管理的最新技术, 是计算机科学的重要分支。如今, 信息资源已成为各个部门的重要财富和资源, 建立一个满足部门信息处理要求的行之有效的信息系统是企业或组织生存和发展的重要条件。因此, 作为信息系统核心和基础的数据库技术得到越来越广泛的应用, 从小型单项事物处理系统到大型信息系统, 从联机事务处理 (On-Line Transaction Processing, 简称OLTP) 到联机分析处理, 从一般企业管理到计算机辅助设计与制造 (CAD/CAM) 、计算机集成制造系统 (CIMS) 、电子政务、电子商务、地理信息系统等, 越来越多新的应用领域采用数据库技术来存储和处理信息资源。本系统数据库设计分别是图书信息表、读者信息表、用户信息表和借阅信息表。对于图书馆来说, 最重要的就是有效地管理所有的书籍, 所以需要建立一个图书信息表, 用来保存图书馆的所有图书信息。图书信息实体图如图三所示。

要想在图书馆借书首先需要进行登记并交付押金, 领取借书证才能借书。所以需要建立一个读者信息表来保存图书馆的所有读者的登记信息。读者信息实体图如图四所示。

3 结束语

本文研究了一个最基本的图书管理系统, 系统功能还不是相当完善, 可扩展性很大, 系统的实际应用性也比较高。

参考文献

[1]耿祥义, 张跃平.Java2实用教程 (第4版) [M].北京:清华大学出版社, 2012.

[2] (美) Cay S.Horstman, Gary Cornell, 著.Java核心技术[M].北京:机械工业出版社, 2008.

[3]王珊, 萨师煊.数据库系统概论 (第4版) [M].北京:高等教育出版社, 2006.

[4]张海藩.软件工程导论 (第5版) [M].北京:清华大学出版社, 2008.

[5] (美) Bruce Eckel, 著.陈昊鹏, 译.Java编程思想[M].北京:机械工业出版社, 2007.

java图书管理系统报告 篇3

关键词:Java开源框架全文检索索引

中图分类号:G250文献标识码:A文章编号:1674-098X(2011)06(a)-0019-01

1 引言

C/S模式的软件,客户端需要安装专用的软件才能和服务器通信,只适用于局域网,需要针对不同的操作系统开发不同版本的软件,产品更新换代快、维护代价高、执行效率低。对于拥有上百万馆藏资源的高校图书馆,读者检索数据,必须要到图书馆利用检索机才可以,这在当今互联网时代,这已经不能满足读者想随时随地通过网络快速得到检索数据的需求。

B/S模式是随着Internet技术的兴起迅速发展,能实现不同用户从不同地点,以不同的接入方式访问服务器,能有效地保护数据平台和访问权限,大大简化了客户端电脑载荷,减轻了系统维护与升级的成本。

全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统,需要具备建立索引和提供查询的能力。功能上,全文检索系统核心具有建立索引、处理查询返回结果集、增加索引、优化索引结构等功能。结构上,全文检索系统核心具有索引引擎、查询引擎、文本分析引擎、对外接口等,加上各种外围应用系统等共同构成了全文检索系统。

2 全文检索引擎

Lucene[1]是一个开放源代码的全文检索引擎工具包,具有索引文件格式独立于应用平台的特点。在实际全文检索中,建立索引,要么是定期遍历数据库,调用索引建立程序模塊将里面的数据转为索引,要么是每次更新数据的时候,调用索引建立程序模块将里面的数据转为索引,两种方式的共同缺点是频繁更新索引数据将使对硬盘的操作影响巨大。

Compass是对Lucene的封装,其扩展了事务索引、搜索引擎抽象、对象关系映射、事务管理、不同的映射技术在数据库存储索引的功能。Compass[2]的模块主要如图1所示。

Compass提供了以下两种途径来完成事务管理代码简化操作。

(1)CompassTemplate,它使用流行的设计模式来抽象事务管理。

(2)与Spring事务管理器集成,可以在一个存在的事务中执行。

Compass通过OSEM(对象到搜索引擎映射)可以轻松地和Hibernate、Spring等无缝集成,索引库能够随数据持久层同步更新。

3 系统实现

3.1 创建搜索对象

Hibernate[3]是数据持久化事实上的标准,功能强大、性能优秀,与Compass通过注解方式创建OSEM对象模型,通过Compass抽象出需要的属性,然后把它们对应的元数据插入到搜索引擎索引中。

Book类对象搜索实体,代码如下:

@Entity

@Table

@Searchable

public class Book

{

@SearchableProperty

private String title;

@SearchableProperty

private String content;

……

}

在搜索对象模型的建立中,需要过滤网页样式得到纯文本,用于在搜索结果中显示图书文献摘要信息。

3.2 索引的创建与更新

Compass Spring主要完成Compass和Spring的集成,在系统的application Context-compass.xml文件配置Compass。Compass内核是Lucene,对中文处理可以采用单字分词和双字分词,本系统采用了双字分词方法实现对中文文本分词处理,这样可以保障高效的分词索引速度。

Compass Gps集成不同的数据源,通过Hibernate的ORM实现,通过hibernate GpsDevice使得数据库中的记录变化后,可以使用Hibernate3事件系统支持的实时数据镜像来自动同步更新索引。

3.3 分页搜索模块实现

系统采用Struts2[4]实现控制器,调用数据持久层的搜索模块实现搜索,以分页的形式显示在视图层,进行测试,搜索耗用的时间仅仅为0.01秒,文献的标题和摘要都以高亮的形式显示。

4 结 语

对于一个拥有海量数字资源的图书馆来说,让用户快速地、方便地、精准地查找到需要的图书或者文献,是图书馆资源检索的迫切需求,本文分析了Java体系开源框架设计与实现了一个B/S模式的具体跨平台、跨数据库的搜索引擎,与传统的数据库检索相比,大大减少了图书馆工作人员的工作量,方便了读者查询图书馆资源,读者不必到图书馆就可以通过网络查询资料,检索结果以毫秒级的耗时快速呈现给读者。

参考文献

[1]Apache Lucene. Apache Lucene - Overview [EB/OL].2010.

[2]Compass-Java Search Engine Framework.overview [EB/OL].2010.

图书管理系统开题报告 篇4

1、本课题的研究意义(选题依据,课题来源,学术价值和对社会、经济发展和科技进步的意义):作为毕业设计这一最后环节是学生完 成本专业基础课程、专业课程及实践课程的一次综合性的练习与实践,是检验学生综合运用所学知识解决实际问题的能力,是以本专业知识参加社会工作前的一次模 拟训练。通过这次毕业设计,能更深刻地对数据库基础理论和计算机基本知识的理解,提高运用数据库解决实际问题的能力,掌握普通程序设计的基本方法和过程。

2、本课题的基本内容简介(拟解决的主要学术或技术问题和关键技术及难点,拟采取的技术手段及实施方案、预计可获得的成果,可能取得的创新之处):

课题主要研究内容和预期成果:本系统是针对一个虚拟的大中专院校图书馆的图书管理开发的。假定原图书馆为手工管理,效率低、易出错、手续繁琐,而且耗费大 量的人力。为此,希望设计一个图书管理系统,管理读者的登记、图书的购入、借出、归还以及注销等。管理人员还可以查询某位读者、某本图书的借阅情况,对当 前借阅情况给出一些统计和表格说明,以全面掌握图书的流通情况。系统包含读者登记、购入新书、读者还书、图书注销等功能。此外,根据需要,对系统做相应的 修改后,系统也可用于普通图书馆的图书管理。

读者登记时要为读者编制读者卡片,包括读者的具体信息(如读者编号、姓名、学院、专业、年级等),写入读者文件中。

购入新书时要为该书编制图书卡片,包括分类目录号、流水号(唯一)、书名、作者、内容摘要、价格和购书日期等信息,写入图书文件中。读者借书时,先检查该 读者是否为有效的读者,若无效则拒绝借书,然后检查该读者所借图书是否超过最大限制数(三本),若超过则拒绝借书,再检查有尚未归还的过期图书,若有则拒 绝借书。然后查找要借的图书是否还有,如果有则办理借出手续,登记图书分类号、读者号和借阅日期等。

读者还书时,根据书号,从借书文件中读出有关记录,标明还书日期,如果图书过期,则处以罚款,并打印罚款单。

系统还应提供了图书清理的功能,对无价值的和过时的图书可以进行注销。

查询要求分为查询某位读者、某种图书和全局图书三种情况。可以打印读者和图书情况统计表。

三、技术方案:

本次毕业设计对《图书管理系统》应用软件的开发,我们将采用VC数据库系统作为软件设计和开发平台。

本应用软件的界面采用菜单方式进行操作,具有操作方便、直观,功能明确、统一,对各界面的调用均在程序的主窗口下进行操作。

四、实施方案和要解决的问题及难点:

根据上述需求分析,在参考有关图书馆的实际操作规程的基础上,设计了本系统。查询时保证查全率,所有在相应域中包含查询关键字的记录都应能查到,同时保证查准,多功能窗口运行

3、论文提纲:

1、概述

图书馆管理系统的目的和意义

2、图书馆管理系统介绍

⑴系统简介

⑵系统功能介绍

3、图书馆管理系统的开发工具和环境

⑴ 管理信息系统介绍及其设计原则

⑵开发工具Virual C++的介绍

它的一些特点,一些基本的语法。

⑶数据库Microsoft Access 2000的介绍

4、图书馆管理系统设计

[1]系统模块设计

i.用户登陆模块:已经注册的用户进入系统,必须先进行登陆。

ii.系统维护模块:

Ⅰ图书目录模块:可对图书目录进行一览、增加以及删除操作。

Ⅱ读者明细模块:可对读者明细进行一览、增加以及删除操作。

iii.相关查询模块:

Ⅰ借阅查询模块:可通过读者编号和姓名对其所借阅图书进行查询操作。

Ⅱ图书查询模块:可通过图书信息对图书进行查询操作。

iv.统计内容模块:

Ⅰ读者借阅情况统计模块:对读者信息及其所借阅图书进行统计。

Ⅱ图书借阅情况统计模块:对图书信息及其是否借出进行统计。

③数据库设计

根据系统功能设计的要求以及功能模块的划分,对于系统用户信息数据库,可以列出一些数据项和数据结构,构成六张表。

⑵图书馆管理系统详细设计

①用户登陆模块设计与实现

②系统维护模块设计与实现

i.图书目录模块实现

1)图书目录一览模块实现:从数据表中的信息导出所有图书的信息,包括:图书编号、图书名称、作者姓名、出版社、出版日期、单价和图书类别。

2)图书目录增加模块实现:把图书名称、作者姓名、出版社、出版日期、单价和图书类别增加到数据表中,并在图书目录一览模块中显示出来。

3)图书目录删除模块实现:把图书编号、图书名称、作者姓名、出版社、出版日期、单价和图书类别从数据表中删除,并在图书目录一览模块中显示出来。

ii.读者明细模块实现

1)读者明细一览模块实现:从数据表中的信息导出所有读者的信息,包括:读者编号、读者姓名、性别、年龄、住址、电话和备注。

2)读者明细增加模块实现:把读者编号、读者姓名、性别、年龄、住址、电话和备注增加到数据表中,并在读者明细一览模块中显示出来。

3)读者明细删除模块实现把读者编号、读者姓名、性别、年龄、住址、电话和备注从数据表中删除,并在读者明细一览模块中显示出来。

③相关查询模块设计与实现

i.借阅查询模块实现:输入读者编号,从数据表中导出所有相关的信息。

ii.图书查询模块实现:输入图书编号、图书名称、作者姓名、出版社、出版日期、单价和图书类别中一个或几个,从数据表中导出其他与此书相关的信息。

④统计内容模块的设计与实现

i.读者借阅情况统计模块实现:从数据表中导出借阅读者的相关信息。

ii.图书借阅情况统计模块实现:从数据表中查询出借阅图书的相关信息。

4、研究进程计划及时间安排(计划进度、预计完成的日期,阶段性成果的形式):

一、工作的总体安排和进度:

1、4月24日前完成开题报告提交;

2、到3月底完成用户需求的确认,围绕课题收集有关的资料,查阅有关的文献及技术参数,收集有关的数据,并对用户的实际需求和数据进行可行性分析;

3、4月初完成数据库及数据字典的建立,画出软件系统总流程图,并写出各模块的分析说明书;

4、4月份中旬完成主程序、系统信息窗口、模块调用窗口、权限验证模块等的程序设计初稿并进行系统调试;

JAVA学习报告 篇5

摘要:古人有云:“纸上得来终觉浅,绝知此事要躬行”。自从走进了大学,距离工作就不远了,学校为了拓展我们学生自身的知识面,扩大与社会的接触面,增加个人在社会竞争中的经验,锻炼和提高我们的能力,以便在以后毕业后能真正走入社会,在学习通信专业知识三年之后,组织我们进行认识与生产实习。认识实习是教学与生产实际相结合的重要实践性教学环节。它不仅让我们学到了很多在课堂上根本就学不到的知识,还使我们开阔了视野,增长了见识。生产实习是对我们进行专业基本训练,培养实践动手能力和向实践学习,理论联系实际的重要课程。,这有利于提高我们业务素质和政治素质。为我们以后更好把所学的知识运用到实际工作中打下坚实的基础。在认识与生产实习过程中,学校也以培养学生观察问题、解决问题和向生产实际学习的能力和方法为目标。

关键字:java、oracle数据库、对象与类、线程、触发器、游标

前言

随着计算机科学的迅速发展,计算机已深入到揉合社会的各个领域,它的应用已不再局限于科学计算,以解决一些数学问题,而且可以解决一些抽象化的具体问题,更多地用于控制,管理及数据处理等非数值计算的处理工作,这便为我们日常生活提供了很多方便。如今程序设计的语言很多,再好的程序设计业要有一个比较完善、清晰的思路——算法。为了编写一个好程序,必须分析待处理对象的特性以及各个处理对象之间的关系,以便能更好的解决问题。

一、主要实习内容 1.1实习目的

生活在这个信息化的时代,为了能够在编程方面有所突破,能够找到一份好的工作,就应该好好了解一些知识。是由microsystems公司于1995年5月推出的java程序设计语言(以下简称java语言)和java平台的总称。用java实现的hotjava浏览器(支持)显示了java的魅力:跨平台、动态的、internet计算。从此,java被广泛接受并推动了web的迅速发展,常用的浏览器现在均支持java applet。另一方面,java技术也不断更新。java平台由java虚拟机(java virtual machine)和java 应用编程接口(application programming interface、简称api)构成。java 应用编程接口为java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个java平台之后,java应用程序就可运行。现在java平台已经嵌入了几乎所有的操作系统。这样java程序可以只编译一次,就可以在各种系统中运行。java应用编程接口已经从1.1x版发展到1.2版。目前常用的java平台基于java1.4,最近版本为java1.7。oracle 是以高级结构化查询语言(sql)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(client/server)体系结构的数据库之一。1.2实习内容

1.2.1课程体系结构

(1)java se:java核心语法、面向对象程序设计、继承、接口和内部类、异常处理、集合、多线程等

(2)以oracle为平台,介绍oracle数据库的安装,oracle体系结构,物理组件、权限分配,数据管理,深入讲解数据库设计范式。全面讲解各类sql语句的使用,深入学习了oracle数据库对象:tirgger(触发器)、pl/sql语法,作用,使用游标、超出过程、函数等问题。

下面是我学习java的一些内容:

(一)java的关键术语: 1.java语言是简单的 java语言的语法与c语言和c++很相近。另一方面,java丢弃了c++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符的重载、多继承、自动的强制类型的转换。特别是java语言不使用指针。

2.java语言是一个面向对象的

java语言提供类、接口和继承等原语,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制。java语言全面支持动态绑定,而c++语言只对虚函数使用动态绑定。总之,java语言是一个纯的面向对象设计语言。3.java语言上分布式的

java语言支持internet应用的开发,在基本的java应用编程接口中有一个网络应用程序接口(java.net),它提供了用于网络应用编程的类库,包括socket、urlcnnection等。4.java语言是健壮的

java的强类型机制、异常处理等是java程序健壮性的重要保证。对指针的丢弃是java的明智选择。java的安全检查机制使得java更具有健壮性。5.java语言是安全的

java通常被用在网络环境中,为此,java提供了一个安全机制以防恶意代码的攻击。除了java语言具有的许多安全特性外,java对通过网络下载的类具有一个安全防范机制。6.java语言是体系结构中立的 java程序(后缀为java的文件)在java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的开发。7.java语言是可移植

这种可移植性来源于体系结构中立的,另外,java还严格规定了各个基本数据类型的长度。

8.java语言是多线程的

在java语言中,线程是一种特殊的对象,它必须由thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,实用型构为thread(runnable)的构造子将一个实现了runnable接口的对象包装成一个线程,其二,从thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。

(二)对象与类

类是构造对象的模板或蓝图。

2.1、对成员内部类的使用,如何定义内部类对象: 在外部类里面访问内部类:直接访问

在外部类外面访问成员内部类: 外部类.内部类 对象名=外部类对象.new 内部类构造器();2.2、成员内部类和外部类属性、方法相互访问

外部类访问成员内部类的属性或方法,需要在一个外部类的方法中引用内部类构造对象来使用内部类的属性和方法。

内部类访问外部类的成员属性或方法,则直接使用。2.3内部类是一种特殊的(或者叫复杂的)方法。作用是用来完成外部类给定的复杂算法。

静态内部类:为部类的类属性,或者叫复杂的类方法 2.4、对静态内部类的使用,如何定义静态内部类对象: 在外部类里面访问静态内部类:直接访问--在一个方法中定义静态内部类对象

外部类外面定义静态内部类对象:

外部类.内部类 对象名=new 外部类.内部类构造器();2.5、静态内部类和外部类属性、方法相互访问

外部类访问静态内部类的属性或方法,需要在一个外部类的方法中引用内部类构造对象,然后来使用内部类的属性和方法。

静态内部类只能直接使用外部类的静态属性和方法。

注意:如何在内部类里面访问外部类的this: 外部类名.this.局部类:在方法中定义的类

注意:局部类的角色和方法中的临时变量一样

局部类不能有访问修饰符

局部类的有效范围和临时变量一样,仅仅存在于方法体内。

局部类所处于的方法是否静态,来决定是否能访问外部类的成员属性。局部类所定义的方法可以直接使用局部类定义对象。局部类体里面不能使用方法中的形参,但是可以使用常量形参

2.6局部类的使用,如何定义局部部类对象: 只能在所定义局部类的方法中定义局部类对象。2.7、局部类和外部类属性、方法相互访问

1-局部类可以直接访问外部类的属性以及方法,但是要考虑局部类所处于的方法是否静态,来决定是否能访问外部类的成员属性以及成员方法。

2-外部类可以访问局部类的属性和方法吗? 可以:2.1-局部类继承外部类 2.8-局部类将自己的对象引用传给外部类自己类型的对象

然后使用多态的形式外部类就访问到了局部里的属性以及方法。2.9 匿名内部类

1-要求,匿名内部类必须有指定的继承类2-匿名内部类的定义格式:

父类 对象名=new 父类(){ 匿名类定义过程体 };父接口 对象名=new 父接口(){ 匿名类定义过程体 };3-如何定义匿名类的构造方法?原则上不存在匿名类的构造器,但是可以使用匿名语句块实现

匿名类中的匿名语句块就会充当构造器的功能,只不过不能传递参数 2.10抽象方法:没有方法体的方法

抽象方法必须用abstract关键字声明

一个类如果含有抽象方法,就必须是抽象类。

抽象类作用:

1-不能直接调用自己的构造器生成对象,但是可以被子类的构造器使用super(...)调用,来开辟子类继承父类的属性空间

2-对未知的事物做一个预定:让子类必须帮我实现一个方法。

抽象类:一个天生的父类

注意:含有抽象方法的类一定是抽象类,但是抽象类中不一定必须含有抽象方法

(三)线程的概念

多线程程序在较低的层次上扩展了多任务的概念:一个程序同时执行多个任务。通常,每一个任务称为一个线程(thread),它是线程控制的简称。可以同时运行一个以上线程的程序称为多线程程序。3.1线程的操作

生成线程类的方式,以及执行的方式:

继承thread,对象.start();实现runnable接口,new thread(对象).start();这两种方式有缺点:

1-优点直接继承thread中的方法,使用起来比较方便。缺点,不能再继承别的类,也就是一个纯粹的线程类。

2-优点实现runnable接口,不仅具备线程的功能,还可以继承别类,完成非线程的功能。缺点:没有现成的线程功能方法使用。线程对象的生命周期:

主线程:用来启动别的线程的线程,称为主线程,例如main线程就是mt和mt2的主线程

子线程:被别的线程启动的线程,称为子线程。例如mt、mt2就是main的子线程

线程的守护:随着主线程的结束,子线程跟着结束,称为子线程为守护线程。反之为非守护线程

设定守护线程: 子线程对象在start()之前,使用setdaemon(true)方法来设定。线程的调度

1-使线程暂时休眠 sleep(long time);2-使线程让步 2.1、非指定让步 thread.yield();注意:非指定让步不一定可以让出去。

3.2、指定让步 指定让给的线程对象.join();指定让给的线程对象.join(指定让出时间);线程同步:如果有多个线程在使用同一个资源对象时,让他们串行使用的方式。

线程同步方法:1-在资源对象上定义同步方法,当一个线程在使用本资源对象时,会在本对象上加锁。

如果这时另一个线程来访问这个对象,又发现需要使用同步方法时,本对象有被其他

线程加锁了,我们第二个线程需要等待第一个线程执行完毕后释放了对象锁,他才能继续执行。

注意:同步方法定义需要使用 synchronized 关键字修饰,同一时刻只能有一个线程执行这个对象的同步方法。

即使,别的线程执行这个对象的别的同步方法也不行。

一个对象如果有多个同步方法,同一时刻只能有一个同步方法被执行。如果要使用 wait()notifyall()来进行线程调度,需要两个以上的线程。下面是在oracle数据库中的学习内容:

(一)数据库打开分为三个阶段 :

1-nomount : 作用—维护数据库系统文件,2-mount:作用—维护用户文件,3-open:作用:进行数据访问,对数据做增、删、改、查

(二)sql语句的特点

1。综合统一: 集数据定义、数据操纵、数据管理的功能于一体,语言风格统一,可以独立完成数据库的全部操作。

2。高度非过程化——提出“做什么”而不是“怎么做” 面向集合的操作方式——结果是元组的集合 3。语言简洁,易学易用 只有7个动词(insert ,delete , update, select , drop, alter, create)

(三)注:需要管理员权限的用户来操作 1-创建用户:

create user 用户名 identified by 密码

注:新建的用户缺少权限,需要分配使用权限才能连接

grant connect,resource to 用户名(连接和数据资源使用权限)2-锁定用户: alter user 用户名 account lock;3-解锁用户:

alter user 用户名 account unlock;

(四)数据库体系结构:结构组件汇总

内存结构

系统全局区(sga):数据库缓冲区高速缓存、重做缓冲区以及各种池 程序全局区(pga)进程结构

用户进程和服务器进程 后台进程:smon、pmon、dbwn、ckpt、lgwr、arcn 等

存储结构逻辑:数据库、表空间、段、区和 oracle 块

物理:用于存储数据、参数、重做和操作系统块的文件 1.2.2实习成果

学习了java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习了sql的基础知识及正确的运用方法,和有关的技术。通过学习,提高了分析、判断和处理问题的能力,锻炼了自己的实际动手能力,增强子的团队协作意识,了解软件开啊的思考角度和主要流程。为毕业之后能够找到一份好工作奠定了基础。回顾实习的这段日子,从最初的新鲜感到后来的无不充实,从最初对自己缺乏信心,在原老师的悉心教导下有问必答,严谨认真又充满了亲和力,让我增添了信心,开始了认真的学习。1)基本输入输出语句 //屏幕输出

system.out.println(abc);system.out.print(abc);//对话框输出

joptionpane.showmessagedialog(null, test);//屏幕输入

scanner sn=new scanner(system.in);string info=sn.nextline();system.out.println(你好+info);//对话框输入

string name=joptionpane.showinputdialog(请输入你的姓名:);joptionpane.showmessagedialog(null, 你好+name);2)byte-->short-->int-->long-->float-->double 行。

循环:有限次重复一种操作1 定义循环变量2 判断循环条件 1满足第一个条件时,精度低的往精度高的转换自动进行,否则强制进 3 变更循环变量

3)方法覆盖的目的(原因):当我们子类继承父类的方法不适用时,需要方法的覆盖

方法的覆盖也称为方法的重写

方法重写注意类的访问规则的定义问题:

子类覆盖父类方法时,访问规则只能比父类的限定要小。或者一样。什么样的方法不能被覆盖:1-看不见的方法2-不能继承的方法

3.1final修饰的方法不能被覆盖。(因为final的方法是特殊意义上的拒绝继承)4)异常的分类: 1-运行时异常(未捕获异常):可以不使用try-catch来包含可能有问题的代码,出现这种异常系统自动捕获并提示

2-捕获异常:如果你调用了捕获异常发生的代码,即使不会出现异常,也必须使用try-catch来调用这个有异常风险的代码。

异常的再抛出:

在方法调用过程中,如果被调用的方法出现异常,它自己能处理就处理,如果处理不了会再抛出给调用我的方法。

再抛出分类: 1-显性再抛出:在方法声明的参数列表后以及方法体之间使用 throws 异常类 称为显性再抛出。

2-隐形再抛出:不使用 throws 异常类来进行异常的再抛出。只有运行时异常(未捕获异常)才能进行隐形抛出。

手动抛异常:在代码中使用 throw 异常对象

注意:覆盖一个显性抛出异常方法时,子类中的覆盖方法的显性异常声明可以是父类被覆盖异常的子类或者其本身,不能使用比父类显性抛出异常范围还大的异常类。(子类可以不显性再抛出,也就是默认出现的异常我自己子类方法能处理)5)异常处理机制:

1-我们把可能发生异常的代码,放到try{...}代码段中,然后在其后使用catch(可能出现的异常类<定义一个>异常对象来捕获可能出现的问题){提示出现的问题} 2-如果try代码段有一句出现异常,并抛出。则try代码段中其后的代码不执行。跳到catch去捕获异常。

3-异常捕获的catch代码段,如果没有捕获到try代码段抛出的异常对象,则整个程序崩溃了。

4-为了满足一个代码段的多种错误处理,允许有多个catch代码段。这些catch代码段将“从上到下”的顺序捕获try代码段抛出的异常对象,直到捕获到为止。一个try代码段后的多个catch代码段,最多只能有一个catch被执行

5-使用exception来作为catch的收尾工作,确保所有异常对象都能被捕获到。6-异常父类的catch代码段不能放到异常子类catch代码段之前

7-异常处理的最后使用finally代码段,是程序安全的最后一道屏障。无论出现什么情况finally代码段都执行。oracle数据库中 1)触发器的组成:

触发事件:即在何种情况下触发trigger;例如:insert, update, delete。

触发时间:即该trigger 是在触发事件发生之前(before)还是之后(after)触发,也就是触发事件和该trigger 的操作顺序。

触发器本身:即该trigger 被触发之后的目的和意图,正是触发器本身要做的事情。例如:pl/sql 块。

触发频率:说明触发器内定义的动作被执行的次数。即语句级(statement)触发器和行级(row)触发器。

语句级(statement)触发器:是指当某触发事件发生时,该触发器只执行一次;行级(row)触发器:是指当某触发事件发生时,对受到该操作影响的每一行数据,触发器都单独执行一次。

数据库触发器是存储在数据库中、根据发生的事件而执行的一种存储子程序。它与存储过程不同的是,存储过程通过其它程序来启动运行或直接启动运行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。该事件可以是一个ddl操作,如对象的创建、修改或删除;也可以是一个dml操作,如表或视图上的一个insert、update或delete操作;也可以是系统事件,如数据库启动和关闭、登录和登出;还可以是一个用户事件,如模式登录和登出。2)游标

游标是构件在pl/sql中,用来查询数据库,获取记录集合或者结果集合的指针,它可以让开发者一次访问一行结果集。oracle中游标的分类:显示游标、隐式游标。显示游标是早期定义的用于处理多行结果集的游标。隐式游标是由oracle定义的,它是和单行select„into语句,显示游标的使用:打开游标、将结果集取到pl/sql记录或者各个pl/sql变量中、关闭游标

3)游标的使用

定义了以后,在使用时:open—fetch—close insert语句、update和delete语句关联在一起使用的。4)参数化游标

显示游标可以带参数,并能为特定的参数返回数据集。

可以在游标名称后面,用括号括起参数的名称和数据类型来定义游标的参数。游标变量就是一个pl/sql变量,可以在运行时针对不同的查询使用该变量。同一个变量能指向不同的工作区。

使用游标变量的原因:

1、它能在存储子程序之间传递结果集。

2、在运行时一个游标变能与多个查询相关联。5)游标变量:

1、它能在存储子程序之间传递结果集。

通过游标变量,只要有游标变量指向某工作区,用户就能够通过该游标变量取到该工作区的内容。

2、在运行时一个游标变能与多个查询相关联。

使用游标变量:

1、分配内存

2、打开游标变量

3、把结果集取到pl/sql记录或者单独的pl/sql变量中

4、关闭游标变量

6)使用游标表达式的原因:

1、可以避免声明和使用多个游标

2、避免了在sql select语句中使用复杂链接

3、可以把游标表达式作为pl/sql游标的一部分使用。在能使用动态sql的地方,就能使用游标表达式并把值取到ref cursor变量中。7)分析函数使用实例

问题:给出各部门销售代表工资最高的前3名。

该问题具有二义性。

这是因为有重复的值,即可能有4个人都赚同样的工资,那该怎么办? 可以给出3种合理的解释:

1、给出销售人员工资最高的前3名;也就是说,查找唯一的工资总数的集合,对他们进行排序,得到最大的前3名

2、最多给出3个工资最高的人,如果碰巧有4个人工资最高,答案是没有任何行记录;如果有2个人赚最高的工资,有2个人赚同样次高的工资,答案是仅有2行记录(2个最高的)。

3、对销售人员按照工资从高到低排列,给出前3行记录,如果一个部门少于3个人,则将返回少于3个记录。

通过学习了java和oracle做一些简单程序,如银行存取款系统、扫雷、画板等程序。

二 实习心得

通过这一个多月的实习,给我的触动很大。在信息时代,学习是不断地汲取新信息。作为一名即将毕业的大学生更应该把学习作为保持今后工作积极性的重要途径。在今后的学习、工作和生活中,我将继续学习,深入实践,不断提升自我。

通过实习,我初步学习了java se,oracle数据库的有关知识,学习了如何用java连接数据库,对于一些简单的小问题,能够动手排除。实习是个人能力的锻炼。我个人认为,这次实习对于我是非常有意义的,对我个人的影响也比较大。通过这次实习,我得到了一次全面系统的锻炼机会,增长了不少知识,学到了许多知识和技能。“在大学里学的不是知识,而是一种叫做自学能力”参加实习后才真正体会到这句话的含义。在这个信息化的时代,我们必须在实际项目勤于动手慢慢琢磨,不断学习不断积累,遇到不懂的地方,自己先想办法解决,实际不行可以虚心请教他认,而没有自学能力的人迟早会被社会和企业所淘汰。

参考文献

[1] 计算机丛书编委会.frontpage 2000 网页制作实用教程[m].北京:希望电子出版社,2002.[2] 李劲.asp数据库程序设计[j].上海:计算机研究,2001,(4):14-16.[3] liu guangyuan,yu juegang, a fast learning algorithm via a hybrid approach[j].journal of uest of china, vol.27, no.3, jun.2000.[4] /(台州学院计算机基础教学网)[5] java面向对象编程基础教程 作 者:信必优技术学院研发部 出版社: 清华大学出版社 出版时间: 2009-7-1 isbn: 9787302203193 [6] java编程思想(第4版)作者:(美)埃克尔 著,陈昊鹏 译 isbn编号: 9787111213826 出版社: 机械工业出版社 [7] java从入门到精通(第2版)isbn编号: 9787302227465 出版时间: 2010-7-1 出版社: 清华大学出版社 作者: 李钟尉,周小彤,陈丹丹 等编著 副书名: 软件开发视频大讲堂

java实训报告 篇6

随着自动化技术的不断发展,电子产业对工艺生产的要求越来越高。本次实训主要熟悉手工焊锡的常用工具的使用及其与修理。手工电烙铁的焊接技术,能够独立的简单电子产品的安装与焊接。熟悉电子产品的生产流程,印制电路板设计的和方法,能够读懂电路原理图,熟悉元器件实物,常用电子器件的类别、型号、规格、性能及其使用范围,并会简单的元器件测量,掌握焊接工艺的编排,电路调试过程。能够识别和选用常用的电子器件,并且能够熟练使用普通万用表和数字万用表。培养检测能力及一丝不苟的科学作风。

第一章JAVA开发环境

1.1NetBeans IDE简介

NetBeans 由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。

NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C /C + +等开发语言。

由于Java的跨平台性,在任一平台中编写的Java程序可以很好的移植到其他平台上。为了运行程序,计算机上必须安装JVM,它包含Java运行时的解释器与及时编译器,二者构成Java的运行环境。如图1.1所示:

=

图1.1Java的运行环境

{

JFileChooser fc = new JFileChooser();

int r=fc.showOpenDialog(this);

if(r== JFileChooser.APPROVE_OPTION){

File file=fc.getSelectedFile();

try{jTextArea1.read(new FileReader(file),null);}

catch(IOException e){}

}

} void saveFile()//保存文件函数 {

JFileChooser fc=new JFileChooser();

int r=fc.showSaveDialog(this);

if(r== JFileChooser.APPROVE_OPTION){

File file=fc.getSelectedFile();

try{jTextArea1.write(new FileWriter(file));}

catch(IOException e){}

}

} 2.2计算器

要求编写一个模拟计算器Applet,使用面板和网络布局,添加一个文本框,10个数字按钮(0~9),四个加减乘除按钮,一个等号,一个清除按钮。计算器效果如图2.2:

}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt){

show(4);}

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt){

show(5);}

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt){

show(6);}

private void jButton8ActionPerformed(java.awt.event.ActionEvent evt){

show(7);}

private void jButton9ActionPerformed(java.awt.event.ActionEvent evt){

show(8);}

private void jButton10ActionPerformed(java.awt.event.ActionEvent evt){

show(9);}

//点击小数点按钮

private void jButton11ActionPerformed(java.awt.event.ActionEvent evt){

String text=jTextField1.getText();

if(text.lastIndexOf(“.”)==-1)//判断该数字是否已经有小数点

jTextField1.setText(text+“.”);

}

//点击运算符

private void jButton12ActionPerformed(java.awt.event.ActionEvent evt){

t1=Double.parseDouble(jTextField1.getText());//将第一个数转换成Double类型保存在t1中

jTextField1.setText(“ ”);

图3.1文件打开

图3.2文件保存

3.2计算器调试

java实践报告总结 篇7

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项目总结报告 篇8

在这次项目中使我对java面向对象的认识有了更时刻的印象,对“万物皆为对象岜整个理念有更深层次的理解,通过和老师的交流和上网了解的一些知识,其实搞软件的实质并不使在代码上实现一个什么什么的功能,你只要愿意去着你用你所学的知识肯定能够实现某一个功能,但学软件的最根本使分析和设计,所以现在市面上会设计的人才使最来钱的人,在软件开发的生命周期中编码其实使占很小一部分工作,数据库设计人员和java的框架技术人员使很赚钱的,也只有对在对象上有更多的了解你才能从代码层次上上升为另一种理念过后你才能在以后的编码中设计出更加优异和性能更高的代码,也只有这样那么你将来才有可能成为一个合格的程序员(不时编码高手),在二个项目中的开发中使我团队开发软件上有了了解,也使我了解了在团队开发软件的时候的一些注意点,不能随便更改类名,方法名悻变量及其修饰符,如果你一时兴起该了的话那么在项目融合的时候问题机会层出不穷,就有可能使你的项目失败,所以规范时很重要的,代码的规范将很大层次上的说明你对代码的熟念度。

在这次项目中使我对层次模型有了了解,在你那到一个项目文档的时候你比不使马上就开始编码而是,找到每个层次上类,找到边界类,根据相应的业务设计出数据库原型,在数据库原型出来之后在设计数据库的表和表之间的关系,只有层次模型在你脑海中有深刻的印象的时候那么你的编码当然也就很顺利的实现,层次模型一旦建立那么你代码上实现就围绕这个架构来写,那么你的系统才有可能成功,这样在添加业务或者使更改业务时才很方便更改一个地方不会影响到其他的层次,这样才有可能提高你系统的灵活性和扩展性,这也时衡量一个系统好坏的标准,在这次项目开发中用到咯大量的配置文件比如:用属性文件来建立socket连接,用xml文件在找业务类,这样有使我对配置文件的好处又有了一定的了解:合理的使用配置文件时提高代码灵活性的一个方面,在建立套节字连接的时候用配置文件可以很方便的更改我在那个端口号上建立连接,在看不到源代码的时候我也可以更改在其他端口上建立socket连接,在业务的时候用xml文件来找相应的业务类,这样就可以在还要添加业务的时候只需要在xml文件中在添加业务,在写起相应的代码就可以实现,用配置文件找业务还又一个好处就是在调用业务的时候不用对业务类静态的创建一个对象,而是用反射的方式找到调用那个方法,而是在程序执行的时候在创建对象在对象用完之后在释放资源,这样就可以减少电脑内存的消耗,使得程序的性能更加优异。

同时也增强了代码的灵活性。

在用JDBC获去数据库连接对象的时候,其实时很有学文的咯,你如果在用连接对象的时候就要数据库建立连接对象,在用完诸后就关闭连接对象,在很多用户同时来运行你的系统的时候,就将产生很多的连接对象,这样有使得你的系统性能降低,很好的解决办法就是用数据库连接池:在程序启动的时候就建立最大连接和最小连接,当多用户请求的时候只需从数据库连接池中那出连接对象,这样就可以减少多次连接对象,开始在最大连接对象和最小领接对象的选择上又有了问题,创建最大连接时多少呢?最小连接有是多少呢?如果一开始最大连接数过多,而用户有很少那么就浪费资源,并且系统启动将会很慢,如果最大连接数过少那么程序启动很快但在启动后运行程序时有会很慢,最小连接数如果很小,那么在很多客户访问的时候将会很慢,合理利用数据库连接池将会很大部分的提高程序的性能、在这次项目还用到了日志文件来记录错误信息,在这次项目中还用到了很多的知识点我就不一一的在这里列举了。

顺便给大家几道面试题(是前面部的同学给我说的):

1、谈谈final、finally、finalize的区别。

2、HashMap和Hashtable的区别。

3、说说你对ejb的认识。

4、GC是什么? 为什么要有GC?

图书管理工作自查报告 篇9

教学设备、仪器的管理与使用自查报告

一、教学设备、仪器

今年暑假我校从群英中学搬迁到光智中学,学校面貌欣然一新,为广大师生提供了良好的学习氛围,但由于时间仓促,人员缺乏,给教学实验工作带来了诸多不便,针对上述情况,具体汇报如下:

一、各实验室水电不通,仪器柜还没有配够仪器柜,仪器室和实验室面积太小,根本和学生人数不成正比。无法满足全体学生的实验需求。

二、实验室无专职工作人员,理化生老师超工作量工作,也无法、无时间去理顺实验工作。致使仪器没有正常摆放到位

三、仪器情况:新仪器在办公楼二、三、四楼分别整箱存放,而老仪器全部装箱在北一楼两个教室里存放,由于是外来人员搬迁摆放,所以放的杂乱无章,需要有关专业人员仔细整理。

四、今后实验开展情况:

如仪器摆放到位,理化生演示实验基本可以全做。分组实验大部分能做,因为分组实验工作量大,消耗物品众多,需要更多管理人员,并及时采购实验用品。生物个别实验受环境及用品限制而无法分组实验,例如:绿叶在光下制造有机物,检测不同环境中的细菌和真茵。

五、有关实验工作的建议:

1、要尽快建实验楼,按学生比例安排仪器室和实验室。

2、为适应新的要求配够有专业知识的各实验室管理人员。

3、领导重视,配专职分管领导,统一协调,具体落实实验中的每一项工作。

4、力争在一个月内首先摆放一部分常用仪器,让老师们首先能做课堂演示实验,然后逐步走上正规。

二、图书

学校图书室共有图书58000余册,图书登记帐本齐全,图书陈列整齐,分类合理,每学期都有学生借阅登记本,读好书活动记录。但由于今年暑假,我校搬迁新址,时间非常仓促,图书搬家任务尤其繁重。现在图书虽然已经全都上架,但还有一些工作尚待完成。

1、没有标语口号,各项制度尚未上墙。

2、由于是非专业人员摆放书籍,导致一些图书编号没有按顺序摆放,柜签尚待贴上。(因为书柜全新拆装,原来柜签全部作废)。

3、没有办公桌椅。

4、消毒柜不能使用(需要安装电线、电源)。

5、约有5000本旧书需要整理编号。

6、图书室面积小,书籍放不完,一部分放在阅览室。

7、图书室、阅览室的门下部需要加固,发现室内有老鼠痕迹。

以上工作若完成,至少需要三周时间,并且需要增派人员协助完成。

博爱县光智中学

北邮日历java实验报告 篇10

信息工程27班项明钧

一、实验要求

写一个建议日历图形用户界面

二、设计思路

此次作业主要用到了窗口布局设计及各个组件的功能显示,事件处理机制。首先需要建立一个frame框架,然后进行布局设计。需要用到p0,p1,p2,p3,p4面板,其中p0,p1,p2,p4为正常静态面板,p3位自己定义的JScrollPane滚动面板,内容从p0获取,可以通过滑动滚动条来达到显示超出界面显示范围的内容。接着定义若干button,label,TextField通过add函数添加到对应的面板中。通过将主日历显示界面设置成GridLayout来达到网格式显示,当有文本输入和按钮按下,事件处理机制将会判断输入的年和月份是否符合正确格式。是的话将通过getMonthDay和getStartDay得到的所查询月份的日历一个个插入网格中,完成日历显示。

在p3面板中我还借用了 new JLabel(new ImageIcon函数插入本地图片,使界面更加美观。界面最下一栏放入了关于日历由来的简介,由于字数较多在界面范围内不能全部显示,我使用了JScrollPane滚动面板,这样就可以左右移动条来翻阅日历简介了。

三、实验结果

四、心得体会

这次实验我选了java日历软件。在学习了图形界面(GUI)设计后,我知道了窗口里面板,标签,文本框的基本设置和代码应用。但是就单单简单地添加几个组件画面难免显得简单,因此我在网上查询代码分别给面板增添了背景色,给我的信息字体设置了字体,大小,还给最下一栏日理由来增加了滚动条。通过这次学习,我发现书上很多知识只有在实际编写代码运用到时才能有更好的理解,而且我未知的函数好还有很多,需要我去主动探索学习。

五、源代码及注释

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calendar extends JFrame implements ActionListener { static int year,month;

//设置静态变量 private String [] ast = {“

星期日”,“

星期一”, “

星期二”, “

星期三”, “

星期四”, “

星期五”, “

星期六”};private JLabel [] ai = new JLabel[49];private JLabel label0,label1,label2,label00,label4,label5;

//定义标签

private JTextField t0,t1;

//定义文本输入框

private JButton btn1;

//定义按钮

private JPanel p0,p1,p2,p4;

//定义静态面板

private JScrollPane p3;

//定义滚动面板

public Calendar(){

super(“简易日历”);//窗口名字

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口关闭函数

this.setBounds(100,100,800,600);//窗口尺寸 和位置

Container c=getContentPane();

p1 = new JPanel();//建立新面板

p0 = new JPanel();

p2 = new JPanel(new GridLayout(7,7,10,1));//设置网格布局

p4 = new JPanel(new GridLayout(7,20,10,1));

final JScrollPane p3 = new JScrollPane(p0);//将面板p0导入滚动面板p3

this.add(p3);

p3.setPreferredSize(new Dimension(100, 50));设置p3大小

label0=new JLabel(“

年份(如:2016)”);//标签赋值

label1=new JLabel(“

月份(如: 3)”);

label2=new JLabel(“");

label00=new JLabel(”

我国始有历法大约在四千多年以前。根据甲骨文中的一 页甲骨历,证明殷代的历法已具有相当的水平,这一页甲骨。历是全人类最古老的历书实物,这页甲骨历也就叫日历。但真正的日历产生,大约在一千一百多年前的唐顺宗永贞元年,皇宫中就已经使用皇历。最初一天一页,记载国家、宫廷大事和皇帝的言行。皇历分为十二册,每册的页数和每月的天数一样,每一页都注明了天数和日期。发展到后来,就把月日、于支、节令等内容事先写在上面,下部空白处留待记事,和现在的“台历”相似。那时,服侍皇帝的太监在日历空白处记下皇帝的言行,到了月终,皇帝审查证明无误后,送交史官存档,这在当时叫日历,这些日.历以后就作为史官编写《国史》的依据。后来,朝廷大臣们纷纷仿效,编制自家使用的日历。至于月历以后又发展成挂历、台历等各种形式,只是近一个世纪的事。随着时代的发展,·尽管日历的品种增多、花样也不断翻新,但仍旧保持着古老日历的格局。“);

label4=new JLabel(”

信息工程27班项明钧“);

JLabel label5 = new JLabel(new ImageIcon(”E:/timg.jpg“));

//从本地文件夹导入图片

label4.setFont(new Font(”宋体“, Font.BOLD, 20));

//设置字体大小

t0=new JTextField(5);//文本框

t1=new JTextField(3);

btn1=new JButton(”search“);//按钮

int i;

//日历面板分块函数

for(i=0;i<7;i++)

p2.add(ai[i]=new JLabel(ast[i]));

//将星期日到星期六赋给第一行

for(i= 7;i < 49;i++)

p2.add(ai[i]=new JLabel(”“));

//定义为空,为填入日期做准备

p1.add(label0);

p1.add(t0);

p1.add(label1);

//将标签导入面板

p1.add(t1);

p1.add(btn1);

p1.add(label2);

p0.add(label00);

p4.add(label5);

p4.add(label4);

c.add(p1,BorderLayout.NORTH);

//设置面板位置

c.add(p2,BorderLayout.CENTER);

c.add(p3,BorderLayout.SOUTH);

c.add(p4,BorderLayout.EAST);

btn1.addActionListener(this);

//注册监视器

t0.addActionListener(this);

t1.addActionListener(this);

p2.setBackground(Color.LIGHT_GRAY);

//设置面板背景颜色

p1.setBackground(Color.red);

p3.setBackground(Color.green);

p4.setBackground(Color.magenta);

this.setVisible(true);

//显示窗口

}

public static void main(String[] args)

//主函数

{

Calendar a=new Calendar();

a.showCalendar(2016,1);

//初始化日期2016年1月

}

//事件处理方法

public void actionPerformed(ActionEvent e){

if(e.getSource()== t0 || e.getSource()== t1 || e.getSource()== btn1)

{

Try

//控制输入的年份正确,异常控制

{

if(t0.getText().length()!= 4)

throw new NumberFormatException();

}

catch(NumberFormatException ex)

{

return;

}

String s1=t0.getText();

//获取输入年份

year=Integer.parseInt(s1);

//将输入年的字符串转换为int类型

String s2=t1.getText();

//将输入月 的字符串转换为int类型

month=Integer.parseInt(s2);

showCalendar(year,month);

//调用网格日历显示函数

} }

public void showCalendar(int year,int month)

//定义网格日历显示函数

{

int monthDay=getMonthDay(year,month);

//获取一个月几天

int startDay=getStartDay(year,month);

//获取一个月开始星期几

//显示当前窗口中显示日历的年月

String rr=”

当前日历“+”(“+Integer.toString(year)+”-“+Integer.toString(month)+”)“;

label2.setText(rr);

//控制各月日历的正确显示

int i;

} for(i= 7;i < startDay+7;i++)ai[i].setText(”“);for(i =startDay+7;i

String bb;//存在意义:便于实现setText函数的带格式输入

if(i-startDay-6<10)

bb=”

“+Integer.toString(i-startDay-6);//将int型转换为String型

else

bb=”

“+Integer.toString(i-startDay-6);

ai[i].setText(bb);} for(i=startDay + monthDay + 7;i<49;i++)ai[i].setText(”");

//leapYear:判断闰年

public static boolean leapYear(int year){

if((year % 400 == 0)||((year % 4 == 0)&&(year % 100!= 0)))

return true;return false;}

//getMonthDay获取每月总天数

public static int getMonthDay(int year, int month)

{

if(month == 1 || month==3 || month == 5 || month == 7 ||

month == 8 || month == 10 || month == 12)

return 31;

if(month == 4 || month == 6 || month == 9 || month == 11)

return 30;

if(month == 2)

if(leapYear(year))

//闰年二月29天

return 29;

else

return 28;

return 0;//if month is incorrect.//如果月份输入错误返回0.} //getStartDay:返回每月第一天是周几 public static int getStartDay(int year,int month){

//从1800年1月1日开始

int startDay1800 = 3;

long totalDays = getTotalDays(year, month);

return(int)((totalDays + startDay1800)% 7);}

//从1800年1月1日到所查月份的总天数

public static long getTotalDays(int year, int month){

long total = 0;

for(int i = 1800;i < year;i++)

if(leapYear(i))

total = total + 366;

else

total = total + 365;

for(int i = 1;i < month;i++)

total = total + getMonthDay(year, i);

上一篇:福利院活动策划a下一篇:第一季度安全生产工作目标考核内容