「java写图书管理系统」用java写一个图书管理系统

博主:adminadmin 2022-12-03 17:36:08 64

本篇文章给大家谈谈java写图书管理系统,以及用java写一个图书管理系统对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java的图书管理系统怎么做?

1 先做需求分析,在网上荡一些文档学习一下,在写分析的过程中,就形成了数据库的表结构,这样实体类也就被抽象出来,表之间的映射关系,实体的关系就明确了,比如图书馆路系统,必须要有管理员表(其中牵扯权限问题),借书的人的表,书籍表,数据分类表等,这几个表就抽象出来了实体(图书管理员,借阅者,书籍,书籍分类)等,在各实体中设置你关注的属性。

2 做数据库准备工作,dao的设计,接口一定要设计全面,要不然返工的非常的多

3 具体的页面的实现就很简单了,需要显示的就调用dao设计的方法就可以了,重在准备,思路一定要清楚明白!

Java使用面向对象编程思维编写图书管理系统:增加,查询,修改,删除,退出,怎么写?

package com.bms;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

// book对象

public class Book {

private String bId; // 编号

private String bName; // 书名

// getset方法

public String getbId() {

return bId;

}

public void setbId(String bId) {

this.bId = bId;

}

public String getbName() {

return bName;

}

public void setbName(String bName) {

this.bName = bName;

}

//构造方法

public Book() {

}

public Book(String bId, String bName) {

this.bId = bId;

this.bName = bName;

}

/*

* 增加

* */

public static ListBook add(ListBook list) {

Scanner sn = new Scanner(System.in);

System.out.print("请输入编号:");

String bid = sn.next();

System.out.print("请输入名称:");

String bName = sn.next();

Book book = new Book(bid, bName);

for (Book b : list) {

if (b.bId.equals(book.bId)) {

System.out.println("编号重复,请重新输入!");

return list;

}

}

list.add(book);

System.out.println("添加成功!");

return list;

}

/*

* 查询

* */

public static void query(ListBook list) {

System.out.println("编号\t书名");

for (Book b : list) {

System.out.println(b.getbId() + "\t" + b.getbName());

}

}

/*

* 修改

* */

public static void update(ListBook list) {

query(list);

Scanner sc = new Scanner(System.in); // 键盘输入的对象

System.out.print("请输入编号:");

String s = sc.next();

Integer id = null;

for (int i = 0; i list.size(); i++) {

id = list.get(i).getbId().equals(s) ? i : null;

}

if (id == null) {

System.out.println("输入的编号不存在,请重新选择!");

return;

}

System.out.print("请输入新的书名:");

String newName = sc.next();

list.get(id).setbName(newName);

System.out.print("修改成功!");

}

/*

* 删除

* */

public static void del(ListBook list) {

query(list);

Scanner sc = new Scanner(System.in); // 键盘输入的对象

System.out.print("请输入编号:");

String s = sc.next();

for (int i = 0; i list.size(); i++) {

if (list.get(i).getbId().equals(s)) {

list.remove(i);

return;

}

}

System.out.println("输入的编号不存在,请重新选择!");

}

}

/*

* 测试*/

class Test {

public static void main(String[] args) {

ListBook bookList = new ArrayList(); // 存放所有图书的列表

bookList.add(new Book("1", "Java 基础")); // 图书的列表添加一本图书

System.out.print("欢迎进入图书管理系统,");

boolean b = true;

while (b) {

System.out.print("请选择:\n1.增加\n2.查询\n3.修改\n4.删除\n5.退出\n(输入序号):");

Scanner sn = new Scanner(System.in); // 键盘输入的对象

String select = sn.next();

switch (select) {

case "1":

System.out.println("您选择了增加");

Book.add(bookList);

break;

case "2":

System.out.println("您选择了查询:");

Book.query(bookList);

break;

case "3":

System.out.println("您选择了修改");

Book.update(bookList);

break;

case "4":

System.out.println("您选择了删除");

Book.del(bookList);

break;

case "5":

System.out.println("您选择了退出");

b = false;

System.out.println("退出程序!");

break;

default:

System.out.println("输入错误的序号,请重新输入");

break;

}

}

}

}

java做一个简单的图书管理系统,大一新生,用基础做,软件能调试就行

从零开始学Java,本来利用数组只在一个界面就可以实现增删改查功能,学到接口后觉得实现分离效果会更好一些!所以进行了尝试,将管理员和用户中的图书查询,登录,图书出库合并在一起写了一个接口,用户类和管理员类实现这个接口!图书类写了一个抽象类里面都是一些图书的属性,用户类管理员类对图书类进行操作。

具体实现如下:

接口:存在三种方法  用户类和管理员类去实现这个接口,并实现着里面的方法

[java] view plain copy

