写Java程序有感

最近我练习了Java的学生管理系统的程序代码,多亏了前段时间小学期的系统类练习,让我比较容易地就能够理解该题的题意,再根据我学到的相关的Java知识,就好像是一个套用公式的逻辑。

用到的相关知识:

1、头文件

import java.util.Scanner;//输入
import java.util.ArrayList;//数组
//文件导入的头文件
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.*;

2、相关函数

//主函数
public static void main(String[] args) throws IOException { }
//遍历
public static void showStudent(ArrayList<Student>arr)
//插入
public static void addStudent(ArrayList<Student>arr)
//删除
public static void deleteStudent(ArrayList<Student>arr)
//查询
public static void selectStudent(ArrayList<Student>arr)
//修改
public static void updateStudent(ArrayList<Student>arr)
//导入文件
public static void daoru(ArrayList<Student>arr) throws IOException

3、相关功能

一、遍历学生信息

二、添加学生信息

三、删除学生信息

四、查询学生信息

五、修改学生信息

六、将学生信息导入文件

七、添加信息时,确保学号不会重复

4、完整代码

Student.java

public class Student {
       private String stunumber;//学号
       private String name;//姓名
       private int age;//年龄
       private boolean sex;//性别
       private char xx;
    private int x;
       private double score;//成绩
    public Student()
    {
        this.stunumber=stunumber;
        this.name=name;
        this.age=age;
        this.sex=sex;
        this.score=score;
    }
        public Student(String stunumber,String name,int age,char xx,double score)
        {
            this.stunumber=stunumber;
            this.name=name;
            this.age=age;
            this.xx=xx;
            this.score=score;
        }
        //设置变量信息
        public void setstunumber(String stunumber)
        {
            this.stunumber=stunumber;
        }
        public void setname(String name)
        {
            this.name=name;
        }
        public void setage(int age)
        {
            this.age=age;
        }
        public void setsex(int x)
        {
            this.x=x;
        }
        public void setscore(double score)
        {
            this.score=score;
        }
        //读取变量信息
        public String getstunumber()
        {
            return stunumber;
        }
        public String getname()
        {
            return name;
        }
        public int getage()
        {
            return age;
        }
        public char getsex()
        {
            char c;
            if(x==1)
            {
                c='男';
                return c;
            }
            else
            {
                c='女';
                return c;
            }
        }
        public double getscore()
        {
            return score;
        }
}

StudentManager.java

