java网上商城管理系统
第一篇:java网上商城管理系统
java-网上购物系统报告
1 引言
互联网的兴起在一定程度上改变了整个社会的商品交易方式,国内各大企业从20世纪90年代互联网兴起之时,就产生了通过网络进行销售的想法。但在网站上企业的信誉难以认证、网上交易的法律法规不健全、物流不发达等一系列的原因,限制了电子商务的步伐。进入21世纪以后,随着整个社会的发展步伐,制约电子商务的各个瓶颈问题逐一被击破,各企业也纷纷加入到电子商务的洪潮之中。
2 系统概述
2.1 需求分析
经过对各大网上商城网站及实际企业销售过程的考察、分析,要求本系统具有以下功能:
统一友好的操作界面,保证系统易用性,方便用户的操作。
具备商品信息展示功能,方便浏览者对商品信息进行浏览和比较。 完美的购物车功能和用户结算功能。
全面的后台管理功能,以便管理员对商品进行更新和管理。
2.2可行性分析
网络平台已经成为企业经营管理中不可忽视的一个重要的方面,拥有一个全面的、功能强大的、操作简单的网络购物中心,已经成为企业营销发展的必然趋势。网络购物中心的建立,从销售方面讲,不仅给企业增加一个新的销售渠道,而且方便了客户购买与了解公司的产品及新的销售方向;从企业宣传方面讲,不仅扩大了企业的知名度,还更直观地展示出企业的产品。又有一个B2C的网络购物中心,已经成为企业网络销售进程中的一个重要环节。
3 系统功能结构设计
3.1 项目规划
网络购物中心是一个典型的Java数据库开发程序,由前台管理和后台网站管理部分组成。
前台管理
该部分主要包括商品展示、购物车、结算中心等功能组成。 后台管理
该部分主要包括商品的增加与删除模块组成。
1 / 10
3.2 系统功能结构图
网络购物中心前台功能结构如图1-1所示。
图1-1 前台功能结构图
网络购物中心后台功能结构如图1-2所示。
图1-2后台功能结构图
2 / 10
3.3 系统运行环境
操作系统:Windows 2000 Server; 数据库 : Access 2003; 开发工具:Netbeans6.8; 服务器:Tomcat5.0以上; 浏览器:IE5.0以上
分辨率:最佳效果1024X768;
4 系统功能演示及使用说明
4.1 查询功能演示
(1)运行该项目,出现如图1-3所示界面。
图1-3 项目主页
(2)图1-3所示页面以分页方式列出当前所有商品,单击“下一页”按钮可以查询其他商品。
(3)在图1-3所示的“查询商品名称”文本框中输入要查询的商品名后,单击“查询”按钮进行查询。
3 / 10
(4)在“查询商品名称”文本框中输入“1008”,查询方式选择“精确查询”,单击查询按钮,此时浏览内容如图1-4所示。
(5)可以在在“查询商品名称”文本框中输入“07”关键字,查询方式选择“模糊查询”,单击查询按钮,此时浏览内容如图1-5所示。
(6)在“查询商品名称”文本框中输入“吹风机”,查询方式选择“精确查询”,单击查询按钮,此时浏览内容如图1-6所示。
(7)若查询商品为空,则显示界面如图1-6所示。
图1-4 精确查询
图1-5 模糊查询
4 / 10
图1-6 查询商品为空界面
4.2 购买功能演示
(1) 在图1-3中选中编号为1001和1003的商品前的复选框,单击“添加购物车”按钮,此时窗口如图1-7所示。
图1-7 将商品添加购物车
5 / 10
(2) 从图可以看出,添加购物车之后,被选中商品被加入购物车并显示,还会显示数量和单价此时再次将1003商品加入购物车之后,显示如图1-8所示。
图1-8 向购物车添加已经存在商品
图1-9 删除购物车商品
6 / 10
(3) (4) (5)
图1-10 结算中心
从图1-8可以看出,如果想购物车添加已有商品,则该商品数量会增加(每次增加1)。 在购物车中选中1001商品前的复选框,单击“删除选中商品”按钮,此时浏览器显示如图1-9所示。
从图1-9可以看出,单击“删除选中商品”按钮后,被选中商品将从购物车中删除。可以继续向购物车中添加商品,然后单击“去结算中心”超级链接,此时打开如图1-10所示界面。
图1-10所示窗口给出了将要结算商品的数量、单价、金额小计及总计。如果在图1-10所示窗口中单击“继续购物”链接,则会转到图1-3所示界面,若单击“结算”按钮,则浏览器将转到图1-11界面,以完成结算。 (6)
图1-11 成功结算页面
7 / 10
4.3 管理功能演示
管理功能与查询购买模块不同,任何人都可以访问查询页面,而管理页面只有登陆之后才能进入。
(1) 在浏览器中输入如下内容,出现登陆界面如图1-12所示。 http://localhost:8080/Shop/login.jsp
图1-12 管理登陆页面
(2)如果在图1-12中输入错误用户名或密码,则会出现提示信息要求用户重新输入,如图1-13所示。
图1-13 错误提示页面
8 / 10
(3)输入正确的用户名和密码后,程序会自动跳转到查看与删除页面,浏览器页面如图1-14所示。
图1-14 管理员页面
(4)在图1-14中,以分页方式显示当前商品。
(5)单击删除链接删除相应商品,单击编号为1005商品对应的“删除”链接后,浏览器如图1-15所示。
图1-15 删除编号为1005商品
(6)从图中可以看出,单击“删除”连接后,编号为1005的商品被删除了。单击“添加新商品”链接,浏览器如图1-16所示。
9 / 10
图1-16 添加新商品页面
(7) 在图1-16所示页面可以设置添加商品的信息,单击“提交”按钮以添加商品。 (8) 添加一个编号为1005的商品,所有信息都为1005,单击“提交”按钮。单击“查看已有商品”链接,浏览内容如图1-17所示。
图1-17 成功添加编号为1005的商品
10 / 10
第二篇: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