`
胡火云
  • 浏览: 42517 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java基础-图书管理销售系统

阅读更多
import java.util.Scanner;
/**
* @since 用户的信息管理:输出用户信息,添加用户信息,修改用户信息,删除用户的帐户。
* @version 2010.3.26
*修改人员:
* @author 胡火云
*/
public class UserInfo
{
/**
* 输出用户信息
* @param id 会员账号
* @param age 会员年龄
* @param scores 会员积分
*/
public static void showUserInfo(int [] id,int age[],int scores[])
{
System.out.println("书店管理销售系统>会员信息管理>显示会员信息");
System.out.print(" 会员号"+"\t"+" 年龄"+"\t"+" 积分"+"\n");
for(int i=0;i<id.length;i++)
{
if(id[i]==0)
{
break;
}
System.out.print(" "+id[i]+"\t"+" "+age[i]+"\t"+" "+scores[i]+"\n");
}
}
/**
* 添加用户信息
* @param id 会员账号
* @param age 会员年龄
* @param scores 会员积分
*/
public static void addUserInfo(int [] id,int age[],int scores[],int Id,String book[],float price[], String name[],int Jscores[])
{
Scanner sc=new Scanner(System.in);
try
{
boolean b=false;
//判断输入的账号是否存在
int i=0;
//首先用户ID必须是大于零的
if(Id>0)
{
for(;i<id.length;i++)
{
if(Id==id[i])
{
b=true;
}
}
//判断输入的账户是否重复
if(b)
{
System.out.println("该账号已存,添加失败!");
}
else
{
System.out.print("请输入会员年龄:");
int Age=sc.nextInt();
//判断输入的年龄是否在0-150之间,如果不在就调用keep()这个方法提示用户是否要继续添加
if(Age>0&&Age<=150)
{
//处理输入会员积分时的异常
try
{
System.out.print("请输入会员积分:");
int Scores=sc.nextInt();
//判断输入的积分是否大于零,如果不是就调用keep()这个方法提示用户是否要继续添加
if(Scores>0)
{
//用循环来判断输入账号的位置然后对其进行赋值
for(int j=0;j<id.length;j++)
{
if(id[j]==0)
{
id[j]=Id;
age[j]=Age;
scores[j]=Scores;
break;
}
}
System.out.println("添加成功!");
}
else
{
System.out.println("积分必须大于零!");
//调用会员管理类下的判断是否继续的方法并把方法的返回值赋给b1这个布尔变量
boolean b1=UserInfo.keep(id, age, scores, Id, book, price, name, Jscores);
if(b1==true)
{
//调用会员管理类下的添加会员的方法
UserInfo.addUserInfo(id, age, scores, Id, book, price, name, Jscores);
}
else
{
BeginMenu.Menu_3();
//调用主要功能模块类下的显示主要信息的方法(主要菜单和功能的实现)
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
}
catch(Exception e)
{
System.out.println("输入的积分必须是整数类型!");
//调用会员管理类下的判断是否继续的方法并把方法的返回值赋给b1这个布尔变量
boolean b1=UserInfo.keep(id, age, scores, Id, book, price, name, Jscores);
if(b1==true)
{
//调用会员管理类下的添加会员的方法
UserInfo.addUserInfo(id, age, scores, Id, book, price, name, Jscores);
}
else
{
BeginMenu.Menu_3();
//调用主要功能模块类下的显示主要信息的方法(主要菜单和功能的实现)
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
}
else
{
System.out.println("你输入的年龄必须在0-150之间的整数!");
//调用会员管理类下的判断是否继续的方法并把方法的返回值赋给b1这个布尔变量
boolean b1=UserInfo.keep(id, age, scores, Id, book, price, name, Jscores);
if(b1==true)
{
//调用会员管理类下的添加会员的方法
UserInfo.addUserInfo(id, age, scores, Id, book, price, name, Jscores);
}
else
{
BeginMenu.Menu_3();
//调用主要功能模块类下的显示主要信息的方法(主要菜单和功能的实现)
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
}
}
else
{
System.out.println("帐户必须是大于零的整数,添加失败!");
}
}
catch(Exception e)
{
System.out.println("你的输入的年龄只能是大于零的整数类型!");
//此时出现错误,提示用户是否要继续添加,调用会员管理类下的判断是否继续的方法并把方法的返回值赋给b1这个布尔变量
boolean b=UserInfo.keep(id, age, scores, Id, book, price, name, Jscores);
if(b==true)
{
//调用会员管理类下的添加会员的方法
UserInfo.addUserInfo(id, age, scores, Id, book, price, name, Jscores);
}
else
{
BeginMenu.Menu_3();
//调用主要功能模块类下的显示主要信息的方法(主要菜单和功能的实现)
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
}
/**
*  修改用户信息
* @param id 会员账号
* @param age 会员年龄
* @param scores 会员积分
* @param book
* @param price
* @param name
* @param Jscores
* @param st
*/
//判断输入的ID是否存在
public static boolean b5=false;
public static void rework(int id[],int age[],int scores[],String book[],float price[],String name[],int Jscores[],int st)
{
//st是输入的用户账号
Scanner sc=new Scanner(System.in);
int i=0;
//判断是否存在该输入的id号
for(;i<id.length;i++)
{
if(st==id[i])
{
b5=true;
break;
}
}
//如果判断输入的账户存在则继续提示用户输入新的会员的年龄,否则就提示用户输入的账号不存在
if(b5)
{
//打印找到的会员账号的年龄和积分
System.out.println("会员"+id[i]+"的年龄"+"\t"+age[i]+"\t"+"积分:"+"\t"+scores[i]);
System.out.print("请输入会员新的年龄:");
try
{
int NewAge=sc.nextInt();
//判断输入的新的年龄是否在0-150之间否则提示用户输入的年龄必须为大于零的整数
if(NewAge>0&&NewAge<=150)
{
System.out.print("请输入会员新的积分:");
//捕获和处理输入积分时的异常
try
{
int NewScores=sc.nextInt();
//输入的积分如果大于零就把新的年龄和新的积分赋给用户输入的账户
if(NewScores>0)
{
age[i]=NewAge;
scores[i]=NewScores;
System.out.println("修改成功!");
}
else
{
System.out.println("新的会员积分必须是大于零的整数!");
boolean bool=UserInfo.keepRework(id, age, scores, book, price, name, Jscores, st);
if(bool==true)
{
UserInfo.keepRework(id, age, scores, book, price, name, Jscores,st);
}
else
{
BeginMenu.Menu_3();
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
}
catch(Exception e)
{
System.out.println("积分必须是整数类型的数字!");
//b4使用承接用户是是否要继续修改的布尔值
boolean b4=UserInfo.keepRework(id, age, scores, book, price, name, Jscores,st);
if(b4==true)
{
//调用会员管理下的修改会员的方法
UserInfo.rework(id, age, scores, book, price, name, Jscores, st);
}
else
{
//调出菜单类下的会员管理菜单
BeginMenu.Menu_3();
//调用主要功能模块下的会员管理的方法
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
}
else
{
System.out.println("新的会员年龄必须是0-150之间的整数!");
//调用会员管理下的提示用户是要继续修改方法
boolean bool=UserInfo.keepRework(id, age, scores, book, price, name, Jscores, st);
if(bool==true)
{
UserInfo.keepRework(id, age, scores, book, price, name, Jscores,st);
}
else
{
BeginMenu.Menu_3();
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
}
catch(Exception e)
{
System.out.println("你的输入年龄必须是0-150之间的整数!");
//b4使用承接用户是是否要继续修改的布尔值
boolean b4=UserInfo.keepRework(id, age, scores, book, price, name, Jscores,st);
if(b4==true)
{
//调用会员管理下的修改会员的方法
UserInfo.rework(id, age, scores, book, price, name, Jscores, st);
}
else
{
//调出菜单类下的会员管理菜单
BeginMenu.Menu_3();
//调用主要功能模块下的会员管理的方法
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
}
else
{
System.out.println("没有该会员的记录,修改失败!");
}
}
/**
* 删除用户的帐户
* @param id 会员账户
* @param age 会员年龄
* @param scores 会员积分
*/
public static void deleteUser(int id[],int age[],int scores[])
{
System.out.print("请输入要删除的会员帐号:");
Scanner sc=new Scanner(System.in);
try
{
int deleteId=sc.nextInt();
if(deleteId>0)
{
//记录最大位置
int max=0;
for(;max<id.length;max++)
{
if(id[max]==0)
{
break;
}
}
//记录当前位置
int l=0;
for(;l<max;l++)
{
if(id[l]==deleteId)
{
break;
}
}
id[l]=0;
age[l]=0;
scores[l]=0;
//把后面的的数据向前移动
if(l<max)
{
for(int i=l;i<max-1;i++)
{
id[i]=id[i+1];
age[i]=age[i+1];
scores[i]=scores[i+1];
}
id[max-1]=0;
age[max-1]=0;
scores[max-1]=0;

System.out.println("删除成功。");
}
else
{
System.out.println("没有找到该帐号,删除失败!");
}
}
else
{
System.out.println("会员帐号必须是大于零的整数,删除失败!");
}
}
catch(Exception e)
{
System.out.println("你输入的会员账号有误,删除失败!");
}
}
/**
* 该方法主要是对添加会员是出现的错误进行处理,提示用户是否要继续添加
* @param id
* @param age
* @param scores
* @param Id
* @param book
* @param price
* @param name
* @param Jscores
* @return 布尔类型的值
*/
public static boolean keep(int [] id,int age[],int scores[],int Id,String book[],float price[], String name[],int Jscores[])
{
System.out.print("你数否要继续添加(y/n):");
Scanner sc=new Scanner(System.in);
String s=sc.next();
//b2判断是否要继续添加
boolean b2=false;
if(s.equals("y")||s.equals("Y"))
{
b2=true;
}
else if(s.equals("n")||s.equals("N"))
{
b2=false;
}
else
{
System.out.println("输入错误请重新选择(y/n)!");
if(keep(id, age, scores, Id, book, price, name, Jscores)==true)
{
//调用管理会员下的添加会员
UserInfo.addUserInfo(id, age, scores, Id, book, price, name, Jscores);
}
else
{
BeginMenu.Menu_3();
//调用主要功能模块中的会员管理方法
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
return b2;
}
/**
* 该方法主要是对修改会员是出现的错误进行处理,提示用户是否要继续修改
* @param id
* @param age
* @param scores
* @param book
* @param price
* @param name
* @param Jscores
* @return b3是否要继续修改的布尔值
*/
public static boolean keepRework(int id[],int age[],int scores[],String book[],float price[],String name[],int Jscores[],int st)
{
//b3使用存储用户是否继续修改的布尔值
boolean b3=false;
System.out.print("你是否要继续修改(y/n):");
Scanner sc=new Scanner(System.in);
String s=sc.next();
if(s.equals("Y")||s.equals("y"))
{
b3=true;
}
else if(s.equals("N")||s.equals("n"))
{
b3=false;
}
else
{
System.out.println("输入错误请重新选择(y/n)!");
//如果多次输入错误,会导致输入y时返回会员管理菜单。这里再一次调用修改会员这个方法
if(UserInfo.keepRework(id, age, scores, book, price, name, Jscores, st))
{
UserInfo.rework(id, age, scores, book, price, name, Jscores, st);
}
}
return b3;
}
}

/**
* 胡火云
* @author SVSE
*用户数据
*/
/**
* @since 用户数据。
* @version 2010.3.26
* @author 胡火云
*/
public class InfoDate
{
/**
* 会员帐号
* @return 会员账号
*/
public static int[] Id()
{
int id[]=new int[50];
id[0]=1100;
id[1]=1101;
id[2]=1102;
id[3]=1103;
id[4]=1104;
id[5]=1105;
id[6]=1106;
id[7]=1107;
return id;
}
/**
* 会员年龄
* @return 会员年龄
*/
public static int[] Age()
{
int age[]=new int[50];
age[0]=32;
age[1]=12;
age[2]=35;
age[3]=50;
age[4]=33;
age[5]=24;
age[6]=29;
age[7]=21;
return age;
}
/**
* 会员积分
* @return 会员积分
*/
public static int[] Scores()
{
int scores[]=new int[50];
scores[0]=1002;
scores[1]=1600;
scores[2]=500;
scores[3]=30000;
scores[4]=4535;
scores[5]=20;
scores[6]=200;
scores[7]=859;
return scores;
}
}

import java.util.Scanner;
/**
* @since 书籍管理信息:显示书籍信息,添加书籍,书籍更新,修改书籍 。
* @version 2010.3.26
*修改人员:
* @author 胡火云
*/

public class BooksInfo
{
/**
* 显示书籍信息
* @param book 书籍名称
* @param price 书籍价格
*/
//b是判断是否在修改书籍当中价格输入错误时判断是否重新输入价格
public static boolean b=true;
//AddBook使用来判断输入的价格是否符合规范
public static boolean AddBook=true;
public static void seeBookInfo(String book[],float price[])
{
System.out.print("编号"+"\t"+"书籍信息"+"\t\t\t"+"价 格(¥)"+"\n");
//获取书籍的最大数量
for(int i=0;i<book.length;i++)
{
//获取有多少书籍,如果为空就跳出。
if(book[i]==null)
{
break;
}
System.out.print(i+"\t"+book[i]+"\t\t\t"+price[i]+"\n");
}
}
/**
* 添加书籍的方法
* @param book 书籍名称
* @param price 书籍价格
*/
public static void addBook(int id[],int age[],int scores[],String book[],float price[],String name[],int Jscores[],String BookName)
{
Scanner sc=new Scanner(System.in);
//k是用来计算是否重复的计算数字。
int k;
//repeat是判断判断否重复,默认是不重复的。
boolean repeat=true;
//判断是否重复
for(k=0;k<book.length;k++)
{
//Array.equals(BookName)与BookName.equals(Array)的区别,1.Error,2.True。
if(BookName.equals(book[k]))
{
repeat=false;
break;
}
}
//如果repeat=true就接受用户输入价格否则就提示该输入的书籍已存在
if(repeat)
{
if(AddBook)
{
try
{
System.out.print("请输入价格:");
float BookPrice=sc.nextFloat();
if(BookPrice>0)
{
for(int i=0;i<book.length;i++)
{
if(book[i]==null)
{
book[i]=BookName;
price[i]=BookPrice;
break;
}
}
System.out.println("添加成功!");
//调出菜单类中的书籍管理菜单
BeginMenu.Menu_4();
//调用主要功能模块中的书籍管理方法
FunctionBlocks.function_Book(id, age, scores, book, price, name, Jscores);
}
else
{
System.out.println("价格必须是正数,请重新你输入价格。");
//调用书籍管理的添加书籍的方法
BooksInfo.addBook(id, age, scores, book, price, name, Jscores, BookName);
}
}
catch(Exception e)
{
//添加异常处理事件
System.out.print("你输入的价格有误!\n是否要重新输入要价格(y/n):");
BooksInfo.decidePrice();
}
}
//如果输入的价格不符合规范
else
{
//不符合规格是调用
System.out.println("添加失败!");
//为了以后能正常运行必须把AddBook重新复位为原来状态
AddBook=true;
//调出菜单类中的书籍管理菜单
BeginMenu.Menu_4();
//调用主要功能模块中的书籍管理方法
FunctionBlocks.function_Book(id, age, scores, book, price, name, Jscores);
}
}
else
{
System.out.println("你输入的书籍已存在!");
//调出菜单类中的书籍管理菜单
BeginMenu.Menu_4();
//调用主要功能模块中的书籍管理方法
FunctionBlocks.function_Book(id, age, scores, book, price, name, Jscores);
}
}
/**
* 书籍更新
* @param book 书籍名称
* @param price 书籍价格
*/
public static void deleteBook(String book[],float price[])
{
System.out.println("书店管理销售系统>书籍管理>书籍下架");
System.out.print("请输入要删除的书的书名:");
Scanner sc=new Scanner(System.in);
String name=sc.next();
int MaxBooks=0,Laction=0;
//计算书籍的数量
for(;MaxBooks<book.length;MaxBooks++)
{
if(book[MaxBooks]==null)
{
break;
}
}
//获取用户输入书籍名时在数组中的位置
for(;Laction<MaxBooks;Laction++)
{
if(book[Laction].equals(name))
{
break;
}
}
//找到的的数字应该小于找到的字符串否则就没有找到
if(Laction<MaxBooks)
{
book[Laction]=null;
price[Laction]=0.0f;
for(int i=Laction;i<MaxBooks-1;i++)
{
book[i]=book[i+1];
price[i]=price[i+1];
}
book[MaxBooks-1]=null;
price[MaxBooks-1]=0.0f;
System.out.println("删除成功!");
}
else
{
System.out.println("没有找该书籍!");
}
}
/**
* 修改书籍
* @param book 书籍名称
* @param price 书籍价格
*/
public static int reworkBook(int id[],int age[],int scores[],String book[],float price[],String name[],int Jscores[],String BookName)
{
Scanner sc=new Scanner(System.in);
//贮存找到书籍位置
int priceNum=-1;
//获取书籍的数量有多少
int i;
for(i=0;i<book.length;i++)
{
if(book[i]==null)
{
break;
}
}
//记录输入书籍的位置
int j;
//找到输入书籍的位置并用变量j保存
for(j=0;j<i;j++)
{
if(book[j].equals(BookName))
{
break;
}
}
//如果找到的书籍数量小于书籍数量如果小于就提示输入新的价格否则就提示没有找到该书籍
if(j<i)
{
priceNum=j;
if(b==true)
{
//处理输入价格的异常
try
{
System.out.print("请输入新的价格:");
float BookPrice=sc.nextFloat();
price[j]=BookPrice;
System.out.println("修改成功。");
//调用菜单类中的书籍管理菜单
BeginMenu.Menu_4();
//调用主要功能模块中的书籍管理方法
FunctionBlocks.function_Book(id, age, scores, book, price, name, Jscores);
}
catch(Exception e)
{
System.out.println("你的输入有误,请重新输入!");
//调用书籍管理中的true_or_false的方法
BooksInfo.true_or_false();
}
}
else
{
System.out.println("修改失败!");
//把原先的值给设置回来,以免在后面在修改是发生修改失败的情况
b=true;
//调用菜单类中的书籍管理菜单
BeginMenu.Menu_4();
// //调用主要功能模块中的书籍管理方法
FunctionBlocks.function_Book(id, age, scores, book, price, name, Jscores);
}
}
else
{
System.out.println("没有找到该书籍。");
// 调用菜单类中的书籍管理菜单
BeginMenu.Menu_4();
//调用主要功能模块中的书籍管理方法
FunctionBlocks.function_Book(id, age, scores, book, price, name, Jscores);
}
return priceNum;
}
/**
* 判断在修改书籍时价格是否符合规格,如果不符合就把b赋值为false
* @param book
* @param price
* @param BookName
*/
public static void true_or_false()
{
Scanner sc=new Scanner(System.in);
System.out.print("请输入(y/n):");
String s=sc.next();
//判断输入的是否为(y/n),大小写都可以
if(s.equals("y")||s.equals("Y"))
{
b=true;
}
else if(s.equals("n")||s.equals("N"))
{
b=false;
}
else
{
System.out.println("输入有误请重新输入!");
//调用书籍管理中的判断修改书籍的价格是否付合规格的方法
BooksInfo.true_or_false();
}
}
//decide(决定)输入价格不规范是调用这个方法让用户再输入价格
public static void decidePrice()
{
Scanner sc=new Scanner(System.in);
String s=sc.next();
//如果用户输入大小写也能使程序正常运行
if(s.equals("y")||s.equals("Y"))
{
AddBook=true;
}
else if(s.equals("n")||s.equals("Y"))
{
AddBook=false;
}
else
{
System.out.print("输入错误,请重新输入(Y/N):");
BooksInfo.decidePrice();
}
}
}

/**
* @since 书籍数据:书籍名称,书籍价格。
*  @version 2010.3.26
*修改人员:
*  @author 胡火云
*/
public class BooksDate
{
/**
* 书籍信息
* @return 书籍名称
*/
public static String[] Book()
{
String []book=new String[50];
book[0]="开始学习Java";
book[1]="大学英语";
book[2]="教育学";
book[3]="JavaSpring";
book[4]="PhotoShop";
book[5]="C#基础";
book[6]="高等数学";
book[7]="J2SE桌面应用开发";
book[8]="毛邓";
return book;
}
/**
* 书籍的价格信息
* @return 书籍的价格
*/
public static float[] Price()
{
float price[]=new float[50];
price[0]=35.9f;
price[1]=59.0f;
price[2]=23.5f;
price[3]=60.8f;
price[4]=70.5f;
price[5]=43.2f;
price[6]=8.5f;
price[7]=78.8f;
price[8]=5.2f;
return price;
}
}
/**
* @since 菜单类:登陆菜单,主菜单,会员管理菜单,书籍管理菜单。
* @version 2010.3.26
*修改人员:
* @author 胡火云
*/
public class BeginMenu
{
/**
* 登陆菜单
*/
public static void Menu_1()
{
System.out.println("书店管理销售系统");
System.out.println("******************************");
System.out.print("    1.登陆"+"\n"+"    2.退出"+"\n");
System.out.println("******************************");
}
/**
*
*主菜单
*/
public static void Menu_2()
{
System.out.println("******************************");
System.out.print(" 1.会员管理"+"\n"+" 2.书籍管理"+"\n"+" 3.购物结算"+"\n"+" 4.积分兑换礼品"+"\n"+" 5.注销"+"\n");
System.out.println("******************************");
System.out.println("书店管理销售系统>主菜单");
}
/**
*
*会员管理菜单
*/
public static void Menu_3()
{
System.out.println("******************************");
System.out.print(" 1.显示所有会员信息"+"\n"+" 2.添加会员信息"+"\n"+" 3.修改会员信息"+"\n"+" 4.删除会员"+"\n"+" m.返回主菜单"+"\n");
System.out.println("******************************");
}
/**
*
*书籍管理菜单
*/
public static void Menu_4()
{
System.out.println("******************************");
System.out.print(" 1.查看书目"+"\n"+" 2.添加书籍"+"\n"+" 3.删除书籍"+"\n"+" 4.修改书籍"+"\n"+" m.返回主菜单"+"\n");
System.out.println("******************************");
}
}
/**
* @since 礼品数据:兑换礼品名称,礼品的积分 。
* @version 2010.3.26
*修改人员:
* @author 胡火云
*/
public class DatePresent
{
/**
* 兑换礼品的名称
* @return 礼品名称
*/
public static String [] presentName()
{
String name[]=new String[50];
name[0]="USB光驱";
name[4]="21"+"\""+"电视机";
name[1]="电水壶";
name[2]="硬盘(500M)";
name[3]="诺机亚M5310";
name[5]="毛江林读本";
name[6]="红色旅游手册";
return name;
}
/**
* 礼品的积分
* @return 兑换礼品所需积分
*/
public static int [] presentScores()
{
int scores[]=new int[50];
scores[0]=5000;
scores[1]=500;
scores[2]=250;
scores[3]=1000;
scores[4]=1500;
scores[5]=100;
scores[6]=300;
return scores;
}
}
import java.util.Scanner;
/**
* @since 兑换礼品。
* @version 2010.3.26
*修改人员:
* @author 胡火云
*/
public class ExchangePresent
{
/**
* 兑换礼品
* @param id 会员编号
* @param scores 会员积分
* @param name 礼品名称
* @param Jscores 兑换礼品积分
*/
public static void Exchange(int id[],int scores[],String name[],int Jscores[])
{
System.out.println("书店管理销售系统>积分兑换礼品");
System.out.println("******************************");
System.out.print("礼品编号\t"+"礼品名称\t\t兑换礼品所需积分\n");
for(int i=0;i<name.length;i++)
{
if(name[i]==null)
{
break;
}
System.out.print(i+"\t"+name[i]+"\t\t"+Jscores[i]+"\n");
}
System.out.println("******************************");
Scanner sc=new Scanner(System.in);
try
{
System.out.print("请输入会员账号:");
int UserId=sc.nextInt();
int k,u,m;
// 计算有多少礼品
for(k=0;k<Jscores.length;k++)
{
if(Jscores[k]==0)
{
break;
}
}
//计算有多少帐户
for(u=0;u<id.length;u++)
{
if(id[u]==0)
{
break;
}
}
//计算输入帐户的位置
for(m=0;m<u;m++)
{
if(id[m]==UserId)
{
break;
}
}
//如果账户的位置小于账户的最大位置则为true否则为false
if(m<u)
{
//验证输入的编号是否符合礼品编号
if(id[m]==UserId)
{
System.out.print("请选择你需要兑换的礼品编号:");
int presentId=sc.nextInt();
if(presentId<k)
{
int overplus  =0;
overplus=scores[m]-Jscores[presentId];
if(overplus>0)
{
System.out.print("你成功兑换了"+name[presentId]+",你还有"+overplus+"分"+"\n");
scores[m]=overplus;
}
else
{
System.out.println("你积分不够,无法兑换礼品!");
}
}
else
{
System.out.println("该礼品不存在。");
}
}
}
else
{
System.out.println("你输入的帐户不存在。");
}
}
catch(Exception e)
{
System.out.println("你输入有误!");
}
}
}
import java.util.Scanner;
/**
* @since 主要功能模块:登陆信息,主菜单的功能,会员管理信息,书籍管理信息。
* @version 2010.3.26
*修改人员:
* @author 胡火云
*/
public class FunctionBlocks
{
/**
* 登陆信息
* @param id 会员账号
* @param age 会员年龄
* @param scores 会员积分
* @param book 书籍名称
* @param price 书籍价格
* @param name 礼品名称
* @param Jscores 礼品积分
* @return 布尔类型
*/
public static boolean function_Begin(int [] id,int age[],int scores[],String book[],float price[],String name[],int Jscores[])
{
//login是为Function_Menu中的如果发生5就返回主菜单而准备的
boolean login=false;
Scanner sc=new Scanner(System.in);
//调出登陆菜单菜单
BeginMenu.Menu_1();
System.out.print("请选择:");
//进入功能选择
while(true)
{
String choice=sc.next();
if(choice.equals("1"))
{
if(LandSystem.Land())
{
function_Menu(id,age,scores,book,price,name,Jscores);
login=true;
}
break;
}
else if(choice.equals("2"))
{
System.out.print("谢谢你的使用,程序已退出!");
//系统正常退出
System.exit(0);
}
else
{
System.out.print("输入错误,请重新选择:");
}
}
//返回一个布尔值
return login;
}
/**
* 主菜单的功能
* @param id 会员账号
* @param age 会员年龄
* @param scores 会员积分
* @param book 书籍列表
* @param price 书籍价格
* @param name 礼品名称
* @param Jscores 礼品积分
*/
public static void function_Menu(int id[] ,int age[],int scores[],String book[],float price[],String name[],int Jscores[])
{
Scanner sc=new Scanner(System.in);
//进入主菜单
while(true)
{
BeginMenu.Menu_2();
System.out.print("请选择,输入数字:");
String n=sc.next();
if(n.equals("1"))
{
BeginMenu.Menu_3();
function_Admin(id,age,scores,book,price,name,Jscores);
}
else if(n.equals("2"))
{
BeginMenu.Menu_4();
function_Book(id,age,scores,book,price,name,Jscores);
}
else if(n.equals("3"))
{
System.out.println("书店管理销售系统>购物结算");
System.out.println("************书籍列表************");
BooksInfo.seeBookInfo(book, price);
System.out.println("*******************************");
System.out.print("请输入会员号:");
try
{
int InputId=sc.nextInt();
GoodsBalance.balance(id, scores, book, price,InputId);
}
catch(Exception e)
{
System.out.println("用户账户输入错误!");
FunctionBlocks.function_Menu(id, age, scores, book, price, name, Jscores);
}
}
else if(n.equals("4"))
{
ExchangePresent.Exchange(id, scores, name, Jscores);
}
else if(n.equals("5"))
{
//注销返回开始登陆时的菜单如果返回true就进入主菜单
if(FunctionBlocks.function_Begin(id,age,scores,book,price,name,Jscores))
{
//调用主菜单
function_Menu(id,age,scores,book,price,name,Jscores);
}
}
else
{
System.out.println("输入错误,必须是1-5之间的整数类型!");
}
}
}
/**
* 会员管理信息
* @param id 会员账号
* @param age 会员年龄
* @param scores 会员积分
* @param book 书籍名称
* @param price 书籍价格
* @param name 礼品名称
* @param Jscores 礼品积分
*/
public static void function_Admin(int id[],int age[],int scores[],String book[],float price[],String name[],int Jscores[])
{
System.out.println("书店管理销售系统>会员管理");
Scanner sc=new Scanner(System.in);
System.out.print("请选择功能:");
//进入会员管理菜单
while(true)
{
String n=sc.next();
if(n.equals("1"))
{
UserInfo.showUserInfo(id, age, scores);
}
else if(n.equals("2"))
{
System.out.println("书店管理销售系统>会员信息管理>新增会员信息");
System.out.print("请输入会员账号:");
try
{
int Id=sc.nextInt();
UserInfo.addUserInfo(id, age, scores, Id, book, price, name, Jscores);
}
catch(Exception e)
{
System.out.println("输入的内容必须是整数类型的数字!");
//调出会员管理菜单
BeginMenu.Menu_3();
//调用主要功能模块中的会员管理方法让用户再次选择功能
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
else if(n.equals("3"))
{
System.out.println("书店管理销售系统>会员信息管理>修改会员信息");
System.out.print("请输入会员号:");
//try捕获异常catch处理异常
try
{
int ID=sc.nextInt();
UserInfo.rework(id, age, scores, book, price, name, Jscores, ID);
}
catch(Exception e)
{
System.out.println("输入的会员账号必须是整数类型的数字!");
//调出会员管理菜单
BeginMenu.Menu_3();
//调出会员管理菜单
FunctionBlocks.function_Admin(id, age, scores, book, price, name, Jscores);
}
}
else if(n.equals("4"))
{
UserInfo.deleteUser(id, age, scores);
}
else if(n.equals("m"))
{
function_Menu(id,age,scores,book,price,name,Jscores);
}
else if(n.equals("u"))
{
BeginMenu.Menu_3();
function_Admin(id,age,scores,book,price,name,Jscores);
}
else
{
System.out.println("输入错误,请选择会员管理菜单中显示的数字或字母!");
}
//因为这是个死循环不会走打到死循环的外面,除非调用方法
System.out.print("请按"+"\'"+"u"+"\'"+"返回会员管理菜单,或者选择功能:");
}
}
/**
* 书籍管理信息
* @param id 会员账号
* @param age 会员年龄
* @param scores 会员积分
* @param book 书籍名称
* @param price 书籍价格
* @param name 礼品名称
* @param Jscores 礼品积分
*/
public static void function_Book(int id[],int age[],int scores[],String book[],float price[],String name[],int Jscores[])
{
System.out.println("书店管理销售系统>书籍管理");
Scanner sc=new Scanner(System.in);
//进入书籍管理菜单
while(true)
{
System.out.print("请选择功能:");
String s=sc.next();
char n=s.charAt(0);
if(n=='1')
{
System.out.println("书店管理销售系统>书籍管理>书籍列表:");
BooksInfo.seeBookInfo(book, price);
}
else if(n=='2')
{
System.out.println("书店管理销售系统>书籍管理>添加书籍");
System.out.print("请输入要添加的书的书名:");
String BookName=sc.next();
while(true)
{
BooksInfo.addBook(id, age, scores, book, price, name, Jscores, BookName);
}
}
else if(n=='3')
{
BooksInfo.deleteBook(book, price);
}
else if(n=='4')
{
System.out.print("请输入要修改的书籍:");
String BookName=sc.next();
while(true)
{
BooksInfo.reworkBook(id, age, scores, book, price, name, Jscores,BookName);
}
}
else if(n=='m')
{
FunctionBlocks.function_Menu(id, age, scores, book, price,name,Jscores);
}
else if(n=='b')
{
BeginMenu.Menu_4();
FunctionBlocks.function_Book(id, age, scores, book, price,name,Jscores);
}
else
{
System.out.println("输入错误,请输入书籍管理菜单中显示的数字或字母!");
}
System.out.println("请按"+"\'"+"b"+"\'"+"返回书籍管理菜单,或者选择功能。");
}
}
}
import java.util.Scanner;

/**
* @since 物品结算。
* @version 2010.3.26
*修改人员:
* @author 胡火云
*/
public class GoodsBalance
{
/**
* 结算的内部功能
* @param id 会员账号
* @param scores 会员积分
* @param book 书籍列表
* @param price 书籍价格
* @return 购买书籍总价格
*/
static boolean b=true;
static float sumPrice=0.0f;
public static float balance(int id[],int scores[],String book[],float price[],int name)
{
Scanner sc=new Scanner(System.in);
try
{
int k,l;
//判断会员的最大数量
for(k=0;k<id.length;k++)
{
if(id[k]==0)
{
break;
}
}
//判断输入会员的位置
for(l=0;l<k;l++)
{
if(name==id[l])
{
break;
}
}
//计数用的
int i,j;
//接收用户输入书籍的数量
int num=0;
if(l<k)
{
//Num是用来存放输入书籍编号的
int Num;
//这是一个死循环,用来判断用户是否想继续输入,如果是否就直接跳出当前循环
do
{
if(b)
{
System.out.print("请输入书籍编号:");
    Num=sc.nextInt();
//获取最大书籍编号
for(i=0;i<book.length;i++)
{
if(book[i]==null)
{
break;
}
}
//获取输入编号的位置
for(j=0;j<i;j++)
{
if(Num==j)
{
break;
}
}
//判断是否存在输入的编号
if(j<i)
{
System.out.print("请输入要购买的数量:");
num=sc.nextInt();
// 计算总价
sumPrice=sumPrice+price[j]*num;
}
else
{
System.out.println("你输入的编号不存在!");
}
}
else
{
break;
}
//调用是否继续方法
b=GoodsBalance.true_or_false();
}
while(true);
//计算,传值。
System.out.println("金额总计: ¥"+sumPrice);
System.out.print("交费金额: ¥");
float coin=sc.nextFloat();
//判断用户的交费金额是否小于金额总计
if((coin-sumPrice)>=0)
{
System.out.print("找零: ¥"+(coin-sumPrice)+"\n");
int JScores=(int)sumPrice/10;
System.out.print("消费积分: "+JScores+"分"+"\n");
scores[l]=JScores+scores[l];
}
else
{
//重新赋值以防以后b一直为false;
b=true;
//购买失败就把总金额复位
sumPrice=0.0f;
System.out.println("购买失败!");
}
}
//判断该会员是否存在
else
{
System.out.println("该会员不存在,购买失败!");
}
}
catch(Exception e)
{
System.out.println("输入错误,输入内容必须是整数!");
//如果异常怎么实现提示再输入
GoodsBalance.balance(id, scores, book, price, name);
}
//整个程序运行完成之后吧b的给设回来
b=true;
return sumPrice;
}
/**
* 判断是否继续进行购物结算
* @return 是否继续的布尔类型
*/
public static boolean true_or_false()
{
Scanner sc=new Scanner(System.in);
System.out.print("是否继续?(y/n):");
String s=sc.next();
//b是用来判断是否继续的的标示
if(s.equals("y"))
{
b=true;
}
else if(s.equals("n"))
{
b=false;
}
else
{
b=false;
System.out.println("输入错误,只能输入(Y/N)!");
GoodsBalance.true_or_false();
}
return b;
}
}
import java.util.Scanner;
/**
* @since 登陆系统。
* @version 2010.3.26
* @author 胡火云
*/
public class LandSystem
{
/**
* 管理登陆信息
* @return 验证是否登录成功的布尔类型
*/
public static boolean Land()
{
boolean b=false;
for(int i=3;i>0;i--)
{
Scanner sc=new Scanner(System.in);
System.out.print("请输入账户:");
String name=sc.next();
System.out.print("请输入密码:");
String word=sc.next();
//System.out.println(word.replaceAll("\\w", "*"));
if(name.equals("svse")&&word.equals("svse"))
{
b=true;
System.out.println("书店管理销售系统!");
break;
}
else if(i==1)
{
System.out.println("你连续三次输入错误,程序被迫退出。");
System.exit(0);
}
else
{
System.out.println("账户错误或密码错误,你还有"+(i-1)+"次机会,请重新输入。");
}
}
//System.out.println("连续三次输入错误,程序被迫退出。");
//这是登陆系统的返回值(类FunctionBlocks)如果为true就调出主菜单
return b;
}
}
/**
* @since 主方法。
* @version 2010.3.26
* @author 胡火云
*/
public class MainMeans
{
/**
* 函数的入口
* @param args 参数列表
*/
public static void main(String [] args)
{
//用户帐户
int ID[]=InfoDate.Id();
//用户年龄
int Age[]=InfoDate.Age();
//用户积分
int Scores[]=InfoDate.Scores();
//书籍名称
String book[]=BooksDate.Book();
//书籍价格
float price[]=BooksDate.Price();
//礼品信息
String name[]=DatePresent.presentName();
//兑换礼品积分
int Jscores[]=DatePresent.presentScores();
//程序的开始
FunctionBlocks.function_Begin(ID,Age,Scores,book,price,name,Jscores);
}
}
分享到:
评论

相关推荐

    Java课程大作业-图书销售管理系统源码+文档说明+数据库sql+界面截图

    使用JavaSE+Javaawt+MySQL搭建的一个图书销售管理系统,主要涉及一个数据库,内含四张SQL表,管理员信息表,用户信息表,订单信息表,图书信息表。其中用户表,图书表,订单表之间建立了关联关系。系统拥有 用户管理...

    基于java的-579-图书销售管理信息系统--LW-源码.zip

    提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java图书销售管理系统源码下载

    我们在学习了Java各种基础知识之后,最需要做的就是学会应用,开发一些项目把所学的知识应用起来,下面的这个《图书销售管理系统》实战项目就是比较好的练手教程。 开发环境:Java、MySQL 相关工具及技术:MVC设计...

    图书销售管理系统课程设计.docx

    清华大学出版社 [2]《 Thinking in JAVA(Third Edition)》,Bruce Eckel,机械工业出版社 [3]《Java 2核心技术(第6版) 卷I:基础知识》,Cay S.Horstmann,Gary Cornell,程峰等译,机械工业出版社 图书销售管理系统...

    Java毕业设计-基于springboot开发的图书进销存管理系统-毕业论文(附毕设源代码).rar

    本项目是一款基于Spring Boot框架开发的图书进销存管理系统,旨在通过现代化的技术手段,实现对图书库存、销售、进货等业务流程的高效管理。该系统不仅提升了图书管理的便捷性和准确性,同时也为图书行业提供了强大...

    基于JAVA的网上图书销售系统的设计与实现

    本系统分为前台销售系统和后台管理系统,前台用户系统,为用户提供:用户注册、购物车、商品浏览、订单管理等主要功能。后台管理系统,为管理员提供:管理员信息、网站用户信息 、图书信息、订单信息等功能。 ...

    图书销售管理系统课程设计(doc-17页).doc

    程峰等译,机械工业出版社 [4]《Java2参考大全(第四版)》,[美]Herbert Schildt著,张玉清、吴浦峰、尚勇等译,清华大学出版社 附录(程序源代码): //java图书销售管理系统 import java.io.*; import java.util.*...

    基于Swing的Java图书管理信息系统

    这个系统是使用Swing的基础知识进行开发的,主要包括图书的增删改查,销售的增删改查,库存的增删改查等,是一个比较简单的Demo项目,下面是这个项目的局部细节的截图信息。

    毕业设计基于Java的在线购物系统的设计与实现(源代码+系统).rar

    本系统是一个中小型的电子商务系统----网上图书超市,可以为各类用户提供方便的在线买书环境,符合目前国内流行的电子商务模式。用户可以在系统中实现注册、浏览图书、搜索查询图书、下订单、处理订单等功能;管理员...

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    基于JAVA jsp+sql网络书店销售管理系统的毕业设计,采用Access做系统后台数据库,Dreamweaver为网页制作工

    系统经测试和试运行后基本达到设计要求,系统的图书查找功能和管理员管理图书功能,将为书店的销售和管理带来极大的方便。网络书店销售管理系统使用JSP技术、采用Access做系统后台数据库,Dreamweaver为网页制作工具...

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

Global site tag (gtag.js) - Google Analytics