import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.*;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager extends Student{
    public static void main(String[] args) throws IOException {
        ArrayList<Student>arr=new ArrayList<Student>();
        Scanner sc=new Scanner(System.in);
        while(true) {
            System.out.println("******************************************");
            System.out.println("石家庄铁道大学信息科学与技术学院");
            System.out.println("学生信息管理系统 v2.0");
            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("7、导入文件");
            System.out.println("请输入你要选择的功能:");
            int n = sc.nextInt();//输入选择的功能
            switch (n) {
                case 1://遍历输出学生信息
                    showStudent(arr);
                    break;
                case 2://新学生信息录入
                    addStudent(arr);
                    break;
                case 3://删除学生信息
                    deleteStudent(arr);
                    break;
                case 4://修改学生信息
                    updateStudent(arr);
                    break;
                case 5://查询学生信息
                    selectStudent(arr);
                    break;
                case 6://退出系统
                    System.out.println("欢迎下次使用!");
                    System.exit(0);
                case 7://文件导入
                    daoru(arr);
                    break;
            }
        }

    }
    public static void showStudent(ArrayList<Student>arr)
    {
        System.out.println("学号"+"\t\t\t"+"姓名"+"\t\t"+"年龄"+"\t\t"+"性别"+"\t\t"+"成绩"+"\t\t");
        for(int i=0;i<arr.size();i++)
        {
            Student s=arr.get(i);
            System.out.println(s.getstunumber()+"\t"+s.getname()+"\t"+
                    s.getage()+"\t\t"+s.getsex()+"\t\t"+s.getscore()+"\t");
        }
    }//遍历信息
    public static void addStudent(ArrayList<Student>arr)//添加信息
    {
        Scanner sc=new Scanner(System.in);
            System.out.println("请输入学生学号:");
            String id = sc.nextLine();
            int index=-1;
            for(int i=0;i<arr.size();i++)
            {
                Student s=arr.get(i);
                if(s.getstunumber().equals(id))
                {
                    index=i;
                }
            }
            if(index==-1) {
                System.out.println("请输入学生姓名:");
                String name = sc.nextLine();
                System.out.println("请输入学生年龄:");
                int age = sc.nextInt();
                System.out.println("请输入学生性别:");
                int xing = sc.nextInt();
                System.out.println("请输入学生成绩:");
                double score = sc.nextInt();
                Student s = new Student();
                s.setstunumber(id);
                s.setname(name);
                s.setage(age);
                s.setsex(xing);
                s.setscore(score);
                arr.add(s);
                System.out.println("已录入学生信息");
            }
            else
            {
                System.out.println("学号重复,已禁止新增学生信息。");
            }
    }
    public static void selectStudent(ArrayList<Student>arr)//查询信息
    {
        if(arr.size()==0)
        {
            System.out.println("数组中没有学生信息,请先进行添加!");
            return ;
        }
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你想要查询的学生学号:");
        String ss=sc.nextLine();//输入想要查询的学生学号
        System.out.println("学号\t姓名\t年龄\t性格\t成绩\t");
        for(int i=0;i<arr.size();i++)
        {
            Student s=arr.get(i);
            if(s.getstunumber().equals(ss)) {
                System.out.println(s.getstunumber() + "\t" + s.getname() + "\t" +
                        s.getage() + "岁" + "\t" + s.getsex() + "\t" + s.getscore() + "\t");//输出
                break;
            }
        }
        System.out.println("查询完毕!");
    }
    public static void deleteStudent(ArrayList<Student>arr)//删除学生信息
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要删除的学生的学号:");
        String ss=sc.nextLine();
        int index=-1;
        for(int i=0;i<arr.size();i++)
        {
            Student s=arr.get(i);
            if(s.getstunumber().equals(ss))
            {
                index=i;//赋值给索引值
                arr.remove(i);
                break;
            }
        }
        if(index==-1)
        {
            System.out.println("该学号不存在!");
        }
        else {
            System.out.println("删除信息成功!");
        }
    }
    public static void updateStudent(ArrayList<Student>arr)//修改学生信息
    {
        System.out.println("请输入你想要修改的学生的学号:");
        Scanner sc = new Scanner(System.in);
        String id = sc.nextLine();
        int index = -1;
        for (int i = 0; i < arr.size(); i++) {
            Student s = arr.get(i);
            if (s.getstunumber().equals(id)) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            System.out.println("无法查询到该学号,输入错误!");
        } else {
            System.out.println("请输入修改后的学生学号:");
            String id1 = sc.nextLine();
            System.out.println("请输入修改后的学生姓名:");
            String name = sc.nextLine();
            System.out.println("请输入修改后的学生年龄:");
            int age = sc.nextInt();
            System.out.println("请输入修改后的学生性别:");
            int sex = sc.nextInt();
            System.out.println("请输入修改后的学生成绩:");
            double score = sc.nextInt();
            Student s = new Student();//创建新的学生对象
            s.setstunumber(id1);
            s.setname(name);
            s.setage(age);
            s.setsex(sex);
            s.setscore(score);
            for (int i = 0; i < arr.size(); i++) {
                Student sss = arr.get(i);
                if (sss.getstunumber().equals(id)) {
                    arr.set(i, s);
                    break;
                }
            }

                System.out.println("修改信息成功!");

        }
    }
    public static void daoru(ArrayList<Student>arr) throws IOException//导入文件
    {
        ArrayList<Student> students = new ArrayList<Student>();
        for (int i = 0; i < arr.size(); i++) {
            Scanner sc = new Scanner(System.in);
            //键盘输入数据
            System.out.println("请输入学生学号:");
            String id=sc.nextLine();
            System.out.println("请输入学生姓名:");
            String name = sc.nextLine();
            System.out.println("请输入学生年龄:");
            int age = sc.nextInt();
            System.out.println("请输入学生性别:");
            int sex = sc.nextInt();
            System.out.println("请输入学生成绩:");
            double score=sc.nextInt();
            //把数据封装成学生对象
            Student s = new Student();
            s.setstunumber(id);
            s.setname(name);
            s.setage(age);
            s.setsex(sex);
            s.setscore(score);
            students.add(s);
        }
        File destPath = new File("g.txt");
        BufferedWriter bw = new BufferedWriter(new FileWriter(destPath));
        bw.write("学号\t");
        bw.write("姓名\t");
        bw.write("年龄\t");
        bw.write("性别\t");
        bw.write("成绩\t");
        bw.newLine();
        bw.flush();

        for (Student s : students) {
            String id=s.getstunumber();
            String name = s.getname();
            int age = s.getage();
            int sex = s.getsex();
            double score = s.getscore();

            bw.write(id+"\t");
            bw.write(name + "\t");
            bw.write(age + "\t");
            bw.write(sex + "\t");
            bw.write(score + "\t");
            bw.newLine();
            bw.flush();
        }
        bw.close();
        System.out.println("导入成功!");
    }

}

咳咳,我们下期再见哦!

posted @ 2022-07-14 23:14  yesyes1  阅读(22)  评论(0编辑  收藏  举报