您的位置:首页 > 编程语言 > Java开发

Java中以类,对象的思想来实现超市管理系统

2016-05-30 08:59 751 查看
超市管理系统使用类的实例化来实现

今天工作:

1.超市管理系统完成客户系统的设计(添加客户信息,删除客户信息,更改客户信息,抽奖系统)

2.抽象学生管理系统:教师类,学生类,学校类,课程类,并写了教

问题:

类之间的关联 条理不是很清晰

解决方案:

关联分解,尽量分解成小的,单一的关联

以下是超市管理系统的代码:(主要用类,对象,方法来实现)package ClassTest;

import java.util.InputMismatchException;

import java.util.Scanner;

public class SuperMarketManage {
Admin2 [] admin2 = new Admin2[10];
Account2 [] account2 = new Account2[10];
static Scanner input = new Scanner(System.in);
int userCount = 0;
int loginTimes = 1;
int accountID = 0;
int account2Count=0;
//演示主方法
public void begin(){
initData();
mainView();

}
//初始化admin数据
public void initData(){
admin2[0] = new Admin2("liubei", "123", "河北", "13541254185", "123545642");
admin2[1] = new Admin2("zhangfei", "123", "山东", "13541254185", "123545642");
admin2[2] = new Admin2("zhaoyun", "123", "常山", "13541254185", "123545642");
admin2[3] = new Admin2("guanyu", "123", "湖北", "13541254185", "123545642");
userCount = 4;
}
//主菜单界面
public void mainView(){
boolean going=true;
do{
System.out.println("*************************");
System.out.println("\t1.登录\n\t2.注册\n\t3.退出");
System.out.println("**************************");
System.out.println("选择操作编号:");
//调用checkInputType来判断输入是否是数字
if(checkInputType()){
int choice_mainView = input.nextInt();
if(choice_mainView<1 || choice_mainView>3){
System.out.println("操作号输入失误");
}else{
if(choice_mainView == 1){
//调用登录方法
login();
//登录成功后进入用户系统
//用户系统
userSystem();

}else if(choice_mainView == 2){
//调用注册方法
register();
}else {
if(choice_mainView == 3){
//调用退出方法
exit();
}
}
}
}else{
System.out.println("操作失误");
continue;
}
}while(going);
}
//登录方法
public void login(){
do {
System.out.println("请依次输入您的账号和密码:(失败3次系统回到主界面)");
String userName = input.next();
String pwd = input.next();
boolean isLoginSuccess = check_login(userName, pwd);//调用核对登录用户名和密码方法
if(isLoginSuccess){
System.out.println("登录成功");
break;
}
else{
System.out.println("登录失败");
loginTimes++;
continue;
}
} while (loginTimes < 4);
}
//注册方法
public void register(){
//调用无参构造函数
admin2[userCount] = new Admin2();

// boolean isGo = true;
System.out.println("欢迎进入注册界面\n请输入您的注册信息:");
do {
System.out.println("账号:");
String userName = input.next();
//调用查询用户名方法
if(!search(userName)){
System.out.println("用户已存在,请重新注册!");
continue;
}else{
admin2[userCount].setUserName(userName);
}
System.out.println("密码:");
String pwd = input.next();
admin2[userCount].setUserPwd(pwd);
System.out.println("重复密码:");
String pwdSecond = input.next();
if(!pwdSecond.equals(pwd)){
System.out.println("两次输入密码不一致,请重新注册");
continue;
}
System.out.println("手机号码:");
//调用setPhoneNum方法,返回Boolean来判断手机号码是否正确
boolean isGo_phoneNum = admin2[userCount].setPhoneNum(input.next());
if(isGo_phoneNum){
//已经赋值无需再赋值

}else{
System.out.println("手机号码错误,重新填入注册信息!");
continue;
}
System.out.println("身份证号:");
admin2[userCount].setIdCardNum(input.next());
System.out.println("地址:");
admin2[userCount].setAddr(input.next());
System.out.println("成功注册");
userCount++;
break;
} while (true);
}
//login核对用户登录账号密码
public boolean check_login(String userName,String pwd){
for(int i = 0;i < userCount;i++){
if(admin2[i].getUserName().equals(userName)){
if(admin2[i].getUserPwd().equals(pwd)){
return true;
}

103fa
}else{
continue;
}
}
return false;
}
//查询方法
public boolean  search(String userName){
boolean isGo = true;
for(int i = 0;i<userCount;i++){
if(admin2[i].getUserName().equals(userName)){
isGo = false;
break;
}
else{
continue;
}
}
return isGo;
}

//用户系统
public void userSystem(){
boolean goOrNot = true;
do {
String str="*************************";
System.out.println("用户系统");
System.out.println("*************************");
System.out.println("\t1.客户管理系统\n\t2.抽奖系统\n\t3.退出");
System.out.println("**************************");
System.out.println("输入操作序列号:");
int choice_second = input.nextInt();
if(choice_second == 1){
do{
System.out.println("选择操作:\n"+str+"\n\t1.添加用户信息\n\t2.显示所有用户信息\n\t3.删除用户\n\t4.修改修护信息\n\t5.返回上一级菜单\n"+str);
System.out.println("输入操作编号:");
if(checkInputType()){
int choice_all = input.nextInt();
switch (choice_all) {
case 1:
do{
System.out.println("请依次输入用户信息:1.姓名     2.生日    3.积分");
accountID++;
String name = input.next();
String birthday = input.next();
int score = input.nextInt();
//调用对象的构造方法
account2[accountID-1] = new Account2(name,birthday,score,accountID);
account2Count++;
System.out.println("是否继续?(y/n)");
char choice_account = input.next().charAt(0);
if(choice_account == 'y')
continue;
else{
break;
}
}while(true);
break;
case 2:
//显示客户信息
System.out.println("姓名\t生日\t积分\t用户ID");
for(int i = 0 ; i < accountID ; i++){
if(account2[i].accountID == 0){
continue;
}else{
account2[i].show();
}
}
break;
case 3:
//调用删除客户方法
delete_account();
break;
case 4:
change_account_score();
break;
case 5:
goOrNot = false;
break;
default:
System.out.println("输入错误!");
break;
}
}else{
System.out.println("操作失误,返回上一级菜单");
break;
}
}while(goOrNot);
}else if(choice_second == 2){
//进入抽奖系统
System.out.println("欢迎进入抽奖系统!");
//调用抽奖方法
luckDraw();

}else if(choice_second == 3){
System.out.println("安全退出");
exit();
}else {
System.out.println("胡乱操作!系统终止!");
System.exit(0);
}

} while (true);
}
//判断输入是否为数字方法1
public int checkInputType0(){
int x=-1;
try {
x=input.nextInt();
} catch (InputMismatchException e) {
x=-1;
input.nextLine();
}
return x;
}
//判断输入是否为数字方法2
public boolean checkInputType(){
//可以用if(!input.hasNextInt){}来代替下面的语句
if (!SuperMarketManage.input.hasNextInt()){
SuperMarketManage.input.nextLine();
return false;
}
else 
return true;
}
//退出方法
public void exit() {
System.out.println("安全退出");
admin2=null;
input.close();
System.exit(0);
}
//抽奖方法
public void luckDraw(){
do {
System.out.println("请输入你的抽奖数字(1-2位正整数):");
int num = input.nextInt();
int luck_num = (int)(Math.random()*100+1);
if(num == luck_num){
System.out.println("恭喜你中奖了!");
}else{
System.out.println("很可惜,没中奖,中奖号码是:"+luck_num);
}
System.out.println("是否继续抽奖?y/n");
char isGo = input.next().charAt(0);
if(isGo == 'y'){
continue;
}else {
break;
}
} while (true);
}
//客户删除方法
public void delete_account(){
do {
System.out.println("输入你想删除的用户的ID:");
if(checkInputType()){
int input_useraccountID_del = input.nextInt();
if(input_useraccountID_del > 0 && input_useraccountID_del <= account2Count)
for(int i=0;i<=account2Count;i++){
if(account2[i].accountID == input_useraccountID_del){
account2[i].accountID = 0;
System.out.println("success!");
break;
}else{
continue;
}
}else{
System.out.println("没有此用户");
}
}else{
System.out.println("操作失误返回上一级");
break;
}
System.out.println("是否继续?y/n");
char isGo = input.next().charAt(0);
if(isGo == 'y'){
continue;
}else {
break;
}

} while (true);
}

//客户修改方法
public void change_account_score(){
System.out.println("输入你要修改积分的用户ID:");
int input_accountID=input.nextInt();
for(int i=0;i<=account2Count;i++){
if(account2[i].accountID==input_accountID){
System.out.println("输入新的积分:");
if(checkInputType()){
account2[i].score=input.nextInt();
System.out.println("success!");
break;
}else{
System.out.println("操作失误返回上一级");
break;
}
}else{
continue;
}
}
}

}