public interface Person {

public boolean login(String user,String pwd);   //登录方法

public void search();  //查询方法

public void reduce(String s,int i);  // 图书出库

}

用户类:  实现接口,里面都是用户的方法,在测试类里调用这些方法实现其功能

[java] view plain copy

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class User implements Person{

private final String user = "user";

private final String pwd  = "user";

List list = new ArrayList();

public void addBook(Book book){     //增加图书

list.add(book);

}

public boolean login(String user, String pwd) {    //登录方法

if(this.user.equals(user) this.pwd.equals(pwd)){

return true;

}

return false;

}

@Override

public void reduce(String s, int i) {            //结账

Iterator it = list.iterator();

while(it.hasNext()){

Book b = (Book)it.next();

if(b.getNum().equals(s)){

if(b.getCount() = i){

int m = b.getCount()-i;

b.setCount(m);

System.out.println("你的图书总价为:"+(b.getPrice()*i));

}else

System.out.println("你输入的书本数目超出了当前库存!");

}else{

System.out.println("没找到,你要加入的图书!");

}

}

}

@Override

public void search() {                          //查询图书当前情况

Iterator it = list.iterator();

while(it.hasNext()){

Book b = (Book)it.next();

System.out.println(b.getNum()+"\t"+b.getName()+"\t"

+b.getAnthor()+"\t"+b.getFromTime()

+"\t"+b.getPrice()+"\t"+b.getCount());

}

}

}

[java] view plain copy

/prepre name="code" class="java"span style="font-size:18px;"管理员类:   实现接口,里面都是管理员的方法,在测试类里调用这些方法实现其功能/spanspan style="font-size:18px;"/span

[java] view plain copy

span style="font-size:18px;"

/span

[java] view plain copy

package com.pv1;

import java.util.*;

public class Admin implements Person {

private final String user = "admin";

private final String pws = "admin";

List list = new ArrayList();

public boolean login(String user, String pwd) { // 登录方法

if (this.user.equals(user)  this.pws.equals(pwd)) {

return true;

}

return false;

}

public void addBook(Book book) { // 增加图书

list.add(book);

}

public void search() { // 查询方法

Iterator it = list.iterator();

while (it.hasNext()) {

Book b = (Book) it.next();

System.out.println(b.getNum() + "\t" + b.getName() + "\t"

+ b.getAnthor() + "\t" + b.getFromTime() + "\t"

+ b.getPrice() + "\t" + b.getCount());

}

}

public void reduce(String num, int i) { // 图书出库

for (int j = 0; j  list.size(); j++) {

Book b = (Book) list.get(j);

if (b.getNum().equals(num)) {

if (b.getCount() = i) {

int m = b.getCount() - i;

b.setCount(m);

System.out.println("取出成功!现在此书库存为:" + m);

j--;

break;

} else

System.out.println("你输入的书本数目超出了当前库存!");

}

if (j == list.size()) {

System.out.println("没找到,你要加入的图书!");

}

}

}

public void increase(String num, int i) { // 图书入库

for (int j = 0; j  list.size(); j++) {

Book b = (Book) list.get(j);

if (b.getNum().equals(num)) {

if (i  0) {

System.out.println("你加入的图书数目不合法!");

} else {

int m = b.getCount() + i;

b.setCount(m);

}

}

if (j == list.size()) {

System.out.println("没找到,你要加入的图书!");

}

}

}

public void delete(String num) {       //删除提供编号的图书

int j = 0;

for (j = 0; j  list.size(); j++) {

Book b = (Book) list.get(j);

if (b.getNum().equals(num)) {

list.remove(b);

System.out.println("删除成功!");

j--;

break;

}

}

if (j == list.size()) {

System.out.println("未找到你要删除的图书!请确认编号后再删");

}

}

public boolean guanSearch(String num){

for (int j = 0; j  list.size(); j++) {

Book b = (Book) list.get(j);

if (b.getNum().equals(num)) {

return true;

}

}

return false;

}

public void guan(String num, String name, String auther, String date,

double price, int count) {            // 修改提供编号的图书

int j = 0;

for ( j = 0; j  list.size(); j++) {

Book b = (Book) list.get(j);

if (b.getNum().equals(num)) {

b.setAnthor(auther);

b.setCount(count);

b.setFromTime(date);

b.setName(name);

b.setPrice(price);

break;

}

}

}

}

图书类:抽象类,里面全部是属性,方便用户管理员对其操作。

[java] view plain copy

package com.pv1;

import java.util.*;

