>>>>>>>>>>>>>>>>>>>>
语言:java
工具:eclipse
时间:2016.12.1
>>>>>>>>>>>>>>>>>>>>
一代代码:
package dvdManager;
/*
* dvd系统
*
* * */
public class dvdsystem {
//全局变量:
static String[][] dvd=new String[7][4];//二维数组dvd,7行(张),4个信息(属性) //主函数:
public static void main(String[] args) {
/*
* 名字 是否借出 借出日期 借出次数
*
*/
//dvd爱情公寓
dvd[0][0]="爱情公寓";
dvd[0][1]="1";//1表示借出,0表示借出。
dvd[0][2]="2";//目前只支持当月借还。
dvd[0][3]="3";//借出次数:3次。 //dvd重庆森林
dvd[1][0]="重庆森林";
dvd[1][1]="";//1表示借出,0表示借出。
dvd[1][2]="";//借出时间:目前只支持当月借还2号。
dvd[1][3]="3";//借出次数:3次。 //dvd屌丝男士
dvd[2][0]="屌丝男士";
dvd[2][1]="1";//1表示借出,0表示借出。
dvd[2][2]="3";//借出时间:目前只支持当月借还3号。
dvd[2][3]="7";//借出次数:3次。 System.out.println("=====dvd管理系统=====");
System.out.println("1.dvd新增");
System.out.println("2.dvd展示");
System.out.println("3.dvd删除");
System.out.println("4.dvd修改");
System.out.println("5.dvd借出");
System.out.println("6.dvd归还");
System.out.println("7.退出当前系统");
System.out.println("请输入功能编号:"); }
}
>>>>>>>>>>>>>>>>>>>>
二代代码:
备注:添加菜单中的“2.dvd展示”栏目的功能。2016-12-02。
package dvdManager2.copy; import java.util.Scanner;
/*
* dvd系统
*
* * */
public class dvdsystem {
//全局变量:
static String[][] dvd=new String[7][4];//二维数组dvd,7行(张),4个信息(属性)
static Scanner scan=new Scanner(System.in);
//主函数:
public static void main(String[] args) {
/*
* 名字 是否借出 借出日期 借出次数
*
*/
//dvd初始化赋值---->作为原有dvd数据
//dvd爱情公寓
dvd[0][0]="爱情公寓";
dvd[0][1]="1";//1表示借出,0表示借出。
dvd[0][2]="2";//目前只支持当月借还。
dvd[0][3]="3";//借出次数:3次。 //dvd重庆森林
dvd[1][0]="重庆森林";
dvd[1][1]="";//1表示借出,0表示借出。
dvd[1][2]="";//借出时间:目前只支持当月借还2号。
dvd[1][3]="3";//借出次数:3次。 //dvd屌丝男士
dvd[2][0]="屌丝男士";
dvd[2][1]="1";//1表示借出,0表示借出。
dvd[2][2]="3";//借出时间:目前只支持当月借还3号。
dvd[2][3]="7";//借出次数:3次。 //菜单列表
System.out.println("=====dvd管理系统=====");
System.out.println("1.dvd新增");
System.out.println("2.dvd展示");
System.out.println("3.dvd删除");
System.out.println("4.dvd修改");
System.out.println("5.dvd借出");
System.out.println("6.dvd归还");
System.out.println("7.退出当前系统");
System.out.println("请输入功能编号:"); int num=scan.nextInt();//用来接收用户输入的菜单信息
//用switch的1234567来实现各个功能菜单。简单明了,也便于阅读和修改。
switch(num){
case 1:
case 2:
System.out.println("=====展示列表=====");
System.out.println("编号\t片名\t是否借出\t借出时间\t借出次数");
//for循环-->为了遍历dvd信息 赋值给dvdI。 一次一条。
for(int i=0;i<dvd.length;i++){
String[] dvdI=dvd[i];//依次将一维数组赋值给dvdI。
//此时i每运行一次,dvdI都会得到了dvd[i]的所有值。即:dvd下标为0时,赋值所有的片名信息,1时,赋值所有的借出状态信息
//下面判断,必须有dvdI[0]片名信息才可以展示--遍历输出展示dvd信息
if(dvdI[0]!=null){/*判断dvdI是否为空,即:必须要有dvd才可以展示,没有就跳过不展示。防止输出一堆null值的dvd片名等等*/
System.out.println((i+1)/*编号*/
+"\t"+dvdI[0]/*片名*/
+"\t"+(dvdI[1]=="1"?"已借出":"未借出")/*是否借出*/
+"\t"+dvdI[2]+(dvdI[2]==""?" ":"号")/*借出时间*/
+"\t"+dvdI[3]);}/*借出次数*/
} System.out.println("请输入0返回主界面"); break;
case 3:
case 4:
case 5:
case 6:
case 7:
} }
}
>>>>>>>>>>>>>>>>>>>>
三代代码:
备注:依次完善其他几个菜单栏目
package dvdManager8; import java.util.Scanner; public class DvdSystem8 {
static String[][] dvd = new String[7][4];
static Scanner scan = new Scanner(System.in);
static double price=1.3;//日租单价
public static void main(String[] args) {
/**
* 名字 是否借出 借出日期 借出次数
*/
dvd[0][0] = "爱情公寓";
dvd[0][1] = "1";// 1表示借出 0表示未借出
dvd[0][2] = "2";// 目前只支持当月借还 2号
dvd[0][3] = "3";// 借出次数 dvd[1][0] = "重庆森林";
dvd[1][1] = "0";// 1表示借出 0表示未借出
dvd[1][2] = "";// 借出时间 目前只支持当月借还 2号
dvd[1][3] = "3";// 借出次数 dvd[2][0] = "屌丝男士";
dvd[2][1] = "1";// 1表示借出 0表示未借出
dvd[2][2] = "3";// 借出时间 ,目前只支持当月借还 3号
dvd[2][3] = "7";// 借出次数
int input;// 接受键盘输入,指导用户输入0,回到主界面 do { // 使用do while 语句控制,回到主界面
System.out.println("======dvd管理系统=======");
System.out.println("1.dvd新增");
System.out.println("2.dvd展示");
System.out.println("3.dvd删除");
System.out.println("4.dvd修改");
System.out.println("5.dvd借出");
System.out.println("6.dvd归还");
System.out.println("7.退出当前系统");
System.out.println("请输入功能编号:"); int num = scan.nextInt();// 接受用户输入,选择指定功能编码
switch (num) {
case 1:
System.out.println("\t\t=====新增dvd信息====");
System.out.println("请输入dvd名称:");
String dvdName = scan.next();// 接受用户输入的dvd名称
boolean isFull = false;// 定义一个变量,初值为false
for (int i = 0; i < dvd.length; i++) {
String[] dvdII = dvd[i];// 将每一个一维数组赋值给dvdII
if (dvdII[0] == null) {
isFull = true;// 将isFull设置为true,判断语句是否进入
dvdII[0] = dvdName;// 输入dvd名称
dvdII[1] = "0";// 刚入库 未借出
dvdII[2] = "";
dvdII[3] = "0";
break;
}
}
if (isFull == false) {
System.out.println("仓库已满,不能新增");
} else {
System.out.println("新增dvd信息成功");
}
break; case 2:
System.out.println("\t\t=====展示列表====");
System.out.println("编号\t片名\t是否借出\t借出时间\t借出次数");
int j = 1;// 编号
for (int i = 0; i < dvd.length; i++) {
String[] dvdI = dvd[i];// 依次将一维数组赋值给dvdI
if (dvdI[0] != null) {// 判断dvdI是否为空,为空表示没有dvd信息
// 三目运算符见test.java
System.out.println((j++) + "\t" + dvdI[0] + "\t"
+ (dvdI[1] == "1" ? "已借" : "未借") + "\t"
+ dvdI[2] + (dvdI[2] == "" ? "\t" : "号\t")
+ dvdI[3]);
}
}
break;
case 3:
System.out.println("请输入你要删除的dvd名称:");
String dvdInput = scan.next();// 接受用户输入的dvd名称,且赋值给dvdIII
boolean isEx = false;
for (int i = 0; i < dvd.length; i++) {
String[] dvd1 = dvd[i];// 将每一个一维赋值给dvd1
if (dvd1[0] != null) {
if (dvd1[0].equals(dvdInput)) {// 判断是否有这个dvd信息
isEx = true;
dvd1[0] = null;// 设置为null删除信息
dvd1[1] = null;
dvd1[2] = null;
dvd1[3] = null;
break;
}
}
}
if (isEx == false) {
System.out.println("该dvd信息不存在");
} else {
System.out.println("删除成功");
} break;
case 4:
System.out.println("请输入你要修改dvd名称:");
String dvdNa = scan.next();// 用户输入的库中dvd名称
boolean isExsit = false;// 用来判断库中是否有此dvd(如有没有isExsit赋值为true,没有表示保持false值)
for (int i = 0; i < dvd.length; i++) {
String[] dvdN = dvd[i];// 遍历,将每一个一维数组赋值给dvdN;
// equals 判断两个字符串是否相等,相等返回true否则返回false
if (dvdN[0] != null) {// 保证一下比较的dvdN信息不为null
if (dvdN[0].equals(dvdNa)) {// 判断库中是否有这个dvd信息
isExsit = true;// 判断if语句是否进来
System.out.println("请输入你要修改后的dvd名称");
String dvdE = scan.next();// 用dvdE来接受用户修改后的名称
dvdN[0] = dvdE;// 将原来的名称覆盖
break;// 注意问题所在!
}
}
}
if (isExsit == false) {// 两个==叫判断 一个=号 赋值
System.out.println("你要修改的dvd不存在");
} else {
System.out.println("恭喜你,修改成功!!");
}
break;
case 5:
System.out.println("请输入你要借出的dvd名称:");
String dName = scan.next();
boolean isExsi = false;
for (int i = 0; i < dvd.length; i++) {
String[] dN = dvd[i];
if (dN[0] != null) {
if (dN[0].equals(dName)) {
isExsi = true;
if (dN[1].equals("1")) {// 判断借出状态是否借出
System.out.println("对不起,该dvd已经借出,暂时不能出借!");
break;// 退出当前break所在的最近的循环语句
} else {
System.out.println("请输入你的借出时间(1-30):");
int date = scan.nextInt();// 接受用户输入的时间
dN[2] = String.valueOf(date);// 将int转换为String
dN[1] = "1";// 改变借出状态
int twice = Integer.parseInt(dN[3]);// 将数字字符串(“123”)转换为int类型
dN[3] = String.valueOf(twice + 1); // 将int类型转换为字符串存入dvd信息中
System.out.println("恭喜你借出成功");
break;
}
}
}
}
if (!isExsi) {
System.out.println("暂时库中没有你要借的dvd");
}
break;
case 6:
System.out.println("请输入你要还的dvd名称:");
String dvdNames=scan.next();
boolean flag=false;
for(int i=0;i<dvd.length;i++){
String [] dvdS=dvd[i];
if(dvdS[0]!=null){
if(dvdS[0].equals(dvdNames)){
flag=true;
if(dvd[1].equals("0")){
System.out.println("dvd没有借出,请到别家!!");
break;
}else{
//归还dvd 逻辑
System.out.println("请输入你的归还日期(1-30):");
int dateB=scan.nextInt();
if(dateB<Integer.parseInt(dvdS[2])){//判断归还日期是否小于借出日期
System.out.println("输入日期有误,请退出系统重新归还!");
}else{
int time=dateB-Integer.parseInt(dvdS[2]);//计算日期差
double sumPrice=time*price;//计算总费用
System.out.println("请输入客户所付金额:");
double cash=scan.nextDouble();//接受用户所付的金额赋值给cash
if(cash<sumPrice){//判断所付金额是否足额
System.out.println("您所付的金额不足,请重新支付");
}else{
double changes=cash-sumPrice;//计算找零
System.out.println("您的借出日期为:"+dvdS[2]+"号");
System.out.println("您的归还日期为:"+dateB+"号");
System.out.println("您租借的时间为:"+(time+1)+"天");
System.out.println("日租单价为:"+price);
System.out.println("需要支付:"+sumPrice+"元");
System.out.println("收入:"+cash+"元");
System.out.println("找零为:"+changes+"元");
dvdS[1]="0";//将状态改为未借
dvdS[2]="";//将借出时间记为空
System.out.println("归还成功!!");
}
}
}
} }
}
if(!flag){
System.out.println("本店没有这个dvd!!");
}
break;
case 7:
System.out.println("系统已退出");
System.exit(-1);
break;
} System.out.println("请输入0,回到主界面");
input = scan.nextInt();// 接受用户输入
} while (input == 0); }
}
>>>>>>>>>>>>>>>>>>>>
四代代码:
备注:对几个菜单进行简单的封装。
package dvdManager6_2; import java.util.Scanner;
import java.util.Date;//提供即时时间类的包!!
import java.text.SimpleDateFormat;//提供格式化时间类的包!!
public class DvdSystem2 {
//全局变量
static Scanner scan=new Scanner(System.in);
static String[][] dvd=new String[7][4]; static int input;//接受键盘输入,指导用户输入0,回到主界面
static int num;//接受用户输入,选择指定功能编码
//static int st[]=new int[7];
static double price=1.3;//日租单价
//主函数
public static void main(String[]args ){
/**
* 名字 是否借出 借出日期 借出次数
*/
Dvd_system();
} //各单元 方法汇总
public static void Dvd_system(){
dvdvalue();//功能:dvd值初始化赋值
do{ //使用do while 语句控制,回到主界面
menushow(); //功能:**菜单栏展示**
num=scan.nextInt();//接受用户输入,选择指定功能编码 switch (num) {
case 1:/*1.dvd新增、add;*/
add_1();
break; case 2:/*2.dvd展示、show*/
show_2();
break; case 3:/*3.dvd删除、delete*/
delete_3();
break; case 4:/*4.dvd修改、change*/
change_4();
break; case 5:/*5.dvd借出*/
lend_5();
break;
case 6:/*6.dvd归还*/
retuen_6();
break;
case 7:/*7.退出当前系统*/
System.out.println("系统已退出");
System.exit(0);//exit(0)就是正常退出,非0就是异常退出
break;
} System.out.println("请输入0,回到主界面");
input=scan.nextInt();//接受用户输入
}while(input==0);
} //功能:**菜单栏展示**
public static void menushow(){
System.out.println("======dvd管理系统=======");
System.out.println("1.dvd新增");
System.out.println("2.dvd展示");
System.out.println("3.dvd删除");
System.out.println("4.dvd修改");
System.out.println("5.dvd借出");
System.out.println("6.dvd归还");
System.out.println("7.退出当前系统");
System.out.println("请输入功能编号:");
} //功能:**dvd值初始化赋值**
public static void dvdvalue(){
dvd[0][0]="爱情公寓";
dvd[0][1]="0";//1表示借出 0表示未借出
dvd[0][2]="0";//目前只支持当月借还 2号
dvd[0][3]="0";//借出次数 dvd[1][0]="重庆森林";
dvd[1][1]="0";//1表示借出 0表示未借出
dvd[1][2]="0";//借出时间 目前只支持当月借还 2号
dvd[1][3]="3";//借出次数 dvd[2][0]="屌丝男士";
dvd[2][1]="1";//1表示借出 0表示未借出
dvd[2][2]="3";//借出时间 ,目前只支持当月借还 3号
dvd[2][3]="7";//借出次数
} /*功能:**1.dvd新增、add;***/
public static void add_1(){
System.out.println("\t=============dvd新增============");
show_2();
System.out.println("\t\t=====新增dvd信息====");
System.out.println("请输入dvd名称:");
String dvdName=scan.next();//接受用户输入的dvd名称
boolean isFull=false;//定义一个变量,初值为false
for(int i=0;i<dvd.length;i++){
String [] dvdII=dvd[i];//将每一个一维数组赋值给dvdII
if(dvdII[0]==null){
isFull=true;//将isFull设置为true,判断语句是否进入
dvdII[0]=dvdName;//输入dvd名称
dvdII[1]="0";//刚入库 未借出
dvdII[2]="";
dvdII[3]="0";
break;
}
}
if(isFull=false){
System.out.println("仓库已满,不能新增");
}else{
System.out.println("新增dvd信息成功");
}
} /*功能:**2.dvd展示、show;***/
public static void show_2(){
System.out.println("\t\t=====展示列表====");
System.out.println("编号\t片名\t是否借出\t借出时间\t借出次数");
int j=1;
for(int i=0;i<dvd.length;i++){
String [] dvdI=dvd[i];//依次将一维数组赋值给dvdI
if(dvdI[0]!=null){//判断dvdI是否为空,为空表示没有dvd信息
//三目运算符见test.java
SimpleDateFormat clock=new SimpleDateFormat("yyyy-MM-dd");
System.out.print((j++));/*编号*/
System.out.println(
"\t"+dvdI[0]/*名称*/
+"\t"+(dvdI[1]=="1"?"已借":"未借")/*是否借出*/
+"\t"+dvdI[2]+(dvdI[2]==""?"\t":"号\t")/*借出时间*/
+dvdI[3]);/*借出次数*/
}
}
} ///*功能:**3.dvd删除、delete;***/--未完善
public static void delete_3(){
System.out.println("\t=============dvd删除============");
show_2();
System.out.println("请输入要删除的dvd名称:");//
String dvdName=scan.next();
boolean isEX=false;
for(int i=0;i<dvd.length;i++){
String[] dvd1=dvd[i];
if(dvd1[0]!=null){
if(dvd1[0].equals(dvdName)){
if(dvd1[1].equals("1")){
System.out.println("此dvd已经借出!不能删除!!");
}else{
isEX=true;
dvd1[0]=null;
dvd1[1]=null;
dvd1[2]=null;
dvd1[3]=null;}
}
}
}
if(isEX){
System.out.println("删除成功!");//
} } ///*功能:**4.dvd修改、change*/
public static void change_4(){
System.out.println("\t=============dvd修改============");
show_2();
System.out.println("请输入你要修改dvd名称:");
String dvdNa=scan.next();//用户输入的库中dvd名称
boolean isExsit=false;//用来判断库中是否有此dvd(如有没有isExsit赋值为true,没有表示保持false值)
for(int i=0;i<dvd.length;i++){
String [] dvdN=dvd[i];//遍历,将每一个一维数组赋值给dvdN;
if(dvdN[0]!=null){/*保证一下比较的dvd信息不为null*/
if(dvdN[0].equals(dvdNa)){
System.out.println("请输入你要修改后的dvd名称");
String dvdE=scan.next();//用dvdE来接受用户修改后的名称
dvdN[0]=dvdE;//将原来的名称覆盖
isExsit=true;//判断if语句是否进来
break;//注意问题所在!
}}
if(!(dvdN[0].equals(dvdNa))){System.out.println("你要修改的dvd名称不存在!");
break;}
} if(isExsit=false){
System.out.println("你要修改的dvd不存在");
}else{
System.out.println("恭喜你,修改成功!!");
}
} /*5.dvd借出*/
public static void lend_5(){
System.out.println("\t=============dvd借出============");
show_2();
System.out.println("请输入要借出的dvd名称:");
String dvdName=scan.next();//接受用户输入的dvd名称
boolean sign=false;//定义一个变量,初值为false
for(int i=0;i<dvd.length;i++){
String[] dvd2=dvd[i];
try{
if((dvd2[0].equals(dvdName))){/*判断有符合的片名 ,才执行下列语句*/
if(dvd2[1].equals("1")){/*判断dv是否借出,已借出给出提示*/
System.out.println("此dvd已经借出,请选择其他dvd:");
break;}
if(dvd2[1].equals("0")){/*必须确认 dv未借出!才可以借*/
sign=true;
dvd2[1]="1";/*状态:是否借出*/
/*把String日期强制转换成int日期,再+1。
* 再转换成String类型,赋值给dvd2*/
System.out.println("请输入你的借书时间(1-30)");
int date=scan.nextInt();//接收用户输入的
dvd2[2]=String.valueOf(date);/*借出时间*/
// dvd2[2]=String.valueOf((Integer.parseInt( dvd2[2])+1));/*借出时间*/
dvd2[3]=String.valueOf((Integer.parseInt( dvd2[3])+1));/*借出次数*/
break;}
}}catch(Exception e){System.out.println("没有此dvd!");break;} }
if(sign){
System.out.println("dvd借出成功!");}
} /*
*dvd归还子菜单规格说明书:
* (1)提示用户输入要归还的dvd名称信息
* 接收用户输入的dvd名称信息并赋值记录。
* (2)for循环遍历--赋值给新数组dvdS。
* a判断:dvds名不可以为空,才继续
* b判断:用户输入的 片名 须符合 库存中的片名。即:库存中必须有这部dvd,。
* c判断:库存中的这部dvd是否借出。即:须是借出状态才能归还。
* d判断:否则-->是借出状态-->执行归还dvd程序!
* d2归还dvd程序要求输入:“归还日期、客户所付金额、”。并判断用户输入的是否正确。
* 展示:借出日期、归还日期、租借时间、日租单价、客户所付金额、收入、找零等等
* 重置 :dvd片名的 借出状态、借出日期。
* e完善各提示信息!
**/
///*6.dvd归还*/
public static void retuen_6(){
System.out.println("\t=============dvd归还============");
dvdvalue();
System.out.println("请输入你要还的dvd名称:");
String dvdNames=scan.next();//接收用户输入的dvd信息并赋值记录。
boolean flag=false; for(int i=0;i<dvd.length;i++){
String [] dvdS=dvd[i];
if((dvdS[0]!=null)){//判断null时常用==。判断输入的字符串常用equals。。此处用equals报错。。。。
if(dvdS[0].equals(dvdNames)){
flag=true;
if(dvd[1].equals(null)){
System.out.println("dvd没有借出,请到别家!!");
break;
}else{
//归还dvd.--逻辑
System.out.println("请输入你的归还日期(1-30):"); int dateB=scan.nextInt();
if(dateB<Integer.parseInt(dvdS[2])){//判断归还日期是否小于借出日期
System.out.println("输入日期有误,请退出系统重新归还!");
}else{
int time=dateB-Integer.parseInt(dvdS[2]);//计算日期差
double sumPrice=time*price;//计算总费用
System.out.println("请输入客户所付金额:");
double cash=scan.nextDouble();//接受用户所付的金额赋值给cash
if(cash<sumPrice){//判断所付金额是否足额
System.out.println("您所付的金额不足,请重新支付");
}else{
double changes=cash-sumPrice;//计算找零
System.out.println("您的借出日期为:"+dvdS[2]+"号");
System.out.println("您的归还日期为:"+dateB+"号");
System.out.println("您租借的时间为:"+(time+1)+"天");
System.out.println("日租单价为:"+price);
System.out.println("需要支付:"+sumPrice+"元");
System.out.println("收入:"+cash+"元");
System.out.println("找零为:"+changes+"元");
dvdS[1]="0";//将状态改为未借
dvdS[2]="";//将借出时间记为空
System.out.println("归还成功!!");
}
}
}
} }
}
if(!flag){
System.out.println("本店没有这个dvd!!");
}
}
}