因为在本学期开学前几周,已经根据课本把Java基础的知识看得差不多了,所以直接进行了图书管理系统的书写,本以为图书管理系统只是一个类之间的继承以及构造函数之间的使用,在之前的学习中也没有学io流,在这周中因为学了点Python与数据库的知识,本以为图书管理系统写完就万事大吉了,但是当我交给学长之后,他告诉我要用io流,所以打算下周找时间学习io流的知识,并对自己写的图书管理系统进行改正。

以下是我本周写的不完整的图书管理系统

登录类,分为普通用户登录与图书管理员登录

package 图书管理系统;import java.util.Scanner;public class Library {Scanner sc = new Scanner(System.in);//登录函数:显示登录界面进行选择登录public void login() {int count = 0;Person p = null;Person1 p1=null;while (count < 2) {System.out.println("===============java图书管理系统===============");System.out.println("请登录:1.普通用户  2.管理员登录  3.退出系统");int n = sc.nextInt();//通过输入的值进行登录判断if (n == 3) {return;}switch (n) {case 1:System.out.println("请输入姓名:");String Uname = sc.next();System.out.println("请输入性别:");String Usex = sc.next();System.out.println("请输入年龄:");int Uage = sc.nextInt();p1 = new User(Uname,Usex,Uage); //构造普通用户对象System.out.println("登录成功!");System.out.println("当前普通用户:"+"姓名:" + p1.getName() + " "+"性别:" + p1.getSex() + " "+"年龄"+ p1.getAge());//普通用户循环操作while (true) {System.out.println("请输入你的操作: 1.借阅书籍 2.归还书籍 3.查询借书信息 4.退出");int i = sc.nextInt();if (i == 4) {System.out.println("您已成功退出!");break;}else {p1.operate();  //调用普通用户的操作方法}}break;case 2:System.out.println("请输入管理员姓名:");String Rname = sc.next();System.out.println("请输入性别:");String Rsex = sc.next();System.out.println("请输入年龄:");int Rage = sc.nextInt();p = new Root(Rname,Rsex,Rage);//构造管理员对象System.out.println("登录成功!");System.out.println("当前管理员:"+"姓名:" + p.getName() + " "+"性别:" + p.getSex() + " "+"年龄" + p.getAge());while (true) {System.out.println("请输入你的操作: 1.增加书籍 2.查阅书籍 3.显示书籍 4.修改书籍 5.删除书籍信息 6.增加读者 7.查询读者 8.读者排序 9.修改读者 10.删除读者 11.退出");int j = sc.nextInt();if (j == 11) {System.out.println("您已成功退出!");break;}else{p.operate();//调用管理员的操作方法}} break;}}}
}

Book类