public class Book {

private String num ;

private String name;

private String anthor;

private String fromTime;

private double price;

private int count;

public String getNum() {

return num;

}

public void setNum(String num) {

this.num = num;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAnthor() {

return anthor;

}

public void setAnthor(String anthor) {

this.anthor = anthor;

}

public String getFromTime() {

return fromTime;

}

public void setFromTime(String fromTime) {

this.fromTime = fromTime;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public int getCount() {

return count;

}

public void setCount(int count) {

this.count = count;

}

}

测试类:

[java] view plain copy

package com.pv1;

import java.util.*;

public class BookTest {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

Book bo = new Book();           //在开始时加入一本图书,所用对象

Book bo1 = null;       //循环加入图书建立的对象,开始设成空,防止加入图书时被覆盖

List list = new ArrayList();   //建立一个集合,存储管理员要添加的图书信息的对象

Admin ad = new Admin();      //建立管理员对象,管理员操作时调用管理员类中对象

User us = new User();        //建立用户对象,管理员操作时调用用户类中对象

boolean ad1 = true;         //接受进入管理员操作界面的返回值

boolean us1 = true;         //接受进入用户操作界面的返回值

bo.setAnthor("刘冰");        //书籍为空,加入一本图书

bo.setCount(20);

bo.setNum("1001");

bo.setName("一本道");

bo.setFromTime("2015-2-50");

bo.setPrice(250.0);

ad.addBook(bo);                //通过对象传递在管理员类中加入一本图书

us.addBook(bo);

System.out.print("请输入用户名:");  //用户输入 用户名 密码

String user = input.next();

System.out.print("请输入密码:");//

String pwd = input.next();

ad1 = ad.login(user, pwd);  //将 用户名 密码 传入管理员类中进行判断返回Boolean类型接受

us1 = us.login(user, pwd);  //将 用户名 密码 传入用户类中进行判断返回Boolean类型接受

if (ad1) {          //如果管理员类返回true进入   管理员操作界面

System.out.println("图书编号\t" + "书名\t" + "作者\t" + "出版日期\t" + "\t价格\t"

+ "库存");

ad.search();

while (true) {

bo1 = new Book();

System.out.println("1.查询 2.图书入库 3.图书出库 "

+ "4.新增图书 5.修改 6.删除 7.退出\t请输入您的选择:");

int xuan = input.nextInt();

switch (xuan) {

case 1:

System.out.println("图书编号\t" + "书名\t" + "作者\t" + "出版日期\t"

+ "价格\t" + "库存");

ad.search();

break;

case 2:

System.out.print("请输入你想入库的图书编号:");

String num = input.next();

System.out.print("请输入你想添加本图书的数量:");

int cou = input.nextInt();

ad.increase(num, cou);

break;

case 3:

System.out.print("请输入你想取出的图书编号:");

num = input.next();

System.out.print("请输入你想取出图书的数量:");

cou = input.nextInt();

ad.reduce(num, cou);

break;

JAVA 图书管理系统的设计

挺多的功能,花费的时间不少,所以,一般没人会完全回答的

建议根据这样的 修改一下。。。。

JAVA版的图书管理系统

送你一份代码,结构大致按照你的需求了,自己增加一些小功能,不会的话请教你同学。

分给我,钱就不用了。

#include string.h

#define FORMAT "\n%-8d%-8d%-7d%-8d%-7d%-8d%-10s%-9s%-9s\n"

#include stdio.h

#include conio.h

#include malloc.h

#define NULL 0

#define N 100

#define LEN sizeof(struct book)

int M;

struct book

{int Enum;

int Cnum;

char name[10];

char author[10];

char publishor[30];

struct date

{int year;

int month;

int day;}time;

int price;

struct book*next;

}go[N];

void print()

{printf("---------------------------------------------------------------------------\n");

printf("Enum Cnum year month day price name author publishor\n");

printf("---------------------------------------------------------------------------\n");

}

void load()

{FILE *fp;

int i;

if((fp=fopen("book_list","rb"))==NULL)

{printf("cannot open file\n");

return;

}

i=0;

while((fread(go[i],sizeof(struct book),1,fp))!=NULL)

{i++;}

M=i;

fclose(fp);

}

void save(int h)

{FILE *fp;

int i;

if ((fp=fopen("BOOK_LIS","wb"))==NULL)

{printf("cannot open file\n");

return;

}

for (i=0;ih;i++)

if(fwrite(go[i],sizeof(struct book),1,fp)!=1)

printf("file write error\n");

fclose(fp);

}

void f1()

{FILE *fp;

int i=0;

fp=fopen("book_list","rb");

print();

while((fread(go[i],sizeof(struct book),1,fp))!=NULL)

{printf(FORMAT,go[i].Enum,go[i].Cnum,go[i].time.year,go[i].time.month,go[i].time.day,go[i].price,go[i].name,go[i].author,go[i].publishor);

i++;

}

fclose(fp);

getch();

}

void f2(int h)

{int i;

printf("please input %d book's information\n",h);

printf("Enum Cnum year month day price name author publishor\n");

for(i=0;ih;i++)

{printf("Enum:\n");

scanf("%d",go[i].Enum);

printf("Cnum:\n");

scanf("%d",go[i].Cnum);

printf("please input year month day\n");

scanf("%d%d%d",go[i].time.year,go[i].time.month,go[i].time.day);

printf("price:\n");

scanf("%d",go[i].price);

printf("name:\n");

scanf("%s",go[i].name);

printf("author:\n");

scanf("%s",go[i].author);

printf("publishor:\n");

scanf("%s",go[i].publishor);

}

save(h);

return;

}

void f3()

{int i;

struct book;

char a[20],b[20],c[20];

load();

printf("please input 'name' or 'author':\n");

scanf("%s",a);

if(strcmp(a,"name")==0)

{printf("please input the book's name:\n");

scanf("%s",b);

for(i=0;iM;i++)

if(strcmp(b,go[i].name)==0)

{print();

printf(FORMAT,go[i].Enum,go[i].Cnum,go[i].time.year,go[i].time.month,go[i].time.day,go[i].price,go[i].name,go[i].author,go[i].publishor);

}

}

else

{printf("please input the book's author:\n");

scanf("%s",c);

for(i=0;iM;i++)

if(strcmp(c,go[i].author)==0)

{print();

printf(FORMAT,go[i].Enum,go[i].Cnum,go[i].time.year,go[i].time.month,go[i].time.day,go[i].price,go[i].name,go[i].author,go[i].publishor);

}

}

return;

}

void f4()

{int i,j,k;

struct book t;

load();

for(i=0;iM;i++)

{k=i;

for(j=i+1;jM;j++)

if(go[k].pricego[j].price)k=j;

t=go[i];go[i]=go[k];go[k]=t;

}

print();

for(i=0;iM;i++)

printf(FORMAT,go[i].Enum,go[i].Cnum,go[i].time.year,go[i].time.month,go[i].time.day,go[i].price,go[i].name,go[i].author,go[i].publishor);

}

void f5()

{FILE *fp;

int i,j,M,flag;

char name[10];

if((fp=fopen("book_list","rb"))==NULL)

{printf("cannot open file\n");

return;

}

printf("\norriginal data:\n");

print();

for(i=0;fread(go[i],sizeof(struct book),1,fp)!=0;i++)

printf(FORMAT,go[i].Enum,go[i].Cnum,go[i].time.year,go[i].time.month,go[i].time.day,go[i].price,go[i].name,go[i].author,go[i].publishor);

M=i;

printf("\n input the deleted name:\n");

scanf("%s",name);

for(flag=1,i=0;flagiM;i++)

{if(strcmp(name,go[i].name)==0)

{for(j=i;jM-1;j++)

{go[j].Enum=go[j+1].Enum;

go[j].Enum=go[j+1].Enum;

strcpy(go[j].name,go[j+1].name);

strcpy(go[j].author,go[j+1].author);

strcpy(go[j].publishor,go[j+1].publishor);

go[j].time.year=go[j+1].time.year;

go[j].time.month=go[j+1].time.month;

go[j].time.day=go[j+1].time.day;

go[j].price=go[j+1].price;

}

flag=0;

}

}

if(!flag)

M=M-1;

else

printf("not found!\n");

printf("\nNow,the content of file:\n");

fp=fopen("book_list","wb");

for(i=0;iM;i++)

fwrite(go[i],sizeof(struct book),1,fp);

fclose(fp);

fp=fopen("book_list","wb");

for(i=0;fread(go[i],sizeof(struct book),1,fp)!=0;i++);

printf(FORMAT,go[i].Enum,go[i].Cnum,go[i].time.year,go[i].time.month,go[i].time.day,go[i].price,go[i].name,go[i].author,go[i].publishor);

fclose(fp);

}

main()

{int i,h;

clrscr();

while(1)

{printf ("\n 1 is a project that can output all information.\n");

printf ("\n 2 is a project that can add any book's information.\n");

printf ("\n 3 is a project that can search information.\n");

printf ("\n 4 is a project that can sort.\n");

printf ("\n 5 is a project that can del.\n");

printf ("\n 6 is a project that can leave.\n");

printf("please input number:1 or 2 or 3 or 4 or 5 or 6\n");

scanf("%d",i);

switch (i)

{case 1:f1();break;

case 2:

{printf ("if you want to add book's information,please input a data:h=");

scanf("%d",h);

f2(h);}break;

case 3:

{f3();getch();}break;

case 4:{f4();getch();}break;

case 5:{f5();getch();}break;

case 6:exit (1);

}

clrscr();}

}

关于java写图书管理系统和用java写一个图书管理系统的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-03,除非注明,否则均为首码项目网原创文章,转载请注明出处。