java项目物业管理系统
第一篇:java项目物业管理系统
java管理系统项目总结
篇一:java管理系统项目总结
期末将至,怕没有时间再去写这篇不成器的文章,所以早早写完,早早留给时间去复习。随着期末的临近,java课程也结束了,距离之前写过的“java-象棋设计心得”有差不多过了2个月了。我们的java课程主要做全班选出来的两个项目,一个是象棋,一个就是人事管理系统。做完都要通过答辩才能评分,以此两次来作为整个java学期的成绩。快走题了,就在这里止步回头!
这一次的主要通过 问题->理解->修改->添加 的步骤讲解,跟java-象棋设计心得的讲解思路基本上差不多。
----问题篇
一开始着手这个java-人事管理系统项目的时候就感觉到这比之前的java-象棋项目难了,知识明显不够,需要边看书本源代码边查看API文档和通过网上来解惑。就这样,一周的时间就过去了,当然一周里还有很多课程需要跟上,所以并不是把一周的所有时间都花在项目设计上。
这里介绍一下我项目中遇到的一些“坎”: 1.布局管理器
GridBagLayout
的使用和GridBagConstraints类的使用
类和DefaultMutableTreeNode类和其他类的使用
面板和JSplitePane面板和其他面板
4.设计的界面的还原
5.数据库如何实现数据的保存
可见,问题多多,解决起来又会出现其它的问题,但我知道每一个项目必定存在多个类和面板的设计,设计的过程也是一个不断自我矛盾和自我更正的过程,只有这样设计出来的产品才符合我们的要求。其中首先要说问题的是界面的还原是比较耗费时间的,但这也是任何软件设计的第一步,所以必须理解透!其次就是数据库和SQL语言的学习,因为数据库是新知识,还没有可以通过课程来学习的,这就意味着只能通过自己学习新知识,这又是一个新问题的开始,但我知道必须要克服。最后就是动作的实现问题,例如:点击了这个节点,相应的功能是如何实现,是通过什么来实现的,这些问题也必须理解,因为是答辩问的最多问题。好了,问题篇就到这里了。
----理解篇
理解的基本条件就是问题的产生,上篇说的就是问题篇,那么这里说的就是理解。或许这里有一些东西会跟java-象棋设计心得有些相同,所以会提醒一下就过了,理解是理解软件制作的必要过程,重要性可想而知了,在java-象棋设计心得里,有些理解的方法这里就不在重复了。那么这里要讲的东西不多,主要讲的是功能的实现过程,书本中人事管理系统的功能有,如下:
1.基本信息管理--添加人员信息、修改人员信息、删除人员信息、查询人员信息、部门管理;
2.人员调动管理--人员调动、调动历史查询;
3.人员考核管理--人员考核、考核历史查询;
4.劳资管理--劳资分配管理、劳资历史查询
因为基本上以上的所有功能的实现基本相同,所以这里通过其中一个功能的实现来粗略理解其它功能的实现吧,说的不好请谅解!
那么就说“人员调动管理--人员调动”这个功能的实现,从点击叶子节点人员调用后,调用了人员调用的实现类,在右面板显示相应的人员调用面板,由图可知面板里的放了“人员调动”的JLabel、数据显示的表单Jtable、一些文本框TextField和Jabel,还有下拉菜单JComboBox,以及三个按钮。主面板里使用默认的BorderLayout布局,可以看下图来知道该功能布局的实现:图片的大小和真实的有差别,只作为理解而用。
接下来说如何通过点击面板上的调入新部门的按钮来实现与数据库的连接,当正确操作后,按调入新部门按钮后,调用与数据库连接的实现类的相应方法,来对数据库存放数据的相应表进行修改和给存放历史数据的表进行调动历史添加。这样就完成以一个调用人员功能的实现了,类似的功能也可以参照次步骤来理解。
除了理解好这些功能的实现外,我还应该要是自己来实现一个功能,作为真正理解好一个功能实现的动手机会,这个会在添加功能里详解。好了,理解篇就到这里了!
----修改篇
修改、添加也是在理解的基础上才能对代码进行改进和添加,这里是修改篇,下一篇就是理解篇。可以说书本上的每一项目的代码都存在不足和缺陷,可以运行但运行起来其中总是存在不少的缺陷和矛盾,所以就需要修改,那么在实际开发过程中,修改和添加就相当于软件的后期维护了,这是一个永远也完成不了的功能,要做到软件的完美,是不可能的!只能不断的修改,添加,再修改,再添加。。。
在书本的人事管理系统代码,只代表本人的观点下,进行了一些修改,这里就不一一说明了。
----添加篇
因为人事管理系统的庞大,其功能也可以有相当多,之前就说过,功能的实现都是差不多的,而且考虑到作业提交和答辩的时间,所以只添加了一个功能 “加班信息管理--添加人员加班信息、人员加班信息查询”,请看下图:
总结:虽然java课程随着人员管理系统的完成而结束了,但java的学习还会继续,这是一个厉害的技能,不是说课程教完就结束了,老师只能带领我们进门,但java提升是靠自己的努力的,有不少人说java作为一个谋生的技能很不错,我想我会在边学习java之余边体会java的魅力。
篇二:java管理系统项目总结
这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧。
首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么实现,对于查找,应该是比较简单的,这里连接数据库就不详述了,导jar包,设置三个变量,然后传固定的参数进去,查询你应该单独写一个类,在这个类里面你要做的就是传入sql语句,利用executeQuery返回的结果集存放在一个向量里面,然后返回给java界面里面JTabel的参数,同样增加一条记录,你可以自定义java界面,从键盘读入数据,然后将数据返回给你自定义的add类里面,在这个类里,主要处理sql增加语句,所以语句将被使用,这里还是要注意下防止sql注入。修改操作和增加操作类似,这里因为主键的特殊性,所以你需要把他设为不可修改,当然你也可以选择不。对于删除操作,因为不需要特别的界面为他服务,所以你大可以在Main函数里面进行操作,除非你觉得有必要整理下长的吓人的代码,其实删除操作也就是获取你指定的主键,然后在sql里面执行操作。大概也就是这些了,有些细节地方要注意下,很多参数里面的下标要千万小心,不然很痛苦的,连接sql文件后记得关闭,弹出界面自己要加些异常处理,每次操作完后,要记得及时更新界面。另外对于MVC模式,你可以在写完后,想想,其实很多代码都有其复用性,你可以分几层来操作啊,业务层就专门提交具体操作,也就是contral啊,然后增删查改界面可以全放在view里面,model就专门处理和数据库的衔接,反正mvc模式你会觉得代码非常清晰,后续你还可以增加分页操作啊,分页操作其实很简单,上一次sql里面测试了下,对于百万级的数据,分页操作跑了三到五秒,或许我的本本真该换了。想说的也就是这么多了,另外鉴于昨天晚上发生的一些事情,后续不打算再更新任何东西了,也许这两者没任何关联,于我而言,结局早已注定。
第二篇:JAVA物业管理系统
本系统的意义
新的世界已经到来,在电子计算机技术发展日新月异的今天,计算机软件的应用早已深入到了各行各业,并发挥着它们巨大的潜力。随着企业,房户等一系列的改革,一切都在潮向社会化发展,管理体制也由过去的全承包向现在的一体化,专门化发展。为了人员的安全,社会的稳定,国家的持续发展,物业管理在起着举足轻重的作用。本物业管理系统提供对人员,住房,房产和收费信息的管理。为了有效管理和社会人员的方便,系统为管理员用户和普通用户提供了不同的功能。本系统具有一定的实用性。
本物业管理系统是在服务器上先安装Windows NT操作系统,并在NT系统下安装数据库系统SQL Server 7.0和建立人员、住房、房产、收费四个数据库。然后在NT操作系统下用Java编写不同的系统用户界面,后用JDBC/ODBC桥实现服务器上数据库和前端界面的连[文章来源: 计算机毕业论文网]接。连接成功后,将Java编写的用户界面移植到客户端的Linux操作系统下,并用这个界面试图实现与服务器上NT系统下的数据库SQL连接。以达到在不同的操作系统下可以互相调用的目的,实现Java的重要特性:可移植性。
二.设计思想
2.1 当前数据库实现中存在的问题:
2.1.1 目前存在的问题----数据库的实现面向单一应用
在目前开发的一部分数据库应用软件中,程序员的主要任务是编写高质量的程序,对所使用的软件及数据库很少关注,这就面临数据库单一应用的问题。
2.1.2 数据库设计中存在数据完整性问题
数据库应用所提供的功能一般都比较安全,往往自成一个系统。但是当数据库不同后系统数据就会产生问题。
2.2 工具软件的介绍
2.2.1 Java语言的介绍
Java是一个由SUN公司开发成功的新一代编程语言,它的最大特点就是:使用它可在各式各样不同种机器,不同种操作平台的网络环境中开发软件,即SUN公司所宣扬的一次编写,到处运行 。
在SUN公司的Java白皮书中对Java有如下的定义:
Java: A simple, Object-oriented, distributed, robust, secure, architecture-neutral, portable, High-performance, multi-threaded, and dynamic language.(Java: 一种简单的,面向对象的,分布式的,健壮的,安全的,结构中立的,可移植的,高效性的,多线程和动态的语言)。
这个定义充分地表现了Java语言的特点。
1. 简单性
Java是一种简单的语言。Java取消了其它的许多编程语言中十分繁琐的和难以理解的内容,例如C/C++中的指针,C++中类的多重继承等。Java语言在外观上让大多数程序员都感到很熟悉,这样程序员不需要经过长时间训练就能够学会使用这种新型的程序开发工具。Java要求的基本解释器约为40KB ,若加上基本的程序库,约为215KB。由于Java程序很小,因此在小型机上Java程序也能够很好地执行。
2. 面向对象
Java是一种面向对象的语言。这里的对象是指应用程序的数据及其操作方法。Java程序的设计思想不同于C语言基于过程的程序设计思想。设计面向对象的程序需要将编程重点放在资料和接口上。
3. 分布式特性
Java是一种分布式的语言。Java有一个很周全的程序库,且很容易与HTTP和TCP/IP通信协议相配合。Java应用程序能在网络上开启并连结使用对象,就如同透过URL链接使用一个本地文件系统。利用Java来开发分布式的网络程序是Java的一个重要应用。
4. 健壮性
用Java编写的程序在多种情况下都能稳定地执行。Java与C/C++最大的不同点是在于Java有一个专门的指针模型,它的作用是排除内存中的数据被覆盖和毁损的可能性。
5. 安全性
Java是一种安全的网络编程语言。Java是被设计用于网络及分布的环境中的,所以Java程序的安全性自然是非常重要的。Java拥有数个阶层的互锁保护措施,能有效地防止病毒的侵入和破坏行为的发生。
6. 结构中立性
众所周知,网络是由很多不同机型的计算机组合而成的。这些计算机的CPU和操作系统体系结构均有所不同。因此,要使一个应用程序可以在每一种计算机上都能够执行是很难的。
所幸的是,Java的编译器能够产生一种结构中立的目标文件格式,这使得编译码能够在多数的处理器中执行。
7. 可移植性
Java的源代码和C/C++的源代码一样具有可移植性,而且Java的可移植性在相比之下还要更强一些。只要有对应系统的解释器,Java程序就可以在所有的系统上执行。Java的原始资料形式的大小是被指定的,例如Java之所以一直用float来表示一个32位字节的IEEE754的浮点运算数字,正是因为绝大多数的CPU都有此共同特征。Java自带的程序库定义了一些可移植的程序接口,这使Java语言具备了很好的可移植性。
8. 解释型语言
Java的源程序首先由编译器编译成字节码,之后再由解释器解释执行。Java解释器能直接在任何机器上执行Java字节码(Byte Codes),因此在进行程序链接时节省了时间,这对于缩短程[文章来源: 计算机毕业论文网]序的开发过程有极大的帮助。
9. 高效性
Java字节码能迅速地转换成机器码(Machine Code)。Java的这种效能几乎与C/C++没有分别。用Java编制的Java小应用程序可以取代部分CGI脚本(CGI Scripts)的功能,但是考到效率方面的问题,在大多数的情况下很多客户端的基本操作还是由脚本语言来完成的。涉及到复杂算法的计算以及一些特别的效果,就可以由Applet或者ActiveX来完成。
10. 多线程性
Java语言具有多个线程,这对于交互回应能力和即时行为是有帮助的。
11. 动态性
联系购买
(0)1594335582
5528311109 345608595
345608595@qq.com
帮助中心
付款方式 购买流程 常见问题
定做论文 常见问题 友情提醒
我们的优势
权威机构 我们具备深厚行业背景。
技术领先 最新软件编程技术和权威合作伙伴。
良好声誉 广泛知名度、满意度,众多新老客户。
随机推荐
121J2ME手机射击游戏_JAVA()
原文出处:
第三篇:java图书管理系统心得
经过这周的学习我们终于把java图书管理系统做出了了,虽然不是很好但是能把它做出来我们为此感到高兴。在此次小学期的学习过程中,我体会到看学习是一个很反复的过程,不断的出现错误,不断的调试,不断的迷茫,不断的清晰,呵呵,这些都是必须要要经历的,所以不要害怕了。学做java图书管理系统,所以现在所遇到的一切,我都挺坦然的面对。突然觉得这个学习的过程很美好,是一种享受,虽然真的是很辛苦吧,但是很快乐,当自己能敲出的代码,即使做出的是做简单的东西,都会让我很开心,很有成就感,对待学习的态度跟以前不一样了,还是那个很简单的想法,就是想把java学好
学习java就是件耗时间的事儿,如果你不肯投入自己的时间,根本不可能在短时间就把java给学好了,原本我对java接触了时间就比较短,如果我还不努力的话,我根本就不能在4周的时间内把java图书管理系统的项目做完,所以我就不能去做娱乐,休闲的事情,而是坐在电脑前,敲着那些代码,不断的出错,不断的去调试,这就是我现在的生活,完全的浸泡在java中了,跟同学们一起去吃饭的时候,也在不断的探讨着学习中出现的问题。
在学习Java期间我们做了一些程序,我们班的同学也都积极准备,完成的还不错!在做程序时,我遇到了一些难题,有时也会出现错误,时间长了弄得我心烦意乱,但是我知道只有坚持下去才会成功。
因为Java是一种面向对象的编程语言,刚接触Java的人可能会感觉比较抽象,不过没关系不用着急,上课的时候认真听老师讲解,一些概念知识慢慢去理解,课后多做练习,熟能生巧,哪怕是你的记性再好,课后不去强化练习也没用,只有多练了,当你在做项目时你才能很熟练的写出你想要代码。平日在练习时若遇到不会的题目或是在项目中遇到解决不了的问题,首先不要急着去问老师,或是急着上百度搜答案,那样即使你得到了正确答案,以后在其它地方遇到同样的问题,你还是不知道怎么解决!所以说,在遇到问题时,自己先想想要怎么解决,回顾一下老师上课的内容,如果自己还是想不出什么好方法的话,也可以向同学请教请教,三人行必有我师,你不懂的地方其他同学可能知道。如果还是没能解决,那只有问老师或是上网搜索查找相应的解决方法了。好好理解其解决思路。真的弄不懂时我就问同学一起解决。通过几个阶段的练习,我觉得又把学过的知识复习了一遍,通过同学之间的交流沟通,我觉得我们班的学习氛围更加浓厚了。
我觉得把Java学会的关键一点就是坚持练习。学习Java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要以为写出了一个简单的小程序,就认为自己已经学的很好了,这只不过是在你学习编程过程中一个小小的实践。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践,、吗。
在我学习的期间,很多人对我的学习都有很大的帮助啊,班里的同学们,老师们,我觉得我是一个幸运儿,每次我都能在遇到问题的时候,都能找到能帮助我的人,呵呵,很开心哦~但是,我认为有些东西还是要自己去琢磨,去思考,去想。这样才能不断的进步。
第四篇:基于java小型超市管理系统
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; import java.util.Scanner;
public class Mytest { static int sign=0;//goodname数组第一个空下标号
static int sign1=0;//cname数组第一个空下标号
static String[] cpass=new String[20];//存放售货员名称
static String[] cname=new String[20];//存放售货员登入密码
static String[] goodname=new String[20];//存放商品名称
static double[] goodprice=new double[20];//存放商品价格
static int[] goodout=new int[20];//存放商品销售量
static int[] goodnum=new int[20];//存放商品数量
public static void main(String[] args)throws Exception { cname[0]="ZhouTian";//初始的售货员名称
cpass[0]="723"; //初始的售货员密码 createArrays(); readArrays("goodname");//将文件中的内容读入到相应的数组里
readArrays("goodprice"); readArrays("goodnum"); readArrays("cname"); readArrays("cpass"); readArrays("goodout"); menu();//登入之后加载的主菜单
} /** * 加载登入菜单
*/ private static void menu() {
Scanner scan = new Scanner(System.in);
System.out.println(" 欢迎使用商超购物管理系统 ");
System.out.println(" 1.登录系统 ");
System.out.println(" 2.退出 ");
System.out.println("*************************************************");
System.out.println("请选择,输入数字: ");
int a = scan.nextInt();
switch (a) {
case 0:
System.out.println("退出!");//按0不登入
case 1:
System.out.println("请输入用户名:");// 查找售货员姓名是否存在,与所对应的密码是否匹配
String name = scan.next();
System.out.println("请输入密码:");
String pass = scan.next();
int flage = 0;
int ff = 0;
for (int i = 0; i < cname.length; i++) {
if (name.equals(cname[i])) {
flage = 1;//售货员的名称匹配flage=1;
ff = i;
break;
}
}
if (flage == 1) {//名称匹配之后再匹配密码
if (pass.equals(cpass[ff])) {
loadmenu1();//密码也匹配之后再允许登入
} else {
System.out.println("密码错误!");
}
} else {
System.out.println("该用户名不具有权限");
}
break;
case 2:
System.out.println("谢谢您的使用!");
break;
default:
break;
} }
/** * ,创建文件,将数组信息存入到各文件中, */ static void createArrays() {
BufferedWriter bw = null;
try {
File file1 = new File("d:gname.txt");
if (!file1.exists()) {
bw
=
new
BufferedWriter(new FileWriter("d:gname.txt"));
String content1 = strToString(goodname);//数组内容转换成字符串
bw.write(content1);//写入
bw.close();
}
File file2 = new File("d:gprice.txt");
if (!file2.exists()) {
bw
=
new
BufferedWriter(new FileWriter("d:gprice.txt"));
String content2 = doubleToString(goodprice);//数组内容转换成字符串
bw.write(content2);//写入
bw.close();
}
File file3 = new File("d:gnum.txt");
if (!file3.exists()) {
bw
=
new
BufferedWriter(new FileWriter("d:gnum.txt"));
String content3 = intToString(goodnum);//数组内容转换成字符串
bw.write(content3);//写入
bw.close();
}
File file4 = new File("d:cname.txt");
if (!file4.exists()) {
bw
=
new
BufferedWriter(new FileWriter("d:cname.txt"));
String content4 = strToString(cname);//数组内容转换成字符串
bw.write(content4);//写入
bw.close();
}
File file5 = new File("d:cpass.txt");
if (!file5.exists()) {
bw
=
new
BufferedWriter(new FileWriter("d:cpass.txt"));
String content5 = strToString(cpass);//数组内容转换成字符串
bw.write(content5);//写入
bw.close();
}
File file6 = new File("d:gout.txt");
if (!file6.exists()) {
bw
=
new
BufferedWriter(new FileWriter("d:gout.txt"));
String content5 = intToString(goodout);//数组内容转换成字符串
bw.write(content5);//写入
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
/** * 登入之后加载商超购物管理系统
*/ static void loadmenu1() {
System.out.println("欢迎进入商超购物管理系统!");
System.out.println(" 商超购物管理系统");
System.out
.println("********************************************************************************");
System.out.println(" 1.商品维护");
System.out.println(" 2.前台收银");
System.out.println(" 3.商品管理");
System.out.println(" 4.退出");
System.out.println("********************************************************************************");
System.out.println("请选择,输入数字或按0退出:");
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
switch (a) {
case 0:
System.out.println("谢谢您的使用!");
break;
case 1:
System.out.println("执行显示商品维护菜单");
loadmenu2();
break;
case 2:
System.out.println("执行前台收银");
loadmenu6();
break;
case 3:
System.out.println("执行商品管理");
loadmenu7();
break;
default:
break;
} } /* * 在商超购物管理系统中按1键时 */ static void loadmenu2() {
System.out.println(" 商超购物管理系统 商品维护");
System.out
.println("********************************************************************************");
System.out.println(" 1.添加商品 ");
System.out.println(" 2.更改商品 ");
System.out.println(" 3.删除商品 ");
System.out.println(" 4.显示所有商品 ");
System.out.println(" 5.查询商品 ");
System.out
.println("********************************************************************************");
System.out.println("请选择,输入数字或按0返回上一级菜单:");
Scanner scan = new Scanner(System.in);
int b = scan.nextInt();
switch (b) {
case 0:
loadmenu1();
break;
case 1:
addgoods();
break;
case 2:
System.out.println("执行更改商品操作");
loadmenu3();// 修改商品
break;
case 3:
System.out.println("执行商品删除操作");
loadmenu4();// 商品删除
break;
case 4:
System.out.println("显示所有商品");
System.out.println("商品名称 " + "商品价格 " + "商品数量 "
+ "备注");
showgoods();
break;
case 5:
System.out.println("执行查询商品操作");
loadmenu5();
break;
default:
break;
} } /* * 在商超购物管理系统中按2键时
*/ static void loadmenu6() {
System.out.println(" 商超购物管理系统 前台收银");
System.out
.println("********************************************************************************");
System.out.println(" 1.购物结算");
Scanner scan = new Scanner(System.in);
int ch = scan.nextInt();
switch (ch) {
case 0:
loadmenu1();
break;
case 1:
pay();
break;
default:
break;
}
} /* * 在商超购物管理系统中按3键时
*/ static void loadmenu7() {
Scanner scan = new Scanner(System.in);
System.out.println(" 商超购物管理系统 商品管理");
System.out
.println("********************************************************************************");
System.out.println(" 1.库存查询");
System.out.println(" 2.已出售商品");
System.out.println(" 3.售货员管理");
System.out.println("请选择,输入数字或按0返回上一级菜单:");
int ch = scan.nextInt();
switch (ch) {
case 0: loadmenu1();
break;
case 1:
System.out.println("执行库存查询操作:");
kusear();
break;
case 2:
System.out.println("执行已出售商品查询操作");
besold();
break;
case 3:
System.out.println("执行售货员管理操作");
salesman();
break;
default:
break;
}
} /* * 对售货员信息的增添,修改 */ static void salesman()
{
Scanner scan = new Scanner(System.in);
System.out.println("
1、添加售货员");
System.out.println("
2、修改售货员信息");
System.out.println("请选择,输入数字或按0返回上一级菜单:");
int b = scan.nextInt();
switch (b) {
case 0:
loadmenu7();//返回上一级
break;
case 1:
addsale();//选择1键,添加售货员
break;
case 2:
modifysale();//更改售货员的信息
break;
default:
break;
} } /* 添加售货员 * */ static void addsale() {
Scanner scan = new Scanner(System.in);
String f;
// sign1 = sign1 + 1;
do {
System.out.println("添加售货员姓名:");
String addname = scan.next();
add(cname, addname, sign1);//将新信息添加到相应数组中
System.out.println("添加售货员登陆密码:");
String addpass = scan.next();
add(cpass, addpass, sign1);//将新信息添加到相应数组中
// writeArray();
sign1++;//新信息添加后数组下标加1
writeArray();
System.out.println("是否继续(y/n)");
f = scan.next();
// writeArray();
} while (f.equals("y"));
salesman(); } /* * 更改售货员的信息 */ static void modifysale() {
String f;
Scanner scan = new Scanner(System.in);
System.out.println("输入更改员工名称:");
String newname = scan.next();
int k = searmember(newname);//查询需要改的售货员的信息,并返回其在数组中的下标
if (k >= 0) {//判断售货员是否存在
System.out.println("员工姓名" + " 密码");
System.out.println(cname[k] + " " + cpass[k]);
System.out.println("选择您要更改的内容:");
System.out.println("
1、更改员工姓名:");
System.out.println("
2、更改登录密码:");
int kk = scan.nextInt();
switch (kk) {
case 1:
System.out.println("请输入已更改员工姓名:");
String newnname = scan.next();
cname[k] = newnname;
writeArray();
System.out.println("是否继续(y/n)");
f = scan.next();
if (f.equals("y")) {
modifysale();
} else {
salesman();
}
break;
case 2:
System.out.println("请输入已更改密码:");
String newpass = scan.next();
cpass[k] = newpass;
writeArray();
System.out.println("是否继续(y/n)");
// System.out.println("是否继续(y/n)");
f = scan.next();
if (f.equals("y")) {
modifysale();
}
salesman();
break;
default:
break;
}
} } /* * 查询ename姓名的售货员在数组中的下标 */ static int searmember(String ename) {
for (int i = 0; i < cname.length; i++) {
if (cname[i].equals(ename)) {
return i;
}
}
return -1;// 不存在时
} /* * 查询已出售的商品信息 */ static void besold()
{
System.out.println("商品名称 " + "商品价格 " + "商品数量 " + "备注");
for (int i = 0; i < goodout.length; i++) {
if (goodout[i] != 0) {
System.out.println(goodname[i] + " " + goodprice[i]
+ " " + goodout[i]);
}
}
loadmenu7(); } /* * 查询库存中售的商品信息
*/ static void kusear() {
Scanner scan = new Scanner(System.in);
String f;
do {
System.out.println("输入要查询的商品名称:");
String sname = scan.next();
int t = ndimsear(sname);//按确切的商品名称进行查询,即非模糊查询,找出商品名称信息的下标
if (t >= 0) {
System.out.println("商品名称 " + "商品价格 " + "商品数量 "
+ "备注");
System.out.println(goodname[t] + " " + goodprice[t]
+ " " + goodnum[t] + " ");//按下标输出商品相应的信息
} else {
System.out.println("没有此商品");
}
System.out.println("是否继续(y/n)");
f = scan.next();
} while (f.equals("y"));
loadmenu7();
} /* * 按确切的商品名称进行查询,即非模糊查询,找出商品名称信息的下标
*/ static int ndimsear(String s) {
for (int i = 0; i < goodname.length; i++) {
if (goodname[i].equals(s)) {
return i;
}
}
return -1;//没查询到时
}
/* * 商品结算
*/ static void pay() {
Scanner scan = new Scanner(System.in);
double sum = 0;
String f;
do {
dimsearch1();//按关键字进行模糊查询,查找可能需要的商品
System.out.println("请选择商品:");
String bnam = scan.next();//按查询到的相关商品中选择要购买的商品
System.out.println("请输入购买数量:");
int bnum = scan.nextInt();
int fl = seargood(bnam);
System.out.println(bnam + " " + goodprice[fl] + " "
+ "购买数量" + bnum + " " + bnum * goodprice[fl]);
goodnum[fl] = goodnum[fl]sum));
writeArray();//将对数组的更改写入到文件中
loadmenu1();//结束购买返回
} /* * 查找商品返回下标 */ static int seargood(String bbnam) {
for (int i = 0; i <= goodname.length; i++) {
if (goodname[i].equals(bbnam)) {
return i;
}
}
return -1; }
/* * 对商品进行各种查找
*/
static void loadmenu5() {
Scanner scan = new Scanner(System.in);
System.out.println("
1、按商品数量升序查询");
System.out.println("
2、按商品价格升序查询");
System.out.println("
3、输入关键字查询商品");
System.out.println("请选择,输入数字或按0返回上一级菜单:");
int choice = scan.nextInt();
switch (choice) {
case 0:
loadmenu2();//返回上一级
break;
case 1:
numshenxu();//按商品数量升序进行查找
break;
case 2:
priceshenxu();//按商品价格升序进行查找
break;
case 3:
dimsearch();//按商品的关键字进行查找
break;
default:
break;
}
}
static void dimsearch1() {
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println("输入商品关键字:");
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println("商品名称 " + "商品价格 " + "商品数量 " + "备注");
if (k != null) {
for (int i = 0; i < k.length; i++) {
System.out.println(goodname[k[i]] + " " goodprice[k[i]]
+ " " + goodnum[k[i]] + " ");
}
}
} /* * 按商品的关键字进行查找
*/ static void dimsearch()
+ {
String f;
do {
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println("输入商品关键字:");
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println("商品名称 " + "商品价格 " + "商品数量 "
+ "备注");
if (k != null) {
for (int i = 0; i < k.length; i++) {
System.out.println(goodname[k[i]] + " "
+ goodnum[k[i]]
+ " ");
}
goodprice[k[i]]
+
" "
+
}
System.out.println("是否继续(y/n)");
f = scan.next(); } while (f.equals("y")); loadmenu2(); } static int[] index(String ss) { int countt = 0; int counttt = 0; for (int i = 0; i < goodname.length; i++) {
if (goodname[i].indexOf(ss) >= 0) {
countt++;
} } int[] location = new int[countt]; for (int i = 0; i < goodname.length; i++) {
if (goodname[i].indexOf(ss) >= 0) {
location[counttt] = i;
counttt++;
}
}
return location; } /* * 按商品数量升序进行查找
*/ static void numshenxu() {
int[] newnum = Arrays.copyOf(goodnum, goodnum.length);
double[]
newprice
=
Arrays.copyOf(goodprice, goodprice.length);
String[] goodname.length);
for (int i = 0; i < newnum.lengthi1; i++) {
for (int j = 0; j < newprice.length1; j++) {
if (newprice[j] < newprice[j + 1]) {
int temp = newnum[j];
newnum[j] = newnum[j + 1];
newnum[j + 1] = temp;
double temp1 = newprice[j];
newprice[j] = newprice[j + 1];
newprice[j + 1] = temp1;
String temp2 = newname[j];
newname[j] = newname[j + 1];
newname[j + 1] = temp2;//相应的下标在不同的数
newname
=
Arrays.copyOf(goodname, 组里进行挑换,商品的信息才能保持一致
}
}
}
System.out.println("商品名称 " + "商品价格 " + "商品数量 " + "备注");
for (int k = 0; k < newnum.length; k++) {
if (newprice[k] != 0) {
System.out.println(newname[k] + " " + newprice[k]
+ " " + newnum[k] + " ");
}
}
loadmenu5(); } /* *更改商品信息的操作
*/ static void loadmenu3() {
Scanner scan = new Scanner(System.in);
System.out.println("输入更改商品名称:");
String nam = scan.next();
int b = showflage(nam);
print(b);
System.out.println("选择您要更改的内容:");
System.out.println("
1、更改商品名称::");
System.out.println("
2、更改商品价格:");
System.out.println("
3、更改商品数量:");
int ch = scan.nextInt();
switch (ch) {
case 0:
break;
case 1:
int counnt = 0;
String f = "y";
while (f.equals("y")) {
if (counnt != 0) {
// Scanner scan = new Scanner(System.in);
System.out.println("输入更改商品名称:");
nam = scan.next();
b = showflage(nam);//查找需要更改商品的下标
print(b);//输出这个商品的各种信息
}
System.out.println("请输入已更改商品名称");
String cname = scan.next();
goodname[b] = cname;//更改名称
System.out.println("是否继续(y/n)");
f = scan.next();
counnt++;
writeArray();
}
loadmenu2();
break;
case 2:
counnt = 0;
f = "y";
while (f.equals("y")) {
if (counnt != 0) {
// Scanner scan = new Scanner(System.in);
System.out.println("输入更改商品名称");
nam = scan.next();
b = showflage(nam);
print(b);
}
System.out.println("请输入已更改商品价格");
double cprice = scan.nextDouble();
goodprice[b] = cprice;//新价格写入数组
System.out.println("是否继续(y/n)");
f = scan.next();
counnt++;
writeArray();
}
loadmenu2();
break;
case 3:
counnt = 0;
f = "y";
while (f.equals("y")) {
if (counnt != 0) {
// Scanner scan = new Scanner(System.in);
System.out.println("输入更改商品名称");
nam = scan.next();
b = showflage(nam);
print(b);
}
System.out.println("请输入已更改商品数量");
int cnum = scan.nextInt();
goodnum[b] = cnum;
counnt++;
writeArray();
System.out.println("是否继续(y/n)");
f = scan.next();
}
loadmenu2();
break;
default:
break;
}
} /* * 查询nama这个商品在goodname中的下标
*/ static int showflage(String nama) {
int flag = 0;
for (int i = 0; i < goodname.length; i++) {
if (goodname[i].equals(nama)) {
flag = i;
break;
}
}
return flag; }
static void print(int b) {
System.out.println("商品名称 " + "商品价格 " + "商品数量 " + "备注");
System.out.println(goodname[b] + " " + goodprice[b] + " "
+ goodnum[b] + " ");
} /* * 删除商品菜单
*/ static void loadmenu4() {
String f;
int d;
do {
Scanner scan = new Scanner(System.in);
System.out.println("请输入要删除的商品名称:
String dname = scan.next();
d = showflage(dname);
delete(d);
System.out.println("是否继续(y/n)");
f = scan.next();
writeArray();//删除之后重新写入文件
} while (f.equals("y"));
loadmenu2(); }
"); /* * 删除商品 */ static void delete(int dd) {
for (int i = dd; i < goodname.length1] = null;
goodprice[goodprice.length1] = 0;
} /* * 查询所有商品
*/ static void showgoods() {
int i = 0;
while (goodprice[i] != 0) {
System.out.print(goodname[i] +
" " goodprice[i] + " "
+
+ goodnum[i] + " ");
if (goodnum[i] < 10) {
System.out.println(" *该商品已不足10件!");
}
System.out.println();
i++;
}
loadmenu2();
} /* * 商品添加操作 */ static void addgoods() {
System.out.println("执行添加商品操作: ");
String a;
do {
Scanner scan = new Scanner(System.in);
System.out.println("输入商品名称:");
String na = scan.next();
add(goodname, na, sign);
System.out.println("输入添加商品价格:");
double pr = scan.nextDouble();
add(goodprice, pr, sign);
System.out.println("输入添加商品数量:");
int c = scan.nextInt();
add(goodnum, c, sign);
sign++;
System.out.println("是否继续(y/n)");
a = scan.next();
writeArray();
} while (a.equals("y"));
loadmenu2();
} /* * 将数组信息写入到相应的文件里,启动程序时就要调用这个函数 */ static void writeArray() {
BufferedWriter bw = null;
try {
bw
=
new
BufferedWriter(new FileWriter("d:gname.txt"));
String content1 = strToString(goodname);
bw.write(content1);
bw.close();
bw
=
new
BufferedWriter(new FileWriter("d:gprice.txt"));
String content2 = doubleToString(goodprice);
bw.write(content2);
bw.close();
bw
=
new
BufferedWriter(new FileWriter("d:gnum.txt"));
String content3 = intToString(goodnum);
bw.write(content3);
bw.close();
bw = new BufferedWriter(new FileWriter("d:cname.txt"));
String content4 = strToString(cname);
bw.write(content4);
bw.close();
bw
=
new
BufferedWriter(new FileWriter("d:cpass.txt"));
String content5 = strToString(cpass);
bw.write(content5);
bw.close();
bw
=
new
BufferedWriter(new FileWriter("d:gout.txt"));
String content6 = intToString(goodout);
bw.write(content6);
bw.close();
} catch (IOException e) {
e.printStackTrace();
} } /* * 添加商品名称 */ static void add(String[] aa, String n, int b) {
if (b == aa.length) {
aa = (String[]) Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = n; } /* * 添加商品价格
*/ static void add(double[] aa, double pr, int b) {
if (b == aa.length) {
aa = (double[]) Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = pr; } /* * 添加商品数量
*/ static void add(int[] aa, int cc, int b) {
if (b == aa.length) {
aa = (int[]) Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = cc;
}
/** * 从文件中读取信息到相应的数组里
*/ static void readArrays(String name) throws Exception {
BufferedReader br = null;
try {
if ("goodname".equals(name)) {
br
=
new
BufferedReader(new FileReader("d:gname.txt"));
String content1 = br.readLine();
String[] arr = strToString(content1);
goodname arr.length);
for (int i = 0; i < goodname.length; i++) {
if (!goodname[i].equals("null")) {
sign++;
=
(String[])
Arrays.copyOf(arr,
}
}
} else if ("goodprice".equals(name)) {
br
=
new
BufferedReader(new FileReader("d:gprice.txt"));
String content2 = br.readLine();
double[] arr = doubleToString(content2);
goodprice arr.length);
} else if ("goodnum".equals(name)) {
br
=
new
BufferedReader(new
=
(double[])
Arrays.copyOf(arr, FileReader("d:gnum.txt"));
String content3 = br.readLine();
int[] arr = intToString(content3);
goodnum = (int[]) Arrays.copyOf(arr, arr.length);
} else if ("cname".equals(name)) {
br
=
new
BufferedReader(new FileReader("d:cname.txt"));
String content4 = br.readLine();
String[] arr = strToString(content4);
cname arr.length);
= (String[]) Arrays.copyOf(arr,
for (int i = 0; i < cname.length; i++) {
if (!cname[i].equals("null")) {
sign1++;
}
}
} else if ("cpass".equals(name)) {
br
=
new
BufferedReader(new FileReader("d:cpass.txt"));
String content5 = br.readLine();
String[] arr = strToString(content5);
cpass arr.length);
} else {
br
=
new
BufferedReader(new
=
(String[])
Arrays.copyOf(arr, FileReader("d:gout.txt"));
String content6 = br.readLine();
int[] arr = intToString(content6);
goodout = (int[]) Arrays.copyOf(arr, arr.length);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} /* * 将字符串转换成字符串数组 */ static String strToString(String[] arry) {
// String arrys="";
// for(int i=0;i
// {
// arrys=arry+arry[i]+",";
// }
// //arrys=arrys+arry[arry.length-1];
// System.out.println(arrys);
// return arrys;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arry.length; i++) {
sb.append(arry[i]).append(",");
}
sb.deleteCharAt(sb.length() - 1);
// System.out.println(sb.toString());
return sb.toString(); } /* * 将字符串转换成字符串数组 */ static String[] strToString(String ar) {
String[] arry = ar.split(","); return arry; } /* * 将int型数组转换成字符串 */ static String intToString(int[] arrr) {
String ss = "";
ss = Arrays.toString(arrr);
String sss
=
ss.replace("[",
"").replace("]", "").replace(" ", "");
第五篇:Java图书管理系统实习报告
陕西科技大学毕业实习(专业实习)报告
一、 实习目的
本次实习的目的主要有2个:
(一) 通过亲手对计算机硬件的拆卸,对计算机的硬件要有更深刻的认识和理解。
(二) 通过设计图书管理系统,对相关编程知识有了更进一步的运用,以及其具体实现的细节也有了更深刻的认识。
二、 实习单位及岗位介绍
本次实习在陕西科技大学理学院的综合实验室进行。
三、 实习安排
本次实习的时间是三周:前一周进行硬件实习,后两周进行软件实习。
四、 实习内容
(一) 硬件实习:
2月23日开始了为期1周的硬件实习,在这段时间里,主要是进行了对计算机主机进行了装卸,通过装卸让我们对计算机内部各个部件的协同工作有了更深的认识。 (二) 软件实习:
3月1日开始了为期2周的软件实习。我选择的题目是“图书管理系统”, 对于这个题目,整个系统是由3个数据表,3类用户,以及4类动作。 1. 配置数据库
在SQL Server2000中创建图书管理系统的数据库demo,创建3个数据表books,bookBrowse,UserTable。
2. 生成配置文件hibernate.cfg.xml.文件如下:
1
陕西科技大学毕业实习(专业实习)报告
3. 创建持久化对象以及创建映射文件:
4.Hibernate操作数据库的方法(HibernateUtil.java)。
2
陕西科技大学毕业实习(专业实习)报告
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. 部分运行效果图如下:
3
陕西科技大学毕业实习(专业实习)报告
4
陕西科技大学毕业实习(专业实习)报告
五、 实习总结和体会
通过这次实习,我对计算机的软件和硬件有了全面的了解。
拿硬件来说吧,以前也就是听说过什么总线,cpu,主板,硬盘这些概念,通过实习我真实的接触了这些部件,对其内部的安装有了直接的认识。 拿软件来说,这次我做这个系统只要是应用java语言的AWT元件和swing组件,以及hibernate实现从对象到关系的映射,其实我做的时候对hibernate也不是很了解,但是做的过程发现了困难就会主动的去找各种资源寻求解答,当然这个过程就是成长的过程。软件架构或者语言有很多很多,所以,我还得好好努力啊。
5