c语言学生信息管理系统实验报告

一、问题描述

题目:学生信息管理系统设计

功能:学生信息管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、年龄。

系统要求实现以下功能:

1、增:录入学生信息(包括学生学号、姓名、性别、年龄等);

2、删:删除指定的学生信息;

3、改:对指定的学生进行指定的信息修改;

4、查:显示学生信息列表

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

2、完成信息的录入与显示(将学生的信息封装到student类中,设计StudentList类,将一个个学生对象储存到studentList数组中)

3、通过输入学生的姓名或者学号查找学生并将其删除(遍历学生数组,将输入的姓名或学号信息与数组中对象的属性信息进行对照,找到指定的对象,并删除)

3、统计学生总数(在StudentLIst中添加total属性,将学生的总数统计出来,以便完善系统)

5、查看所有的学生信息(通过遍历数组的方式,将学生信息一个个输出,并优化显示界面)

二、解决思路

1.创建Student类,添加姓名、学号、性别、年龄属性以及get/set方法;

2.创建StudentList类,添加total,studentList属性。设计增删改查的函数。

3.创建Welcome类,设计菜单界面,设计用户与系统的交互操作。

4.利用项目二中的、CMUtility(工具类),完善人机交流。

5.写出系统主体所需的函数:

       o.绘制菜单

       a.添加学生信息

       c.删除学生信息

       b.通过姓名或学号查找学生

       e.修改学生信息

       f.替换学生

       g.遍历学生数组

4.逐个完成上述主要函数

三、核心程序

    // 获取学生总数
    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    // 添加学生
    public boolean addStudent(Student student) {
        if (total > length)
            return false;
        studentList[total++] = student;
        return true;
    }

    // 删除学生
    public boolean delectStudent(int index) {
        if (index < 0 || index >= total) {
            return false;
        }
        for (int i = index; i < total - 1; i++) {
            studentList[i] = studentList[i + 1];
        }
        studentList[total-1] = null;
        total -- ;
        return true;
    }

    // 查找学生
    public Student findStudent(int index) {
        if (index < 0 || index >= total)
            return null;
        return studentList[index];
    }

    // 学号查找学生
    public int findStudent1(int number) {
        int i;
        for (i = 0; i < total; i++) {
            if (studentList[i].getNumber() == number)
                break;
        }
        if (i == total)
            return -1;
        return i;
    }

    // 姓名查找学生
    public int findStudent2(String name) {
        int i;
        for (i = 0; i < total; i++) {
            if (studentList[i].getName().equals(name))
                break;
        }
        if (i == total)
            return -1;
        return i;
    }

    // 替换学生
    public boolean replaceStudent(int index, Student student) {
        if (index < 0 || index >= total)
            return false;
        studentList[index] = student;
        return true;
    }

四、总结

        这是第三次写项目了。

        由于前不久C语言刚考的学生成绩管理系统与本次考核项目相似,所以整体耗费时间较少,相对与学到新的知识,更多的是将旧的知识得到了巩固。

        在写项目的过程中,发现有许多知识都遗忘了。

比如:Student类中  属性的封装、权限设置、get/set方法快捷生成、构造器的代码编写 :

public + 类名{};等一些语法上的遗忘。

        除此之外,还遇到了 通过姓名或学号来查找学生。这个时候我想到了“多态”——只用一个函数,兼容接收用户输入的 “学号”或 “姓名” 两种不同的数据类型。但由于自身对多态性的了解不够深入,以及长时间没有复习,所以暂时没有将多态利用到这一步操作中。

       通过这次项目的制作,虽然有许多问题解决思路都比较熟悉,但收获还是挺大的——java语法的巩固,首次尝试将多态性运用到项目中、代码手感······当然,也或多或少也积累了一些项目经验。这次的项目实践,也激发了我向编程更深处探索的欲望。希望今后还有机会进行这样的项目实习。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值