class Admin2{
private String userName;
private String userPwd;
private String addr;
private String phoneNum;
private String idCardNum;

//注册的时候用于初始化
public Admin2(){}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getUserPwd() {
return userPwd;
}

public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}

public String getAddr() {
return addr;
}

public void setAddr(String addr) {
this.addr = addr;
}

public String getPhoneNum() {
return phoneNum;
}
//判断手机号码是否正确?
//1.是否为11位
//2.第一个数字是否是1
public boolean setPhoneNum(String phoneNum) {
boolean isGo=false;
if(phoneNum.length()==11){
if(phoneNum.indexOf('1')==0){
this.phoneNum = phoneNum;
isGo=true;
}
}
return isGo;
}
public String getIdCardNum() {
return idCardNum;
}

public void setIdCardNum(String idCardNum) {
this.idCardNum = idCardNum;
}

public Admin2(String userName,String userPwd,String addr,String phoneNum,String idCardNum){
this.userName = userName;
this.userPwd = userPwd;
this.addr = addr;
this.phoneNum = phoneNum;
this.idCardNum = idCardNum;
}
public void show(){
System.out.println(userName+"\t"+userPwd+"\t"+addr+"\t"+phoneNum+"\t"+idCardNum);
}

}

class Account2{
String name;
String birthday;
int score;
int accountID;
//无参构造函数用于初始化
public Account2() {

}
public Account2(String name,String birthday,int score,int accountID){
this.name=name;
this.birthday=birthday;
this.score=score;
this.accountID=accountID;
}
//显示用户信息
public void show(){
System.out.println(name+"\t"+birthday+"\t"+score+"\t"+accountID);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: