//用java编写一个学生成绩管理系统.
//1.学生类 学号 姓名 年龄 语数外三科成绩(三科成绩) 保存三科成绩用什么类型?自定义
//2.科目类 科目类别 期中成绩 期末成绩
//3.学生管理类
//1)可以添加学生和成绩 2)可以删除学生 3)可以展示学生所有科目成绩
4).可以计算某个学生总成绩和平均成绩
用数组可以,也可以用集合来存储各个同学的成绩。
添加删除等信息简单。
这里有个迷你图书管理系统,类似,我刚写的。你看看之后应该会有思路了。如果用集合utils做的话,也简单,知识用到了集合框架和泛型等机制。
package cn.kgc.sg.MiTuSys;
import java.util.Scanner;
public class MiNiBookSys {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 定义书的信息
String[] bookNames = new String[4];
int[] borrowDate = new int[5];
int[] borrowCount = new int[4];
int[] states = new int[4];
// 定义书单信息
String[] bookMeg = new String[5];
bookMeg[0] = "Java开发";
bookMeg[1] = "C#开发";
bookMeg[2] = "C语言开发";
states[2] = 0; // 0:可借阅 1:已借出
// 初始化两个图书借阅记录信息
bookNames[0] = "安徒生童话";
borrowDate[0] = 15;
borrowCount[0] = 4;
states[0] = 0; // 0:可借阅 1:已借出
bookNames[1] = "格林童话";
states[1] = 1; // 0:可借阅 1:已借出
borrowDate[1] = 26;
borrowCount[1] = 9;
// 搭建项目框架
int num = -1;// 定义用户初始输入的数字
do {
System.out.println("*********************欢迎使用图书管理系统**********************");
System.out.println("\t\t\t1.新增图书");
System.out.println("\t\t\t2.查看图书");
System.out.println("\t\t\t3.删除图书");
System.out.println("\t\t\t4.图书借阅");
System.out.println("\t\t\t5.归还图书");
System.out.println("\t\t\t6.退出系统");
System.out.print("请输入您的选择:");
int choose = sc.nextInt();
// 判断输入的选择是否正确
while (choose < 0 || choose > 6) {
System.out.print("输入有误,请重新输入:");
choose = sc.nextInt();
}
// 定义一个flag变量,来定义是否退出系统
boolean flag = true;// true:不退出系统 false:退出系统
String addName = null;
switch (choose) {
case 1:
System.out.println("\n*********1.新增图书*********");
boolean isAdd = true;
System.out.println("序号\t\t图书书名");
for (int i = 0; i < bookMeg.length; i++) {
// 判断为空的不输出
if (bookMeg[i] != null) {
System.out.println((i + 1) + "\t\t" + bookMeg[i]);
}
}
System.out.print("请输入新增图书名称:");
addName = sc.next();
for (int i = 0; i <bookMeg.length; i++) {
// 判断为空的不输出
if (bookMeg[i] == null) {
bookMeg[i] = addName;
break;
}
}
/*bookMeg[bookMeg.length-1] = addName; //添加图书信息
*/ System.out.println("\n序号\t\t图书书名");
for (int i = 0; i < bookMeg.length; i++) {
// 判断为空的不输出
if (bookMeg[i] != null) {
System.out.println((i + 1) + "\t\t" + bookMeg[i]);
}
}
if (!isAdd) {
System.out.println("对不起,图书已满,不能添加!!!");
}
break;
case 2:
System.out.println("\n*********2.查看图书*********");
System.out.println("序号" + "\t图书书名" + "\t 借阅次数 \t借阅状态\t借阅日期\t");
// 遍历数组
for (int i = 0; i < bookNames.length; i++) {
// 判断信息为空的不输出
if (bookNames[i] != null) {
String borrowCounts = borrowCount[i] + "次";
String borrowDates = borrowDate[i] + "日";
String state = (states[i] == 0) ? "可借阅" : "已借出";
System.out.println((i + 1) + "\t" + bookNames[i] + "\t " + borrowCounts + "\t " + state
+ "\t " + borrowDates);
}
}
break;
case 3:
System.out.println("\n*********3.删除图书*********");
System.out.println("序号\t\t图书书名");
for (int i = 0; i < bookMeg.length; i++) {
// 判断为空的不输出
if (bookMeg[i] != null) {
System.out.println((i + 1) + "\t\t" + bookMeg[i]);
}
}
System.out.print("请输入删除的图书序号:");
int delNo = sc.nextInt();
// 判断输入的序号是否有误
while (delNo < 1 || delNo > bookMeg.length) {
System.out.print("输入有误,重新输入:");
delNo = sc.nextInt();
}
// 删除图书
for (int i = 0; i <=bookMeg.length-1;i++) {
if (bookMeg[i] != null && i == delNo - 1) {
bookMeg[i] = bookMeg[i+1];
bookMeg[i+1] = null; //
// 最后置空
bookMeg[bookMeg.length - 1] = null;
}
}
for (int i = 0; i < bookMeg.length; i++) {
// 判断为空的不输出
if (bookMeg[i] != null) {
System.out.println((i + 1) + "\t\t" + bookMeg[i]);
}
}
break;
case 4:
System.out.println("\n*********4.图书借阅*********");
System.out.println("\n序号\t\t图书书名\t\t借阅状态\t\t借阅次数\t\t借阅日期");
for (int i = 0; i < bookMeg.length; i++) {
// 判断为空的不输出
if (bookMeg[i] != null) {
String state = (states[i] == 0) ? "可借阅" : "已借出";
String borrowCi = borrowCount[i] + "次";
System.out.println((i + 1) + "\t\t" + bookMeg[i] + "\t\t" + state + "\t\t" + borrowCi + "\t\t"
+ borrowDate[i]);
}
}
System.out.print("请输入您要借阅的图书序号:");
int borrowNo = sc.nextInt();
boolean isFind = true;// false:找不到
for (int i = 0; i < bookMeg.length; i++) {
// 查到了,但是状态是0可借阅,可以借阅
if (i == borrowNo - 1 && states[i] == 0) {
isFind = true;
// 改变状态为已借出
states[i] = 1;
// 借阅次数加一
borrowCount[i]++;
// 输入借阅日期
System.out.print("请输入借阅日期:");
int borrow = sc.nextInt();
// 对输入的日期判断
while (borrow < 1 || borrow > 31) {
System.out.print("您输入日期有误,请重新输入:");
borrow = sc.nextInt();
}
// 更新借阅日期
borrowDate[i] = borrow;
} else if (i == borrowNo - 1 && states[i] == 1) {
// 查到了,但是状态是1已借出,不可以借阅
isFind = true;
System.out.println("状态是已借出,不可以借阅!!!");
}
}
if (!isFind) {
System.out.println("找不到图书!");
break;
}
break;
case 5:
System.out.println("\n*********5.归还图书*********");
System.out.println("\n序号\t\t图书书名\t\t借阅状态\t\t借阅次数\t\t借阅日期");
for (int i = 0; i < bookMeg.length; i++) {
// 判断为空的不输出
if (bookMeg[i] != null) {
String state = (states[i] == 0) ? "可借阅" : "已借出";
String borrowCi = borrowCount[i] + "次";
System.out.println((i + 1) + "\t\t" + bookMeg[i] + "\t\t" + state + "\t\t" + borrowCi + "\t\t"
+ borrowDate[i]);
}
}
System.out.print("请输入您要归还的图书序号:");
int huanNo = sc.nextInt();
// 判断归还的序号是否合法
while (huanNo < 1 || huanNo > bookMeg.length - 1) {
System.out.print("输入的归还图书序号有误,请重新输入:");
huanNo = sc.nextInt();
}
boolean isHuan = true;// false:找不到
for (int i = 0; i < bookMeg.length; i++) {
// 查到了,但是状态是1已借出,可以还
if (i == huanNo - 1 && states[i] == 1) {
isHuan = true;
// 改变状态为已借出
states[i] = 0;
// 输入归还日期
System.out.print("请输入归还日期:");
int huan = sc.nextInt();
// 对归还的日期判断,必须大于借阅日期
while (huan < 1 || huan > 31) {
System.out.print("您输入日期有误,请重新输入(1-31):");
huan = sc.nextInt();
}
while (huan < borrowDate[i]) {
System.out.print("归还日期必须大于借阅日期" + borrowDate[i] + "号,请重新输入:");
huan = sc.nextInt();
}
borrowCount[i]++;
System.out.println("归还图书成功!!!");
} else if (i == huanNo - 1 && states[i] == 0) {
// 查到了,但是状态是0可借阅,不能还
isFind = true;
System.out.println("状态是可借阅,不可以归还!!!");
}
}
if (!isHuan) {
System.out.println("抱歉,找不到图书,不能归还图书!");
break;
}
break;
case 6:
System.out.println("\n*********6.退出系统*********");
flag = false;
break;
default:
flag = false;
break;
}
if (flag) {
System.out.print("输入0返回:");
num = sc.nextInt();
} else {
break;
}
} while (num == 0);
System.out.println("**********谢谢使用**********");
}
}
希望能帮到你!!!