学生成绩管理系统
简介:
目前实现了添加学生,查看学生,删除学生,修改学生信息的功能,后期会再更新其它功能
文章目录
一、创建学生信息
构造函数快捷键:alt+insert
public class Students {
//定义属性
private String id;
private String name;
private String age;
private String sex;
private String math;
private String chinese;
//构造函数 alt+insert
public Students() {
}
public Students(String id, String name, String age, String sex, String math, String chinese) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
this.math = math;
this.chinese = chinese;
}
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 getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getMath() {
return math;
}
public void setMath(String math) {
this.math = math;
}
public String getChinese() {
return chinese;
}
public void setChinese(String chinese) {
this.chinese = chinese;
}
}
二、界面和功能
1.主界面
1-1添加学生功能
不考虑学号是否重复
public void add(ArrayList<Students>array){
//从键盘输入学生信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入学号:");
String id = sc.nextLine();
System.out.println("请输入姓名:");
String name = sc.nextLine();
System.out.println("请输入年龄:");
String age = sc.nextLine();
System.out.println("请输入性别:");
String sex= sc.nextLine();
System.out.println("请输入数学成绩:");
String math= sc.nextLine();
System.out.println("请输入语文成绩:");
String chinese = sc.nextLine();
//将信息填、添入到学生类中
Students s=new Students();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setSex(sex);
s.setMath(math);
s.setChinese(chinese);
//将添入的信息放到学生集合中
array.add(s);
System.out.println("添加学生成功!");
}
考虑学号重复问题
//添加学生
public void add(ArrayList<Students>array){
//从键盘输入学生信息
String id;//便于外部使用
Scanner sc = new Scanner(System.in);
//判断是否有重复的学号
while (true) {
System.out.println("请输入学号:");
id = sc.nextLine();
boolean flag = repeat(array, id);//请看下文
if (flag) {
System.out.println("你输入的学号已经存在,请重新输入:");
}else {
break;
}
}
System.out.println("请输入姓名:");
String name = sc.nextLine();
System.out.println("请输入年龄:");
String age = sc.nextLine();
System.out.println("请输入性别:");
String sex= sc.nextLine();
System.out.println("请输入数学成绩:");
String math= sc.nextLine();
System.out.println("请输入语文成绩:");
String chinese = sc.nextLine();
//将信息填、添入到学生类中
Students s=new Students();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setSex(sex);
s.setMath(math);
s.setChinese(chinese);
//将添入的信息放到学生集合中
array.add(s);
System.out.println("添加学生成功!");
}
上述代码中有一个repeat()函数(用来判断学号是否重复),以下是它的代码:
//判断学号是否重复
public static boolean repeat(ArrayList<Students>array,String id){
boolean flag=false;
for (int i=0;i<array.size();i++){
Students s=array.get(i);
if(s.getId().equals(id)) {
flag=true;
break;
}
}
return flag;
}
1-2查看学生功能
//查看学生
public void look(ArrayList<Students>array){
//判断集合是否有数据
if(array.size()==0){
System.out.println("集合无数据,请先添加学生数据");
return;//不在往下执行
}
System.out.println("学号\t姓名\t年龄\t性别\t数学成绩\t语文成绩\t");//表头
System.out.println("---------------------------------------");
//遍历集合,输出集合
for (int i=0;i<array.size();i++){
Students s=array.get(i);
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"岁"+"\t"+s.getSex()+"\t"+s.getMath()+"\t"+s.getChinese());
}
}
1-3 删除学生功能
不考虑学号不存在问题
//删除学生
public void delect(ArrayList<Students>array){
Scanner sc = new Scanner(System.in);
System.out.println("删除你要删的学生的学号:");
String id =sc.nextLine();
//遍历学生集合
for(int i=0;i<array.size();i++){
Students s=array.get(i);
//比较输入的学号和集合里的学号是否相等
if(s.getId().equals(id)){
array.remove(i);//删除
break;
}
}
System.out.println("删除成功!");
}
考虑学号不存在问题
//删除学生
public void delect(ArrayList<Students>array){
Scanner sc = new Scanner(System.in);
System.out.println("删除你要删的学生的学号:");
String id =sc.nextLine();
//遍历学生集合
int index=-1;//学号不存在即为-1
for(int i=0;i<array.size();i++){
Students s=array.get(i);
//比较输入的学号和集合里的学号是否相等
if(s.getId().equals(id)){
index=i;
break;
}
}
if(index==-1){
System.out.println("该数据不存在,请重新输入");
}else{
array.remove(index);//删除
System.out.println("删除成功!");
}
}
1-4 修改学生功能
考虑学号不存在问题
//修改学生
public void modify(ArrayList<Students>array){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要修改的学号:");
String id = sc.nextLine();
System.out.println("请输入新姓名:");
String name = sc.nextLine();
System.out.println("请输入新年龄:");
String age = sc.nextLine();
System.out.println("请输入新性别:");
String sex= sc.nextLine();
System.out.println("请输入新的数学成绩:");
String math= sc.nextLine();
System.out.println("请输入新的语文成绩:");
String chinese = sc.nextLine();
Students s =new Students();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setSex(sex);
s.setMath(math);
s.setChinese(chinese);
int index=-1;//学号不存在即为-1
for(int i=0;i<array.size();i++){
Students student=array.get(i);
//比较输入的学号和集合里的学号是否相等
if(student.getId().equals(id)){
index=i;
break;
}
}
if(index==-1){
System.out.println("你输入的学号不存在,请重新输入学号:");
}else{
array.set(index,s);//值替换
System.out.println("修改成功!");
}
}
1-5 主界面代码
//主界面
public void maininterface () {
while (true) {
System.out.println("--------------------");
System.out.println("欢迎来到学生管理系统:");
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("--------------------");
System.out.println("请输入你想查询的内容:");
Scanner sc = new Scanner(System.in);
String main = sc.nextLine();
switch (main) {
case "1":
studentfunction.look(array);
break;
case "2":
studentfunction.add(array);
break;
case "3":
studentfunction.delect(array);
break;
case "4":
studentfunction.modify(array);
break;
case "5":
case "6":
System.out.println("欢迎使用");
System.exit(0);
}
}
}
要想程序运行需在主界面代码上面加两行代码
Studentfunction studentfunction=new Studentfunction();
ArrayList<Students> array=new ArrayList<Students>();
三、主函数
main 函数
public class Main {
public static void main(String[] args) {
// write your code here
Ui ui=new Ui();
ui.maininterface();
}
}