package 图书管理系统;public class Book {public String id;//书号public String name; //书名public String author; //作者public double price; //价格public String cbs;//出版社public String date;//出版日期public int sum;//存馆数量//通过构造函数给定书的属性public Book(){}public Book(String id, String name, String author, double price, String cbs, String date, int sum) {this.id = id;this.name = name;this.author = author;this.price = price;this.cbs = cbs;this.date = date;this.sum = sum;}public Book(int i){Person.books=new Book[i];}public String message() {// 成员方法 显示一条图书信息String str = "";str = this.id + "\t" + this.name + "\t"+this.author+"\t"+this.cbs+"\t"+this.date+"\t"+this.price+"\t" + this.sum;return str;// 返回一条str字符串}//属性的获取和设置public String getId(){return id;}public void setId(String id){this.id=id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getcbs(){return cbs;}public void setCbs(String cbs){this.cbs=cbs;}public String getDate(){return date;}public void setDate(String date){this.date=date;}public void setsum(int sum) {this.sum = sum;}public int getsum() {return this.sum;}}

读者类

package 图书管理系统;public class Readin {public int xh;public String rname;public String xy;public String mc;public Readin(){}public Readin(int xh, String rname, String xy, String mc) {this.xh = xh;this.rname = rname;this.xy = xy;this.mc = mc;}public Readin(int i){Person.reads=new Readin[i];}public String rmessage() {// 成员方法 显示一条图书信息String str = "";str = this.xh + "\t" + this.rname + "\t" + this.xy + "\t" + this.mc;return str;}public int  getXh(){return xh;}public void setXh(int xh){this.xh=xh;}public String getRname(){return rname;}public void setRname(String rname){this.rname=rname;}public String getXy(){return xy;}public void setXy(String xy){this.xy=xy;}public String getMc(){return mc;}public void setMc(String mc){this.mc=mc;}
}

图书阅览表

package 图书管理系统;public class booklook {public String xh;public String rname;public String id;public String name;public String jdate;public String gdate;public booklook(){};public booklook(String xh, String rname, String id, String name, String jdate,  String gdate) {this.xh = xh;this.rname = rname;this.id = id;this.name = name;this.jdate = jdate;this.gdate = gdate;}public String bookmessage() {// 成员方法 显示一条图书信息String str = "";str = this.xh + "\t" + this.rname + "\t" + this.id + "\t" + this.name + "\t" + this.jdate + "\t"  + this.gdate;return str;}public String getXh() {return xh;}public String getRname() {return rname;}public String getId() {return id;}public String getName() {return name;}public String getJdate() {return jdate;}public String getGdate() {return gdate;}public void setXh(String xh) {this.xh = xh;}public void setRname(String rname) {this.rname = rname;}public void setId(String id) {this.id = id;}public void setName(String name) {this.name = name;}public void setJdate(String jdate) {this.jdate = jdate;}public void setGdate(String gdate) {this.gdate = gdate;}
}

普通用户登录后

package 图书管理系统;abstract class Person1 {public String name;public String sex;public int age;public static Book[] books = new Book[]{new Book("A", "西游记", "吴承恩", 10, "新华", "1990", 10),new Book("B", "红楼梦", "曹雪芹", 20, "新华", "2000", 10),new Book("C", "三国演义", "罗贯中", 15, "新华", "2000", 10),new Book(),new Book(),new Book()};public static Readin[] reads = new Readin[]{new Readin(10001, "小明", "信院", "2103"),new Readin(10002, "小张", "机电", "2101"),new Readin(10003, "小李", "信院", "2010"),new Readin(),new Readin(),new Readin(),};public static booklook[] looks = new booklook[]{new booklook(),new booklook(),new booklook(),new booklook(),new booklook(),new booklook()};public Person1(String name, String sex, int age) {this.age = age;this.name = name;this.sex = sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}/*** 抽象类中的抽象方法*/public abstract void operate();public abstract void select1(Book[] books,booklook[] looks,Readin[] reads);public abstract void delete1(Book[] books,booklook[] looks,Readin[] reads);public abstract void add1(Book[] books,booklook[] looks,Readin[] reads);}package 图书管理系统;public interface Operate1 {void select1(Book[] books,booklook[] looks,Readin[] reads);void delete1(Book[] books,booklook[] looks,Readin[] reads);void add1(Book[] books,booklook[] looks,Readin[] reads);
}package 图书管理系统;import java.util.Scanner;public class User extends Person1 implements Operate1 {   //user类继承了人的类,  实现operate接口public User(String name, String sex, int age) {//调用人基类的构造函数(派生类不继承基类的构造函数)super(name, sex, age);}Scanner sc = new Scanner(System.in);@Overridepublic void operate() {  //普通用户的操作System.out.print("请输入确认操作:");int i = sc.nextInt();switch (i) {case 1://借delete1(books, looks, reads);break;case 2://还add1(books, looks, reads);break;case 3://查select1(books,looks,reads);break;default:System.out.println("输入有误!");break;}}@Overridepublic void select1(Book[] books, booklook[] looks, Readin[] reads) {System.out.println("请输入学号进行查询:");String xh = sc.next();if (name != null) {int flag = 0;for (int i = 0; i < looks.length; i++) {if (looks[i].getXh().equals(xh)) {System.out.println(looks[i].bookmessage());flag = 1;break;}}if (flag == 0) System.out.println("暂时没有此人!");}}@Overridepublic void delete1(Book[] books, booklook[] looks, Readin[] reads) {System.out.println("请输入你的学号");String xh = sc.next();System.out.println("请输入要借阅的书名:");String name = sc.next();if (name != null) {for (int i = 0; i < books.length; i++) {if (books[i].getName().equals(name)) {if (books[i].sum == 0) {System.out.println("该图书已被借完");}else {for (int j = 0; j < books.length; j++) {if (looks[j].getXh() == null) {looks[j].setXh(xh);looks[j].setRname(reads[i].getRname());looks[j].setId(books[i].getId());looks[j].setName(books[i].getName());System.out.println("请输入借阅日期");String jdate = sc.next();looks[j].setJdate(jdate);books[i].sum--;System.out.println("借阅成功!");break;}}break;}}}}}@Overridepublic void add1(Book[] books, booklook[] looks, Readin[] reads) {System.out.println("请输入你的学号");String xh = sc.next();System.out.println("请输入要还的书名:");String name = sc.next();if (name != null) {boolean flag = true;int i = 0;while (flag) {if (books[i].getName().equals(name)) {for (int j = 0; j < books.length; j++) {if (looks[j].getGdate() == null ) {System.out.println("请输入你的归还日期");String gdate = sc.next();looks[j].setGdate(gdate);books[i].sum++;System.out.println("还书成功!");flag = false;break;}}}i++;}}}
}

管理员登录后

package 图书管理系统;abstract class Person {public String name;public String sex;public int age;public static Book[] books = new Book[]{new Book("A", "西游记", "吴承恩", 10, "新华", "1990", 10),new Book("B", "红楼梦", "曹雪芹", 20, "新华", "2000", 10),new Book("C", "三国演义", "罗贯中", 15, "新华", "2000", 10),new Book(),new Book(),new Book()};public static Readin[] reads = new Readin[]{new Readin(10001, "小明", "信院", "2103"),new Readin(10002, "小张", "机电", "2101"),new Readin(10003, "小李", "信院", "2010"),new Readin(),new Readin(),new Readin(),};public static booklook[] looks = new booklook[]{new booklook(),new booklook(),new booklook(),new booklook(),new booklook(),new booklook()};public Person(String name, String sex, int age) {this.age = age;this.name = name;this.sex = sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}/*** 抽象类中的抽象方法*/public abstract void operate();public abstract void select(Book[] books);public abstract void delete(Book[] books);public abstract void add(Book[] books);}package 图书管理系统;public interface Operate {  //操作的接口void select(Book[] books); //查询,查阅void delete(Book[] books);//删除,借阅void add(Book[] books); //增加,还书void list(Book[] books); //显示书列表}package 图书管理系统;import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;public class Root extends Person implements Operate {//继承了人的类,需要重写它的抽象方法operate,实现了operate接口,需要重写接口内的方法public Root(String name, String sex, int age) {//调用人基类的构造函数super(name, sex, age);}Scanner sc = new Scanner(System.in);/*** 管理员的操作*/@Overridepublic void operate() {System.out.print("请输入确认操作:");int i = sc.nextInt();switch (i) {case 1://整理add(books);break;case 2://查select(books);break;case 3://加list(books);break;case 4://删xg(books);break;case 5://列表delete(books);break;case 6:radd(reads);break;case 7:rselect(reads);break;case 8:rsort(reads);break;case 9:rxg(reads);break;case 10:rdelete(reads);break;default:System.out.println("输入有误!");break;}}@Overridepublic void select(Book[] books) {System.out.println("请输入书名进行查询:");String name = sc.next();if(name != null) {int flag = 0;     //是否找到的标记位for (int i = 0; i < books.length; i++) {if (books[i].getName().equals(name)) {System.out.println("有此书籍!");System.out.println(books[i].message());flag = 1;break;}}if(flag == 0) System.out.println("暂时没有此书!");}}@Overridepublic void delete(Book[] books) {System.out.println("请输入要删除的书名:");String str = sc.next();if (str != null) {for (int i = 0; i < books.length; i++) {if (books[i].getName().equals(str)) {books[i] = null;System.out.println("删除成功!");break;}}}}@Overridepublic void add(Book[] books) {System.out.println("请输入书籍编号:");String id = sc.next();// 输入书籍编号System.out.println("请输入书名:");String name = sc.next();System.out.println("请输入作者:");String author = sc.next();System.out.println("请输入价格:");double price = sc.nextDouble();System.out.println("请输入书籍出版社");String cbs = sc.next();System.out.println("请输入书籍出版日期");String date = sc.next();System.out.println("请输入书籍数量:");int sum = sc.nextInt();boolean flag = false;for (int i = 0; i < books.length; i++) {if (books[i].getName() == null) {flag = true;books[i].setId(id);books[i].setName(name);books[i].setAuthor(author);books[i].setPrice(price);books[i].setDate(date);books[i].setCbs(cbs);books[i].setsum(sum);System.out.println("添加成功");break;}}if (!flag) {System.out.println("【警告】数组只能添加3本新书,没有位置放置新书了,如需添加多余3本,需要在‘Person’类中添加buffer!" + "\n");}}@Overridepublic void list(Book[] books) {//打印Book数组for (int i = 0; i < books.length; i++) {if (books[i] != null) {if (books[i].price != 0) {System.out.println(books[i].message());}}}}public void xg(Book[] books) {Scanner input = new Scanner(System.in);System.out.println("请输入你要修改的图书编号");String num = input.next();// 输入编号for (int i = 0; i < books.length; i++) {if (num.equals(books[i].getId())) {// 如果编号存在 编号匹配System.out.println("请输入新的图书编号:");String newnum = input.next();// 输入新的图书编号books[i].setId(newnum);// 设置新的图书编号System.out.println("请输入新的图书名字");String newname = input.next();// 输入新的图书名字books[i].setName(newname);// 设置新的图书名字System.out.println("请输入新的图书作者");String newauthor = input.next();books[i].setAuthor(newauthor);System.out.println("请输入新的图书价格");Double newprice = input.nextDouble();books[i].setPrice(newprice);System.out.println("请输入新的图书出版社");String newcbs = input.next();books[i].setCbs(newcbs);System.out.println("请输入新的图书出版日期");String newdate = input.next();books[i].setDate(newdate);System.out.println("请输入新的图书数量:");int newsum = input.nextInt();// 输入新的图书数量books[i].setsum(newsum);System.out.println("修改图书信息成功");}}}public void radd(Readin[] reads){System.out.println("请输入读者学号:");int xh = sc.nextInt();System.out.println("请输入读者姓名");String rname=sc.next();System.out.println("请输入读者学院");String xy=sc.next();System.out.println("请输入读者专业班级");String mc=sc.next();boolean flagg = false;for (int i = 0; i < reads.length; i++) {if (reads[i].getRname()== null) {flagg = true;reads[i].setXh(xh);reads[i].setRname(rname);reads[i].setXy(xy);reads[i].setMc(mc);System.out.println("添加成功");break;}}if (!flagg) {System.out.println("【警告】数组预留buffer最多只能添加3位读者,需要在‘Person’类中添加buffer!" + "\n");}}public void rselect(Readin[] reads){System.out.println("请输入读者姓名进行查询:");String name = sc.next();if(name != null) {int flag = 0;       //是否找到的标记位for (int i = 0; i < reads.length; i++) {if (reads[i].getRname().equals(name)) {System.out.println("有此读者!");System.out.println(reads[i].rmessage());flag = 1;break;}}if(flag == 0) System.out.println("暂时没有此读者!");}}public void rsort(Readin[] reads){Arrays.sort(reads, new Comparator<Readin>() {@Overridepublic int compare(Readin o1, Readin o2) {return (int) (o1.getXh() - o2.getXh());}});//遍历数组打印书的列表for (int i = 0; i < reads.length; i++) {if (reads[i].getXh() != 0) {System.out.println(reads[i].rmessage());}}}public void rdelete(Readin[] reads) {System.out.println("请输入要删除的读者名与学号:");String str = sc.next();int str1=sc.nextInt();if (str != null) {for (int i = 0; i < reads.length; i++) {if (reads[i].getXh()==str1){reads[i] = null;System.out.println("删除成功!");break;}}}}public void rxg(Readin[] reads){System.out.println("请输入要修改的读者名与学号:");String str = sc.next();int str1=sc.nextInt();for (int i = 0; i < reads.length; i++) {if (reads[i].xh==str1) {// 如果编号存在 编号匹配System.out.println("请输入新的读者学号:");int xh = sc.nextInt();reads[i].setXh(xh);System.out.println("请输入新的读者名字");String rname = sc.next();reads[i].setRname(rname);System.out.println("请输入新的读者学院");String xy = sc.next();reads[i].setXy(xy);System.out.println("请输入新的读者专业班级");String mc = sc.next();reads[i].setMc(mc);System.out.println("修改读者信息成功");}}}
}

最后,定义一个Main函数进行运行

package 图书管理系统;public class Main {public static void main(String[] args) {System.out.println("2021213866赵志敏");Library library = new Library(); //构造Library对象library.login(); //调用对象的登录方法。}
}

JAVA小记(第一周)相关推荐

  1. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周

       java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...

  2. 我的JAVA学习第一周知识总结,个人感受小结

    JAVA学习第一周 1,了解三种开发模型 2,建包.建类的规范格式 3,了解不同数据类型 4,JAVA环境搭建 5,JVM.JRE.JDK是什么 6,if/else if语句的使用 7,各个语句swi ...

  3. java开学第一周测试自我感想

    开学第一周,王建民老师就对我们进行了java测试,对我们说测试题目是基于期末考试的基础难度来出的.我们的考试完全是靠暑假在家自学的基础,如果在家没有自学java,那完全就是看不懂试卷到底要考什么.由于 ...

  4. Java学习第一周总结

    201711671227<Java程序设计>第一周学习总结 教材学习内容总结 主要学习了如何下载及安装Java,如何调试环境变量,系统变量等,其次更为重要的是掌握了使用Java来编译运行程 ...

  5. 软帝Java培训班第一周周记

    关于本周学习内容与心得体会 本人是一大四即将毕业的学生,正值人生迷茫之际不知何去何从.就在此时,我们学院恰巧迎来了软帝公司的学员招新,我也机缘巧合来到了软帝当起了学员. 软帝的老师不会区别对待任何来学 ...

  6. java实习第一周周报,大学生实习周报

    无论学习什么专业,从事什么职业,我们都需要提前实习啦,把理论知识结合起来运用到实践当中去.下面是由出国留学网小编为大家整理的"大学生幼儿园实习周报十周",仅供参考,欢迎大家阅读. ...

  7. Java学习第一周(2.20~2.24)

    前情:要想看懂源码,Java基础不能丢,在学习Java基础时不能掉以轻心,不然经年累月小问题也会变成大问题. 一.day01:学习的内容包括环境安装.JDK&JRE.如何在命令提示符窗口执行J ...

  8. Java核心技术第一周学习总结

    第三章:Java的基本程序设计结构 一.基本数据类型 列举 byte(字节型).short(短整型).int(整型).long(长整型).float(单精度浮点型).double(双精度浮点型).bo ...

  9. 2017-2018-1 Java演绎法 第一周 作业

    团队学习:<构建之法> [团队成员]: 学号 姓名 负责工作 20162315 马军 日常统计,项目部分代码 20162316 刘诚昊 项目部分代码,代码质量测试 20162317 袁逸灏 ...

  10. java入门第一周总结

    day1 1.  jdk的安装(只要安装了jdk(Java软件开发工具包)) avac.exe ------>Java文件的编译指令 java.exe ------->Java文件的运行指 ...

最新文章

  1. mahout in Action研读(1)-给用户推荐图书
  2. MySQL优化union查询
  3. 第十一届蓝桥杯赛后总结 —— 两年征战蓝桥,惜败来年再战。
  4. 我的模块加载系统 v17的入门教程2
  5. Stream流中的常用方法_forEach
  6. 计算机英语句子缩略,根据汉语意思完成英语句子,每空一词(含缩略形式)。 【1】-咋考网...
  7. html超链接点不了_HTML、CSS、JS都有哪些区别?不看必悔
  8. LockDemo 锁对象
  9. 独家 | Face++印奇:AI是场持久战,但第一阶段明年结束
  10. Docker、Mesos和Marathon剖析以及入门实战
  11. worldwind java 教程_科学网—用worldwind java SDK开发应用程序 - 谢安涛的博文
  12. app开发前后端简易流程图
  13. 2021-11-12
  14. 「JavaSE」-流程控制和方法
  15. 简谈Oracle体系结构
  16. oracle显示无效的月份,Oracle插入失败:无效的月份
  17. 陕西省2021年高考成绩位次查询,陕西高考排名查询方法,2021年陕西高考成绩位次全省排名查询...
  18. 解决element-ui对话框组件el-dialog遮罩层小问题
  19. 图片尺寸,分辨率和像素的理解
  20. 网易新闻鸿蒙系统,华为宣布鸿蒙系统升级至2.0版本 明年华为手机全面支持

热门文章

  1. mysql 授权与回收权限_mysql用户授权以及权限收回
  2. 海思Hi3531 GPIO按键的长按、短按、连发——Linux驱动+应用程序
  3. python爬虫初学实战——免登录爬取easyicon里的vip图标(2)
  4. 张赐荣 | 安装版软件和绿色版软件究竟有什么区别?
  5. 大话 Android RecycleView 源码
  6. 动画演示电容工作原理、电容传感器原理
  7. 计算机类公务员 真题解析,公务员考试c类计算机考试真题及答案
  8. RUN-IP001网络切换器
  9. 人工智能 Java 坦克机器人系列: 神经网络,下部
  10. putty的下载安装和使用