精华内容
下载资源
问答
  • java实现简单的图书管理系统

    万次阅读 多人点赞 2019-04-13 17:49:44
    Library类: 写了登录函数(1、普通用户,2、管理员,3、退出系统), Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get、set方法,定义了一些书。 operate接口:操作的接口,操作方法:查询/查阅,...

    一、项目分布

    在这里插入图片描述
    Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get、set方法
    Library类: 写了登录函数(1、普通用户,2、管理员,3、退出系统),
    Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get、set方法,定义了一些书。
    operate接口:操作的接口,操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表
    Root类:继承了Person类,实现operate(查阅,删除,增加,显示书籍列表)接口
    User类:继承了Person类,实现operate(查询,借阅,还书,显示书籍列表)接口
    Main类:Main中的主函数开启整个项目。

    模型图:

    在这里插入图片描述
    声明: 本项目只是一个简单的面向对象入门小项目,有一些基础理论需要掌握,比如对象,类,抽象类,接口,继承,实现,数组及数组的操作,for循环,while循环,switch语句,if语句。

    二、代码展示:

    1. Book类
    public class Book {
    	private String name; //书名
    	private String author; //作者
    	public double price; //价格
    	private String category; //分类
    	private boolean state; //状态  true-未借出  false-已借出
    
    	//通过构造函数给定书的属性
    	public Book(String name,String author,double price,String category,boolean state){
    		this.author = author;
    		this.name = name;
    		this.price = price;
    		this.category = category;
    		this.state = state;
    	}
    
    	public Book() {  //默认10本书
    		this(10);
    	}
    	public Book(int i) {
    		Person.books = new Book[i];
    	}
    
    	//属性的获取和设置
    	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 getCategory() {
    		return category;
    	}
    	public void setCategory(String category) {
    		this.category = category;
    	}
    	public boolean getState() {
    		return state;
    	}
    	public void setState(boolean state) {
    		this.state = state;
    	}
    }
    
    
    1. Library类
    import java.util.Scanner;
    
    public class Library {
    	Scanner sc = new Scanner(System.in);
    	//登录函数:显示登录界面进行选择登录
    	public void login() {
    		int count = 0;
    		Person p = null;
    		while (count < 2) {
    			System.out.println("===============jewel图书管理系统===============");
    			System.out.println("欢迎讨论指正! qq505791225"+"\n");
    			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();
    
    					p = new User(Uname,Usex,Uage); //构造普通用户对象
    
    					System.out.println("登录成功!");
    					System.out.println("当前普通用户:"+"姓名:" + p.getName() + " "+"性别:" + p.getSex() + " "+"年龄"+ p.getAge());
    					//普通用户循环操作
    					while (true) {
    						System.out.println("请输入你的操作: 1.查询书籍 2.借阅书籍 3.归还书籍 4.显示书籍列表 5.退出");
    						int i = sc.nextInt();
    						if (i == 5) {
    							System.out.println("您已成功退出!");
    							break;
    						}else {
    							p.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.退出");
    						int j = sc.nextInt();
    						if (j == 6) {
    							System.out.println("您已成功退出!");
    							break;
    						}else{
    							p.operate();//调用管理员的操作方法
    						}
    					} break;
    			}
    		}
    	}
    }
    
    1. Person类(抽象类)
    abstract class Person {
    	public String name;
    	public String sex;
    	public int age;
    	/**
    	 * 	默认定义10本书籍。(预留3本新书的buffer,用来添加书籍)
    	 */
    	public static Book[] books = new Book[]{
    			new Book("西游记", "吴承恩", 10, "名著", true),
    			new Book("红楼梦", "曹雪芹", 20, "名著", true),
    			new Book("三国演义", "罗贯中", 15, "名著", true),
    			new Book("小茗同学", "小明", 5, "杂志", true),
    			new Book("C与指针", "马老师", 35, "计算机", true),
    			new Book("Java编程思想", "王老师", 55, "计算机", true),
    			new Book("新世界", "陈宇", 15, "杂志", true),
    			new Book("阿衰与大头妹", "阿衰", 5, "漫画", true),
    			new Book("一个人就一个人", "刘同", 35, "小说", true),
    			new Book("活着", "陈彤", 36, "小说", true),
    			new Book(),
    			new Book(),
    			new Book(),
    	};
    
    	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();
    }
    
    
    1. operate接口
    public interface operate{  //操作的接口
        void select(Book[] books); //查询,查阅
        void delete(Book[] books);//删除,借阅
        void add(Book[] books); //增加,还书
        void list(Book[] books); //显示书列表
    }
    
    1. Root类
    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);
    
    	/**
    	 * 管理员的操作
    	 */
    	@Override
    	public void operate() {
    		System.out.print("请输入确认操作:");
    		int i = sc.nextInt();
    		switch (i) {
    			case 1:
    				//整理
    				sort(books);
    				break;
    			case 2:
    				//查
    				select(books);
    				break;
    			case 3:
    				//加
    				add(books);
    				break;
    			case 4:
    				//删
    				delete(books);
    				break;
    			case 5:
    				//列表
    				list(books);
    				break;
    			default:
    				System.out.println("输入有误!");
    				break;
    
    		}
    	}
    
    	/**
    	 * 	compareable整理,重写compare to,如果数组中有空的,则会出现空指针异常,把不空的拷到另一个新的数组,然后实现
    	 * @param books
    	 */
    	public void sort(Book[] books) {
    		System.out.println("图书馆中的书按价格整理如下:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");
    		Arrays.sort(books, new Comparator<Book>() {
    			@Override
    			public int compare(Book o1, Book o2) {
    				return (int) (o1.getPrice() - o2.getPrice());
    			}
    		});
    		//遍历数组打印书的列表
    		for (int i = 0; i < books.length; i++) {
    			if (books[i].price != 0) {
    				System.out.println(
    						"【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
    								+ "】——【" + books[i].getCategory() + "】——" + books[i].getState());
    			}
    		}
    	}
    
    	@Override
    	public void select(Book[] books) {
    		System.out.println("请输入书名进行查询:");
    		String name = sc.next();
    		if (name != null) {
    			boolean flag = false;
    			int bookNum = 0;
    			for (int i = 0; i < books.length; i++) {
    				if (books[i].getName() != null && name.equals(books[i].getName())) {
    					flag = true;
    					bookNum = i;
    					break;
    				}
    			}
    			if (!flag) {
    				System.out.println("未查询到此书籍!");
    			} else {
    				System.out.println("书籍信息为:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");
    				System.out.println(
    						"【" + books[bookNum].getName() + "】—— 【" + books[bookNum].getAuthor() + "】——【" + books[bookNum]
    								.getPrice() + "】——【" + books[bookNum].getCategory() + "】——" + books[bookNum]
    								.getState());
    			}
    		}
    	}
    
    	@Override
    	public 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;
    				}
    			}
    		}
    
    	}
    
    	@Override
    	public void add(Book[] books) {
    		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 category = sc.next();
    
    		boolean flag = false;
    		for (int i = 0; i < books.length; i++) {
    			if (books[i].getName() == null) {
    				flag = true;
    				books[i].setName(name);
    				books[i].setAuthor(author);
    				books[i].setPrice(price);
    				books[i].setCategory(category);
    				books[i].setState(true);
    				System.out.println("添加成功");
    				break;
    			}
    		}
    		if (!flag) {
    			System.out.println("【警告】数组预留buffer最多只能添加3本新书,没有位置放置新书了,如需添加多余3本,需要在‘Person’类中添加buffer!" + "\n");
    		}
    
    	}
    
    	@Override
    	public void list(Book[] books) {
    		System.out.println("图书列表如下:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");  //打印Book数组
    		for (int i = 0; i < books.length; i++) {
    			if (books[i] != null) {
    				if (books[i].price != 0) {
    					System.out.println(
    							"【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
    									+ "】——【" + books[i].getCategory() + "】——" + books[i].getState());
    
    				}
    			}
    		}
    	}
    }
    
    1. User类
    import java.util.Scanner;
    
    public class User extends Person implements Operate {   //user类继承了人的类,  实现operate接口
    
    	public User(String name, String sex, int age) {
    		//调用人基类的构造函数(派生类不继承基类的构造函数)
    		super(name, sex, age);
    	}
    
    	Scanner sc = new Scanner(System.in);
    
    	@Override
    	public void operate() {  //普通用户的操作
    
    		System.out.print("请输入确认操作:");
    		int i = sc.nextInt();
    		switch (i) {
    			case 1:
    				//查
    				select(books);
    				break;
    			case 2:
    				//借
    				delete(books);
    				break;
    			case 3:
    				//还
    				add(books);
    				break;
    			case 4:
    				//书列表
    				list(books);
    				break;
    			default:
    				System.out.println("输入有误!");
    				break;
    		}
    	}
    
    	@Override
    	public void select(Book[] books) {
    		System.out.println("请输入书名进行查询:");
    		String name = sc.next();
    		if (name != null) {
    			boolean flag = false;
    			int bookNum = 0;
    			for (int i = 0; i < books.length; i++) {
    				if (books[i].getName() != null && name.equals(books[i].getName())) {
    					flag = true;
    					bookNum = i;
    					break;
    				}
    			}
    			if (!flag) {
    				System.out.println("未查询到此书籍!");
    			} else {
    				System.out.println("书籍信息为:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");
    				System.out.println(
    						"【" + books[bookNum].getName() + "】—— 【" + books[bookNum].getAuthor() + "】——【" + books[bookNum]
    								.getPrice() + "】——【" + books[bookNum].getCategory() + "】——" + books[bookNum]
    								.getState());
    			}
    		}
    	}
    
    	@Override
    	public void delete(Book[] books) {
    		System.out.println("请输入要借阅的书名:");
    		String name = sc.next();
    		if (name != null) {
    			for (int i = 0; i < books.length - 1; i++) {
    				if (books[i].getName().equals(name)) {
    					//借走书时设置状态为false
    					if (!books[i].getState()) {
    						System.out.println("【" + name + "】" + "已经被借出!");
    					} else {
    						books[i].setState(false);
    						System.out.println("借阅成功!");
    					}
    					break;
    				}
    			}
    		}
    	}
    
    	@Override
    	public void add(Book[] books) {
    
    		System.out.println("请输入要还的书名:");
    		String name = sc.next();
    
    		if (name != null) {
    			boolean flag = true;
    			int i = 0;
    			while (flag) {
    				if (books[i].getName().equals(name)) {
    					if (!books[i].getState()) {
    						books[i].setState(true);
    						System.out.println("还书成功!");
    						flag = false;
    					} else {
    						System.out.println("该书籍已经被还回!");
    						break;
    					}
    				}
    				i++;
    			}
    		}
    	}
    
    
    	@Override
    	public void list(Book[] books) {
    		System.out.println("图书列表如下:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");  //打印Book数组
    		for (int i = 0; i < books.length; i++) {
    			if (books[i] != null) {
    				if (books[i].price != 0) {
    					System.out.println(
    							"【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
    									+ "】——【" + books[i].getCategory() + "】——" + books[i].getState());
    
    				}
    			}
    		}
    	}
    }
    
    1. Main类
    public class Main {
        public static void main(String[] args) {
            Library library = new Library(); //构造Library对象
            library.login(); //调用对象的登录方法。
        }
    }
    

    三、实现结果

    1. 登录界面
      普通用户登录
      在这里插入图片描述
      2.普通用户:查询、借阅、归还 、显示列表
      在这里插入图片描述
      在这里插入图片描述
      3.管理员登录,按图书价格整理书籍
      在这里插入图片描述
    2. 管理员添加书籍
      在这里插入图片描述
    3. 管理员删除书籍
      在这里插入图片描述

    如有错误欢迎讨论指正 qq 505791225

    展开全文
  • JAVA 实现简单的学生成绩管理系统

    万次阅读 多人点赞 2018-04-15 10:27:23
    2.掌握简单的信息管理系统的设计与实现。二、实验环境实验建议在安装了以下软件的计算机上完成:1.Windows xp/win7/win8/win10操作系统2.JDK 1.6以上版本3.Eclipse或NetBeans IDE或EditPlus或其它开发工具三、实验...

    一、实验目的

    1.掌握java的类与对象的基本概念;

    2.掌握简单的信息管理系统的设计与实现。

    二、实验环境

    实验建议在安装了以下软件的计算机上完成:

    1.       Windows xp/win7/win8/win10操作系统

    2.       JDK 1.6以上版本

    3.       Eclipse或NetBeans IDE或EditPlus或其它开发工具

    三、实验内容与要求

    (一) 问题描述

    要求采用java类与对象的基本知识,实现简单的学生成绩管理系统。

    (二) 实验要求

    1.       实现定义学生成绩记录,记录包括字段有:学生姓名、学号、课程名称、成绩。

    2.       实现学生成绩管理系统的菜单管理功能,允许查看、添加、修改、删除、统计、查找和排序等操作;

    3.       实现查看学生成绩单功能,能显示所有学生成绩记录;

    4.       实现添加学生成绩记录功能,输入某位学生某门课的成绩,能保存到成绩表里面;

    5.       实现修改学生成绩记录功能,根据学生学号修改课程成绩;

    6.       实现删除学生成绩记录功能,根据学生学号删除课程成绩;

    7.       实现统计某门课平均分、最高分和最低分的功能;

    8.       实现查找某位学生成绩功能,根据学生学号显示该学生的成绩;

    9.       实现按成绩从高往低排序,并输出。

    四、实现提示

      1. 定义学生成绩记录类,把记录的字段作为类的属性,并定义该类的基本操作方法;

      2. 采用一维数组实现学生成绩记录表,数组的数据类型为” 学生成绩记录类”。

    
     

    第一步-建立一个Score类

    package student.score.manage;
    
    public class Score {
        String num;
        String name;
        double score;
    	
        public Score(){
    		
    	}
    	public void setNum(String num) {
    		this.num = num;
    	}
    	
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public void setScore(double score) {
    		this.score = score;
    	}
    }
    

     

    
     

     

    第二步-建立一个ScoreList类

    package student.score.manage;
    
    import java.util.Scanner;
    public class ScoreList {
        int maxLength = 100;
    	int length = 0;
        Score[] data = new Score[maxLength];
        
    	Scanner input = new Scanner(System.in);
    	
    	public ScoreList() {
    	
    	}
    	
    	//添加记录方法
    	public void add() {
    			if(length < maxLength) {
    				data[length] = new Score();
    				System.out.print("请输入学生的学号: ");
    				data[length].setNum(input.next());
    				System.out.print("请输入学生的姓名:");
    				data[length].setName(input.next());
    				System.out.print("请输入学生的成绩:");
    				data[length].setScore(input.nextDouble());
    				length++;
    				System.out.println("添加成功!");
    			}
    			else {
    				System.out.println("添加失败!");
    			}
    	}
    	
    	//显示成绩单方法
    	public void transcript() {
    		System.out.println("=====================================");
    		System.out.println(" 学号                     姓名                      成绩 ");
    		for(int i = 0; i < length; i++) {
    			System.out.println(data[i].num + "\t" + data[i].name + "\t" + "\t" + data[i].score);
    		}
    		System.out.println("=====================================\n");
    	}
    	
    	//成绩从高往低排序方法
    	public void sort() {
    		Score temp = new Score();
    		for(int i = 1; i < length; i++) {
    			for(int j = 0; j < length - i; j++) {
    				if(data[j].score < data[j + 1].score) { //冒泡法排序
    					temp = data[j]; data[j] = data[j + 1]; data[j + 1] = temp;
    				}
    
    			}
    		}
    	}
    	
    	//平均分、最大最小值方法
    	public void average() {
    		double sum = 0.0;
    		double max = 0.0;
    		double min = 100.0;
    		for(int i = 0; i < length; i++) {
    			sum += data[i].score;
    			max = max > data[i].score ? max : data[i].score;
    			min = min < data[i].score ? min : data[i].score; //三目运算法
    		}
    		System.out.printf("这门课的平均成绩为: %.2f\n", sum/length);
    		System.out.println("最高分为: " + max + "\n" + "最低分为: " + min + "\n");
    	}
    	
    	//删除学生记录方法
    	public void delete() {
    		System.out.print("请输入您要删除信息的学生的学号: ");
        	String number1 = input.next();
    		int i, flag = length;
    		for(i = 0; i < length; i++) {
    			if(number1.equals(data[i].num)) {
    				flag = i; break;
    			}
    			}
    		if(i == length) {
    			System.out.println("查无此人!请核对后重新输入 \n");
    			delete();
    		}
    		else {
    			for(int j = flag; j < length; j++) {
    				data[j] = data[j + 1];
    			}
    			System.out.println("删除成功!\n");
    			length -= 1; //不减1会报数组越界的错误
    		}
    	}
    	
    	
    	//查询某个学生信息方法
    	public void inquire() {
    		System.out.print("请输入您要查询成绩的学生的学号:");
        	String number2 = input.next();
    		int i;
    		for(i = 0; i < length; i++) {
    			if(number2.equals(data[i].num)) {
    				System.out.println("====================================");
    				System.out.println(" 学号                     姓名                      成绩 ");
    				System.out.println(data[i].num + "\t" + data[i].name + "\t" + "\t" + data[i].score);
    				System.out.println("====================================\n");
    				break;
    			}
    			}
    		if(i == length) {
    			System.out.println("查无此人!请核对后重新输入学号 \n");
    			inquire();
    		}
    	}
    	
    	//修改学生信息方法
    	public void recompose() {
    		System.out.print("请输入您要修改信息的学生的学号:");
        	String number3 = input.next();
    		int i;
    		for(i = 0; i < length; i++) {
    			if(number3.equals(data[i].num)) {
    				System.out.println("请输入该学生新的学号,姓名和成绩:");
    				data[i].setNum(input.next());
    				data[i].setName(input.next());
    				data[i].setScore(input.nextDouble());
    				System.out.println("修改成功!\n");
    				break;
    			}
    			}
    		if(i == length) {
    			System.out.println("查无此人!请核对后重新输入学号\n");
    			recompose();
    		}
    	}
    }
    

     

    最后一步,当然是建立一个Test类啦:

     

    package student.score.manage;
    
    import java.util.Scanner;
    public class Test {
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		String choice = "1";
    		ScoreList studentScoreList = new ScoreList();
    		System.out.println("**********学生成绩管理系统********");
    		while(choice.equals("0") == false) {
    			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("0.退出程序");
    			System.out.print("Enter your choice: ");
    			choice = input.next();
    	    	
    			switch(choice) {
    			    case "0": 
    			    	System.out.println("谢谢您的使用,欢迎下次光临!\n" + "**********按任意键结束程序**********"); 
    			        break;
    			    
    			    case "1":
    			    	studentScoreList.transcript();
    			    	System.out.println("请问您还需要什么服务?\n");
    			    	break;
    				
    			    case "2":
    			    	int i = 1;
    			    	do {
    			    	studentScoreList.add();
    			    	System.out.println("\n是否继续添加?" + "\n" + "0.否" + "\n" + "1.是");
    			    	i = input.nextInt();
    			    	}while(i == 1);
    			    	System.out.println("请问您还需要什么服务?\n");
    			    	break;
    			    	
    			    case "3": 
    			    	studentScoreList.recompose();
    			    	System.out.println("请问您还需要什么服务?\n");
    			    	break;
    				
    			    case "4":
    			    	studentScoreList.delete();
    			    	System.out.println("请问您还需要什么服务?\n");
    			    	break;
    				
    			    case "5":
    			    	studentScoreList.inquire();
    			    	System.out.println("请问您还需要什么服务?\n");
    			    	break;
    				
    			    case "6":
    			    	studentScoreList.average();
    			    	System.out.println("请问您还需要什么服务?\n");
    			    	break;
    				
    			    case "7":
    			    	studentScoreList.sort();
    			    	studentScoreList.transcript();
    			    	System.out.println("请问您还需要什么服务?\n");
    			    	break;
    				
    				default: 
    					System.out.println("Invalid input! Please enter again."); 
    				    break;
    			}
    			
    		}
    	}
    
    }

     

    这里是初学Java的渣新,还请大佬轻喷,有错误的地方还请多多指教,至于为啥我这个渣新也敢发代码出来,还不是学校要求的!!!而且我想我这个渣新写的代码对于萌新来说也更好理解,谢谢支持了

    鉴于很多人跟我要源码 我这里贴出github地址:https://github.com/ZenGx1n/student-score-manage

    有需求的自行下载 谢谢

    展开全文
  • java实现简单学生信息管理系统

    万次阅读 多人点赞 2018-11-10 14:53:08
    ** ## java实现简单学生信息管理系统(6步) ** 1、首先定义一个学生信息主体类 package project; public class Stu_class { String name; String stu_id; String sex; String phone_num; int age; public ...

    ** ## java实现简单学生信息管理系统(6步) **

    1、首先定义一个学生信息主体类

    package project;
    
    public class Stu_class {
    	String name;
    	String stu_id;
    	String sex;
    	String phone_num;
    	int age;
    		
    	public Stu_class(String name,String stu_id, int age, String phone_num, String sex) {
    		this.name = name;
    	
    		this.stu_id = stu_id;
    		this.phone_num = phone_num;
    		this.sex = sex;
    		this.age = age;
    	}
    	public String getName() {
    		return name;
    	}
    
    	public String getStu_id() {
    		return stu_id;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	public void setId_num(String stu_id) {
    		this.stu_id = stu_id;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public void setPhone_num(String phone_num) {
    		this.phone_num = phone_num;
    	}
    	public void display() {
    		System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"性别:"+sex+"\n"+"学号:"+stu_id+"\n"+"手机号:"+phone_num);
    	}
    }
    
    

    2、再定义一个工具类,在此类中有主页面的欢迎页面,各种功能的实现函数

    package project;
    import java.util.*;
    
    public class Tool {
    	Check_stu_info stu_choose;
    	Chaneg_stu_info change_stu;
    	Add_stu_info stu_info;
    	LinkedList<Stu_class>stu;
    	Scanner con ;
    	public Tool(LinkedList<Stu_class>stu,Check_stu_info stu_choose,Chaneg_stu_info change_stu,Add_stu_info stu_info,Scanner con) {
    		this.stu_choose = stu_choose;
    		this.change_stu = change_stu;
    		this.stu_info =stu_info;
    		this.con = con;
    		this.stu = stu;
    	}
    	public void welcome_custome() {
    		String s = "***********************************";
    		System.out.println(s);
    		System.out.println("欢迎进入学生管理系统!"+"\n"+"您可以进行以下操作:\n1、查看学生信息\n2、修改个人信息\n3、注册新账号\n4、退出系统");
    		System.out.println(s);
    		System.out.print("请选择你需要进行的操作>>>");
    	}
    	public void check_choose(Tool tool) {
    		int choose = con.nextInt();
    		switch(choose) {
    		case 1:
    			stu_choose.welcome_check_choose();
    			stu_choose.check_choose(stu,tool);
    			//查看个人信息函数
    			//con.close();
    			break;
    		case 2:
    			change_stu.change_stu_info(stu,tool);
    			//修改个人信息函数
    			//con.close();
    			break;
    		case 3:
    			stu_info.add_stu_info(stu,tool);
    			//注册新账号
    			//con.close();
    			break;
    		case 4:
    			//退出系统
    			System.out.println("退出系统成功!!!");
    			con.close();
    			System.exit(-1);
    			break;
    		default:
    			System.out.print("输入有误,请重新输入>>>");
    			check_choose(tool);
    	}
    	}
    	public void return_last(Tool tool) {
    		welcome_custome();
    		check_choose(tool);
    	}
    
    }
    
    

    3、 在上一个类中我们定义了查看个人信息函数,修改个人信息函数,注册新账号函数,退出系统.
    接下来我们来写第一个查看个人信息函数.

    package project;
    import java.util.*;
    /**查看信息
     * 1、提示用户所需
     * 2、查看所有学生信息
     * 3、查看个别学生信息
     * 4、当信息查询不到时,提醒并跳入注册学生信息函数界面.
     */
    public class Check_stu_info {
    	Scanner con;
    	Add_stu_info stu_info;
    	public Check_stu_info(Scanner con,Add_stu_info stu_info) {
    		this.con = con;
    		this.stu_info = stu_info;
    	}
    	public void welcome_check_choose() {	
    			String s = "***********************************";
    			System.out.println(s);
    			System.out.println("欢迎进入校园卡查询信息界面,您可以进行以下操作:\n1、查看全部信息\n2、查看个人信息\n3、返回上一级目录\n4、退出");
    			System.out.println(s);
    			System.out.print("请选择你需要进行的操作>>>");
    	}
    	public  void check_choose(LinkedList<Stu_class>stu,Tool tool) {
    		int choose = con.nextInt();
    		switch(choose) {	
    			case 1:
    				//查看全部学生信息
    				show_all_stu_info(stu,tool);
    				//con.close();
    				break;
    			case 2:
    				//查看个人信息
    				one_stu_info(stu,tool,stu_info);
    				//con.close();
    				break;
    			case 3:
    				tool.return_last(tool);
    				//返回上一级目录
    				//con.close();
    				break;
    			case 4:
    				System.out.println("退出系统成功!!!");
    				System.exit(-1);
    				//con.close();
    				//退出系统
    			default:
    				System.out.println("输入有误,请重新输入>>>");
    				check_choose(stu,tool);
    		}
    	}
    	//检查一个人的信息
    	public void one_stu_info(LinkedList<Stu_class>stu,Tool tool,Add_stu_info stu_info) {
    		//Scanner con = new Scanner(System.in);
    		System.out.println("请输人你需要查找学生的姓名>>>");
    		String name = con.next();
    		//con.close();
    		boolean flag = false;
    		if(stu.size() == 0) {
    			System.out.println("未添加学生信息,请先添加学生信息!!!\n1、添加学生信息\t2、退出系统\n请输入>>>");
    			int choose = con.nextInt();
    			if(choose == 1)
    				stu_info.add_stu_info(stu,tool);
    			if(choose == 2)
    				System.exit(-1);
    				
    		}
    		if(stu.size() > 0)
    			{
    			for(int i = 0;i < stu.size();i++) {
    				System.out.println("2");
    				if(stu.get(i).getName()==name) {
    					stu.get(i).display();
    					flag = true;
    					break;
    			}
    		}
    		if(flag==true) {
    			System.out.println("查找成功!!!\n1、继续查找学生信息\t2、返回上一级菜单\t3、退出系统");
    			int choose = con.nextInt();
    			switch(choose) {
    				case 1:
    					one_stu_info(stu, tool,stu_info);
    					break;
    				case 2:
    					tool.return_last(tool);
    					break;
    				case 3:
    					System.exit(-1);
    			}
    		}
    			
    			
    		if(flag == false)
    			{
    			System.out.println("未查到学生信息,1、重新输入\t2、返回上一级菜单\n请输入>>>");
    			int choose = con.nextInt();
    			if(choose == 1)
    				one_stu_info(stu, tool, stu_info);
    			if(choose == 2)
    				tool.return_last(tool);
    			}
    			}
    	}
    	//查询所有人的信息 
    	public void show_all_stu_info(LinkedList<Stu_class>stu,Tool tool) {
    		if(stu.size() == 0) {
    			System.out.println("未添加学生信息,请先添加学生信息!!!\n1、添加学生信息\t2、退出系统\n请输入>>>");
    			int choose = con.nextInt();
    			if(choose == 1)
    				stu_info.add_stu_info(stu,tool);
    			if(choose == 2)
    				System.exit(-1);
    				
    		}
    		else {
    		for(int i = 0;i<stu.size();i++)
    			stu.get(i).display();
    		System.out.println("请输入:\n1、返回上一级目录\t2、退出系统");
    		int choose = con.nextInt();
    		if(choose == 1) {
    			tool.return_last(tool);
    		}
    		if(choose == 2) {
    			System.out.println("退出系统成功!!!");
    			System.exit(-1);
    		}
    		}
    	}
    }
    
    

    4、 接下来写修改个人信息类

    package project;
    import java.util.*;
    /**
     * 1、输入想要修改学生信息的名字
     * 2、将输入的名字在列表中查询
     * 3、查询不成功,提醒用户重新输入,查找成功后进行修改
     *
     */
    public class Chaneg_stu_info {
    	Scanner con;
    	public Chaneg_stu_info(Scanner con) {
    		this.con = con;
    	}
    	public void change_stu_info(LinkedList<Stu_class>stu,Tool tool) {
    		System.out.print("请输入你想要修改学生信息的姓名>>>");
    		String name = con.next();
    		boolean flag = false;
    		for(int i = 0;i<stu.size();i++) {
    			if(name.equals(stu.get(i).getName())) {
    			//	Scanner cox = new Scanner(System.in);
    				flag = true;
    				System.out.print("请输入修改后的姓名>>>");
    				String change_name = con.next();
    				System.out.println();
    				System.out.print("请输入修改后的年龄>>>");
    				int change_age = con.nextInt();
    				System.out.println();
    				System.out.print("请输入修改后的学号>>>");
    				String change_id = con.next();
    				System.out.println();
    				System.out.print("请输入修改后的性别>>>");
    				String change_sex = con.next();
    				System.out.println();
    				System.out.print("请输入修改后的手机号>>>");
    				String change_phone = con.next();
    				System.out.println();
    				stu.get(i).setName(change_name);
    				stu.get(i).setId_num(change_id);
    				stu.get(i).setPhone_num(change_phone);
    				stu.get(i).setAge(change_age);
    				stu.get(i).setSex(change_sex);
    				
    			}
    		}
    		if(flag == true) {
    			System.out.println("修改完成!!!\n1、返回上一级菜单\t2、退出系统");
    			int choose = con.nextInt();
    			if(choose == 1)
    				tool.return_last(tool);
    			if(choose == 2)
    				System.exit(-1);
    		}
    		if(flag == false) {
    			System.out.println("未找到该学生信息\n1、重新输入\t2、退出");
    			int choose = con.nextInt();
    			if(choose == 1)
    				change_stu_info(stu, tool);
    			if(choose == 2)
    				System.exit(-1);
    		}
    	}
    }
    
    

    5、添加学生信息类

    package project;
    import java.util.*;
    
    public class Add_stu_info {
    	Scanner con;
    	public Add_stu_info(Scanner con) {
    		this.con = con;
    	}
    	public void add_stu_info(LinkedList<Stu_class>stu,Tool tool) {
    		//Scanner con = new Scanner(System.in);
    		String s = "***********************************";
    		System.out.print(s+"\n请输入添加学生的姓名>>>");
    		String name = con.next();
    		System.out.print("请输入添加学生的性别>>>");
    		String sex = con.next();
    		System.out.print("请输入添加学生的年龄>>>");
    		int age = con.nextInt();
    		System.out.print("请输入添加学生的学号>>>");
    		String id = con.next();
    		System.out.print("请输入添加学生的手机号>>>");
    		String phone_num = con.next();
    		Stu_class student = new Stu_class(name, id, age, phone_num, sex);
    		stu.add(student);
    		System.out.println("添加完成!!!\n"+s);
    		
    		//返回上一级目录
    		System.out.println("请输入:\n1、返回上一级目录\t2、退出系统");
    		tool.welcome_custome();
    		tool.check_choose(tool);
    	
    	}
    }
    
    

    6、最后定义主体类,对上面所有代码进行整合,创建所需要的对象,再将对象作为参数进行传递,就可实现简单的学生信息管理系统

    package project;
    
    import java.util.LinkedList;
    import java.util.Scanner;
    
    public class Stu_main {
    		static LinkedList<Stu_class>stu;
    	public static void main(String[] args) {
    		//欢迎界面
    		//创建存放学生信息的列表
    		stu = new LinkedList<Stu_class>();
    		//创建输入入口
    		Scanner con = new Scanner(System.in);
    		//创建添加学生信息的对象
    		Add_stu_info stu_info = new Add_stu_info(con);
    		//创建修改学生信息的对象
    		Chaneg_stu_info change_stu = new Chaneg_stu_info(con);
    		//创建查询学生信息的对象
    		Check_stu_info stu_choose = new Check_stu_info(con,stu_info);
    		//创建工具类对象
    		Tool tool = new Tool(stu,stu_choose,change_stu,stu_info,con);
    		tool.welcome_custome();
    		tool.check_choose(tool);
    		con.close();
    	}
    
    }
    
    

    7、代码运行界面代码运行界面

    展开全文
  • java实现简单的银行管理系统

    千次阅读 多人点赞 2021-01-03 17:27:39
    java实现简单的银行管理系统页面代码之一:mvc设计模式,分包分包图片简单效果演示:登陆主页面注册页面登录:功能页面!存款转账查看近期流水账单! 页面代码之一: package org.vector.view; import java.awt....

    页面代码之一:

    package org.vector.view;
    
    
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
    import org.vector.bean.Bank;
    import org.vector.serviceImpl.BankServiceImpl;
    
    
    
    
    
    @SuppressWarnings("serial")
    public class BankView extends JFrame{
    
    	private JButton register,login,codeChange;
    	private JLabel idLabel,codeLabel,bank,imLabel;
    	public static JTextField idTest;
    	private JPasswordField codeTest;
    	public static String message;
    	public BankView() {
    		building();
    		addListeners();
    		
    	}
    	public void building() {
    		setLayout(null);
    		ImageIcon image = new ImageIcon("bank.png");
    		imLabel = new JLabel(image);
    		imLabel.setBounds(180, 90, 250, 200);
    		bank = new JLabel("bank");
    		idLabel = new JLabel("账号");
    		codeLabel = new JLabel("密码");
    		register = new JButton("注册");
    		login = new JButton("登录");
    		image = new ImageIcon("bank.png");
    		idTest = new JTextField(20);
    		codeTest = new JPasswordField(20);
    		codeChange = new JButton("修改/忘记密码");
    		bank.setBounds(250, 20, 120, 50);
    		Font font = new Font("圆体", Font.BOLD, 50);
    		Font font1 = new Font("圆体", Font.BOLD, 30);
    		bank.setFont(font);
    		register.setBounds(0, 500, 120, 25);
    		login.setBounds(225, 450, 120, 25);
    		codeChange.setBounds(450, 500, 120, 25);
    		idLabel.setBounds(150, 300, 120, 25);
    		idLabel.setFont(font1);
    		codeLabel.setBounds(150, 375, 120, 25);
    		codeLabel.setFont(font1);
    		idTest.setBounds(250, 300, 200, 30);
    		codeTest.setBounds(250, 375, 200, 30);
    		
    		
    		add(bank);
    		add(imLabel);
    		add(idLabel);
    		add(idTest);
    		add(codeLabel);
    		add(codeTest);
    		add(login);
    		add(register);
    		add(codeChange);
    		
        	setBounds(600,600,600,600);
        	setLocation((2000-getWidth())/2,(1000-getHeight())/2);
        	setResizable(false);
        	setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        	setVisible(true);
    	}
    
    	private void addListeners() {
    		register.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				BankView.this.dispose();
    				new BankRegister().setVisible(true);
    			}
    			
    		});
    		
    		login.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				
    				int flag = 0;
    				String id = idTest.getText();
    				String code = codeTest.getText();
    				if(!id.equals("")&&!code.equals("")) {
    				BankServiceImpl bankServiceImpl = new BankServiceImpl();
    				BankView_0.list.clear();
    				BankView_0.list.addAll(bankServiceImpl.find());
    				for (int i = 0; i < BankView_0.list.size(); i++) {
    					if(id.equals(BankView_0.list.get(i).getIdAccount()) && code.equals(BankView_0.list.get(i).getCode())) {
    						BankView_0.list1.clear();
    						BankView_0.list1.add(id);
    						flag = 1;
    						JOptionPane.showMessageDialog(register, "登陆成功", "标题",JOptionPane.WARNING_MESSAGE); 
    						BankView.this.dispose();
    						new BankView_0().setVisible(true);	
    						break;
    					}
    				}
    				if(flag == 0){
    					JOptionPane.showMessageDialog(register, "账号或密码错误", "标题",JOptionPane.WARNING_MESSAGE); 
    				}
    			}
    				else {
    					JOptionPane.showMessageDialog(register, "账号或密码不能为空", "标题",JOptionPane.WARNING_MESSAGE); 
    
    				}
    			}
    		});
    		codeChange.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				JOptionPane.showMessageDialog(codeChange, "此功能暂未开放", "标题",JOptionPane.WARNING_MESSAGE); 
    
    			}
    		});
    
    
    	}
    }
    
    

    mvc设计模式,分包

    分包图片

    在这里插入图片描述
    具体的MVC,已经在上一个项目中介绍了。可以看图书管理系统。这个项目。

    简单效果演示:

    登陆主页面

    在这里插入图片描述

    注册页面

    在这里插入图片描述

    登录:

    在这里插入图片描述

    登陆成功!

    在这里插入图片描述

    功能页面!

    在这里插入图片描述

    存款,取款,转账之前跳转的页面

    在这里插入图片描述

    在这里插入图片描述

    存款

    在这里插入图片描述
    在这里插入图片描述

    存款后的金额改变了

    在这里插入图片描述

    转账

    在这里插入图片描述
    在这里插入图片描述

    转账成功!

    在这里插入图片描述

    转账后的金额

    在这里插入图片描述

    查看近期流水账单!

    在这里插入图片描述
    详细的可以了解,资源里边的项目。

    联系方式qq:1287440358 微信:Burial_DH。

    展开全文
  • java实现简单的学生信息管理系统

    万次阅读 多人点赞 2017-12-18 14:29:58
    java实现简单的学生信息管理系统(无界面)学生类实体:package com.edu.imau.wcy;public class Stu { private String stuNum;//学号 private String name;//姓名 private String gender;//性别 private int age...
  • Java实现简单的学生管理系统

    万次阅读 2019-04-15 20:07:11
    java控制台上实现学生信息的管理 环境:ide + mysql 数据库: 学生的一张表 老师的一张表: 目录建成后是这样的: 实现的功能有: 教师登陆 1、学生信息添加 2、学生信息查看 3、学生信息删除 4、学生信息...
  • java学生信息管理系统(附源码)

    万次阅读 多人点赞 2016-07-14 16:36:30
    1:实现登录界面 2:实现主界面 有两种操作 一种是按钮操作 另外一种是SQL语句。 3:连接SQL server 2008 数据库,后续我更新了,加了一个MySql 版本。在我的下载链接里面都有,里面也有使用说明。另外*...
  • Java实现简单图书馆管理系统

    千次阅读 多人点赞 2019-10-20 21:36:55
    编写图书馆管理系统 思路 要编写这个程序我们首相要清楚这个程序中有哪些对象,不考虑复杂情况,基本的对象有三个: 书 用户 那么我们就分别讨论这三个对象有哪些属性和有哪些动作。 书籍 它会有书名,编号(id), ...
  • Java实现简单学生信息管理系统

    千次阅读 2018-11-06 19:49:17
    Java实现简单学生信息管理系统 public class Student { private String sno; private String sname; private String sdept; Student(){} public String getSno() { return sno; } public void setSno...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 826,676
精华内容 330,670
关键字:

java实现简单的管理系统

java 订阅