编写一个学生信息管理系统:学生信息包括有(学生学号、姓名、性别、手机号码),系统以学生对象数组的方式存储学生信息 (初始数组为10个元素,每当数组存储满时,需要进行扩容,规则可以为翻倍也可以固定增长
2018-01-23 21:32
1146 查看
public class Student { //学生信息包括有(学生学号、姓名、性别、手机号码 private int id; private String name; private String sex; private String phone; public Student() { } public Student(int id, String name, String sex, String phone) { this.id = id; this.name = name; this.sex = sex; this.phone = phone; } public int getId() { return id; } public void setId(int id) { this.id = id; } 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 String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Override public String toString() { return "学号:" + id + "\t 姓名:" + name + "\t 性别:" + sex + "\t 电话:" + phone ; } }
import java.util.Scanner; /* 编写一个学生信息管理系统:学生信息包括有(学生学号、姓名、性别、手机号码),系统以学生对象数组的方式存储学生信息 (初始数组为10个元素,每当数组存储满时,需要进行扩容,扩容规则可以为翻倍也可以固定增长) 系统对学生的操作包括:新增、查询、修改、删除。 大概流程如下: 请选择操作:退出请输入bye 1.新增 2.查询 3.修改 4.删除 输入:1 请输入:学生学号,姓名,性别,手机号码 输入:学生学号,姓名,性别,手机号码 新增完成,请继续操作! 请选择操作:退出请输入bye 1.新增 2.查询 3.修改 4.删除 输入:2 请输入学生的姓名 钱钟书 查询学生: 学生学号,姓名,性别,手机号码 查询完毕,请继续操作! 请选择操作:退出请输入bye 1.新增 2.查询 3.修改 4.删除 输入:3 请输入要修改的学生学号: 10000 学生不存在,请继续操作! 请选择操作:退出请输入bye 1.新增 2.查询 3.修改 4.删除 输入4 请输入学生学号 删除成功 * */ public class StudentManage { // 定义对象数组的存储空间 private Student[] students = new Student[4]; public static void main(String[] args) { // 创建类对象,通过类对象调用非静态的方法 StudentManage sm = new StudentManage(); // 初始化部分数据 sm.initStudent(); // 菜单 while (true) { String select = sm.menu(); switch (select) { case "1": sm.addStudent();// 新增 break; case "2": sm.queryStudent();// 查找 break; case "3": sm.modify();// 修改 break; case "4": sm.deleteStudent();// 删除 break; case "bye": System.out.println("谢谢您的使用");// 退出 return; default: System.out.println("功能未开放"); break; } } } // 修改学生信息 public void modify() { Scanner sc = new Scanner(System.in); // 从数组中找到引用值不为null的空间,存在学号,则修改, 若 学生不存在,请继续操作! System.out.println("请输入要修改的学生学号"); int id = sc.nextInt(); boolean b = true; for (int i = 0; i < students.length; i++) { if (students[i] != null && students[i].getId() == id) { System.out.println(students[i]);// 存在学号,先输出该学号的学生信息,然后修改 b = true; // 学号不修改 System.out.println("请输入要修改的学生姓名:"); String name = sc.next(); students[i].setName(name); System.out.println("请输入要修改的学生性别:"); String sex = sc.next(); students[i].setSex(sex); System.out.println("请输入要修改的手机号码:"); String phone = sc.next(); students[i].setPhone(phone); System.out.println("修改完成"); break; } else { b = false; } } // 学生不存在 if (b == false) { System.out.println("修改失败!没有找到要修改的学生信息!!"); } } //查找学生 小菜单 1.按照学生姓名查找2.总览学生3.返回 public void queryStudent() { while(true) { Scanner sc=new Scanner(System.in); System.out.println("1.按照学生姓名查找"); System.out.println("2. 总览学生 "); System.out.println("3. 返回 "); System.out.println("请选择对应的操作:"); int select=sc.nextInt(); //按照姓名查找 if(select==1) { System.out.println("请输入学生的姓名:"); String name=sc.next(); //返回的下标值,根据下标,输出要找的某一个学生信息 int index=queryByName(name); if(index!=-1) { System.out.println("找到了该学生信息:"); System.out.println(students[index]); }else{ System.out.println("没有找到该姓名的学生信息"); } //总览 }else if(select==2) { queryByAll(); }else if(select==3) { //结束查找方法,跳出循环 break; } } } //查找 总览学生信息 public void queryByAll() { for (int i = 0; i < students.length; i++) { if(students[i]!=null) { System.out.println(students[i]); } } } //按照姓名查找 public int queryByName(String name) { //存在要查找的学生姓名,输出该学生的信息,不存在,提示没有要查找的学生信息 for (int i = 0; i < students.length; i++) { if(students[i]!=null && students[i].getName().equals(name)) { return i;//找到了就返回下标 } } return -1; } //删除学生 public void deleteStudent() { Scanner sc=new Scanner(System.in); System.out.println("请输入要删除的学生学号:"); int id=sc.nextInt(); //查找到学号,从数组中删除学生,没查找到,输出没有该学生信息 boolean b=true; for (int i = 0; i < students.length; i++) { //从数组头开始找,一个引用值不为null的空间 if(students[i]!=null && students[i].getId()==id) { System.out.println(students[i]); b=true;//找到学生的id students[i]=null; System.out.println("删除成功!"); break;//删除后要跳出循环 }else{ b=false; } } //没有找到学生的id if(b==false) { System.out.println("删除失败,没有找到要删除的学生信息!");} } //添加学生 public void addStudent() { Scanner sc=new Scanner(System.in); //输入要添加的学生信息 System.out.println("请输入要新增的学生学号:"); int id=sc.nextInt(); //保证学生的学号是唯一的,如果已存在,则不能新增 for (int i = 0; i < students.length; i++) { if(students[i]!=null && students[i].getId()==id) { System.out.println("该学生已存在,不能新增!"); return; } } System.out.println("请输入要新增的学生姓名:"); String name=sc.next(); //保证了数组中 学生的姓名是唯一的 //如果数组中已经有了要添加的学生姓名,则不能添加 int index=queryByName(name); if(index!=-1) { System.out.println("该学生已存在,不能新增!"); return; } System.out.println("请输入要新增的学生性别:"); String sex=sc.next(); System.out.println("请输入要新增的学生手机号码:"); String phone=sc.next(); //将信息添加到学生对象数组中 //从数组头开始找,直到找到一个引用值 为null的空间,添加学生信息 boolean isFull=true; for (int i = 0; i <students.length; i++) { if(students[i]==null) { students[i]=new Student(id,name,sex,phone); System.out.println("新增完成,请继续操作!"); isFull=false; break; } } if(isFull==true) { //每当数组存储满时,需要进行扩容,扩容 翻倍...........................? //新建一个学生对象数组,并指定新的数组的长度是原来的2倍 Student[] newStudents= new Student[students.length*2]; //通过遍历,把 原来数组里的学生赋值到了新的数组里 for(int i=0;i<students.length;i++) { newStudents[i]=students[i]; } //然后再把新的数组赋值给原来的数组,因为,下面的操作要用到原来的对象数组 students=newStudents; } } //菜单 public String menu() { System.out.println("请选择操作:退出请输入bye"); System.out.println("1.新增学生信息"); System.out.println("2.查询学生信息"); System.out.println("3.修改学生信息"); System.out.println("4.删除学生信息"); Scanner sc=new Scanner(System.in); String select=sc.next(); return select; } //初始化部分数据 public void initStudent() { students[0]=new Student(101,"张三","男","15566668888"); students[1]=new Student(102,"李四","男","14455557777"); students[2]=new Student(103,"王二","男","12233336666"); } }
相关文章推荐
- 数据结构课程设计 建立一个学生管理系统,以单链表的形式存储,学生信息包括学号,姓名,年龄,出勤,奖励惩罚,电话号码
- 学生社团管理系统 任务:通过此系统可以实现如下功能(包含但不限于以下功能,可自行设计): 1、社团信息包括:社团编号、社团名称、成立时间…… 2、学生信息包括:学号、姓名、性别、年级、专业…… 3
- 集合练习。学生信息包括学号、姓名、出生日期、性别。把N个学生的信息放入一个集合中。可以根据学号,对学生信息进行检索。并可以根据生日进行排序输出。
- 编写程序:建立一个学生数据链表,每个节点的信息包括如下内容:学号,姓名,性别年龄专业。对链表做如下处理。输入一个学号(专业),如果链表中的节点包含此学号(专业),则删去该结点。
- 题目: 编写一个学生类Students,该类成员变量包括学号no、姓名name、性别sex和年龄age
- 创建一个学生类(Student),包括学号成绩,编程输入和显示学生的信息。建立一个人类(Person),包含姓名、性别和年龄,并作为学生类的基类
- 创建一个学生类(Student),包括学号和成绩,编程输入和显示学生的信息,建立一个人类(Person),包含姓名、性别和年龄,并作为学生类的基类
- 编写一个函数print,打印一个学生的成绩数组,该书组中有五个学生的数据,每个学生的数据包括num(学号)、name(姓名)、score(3门课的成绩)、用主函数输入这些数据,用print函数输出这些
- 编写一个学生类(Students),包括姓名(name)、性别(sex)、学号(num)、语文课(Chinese)、英语课(English)、数学课(Math)和平均值(avg),方法包括求三门课的平
- 编写一个学生信息系统的菜单程序,在菜单其中的增加记录的菜单选项中实现对一条学生记录的录入,记录中需要有学号、姓名、性别,年龄籍贯等字段,要求用最合适的控件录入。
- 编写一个学生类Students,该类成员变量包括学号no、姓名name、性别sex和年龄age,该类的成员方法有genNo()getName ). * getSex().getAge().和setA
- 编写一个学生类Students,该类成员变量包括学号no、姓名name、性别sex和年龄age,该类的成员方法有genNo()getName ). * getSex().getAge().和setA
- 编写一个学生类Students,该类成员变量包括学号no、姓名name、性别sex和年龄age
- 设计一个JFrame窗口,输入学生的基本信息,包括学号、姓名、学院、专业(下拉列表)、班级、籍贯(级联)、性别(单选按钮)、爱好(多选)、备注等,在界面中包括提交和重填按钮。提交后弹出窗口显示学生信息
- //编写一个学生类(Students),包括姓名(name)、性别(sex)、学号(num)、语文课(Chinese)、英语课(English)、 //数学课(Math)和平均值(avg),方法包括求
- c语言使用链表编写一个可以实现班级学生管理系统,增加,删除,修改学生信息
- 实现一个通讯录,可以用来存储1000个人的信息,每个人的信息包括:姓名,年龄,性别,电话,住址
- 建立一个学生结构数组来记录学生信息(学号ID,姓名和C语言成绩),要求动态建立一个结构数组,数组长度从键盘输入,自行给数组元素赋值并打印学生信息,最后不要忘记释放内存。 结构st
- //编写一个学生类(Students),包括姓名(name)、性别(sex)、学号(num)、语文课(Chinese)、英语课(English)、 //数学课(Math)和平均值(avg),方法包括求
- 编写一个学生类Students,该类成员变量包括学号no、姓名name、性别sex和年龄age,该类的成员方法有genNo()getName ). * getSex().getAge().和setA