目录
图书管理系统--versions1.0:
图书管理系统--versions2.0:
图书管理系统--versions3.0:
一、项目要求:
1)通过账号控制图书管理系统,账号分为管理员账号和普通用户账号
1. 管理员账号和普通用户账号都可以使用手机号码+密码、身份证号码+密码的形式登录,登录方式二选一
2.管理员账号和普通账号除了手机号码、身份中号码、密码三个数据之外,还有姓名、性别、专业、住址信息
2)启动系统后,显示登录账号、注册账号、退出登录三个模块
登录账号:
- 显示管理员登录
- 用户登录两个模块
注册账号:
- 显示注册管理员
- 注册用户两个模块
退出登录:
结束程序运行
3)登录账号成功后,根据账号的性质来显示不同的模块:
登录管理员账号成功后,显示如下模块:
- 查看所有图书,图书显示哪些信息,这里设计的信息有书名,书的价格,书的数量
- 添加图书
- 修改图书
- 删除图书
- 查看所有普通用户信息
- 查看管理员账号信息
- 修改管理员账号信息
- 退出系统
登录普通账号成功后,显示如下模块:
- 查看所有图书,图书显示哪些信息,你自行设计
- 借阅图书
- 归还图书
- 显示用户信息(只能查看自己的用户信息)
- 修改用户信息(只能修改自己的用户信息)
- 退出系统
二、项目环境
(1)开发工具:IDEA、JDK17
(2)开发语言:Java
三、项目使用的知识点
(1)理解程序基本概念——程序、变量、数据类型
(2)顺序、选择、循环、跳转语句
(3)数组
四、项目代码
这里说明一下,为了快速写出项目,前面的用户管理的八个属性均采用String类型存储,方便自己后续代码的编写及相关功能的实现,有不足或者想要自己实现的功能部分读者可以自行修改代码实现。
package com.code;
import java.util.Scanner;
/**
* @Author @南初
* @Create 2024/1/12 14:27
* @Version 1.0
*/
public class BooksManagementSystem {
public static void main(String[] args) {
Scanner scan =new Scanner(System.in);
// 管理员 普通用户
// 管理员账号和普通用户账号都可以使用手机号码+密码、身份证号码+密码的形式登录
// 管理员账号和普通账号除了手机号码、身份中号码、密码三个数据之外,还有姓名、性别、专业、住址信息
String[] adminUser = new String[3];
String[] normalUser =new String[8];
// 使用二维数组存储 手机号码+密码、身份证号码 手机和身份证公用一个密码
String[] adminPhoneNumber =new String[3];
String[] adminIdentityNumber = new String[3];
String[] adminPassword =new String[3];
String[] normalPhoneNumber =new String[8];
String[] normalIdentityNumber = new String[8];
String[] normalPassword =new String[8];
// 姓名、性别、专业、住址信息
String[] adminName = new String[3];
String[] adminSex = new String[3];
String[] adminCareer =new String[3];
String[] adminAddress =new String[3];
String[] normalName = new String[8];
String[] normalSex = new String[8];
String[] normalCareer =new String[8];
String[] normalAddress =new String[3];
// 开始各初始化一个管理员和普通用户
adminUser[0] = "root";
adminPhoneNumber[0] ="1111";
adminIdentityNumber[0] ="2222";
adminPassword[0] ="123456";
adminName[0] = "张三";
adminSex[0] = "男";
adminCareer[0] ="计算机";
adminAddress[0] ="安徽";
normalUser[0] = "normal";
normalPhoneNumber[0] ="1234";
normalIdentityNumber[0] ="5678";
normalPassword[0] ="654321";
normalName[0] ="梦洛";
normalSex[0] = "女";
normalCareer[0] ="艺术";
normalAddress[0]="北京";
// 定义图书相关变量
String[] bookName =new String[20];
double[] bookPrice =new double[20];
int[] bookNum =new int[20];
bookName[0] = "JAVA";
bookPrice[0] =30.0;
bookNum[0] =20;
bookName[1] = "Python";
bookPrice[1] =25.0;
bookNum[1] =20;
bookName[2] = "C语言程序设计";
bookPrice[2] =35.0;
bookNum[2] =20;
int numone1=0; //记录管理员个数
int numone2=0; //记录普通用户数量
int BOOKNUM=2; // 记录书本类型数量
while(true){
System.out.println("----------------请选择登录方式----------------");
System.out.println(" 1、登录账号");
System.out.println(" 2、注册账号");
System.out.println(" 3、退出登录");
System.out.print("请输入要选择要操作的序号(只能输入1,2,3):");
int loginNum =scan.nextInt();
// 校验输入的序号,只能是1到3
while(true){
if(loginNum == 1||loginNum == 2 ||loginNum == 3){
break;
}else{
System.out.print("请输入要选择要操作的序号(只能输入1,2,3):");
loginNum =scan.nextInt();
}
}
switch(loginNum){
case 1:
System.out.println("********欢迎进入登录账号页面********");
System.out.println("1.管理员登录:");
System.out.println("2.普通用户登录:");
System.out.print("请输入要选择要操作的序号(只能输入1,2):");
int enterNum =scan.nextInt(); //enterNum登录数字 1.管理员 2.用户
while(true){
if(enterNum == 1||enterNum == 2 ){
break;
}else{
System.out.print("输入错误,请从从新输入要选择要操作的序号(只能输入1,2):");
enterNum =scan.nextInt();
}
}
if(enterNum==1) {
System.out.print("请输入你要登录的形式(1.手机号码+密码 2.身份证号码+密码):");
int verifyNum = scan.nextInt(); //verifyNum 验证方式数字
//只能选择一种登录方式
while (true) {
if (verifyNum == 1 || verifyNum == 2) {
break;
} else {
System.out.print("\n输入错误,请输入要选择要操作的序号(只能输入1,2):");
verifyNum = scan.nextInt();
}
}
// 1.手机号码+密码 2.身份证号码+密码
System.out.print("请输入你要登录的管理员序号:");
int adminnumone = scan.nextInt(); // 登录管理员账号序号
if (verifyNum == 1) { // 管理员用户
// 管理员登录验证 手机号码+密码
System.out.println("\n请输入你的验证信息:");
while(true){
if(adminUser[adminnumone]==null){
System.out.print("\n你输入的管理员用户不存在,请重新输入,");
adminnumone = scan.nextInt();
}else{
break;
}
}
System.out.print("\n请输入管理员账号(默认root):");
String adminUser1 = scan.next();
System.out.print("\n请输入手机号码");
String adminPhoneNumber1 = scan.next();
System.out.print("\n请输入密码:");
String adminPassword1 = scan.next();
while (true) {
if (adminUser1.equals(adminUser[adminnumone]) && adminPhoneNumber1.equals(adminPhoneNumber[adminnumone]) && adminPassword1.equals(adminPassword[adminnumone])) {
break;
} else {
System.out.println("输入信息错误,请重新输入信息!");
System.out.print("请输入管理员账号序号(默认root):");
adminUser1 = scan.next();
System.out.print("\n请输入手机号码:");
adminPhoneNumber1 = scan.next();
System.out.print("\n请输入密码:");
adminPassword1 = scan.next();
}
}
} else if (verifyNum == 2) { // 管理员登录验证 身份证号码+密码
System.out.print("请输入账号(默认root):");
String adminUser2 = scan.next();
System.out.print("\n请输入身份证号码:");
String adminIdentityNumber2 = scan.next();
System.out.print("\n请输入密码:");
String adminPassword2 = scan.next();
while (true) {
if (adminUser2.equals(adminUser[adminnumone]) && adminIdentityNumber2.equals(adminPhoneNumber[adminnumone]) && adminPassword2.equals(adminPassword[adminnumone])) {
break;
} else {
System.out.println("输入信息错误,请重新输入信息!");
System.out.print("请输入账号(默认root):");
adminUser2 = scan.next();
System.out.print("\n请输入手机号码");
adminIdentityNumber2 = scan.next();
System.out.print("\n请输入密码:");
adminPassword2 = scan.next();
}
}
}
while(true){
System.out.println("\n-----------欢迎进入管理员账号页面-----------");
System.out.println("1、查看所有图书");
System.out.println("2、添加图书");
System.out.println("3、修改图书");
System.out.println("4、删除图书");
System.out.println("5、查看所有普通用户信息");
System.out.println("6、查看管理员账号信息");
System.out.println("7、修改管理员账号信息");
System.out.println("8、退出系统");
System.out.print("请输入你选择的功能");
int adminnum = scan.nextInt(); // adminnum 管理员账号页面功能查看
while(true){
if(adminnum>=1&&adminnum<=8){
break;
}else{
System.out.print("输入错误,请重新输入你选择的功能:");
adminnum = scan.nextInt();
}
}
if(adminnum ==1){ //1、查看所有图书
System.out.println("序号\t\t书名\t\t价格\t\t数量");
for(int i=0;i<=BOOKNUM;i++){
System.out.println(i+"\t\t"+bookName[i]+"\t\t"+bookPrice[i]+"\t\t"+bookNum[i]);
}
continue;
} else if (adminnum==2) { //2、添加图书
++BOOKNUM;
System.out.print("请输入图书名:");
String bookname = scan.next();
bookName[BOOKNUM] =bookname;
System.out.print("请输入图书价格:");
double bookprice = scan.nextDouble();
bookPrice[BOOKNUM] =bookprice;
System.out.print("请输入图书数量:");
int booknum = scan.nextInt();
bookNum[BOOKNUM] =booknum;
continue;
} else if (adminnum==3) { //3、修改图书 //这里设计的是符合图书序号的所有图书信息都可以修改
System.out.print("请输入修改图书序号,目前在册图书种类(0~"+BOOKNUM+"):");
int order=scan.nextInt(); //修改图书序号
while(true){
if(order>=0&&order<=BOOKNUM){
break;
}else {
System.out.println("输入错误,请输入(0~"+BOOKNUM+")内数字:");
order=scan.nextInt();
}
}
System.out.print("\n请输入图书名:");
String bookname = scan.next();
bookName[order] =bookname;
System.out.print("\n请输入图书价格:");
double bookprice = scan.nextDouble();
bookPrice[order] =bookprice;
System.out.print("\n请输入图书数量:");
int booknum = scan.nextInt();
bookNum[order] =booknum;
continue;
} else if (adminnum==4) { //4、删除图书
System.out.println("请输入删除图书序号:");
int order=scan.nextInt(); //修改图书序号
if(order>=0&&order<BOOKNUM){
for(int i=order;i<BOOKNUM; i++){
bookName[i] = bookName[i+1];
bookPrice[i]=bookPrice[i+1];
bookNum[i]=bookNum[i+1];
}
BOOKNUM--;
} else if (order == BOOKNUM) {
bookName[order] = null; // 防止数据残留导致出现的问题
bookPrice[order]=0;
bookNum[order]=0;
BOOKNUM--;
}
continue;
} else if (adminnum==5) { //5、查看所有普通用户信息
System.out.println("所有普通用户信息如下:");
System.out.println("账户名\t\t"+"手机号\t\t"+"身份证号\t\t"+"密码\t\t"+"姓名\t\t"+"性别\t\t"+"专业\t\t"+"住址\t\t");
for(int i=0;i<=numone2;i++){
System.out.println(
normalUser[i]+"\t\t"+normalPhoneNumber[i]+"\t\t"+
normalIdentityNumber[i]+"\t\t"+normalPassword[i]+"\t\t"+
normalName[i]+"\t\t"+normalSex[i]+"\t\t"+
normalCareer[i]+"\t\t"+normalAddress[i]);
}
continue;
} else if (adminnum==6) { //6、查看管理员账号信息
System.out.println("目前共有管理员账号:"+numone1+"个");
System.out.println("所有管理员账号信息如下");
//账户名、手机号、身份证号、密码、姓名、性别、专业、住址信息
System.out.println("账户名\t\t"+"手机号\t\t"+"身份证号\t\t"+"密码\t\t"+"姓名\t\t"+"性别\t\t"+"专业\t\t"+"住址\t\t");
for(int i=0;i<=numone1;i++){
System.out.println(
adminUser[i]+"\t\t"+adminPhoneNumber[i]+"\t\t"+
adminIdentityNumber[i]+"\t\t"+adminPassword[i]+"\t\t"+
adminName[i]+"\t\t"+adminSex[i]+"\t\t"+
adminCareer[i]+"\t\t"+adminAddress[i]);
}
continue;
} else if (adminnum==7) { //7、修改管理员账号信息
System.out.println("请输入要修改管理员账号的的信息(1管理员账号名2手机号码3" +
"身份证号码4密码5姓名6性别7专业8住址信息):");
int adminchange =scan.nextInt(); // adminchange 修改序号
if(adminchange==1){ // 管理员账号名
System.out.print("\n请输入新的管理员账户名:");
String adminuser = scan.next();
adminUser[adminnumone] = adminuser;
} else if (adminchange==2) { // 手机号码
System.out.print("\n请输入新的手机号码:");
String adminphonenumber = scan.next();
adminPhoneNumber[adminnumone] = adminphonenumber;
} else if (adminchange==3) { // 身份证号码
System.out.print("\n请输入新的身份证号码:");
String adminidentitynumber = scan.next();
adminIdentityNumber[adminnumone] = adminidentitynumber;
} else if (adminchange==4) { // 密码
System.out.print("\n请输入新的密码:");
String adminpassword = scan.next();
adminPassword[adminnumone] = adminpassword;
} else if (adminchange==5) { // 姓名
System.out.print("\n请输入新的姓名:");
String adminname = scan.next();
adminName[adminnumone] = adminname;
} else if (adminchange==6) { // 性别
System.out.print("\n请输入新的性别:");
String adminsex= scan.next();
adminSex[adminnumone] = adminsex;
} else if (adminchange==7) { // 专业
System.out.print("\n请输入新的专业:");
String adminaddress= scan.next();
adminAddress[adminnumone] = adminaddress;
} else if (adminchange==8) { // 住址信息
System.out.print("\n请输入新的住址信息:");
String adminaddress = scan.next();
adminAddress[adminnumone] = adminaddress;
}
continue;
}else if (adminnum==8){ //8、退出系统
System.out.println("谢谢使用,欢迎下次光临!");
System.exit(0);;
}
}
} else if(enterNum == 2){ //普通用户
// 普通用户登录验证
System.out.print("请输入你要登录的形式(1.手机号码+密码 2.身份证号码+密码):");
int verifyNum = scan.nextInt(); //verifyNum 验证方式数字
//只能选择一种登录方式
while (true) {
if (verifyNum == 1 || verifyNum == 2) {
break;
} else {
System.out.print("\n输入错误,请重新输入要选择要操作的序号(只能输入1,2):");
verifyNum = scan.nextInt();
}
}
System.out.print("请输入你要登录的普通用户序号:");
int normalnumone = scan.nextInt(); // 登录普通用户账号序号
// 1.手机号码+密码 2.身份证号码+密码
if (verifyNum == 1) { // 普通用户
// 普通用户登录验证 手机号码+密码
System.out.print("\n请输入管理员账号(默认normal):");
String normalUser1 = scan.next();
System.out.print("\n请输入手机号码");
String normalPhoneNumber1 = scan.next();
System.out.print("\n请输入密码:");
String normalPassword1 = scan.next();
while (true) {
if (normalUser1.equals(normalUser[normalnumone]) && normalPhoneNumber1.equals(normalPhoneNumber[normalnumone]) && normalPassword1.equals(normalPassword[normalnumone])) {
break;
} else {
System.out.println("输入信息错误,请重新输入!");
System.out.print("\n请输入管理员账号序号(默认normal):");
normalUser1 = scan.next();
System.out.print("\n请输入手机号码:");
normalPhoneNumber1 = scan.next();
System.out.print("\n请输入密码:");
normalPassword1 = scan.next();
}
}
} else if (verifyNum == 2) { // 普通用户登录验证 身份证号码+密码
System.out.print("\n请输入账号(默认normal):");
String normalUser2 = scan.next();
System.out.print("\n请输入身份证号码:");
String normalIdentityNumber2 = scan.next();
System.out.print("\n请输入密码:");
String normalPassword2 = scan.next();
while (true) {
if (normalUser2.equals(normalUser[normalnumone]) && normalIdentityNumber2.equals(normalPhoneNumber[normalnumone]) && normalPassword2.equals(normalPassword[normalnumone])) {
break;
} else {
System.out.println("输入信息错误,请重新输入!");
System.out.print("\n请输入账号:");
normalUser2 = scan.next();
System.out.print("\n请输入手机号码:");
normalIdentityNumber2 = scan.next();
System.out.print("\n请输入密码:");
normalPassword2 = scan.next();
}
}
}
while(true){
System.out.println("\n-----------普通用户登录成功-----------");
System.out.println("1.查看所有图书");
System.out.println("2.借阅图书");
System.out.println("3.归还图书");
System.out.println("4.显示用户信息(只能查看自己的用户信息)");
System.out.println("5.修改用户信息(只能修改自己的用户信息)");
System.out.println("6.退出系统");
System.out.print("请输入你需要操作功能的数字:");
int onetwo1 = scan.nextInt(); // 选择功能数字
if(onetwo1==1){ // 1.查看所有图
System.out.println(" \t\t书名\t\t价格\t\t数量");
for(int i=0;i<=BOOKNUM;i++){
System.out.println(i+"\t\t"+bookName[i]+"\t\t"+bookPrice[i]+"\t\t"+bookNum[i]);
}
continue;
} else if (onetwo1==2) { // 2.借阅图书
System.out.print("\n请输入你要借阅图书序号:");
int numbook = scan.nextInt();
System.out.print("\n该图书还有"+bookNum[numbook]+"本");
System.out.print("\n请输入你要借的图书数量:");
int nums = scan.nextInt(); // 借阅数量
if((bookNum[numbook]-nums)>=0){
bookNum[numbook] -=nums ;
System.out.print("\n恭喜你借阅成功,该图书还剩余"+bookNum[numbook]+"本\n");
}else{
System.out.print("\n很遗憾,该图书已经全被借阅!");
}
continue;
} else if (onetwo1==3) { // 3.归还图书
System.out.print("\n请输入你要归还图书序号:");
int givenumbook = scan.nextInt();
System.out.print("\n该图书目前剩余"+bookNum[givenumbook]+"本");
System.out.print("\n请输入归还书本数目:");
int givenum = scan.nextInt();
System.out.print("\n恭喜你归还成功,现剩余该图书"+(bookNum[givenumbook]+=givenum)+"本");
continue;
} else if (onetwo1==4) { // 4.显示用户信息(只能查看自己的用户信息)
System.out.print("\n个人用户信息如下:");
System.out.println("账户名\t\t"+"手机号\t\t"+"身份证号\t\t"+"密码\t\t"+"姓名\t\t"+"性别\t\t"+"专业\t\t"+"住址\t\t");
System.out.println(
normalUser[normalnumone]+"\t\t"+normalPhoneNumber[normalnumone]+"\t\t"+
normalIdentityNumber[normalnumone]+"\t\t"+normalPassword[normalnumone]+"\t\t"+
normalName[normalnumone]+"\t\t"+normalSex[normalnumone]+"\t\t"+
normalCareer[normalnumone]+"\t\t"+normalAddress[normalnumone]);
} else if (onetwo1==5) { // 5.修改用户信息(只能修改自己的用户信息)
System.out.print("\n请输入你要修改的信息的选项(1普通用户账号名2手机号码" +
"3身份证号码4密码5姓名6性别7专业8住址信息):");
int normalchange =scan.nextInt(); // normalchange 修改序号
if(normalchange ==1){ // 管理员账号名
System.out.print("\n请输入新的管理员账户名:");
String normaluser = scan.next();
normalUser[normalnumone] = normaluser;
} else if (normalchange ==2) { // 手机号码
System.out.print("\n请输入新的手机号码:");
String normalphonenumber = scan.next();
normalPhoneNumber[normalnumone] = normalphonenumber;
} else if (normalchange ==3) { // 身份证号码
System.out.print("\n请输入新的身份证号码:");
String normalidentitynumber = scan.next();
normalIdentityNumber[normalnumone] = normalidentitynumber;
} else if (normalchange ==4) { // 密码
System.out.print("\n请输入新的密码:");
String normalpassword = scan.next();
normalPassword[normalnumone] = normalpassword;
} else if (normalchange ==5) { // 姓名
System.out.print("\n请输入新的姓名:");
String normalname = scan.next();
normalName[normalnumone] = normalname;
} else if (normalchange ==6) { // 性别
System.out.print("\n请输入新的性别:");
String normalsex= scan.next();
normalSex[normalnumone] = normalsex;
} else if (normalchange ==7) { // 专业
System.out.print("\n请输入新的专业:");
String normalcareer= scan.next();
normalCareer[normalnumone] = normalcareer;
} else if (normalchange ==8) { // 住址信息
System.out.print("\n请输入新的住址信息:");
String normaladdress = scan.next();
normalAddress[normalnumone] = normaladdress;
}
continue;
} else if (onetwo1==6) { // 6.退出系统
System.out.print("\n谢谢使用,欢迎下次光临!");
System.exit(0);;
}
}
}
case 2: // 这里注册结束回到系统刚进入页面
System.out.println("********欢迎进入注册账号页面********");
System.out.println("1.管理员注册:");
System.out.println("2.普通用户注册:");
System.out.print("请输入要选择要操作的序号(只能输入1,2):");
int registernum = scan.nextInt(); //注册管理员或者普通用户
while(true){
if(registernum>0||registernum<3){
break;
}else {
System.out.println("输入序号错误,请重新输入要操作的序号(只能输入1,2)");
registernum = scan.nextInt();
}
}
if(registernum == 1){ // 注册管理员
numone1+=1;
System.out.print("------管理员注册页面------");
System.out.print("\n请输入新的管理员账户名:");
String adminuser = scan.next();
adminUser[numone1] = adminuser;
System.out.print("\n请输入新的手机号码:");
String adminphonenumber = scan.next();
adminPhoneNumber[numone1] = adminphonenumber;
System.out.print("\n请输入新的身份证号码:");
String adminidentitynumber = scan.next();
adminIdentityNumber[numone1] = adminidentitynumber;
System.out.print("\n请输入新的密码:");
String adminpassword = scan.next();
adminPassword[numone1] = adminpassword;
System.out.print("\n请输入新的姓名:");
String adminname = scan.next();
adminName[numone1] = adminname;
System.out.print("\n请输入新的性别:");
String adminsex= scan.next();
adminSex[numone1] = adminsex;
System.out.print("\n请输入新的专业:");
String admincareer= scan.next();
adminCareer[numone1] = admincareer;
System.out.print("\n请输入新的住址信息:");
String adminaddress = scan.next();
adminAddress[numone1] = adminaddress;
System.out.println(
adminUser[numone1]+"\t\t"+adminPhoneNumber[numone1]+"\t\t"+
adminIdentityNumber[numone1]+"\t\t"+adminPassword[numone1]+"\t\t"+
adminName[numone1]+"\t\t"+adminSex[numone1]+"\t\t"+
adminCareer[numone1]+"\t\t"+adminAddress[numone1]);
System.out.println("注册结束!");
continue;
} else if (registernum == 2) { // 注册用户
numone2+=1;
System.out.print("------普通用户注册页面------");
System.out.print("\n请输入新的管理员账户名:");
String normaluser = scan.next();
normalUser[numone2] = normaluser;
System.out.print("\n请输入新的手机号码:");
String normalphonenumber = scan.next();
normalPhoneNumber[numone2] = normalphonenumber;
System.out.print("\n请输入新的身份证号码:");
String normalidentitynumber = scan.next();
normalIdentityNumber[numone2] = normalidentitynumber;
System.out.print("\n请输入新的密码:");
String normalpassword = scan.next();
normalPassword[numone2] = normalpassword;
System.out.print("\n请输入新的姓名:");
String normalname = scan.next();
normalName[numone2] = normalname;
System.out.print("\n请输入新的性别:");
String normalsex= scan.next();
normalSex[numone2] = normalsex;
System.out.print("\n请输入新的专业:");
String normalcareer= scan.next();
normalCareer[numone2] = normalcareer;
System.out.print("\n请输入新的住址信息:");
String normaladdress = scan.next();
normalAddress[numone2] = normaladdress;
System.out.println(
normalUser[numone2]+"\t\t"+normalPhoneNumber[numone2]+"\t\t"+
normalIdentityNumber[numone2]+"\t\t"+normalPassword[numone2]+"\t\t"+
normalName[numone2]+"\t\t"+normalSex[numone2]+"\t\t"+
normalCareer[numone2]+"\t\t"+normalAddress[numone2]);
System.out.println("注册结束!");
continue;
}
case 3:
System.out.println("谢谢使用,欢迎下次光临!");
System.exit(0);;
}
}
}
}
五、项目运行结果
说明一下:这里并没有校验输入数据限制,是没写,太麻烦了,读者想要校验输入格式可以自行实现。
这里输入的数字均是int类型,输入其他类型数据可能直接报错退出程序。
注册管理员部分:
注册普通用户
管理员登录:
管理员页面:
管理员八个功能展示:
说明:功能没有截图完全,其余功能实现,读者可以自行运行实现查看。
六、项目难点分析
1、 使用数组对象保存图书和用户信息
1) 根据项目需求分析可知,管理员用户和普通用户都有八个属性,分别是:账号,手机号码,身份证号码,密码,姓名,性别,专业,住址信息。可以使用数组来保存多条相同类型的信息。
2)定义8个数组分别保存用户信息。
3)各个数组中下标表示相同的元素表示一个用户数据。
// 定义图书相关变量
String[] bookName =new String[20];
double[] bookPrice =new double[20];
int[] bookNum =new int[20];
// 管理员 普通用户
// 管理员账号和普通用户账号都可以使用手机号码+密码、身份证号码+密码的形式登录
// 管理员账号和普通账号除了手机号码、身份中号码、密码三个数据之外,还有姓名、性别、专业、住址信息
String[] adminUser = new String[3];
String[] normalUser =new String[8];
// 使用二维数组存储 手机号码+密码、身份证号码 手机和身份证公用一个密码
String[] adminPhoneNumber =new String[3];
String[] adminIdentityNumber = new String[3];
String[] adminPassword =new String[3];
String[] normalPhoneNumber =new String[8];
String[] normalIdentityNumber = new String[8];
String[] normalPassword =new String[8];
// 姓名、性别、专业、住址信息
String[] adminName = new String[3];
String[] adminSex = new String[3];
String[] adminCareer =new String[3];
String[] adminAddress =new String[3];
String[] normalName = new String[8];
String[] normalSex = new String[8];
String[] normalCareer =new String[8];
String[] normalAddress =new String[3];
// 初始化一组管理员账号和普通用户账号信息
adminUser[0] = "root";
adminPhoneNumber[0] ="1111";
adminIdentityNumber[0] ="2222";
adminPassword[0] ="123456";
adminName[0] = "张三";
adminSex[0] = "男";
adminCareer[0] ="计算机";
adminAddress[0] ="安徽";
int numone1=1; //记录管理员个数
normalUser[0] = "normal";
normalPhoneNumber[0] ="1234";
normalIdentityNumber[0] ="5678";
normalPassword[0] ="654321";
normalName[0] ="梦洛";
normalSex[0] = "女";
normalCareer[0] ="艺术";
normalAddress[0]="北京";
int numone2=1; //记录普通用户数量
2、校验功能数字是自己规定的数字
使用while(true){}循环实现,在循环体中设置只有输入规定数字才能跳出循环,执行后面的代码。
System.out.print("请输入要选择要操作的序号(只能输入1,2):");
int enterNum =scan.nextInt(); //enterNum登录数字 1.管理员 2.用户
while(true){
if(enterNum == 1||enterNum == 2 ){
break;
}else{
System.out.print("输入错误,请从从新输入要选择要操作的序号(只能输入1,2):");
enterNum =scan.nextInt();
}
}
3、明确变量的定义域
要清楚自己定义的变量作用的范围:
在Java中,变量的作用域决定了变量在程序中可见的范围。如果一个变量被定义在一个代码块内部,那么它的作用域就被限制在该代码块内部。如果一个变量被定义在方法内部,那么它的作用域就被限制在该方法内部。如果一个变量被定义在类内部但方法之外,那么它的作用域就是整个类。
这里要注意的是,作用范围大的变量,例如adminUser、bookName...等等,要定义在整个循环体的外面,若是定义在while(){}、for(;;){}、do{}while()三种循环和if(){}else{}、switch(){}选择语句中变量,作用域只能在循环体或者选择语句中,只用在循环体或者选择语句中使用,此范围之外,不能使用,或者可能出现操作该变量失效的现象。