题目:
一、测试要求:
1、按照测试内容要求完成程序的设计与编程;
2、将最终结果的源文件(.java)文件上传到以班级为单位,保存源程序。
3、建立学号姓名文件夹,如:“20170001 管学生”,将源程序文件保存在文件夹中。
二、实验内容:
1、定义 student 类,其中包括五个私有变量(stunumber,name,age,sex,score)。
各成员的含义如下:
变量 stunumber 为字符串类型 String,用于存储学生的学号(有 8 位数字组成)。
变量 name 为字符串类型 String,用于存储学生的姓名。
变量 age 为 int 类型,用于存储学生的年龄。
变量 sex 为 boolean 类型,用于存储学生的性别,男生为 false,女生为true。变量 score 为 double 类型,用于存储学生的成绩。
并对每个变量定义 get()(读取变量信息)和 set()(设置变量信息)的方法。赋初值方法包括五个参数,用于为变量(stunumber ,name,age,sex 和score)赋值。
2、定义 StudentManager 类实现下列要求。
(1)利用数组实现至少存储五个学生的信息;(将考生信息作为第一条记录)。
(2)定义 showStudent()方法打印输出所有的学生信息;
(3)定义 addStudent (stunumber,name,age,sex,score)方法增加一名新学生的信息,需要判断学号是否重复,如果重复提示用户,并禁止增加新学生信息;
(4)定义 deleteStudent(stunumber)方法删除一名学生信息(将该学生所有信息清空);
(5)定义 updateStudent (stunumber,name,age,sex,score)方法修改学生信息;
(6)定义 selectStudent(stunumber)查询并且输出该名学生的全部信息。
(7)定义一个输入界面如下图所示,选择相应的数字执行相应的功能
***************************************************************
---------信息科学与技术学院
学生信息管理系统 v2.0
****************************************************************
1、 遍历输出学生信息;
2、 新学生信息录入;
3、 删除学生信息;
4、 修改学生信息;
5、 查询学生信息;
****************************************************************
学生类:
public class Student { String stunumber; String name; int age; boolean sex; double score; public String getStunumber() { return stunumber; } public void setStunumber(String stunumber) { this.stunumber = stunumber; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } Student(String stunumber,String name,int age,boolean sex,double score) { this.stunumber=stunumber; this.name = name; this.age = age; this.sex = sex; this.score = score; } }
管理学生类:
//import java.util.*; import java.util.Scanner; public class StudentManager { static int sum=0; static Scanner sc = null; static Student[] a = new Student[1000]; public static int systemMenu() { sc = new Scanner(System.in); System.out.println("*************************************************************** " + " -------大学信息科学与技术学院 " + " 学生信息管理系统 v2.0 " + "**************************************************************** " + " 1、 遍历输出学生信息; " + " 2、 新学生信息录入; " + " 3、 删除学生信息; " + " 4、 修改学生信息; " + " 5、 查询学生信息; " + "****************************************************************"); int ch; System.out.println("请选择:"); ch = sc.nextInt(); return ch; } public static void showStudent(){ int i,f=0; for(i = 0 ;i < sum ;i++){ if(a[i].stunumber == null) { f++; continue; } System.out.println("第"+(i+1-f)+"名学生的学号为:"+a[i].stunumber); System.out.println("第"+(i+1-f)+"名学生的姓名为:"+a[i].name); if(a[i].isSex()) System.out.println("第"+(i+1-f)+"名学生的性别为:女"); else System.out.println("第"+(i+1-f)+"名学生的性别为:男"); System.out.println("第"+(i+1-f)+"名学生的年龄为:"+a[i].age); System.out.println("第"+(i+1-f)+"名学生的成绩为:"+a[i].score); } sum=sum-f; } public static void addStudent(String stunumber,String name,int age,boolean sex,double score){ int k; for(k=0;k<sum;k++) { if( a[k].stunumber == stunumber ) { System.out.println("您输入的学号与之前有重复,请检查后重新输入"); return; } } a[sum] = new Student(stunumber,name,age,sex,score); sum++; } public static void fristInput() { int i=0; System.out.println("请问是否继续初始创建,是请输入:1,否请输入:0"); i = sc.nextInt(); String stunumber; String name; int age; boolean sex; double score; while(i == 1) { stunumber = sc.next(); name = sc.next(); age = sc.nextInt(); sex = sc.nextBoolean(); score = sc.nextDouble(); StudentManager.addStudent(stunumber,name,age,sex,score); System.out.println("请问是否继续初始创建,是请输入:1,否请输入:0"); i = sc.nextInt(); } } public static void deleteStudent(String stunumber){ int k; for(k=0;k<sum;k++) { if(a[k].stunumber.compareTo(stunumber)==0) { a[k].stunumber = null; a[k].name = null; a[k].age = 0; a[k].score = 0.0; } } } public static void updateStudent(String stunumber,String name,int age,boolean sex,double score) { int k; for(k=0;k<sum;k++) { if(a[k].stunumber.compareTo(stunumber)==0) { a[k].stunumber = stunumber; a[k].name = name; a[k].age = age; a[k].sex = sex; a[k].score = score; } } } public static void selectStudent(String stunumber){ int k; for(k=0;k<sum;k++) { if( a[k].stunumber.compareTo(stunumber)==0 ) { System.out.println("您要查询的名学生的学号为:"+a[k].stunumber); System.out.println("此学生的姓名为:"+a[k].name); if(a[k].isSex()) System.out.println("此学生的性别为:女"); else System.out.println("此学生的性别为:男"); System.out.println("此学生的年龄为:"+a[k].age); System.out.println("此学生的成绩为:"+a[k].score); return; } } System.out.println("没有学号为:"+stunumber+"的学生"); } public static void main(String[] args){ sc = new Scanner(System.in); int choose,k1; String stunumber; String name; int age; boolean sex; double score; System.out.println("现在是初始创建五名学生信息,请输入学生信息(格式:学号 姓名 年龄 性别 成绩):"); for(k1=0;k1<5;k1++) { stunumber = sc.next(); name = sc.next(); age = sc.nextInt(); sex = sc.nextBoolean(); score = sc.nextDouble(); StudentManager.addStudent(stunumber,name,age,sex,score); } sum=5; fristInput(); choose = systemMenu(); while(choose<=5&&choose>=1) { switch (choose) { case 1: StudentManager.showStudent(); break; case 2: int n,i,s=0; System.out.println("请输入添加学生信息的个数:"); n = sc.nextInt(); s=sum+n; for(i=sum;i<s;i++) { stunumber = sc.next(); name = sc.next(); age = sc.nextInt(); sex = sc.nextBoolean(); score = sc.nextDouble(); StudentManager.addStudent(stunumber,name,age,sex,score); } break; case 3: stunumber = sc.next(); StudentManager.deleteStudent(stunumber); break; case 4: stunumber = sc.next(); name = sc.next(); age = sc.nextInt(); sex = sc.nextBoolean(); score = sc.nextDouble(); StudentManager.updateStudent(stunumber,name,age,sex,score); break; case 5: stunumber = sc.next(); StudentManager.selectStudent(stunumber); break; } choose = systemMenu(); } } }