C/C++:学生管理系统

2024-06-08 1873阅读

学生管理系统

  • 一、问题描述
  • 二、设计需求及分析
  • 三、概要设计
  • 四、详细设计
  • 五、设计功能的实现(C++语言描述)
  • 六、实例测试及运行结果
  • 七、实现提示
  • 八、UML图
  • 九、心得体会

    一、问题描述

    随着大学规模的不断扩大,有关各种学生信息的数据量也不断增大。学生有本科生、研究生和助教博士生,校方需要对这些学生的信息进行计算机管理。所开发的软件应包括各类学生的添加、修改、删除和查找等功能。考虑到软件的可重用性、可扩展性和可维护性,校方决定采用面向对象的程序设计方法来开发系统。学生信息需要以文件方式保存到计算机硬盘中。另外,系统的用户界面应该尽可能友好,方便用户使用。

    源文件开源在:https://github.com/fengqianiqan/C-C-studentSystem

    二、设计需求及分析

    (1) 使用C++语言开发,充分利用面向对象程序设计的类、对象、继承、封装和多态性等 概念来设计和实现该管理系统。

    (2) 设计一个Person(人员)类,考虑到通用性,只抽象出所有类型人员都具有的属性:name(姓名),

    id(身份证号),gender(性别),birthday(出生日期)等等。其中“出生日期”为内嵌子对象,是一个Date(日期)类型,Date类具有属性:

    year(年),month(月),day(日)。用成员函数实现对人员信息的录入和显示等必要功能操作。

    (3) 从Person类派生出Student(学生)类,添加属性: studentNo(学号),schoolName(学校),classIn

    (班级)。从Person类派生出Teacher(教师)类,添加属性:teacherNo(教师编号),schoolName(学校),department(部门)。

    (4) 从Student类中派生出UnderGraduate(本科生)类,添加属性:major(专业)。从Student类中派生出Graduate(研究生)类,添加属性:direction(研究方向),adviserName(导师姓名)。

    (5) 从Graduate类和Teacher类派生出TA(助教博士生)类。 (6) 写程序测试上述各类,看能否正常运行。

    (7) 构建必要的辅助类,实现对本科生、研究生和助教博士生的添加、修改、删除、查询管理。

    (8) 根据需要定义类的构造函数、析构函数、拷贝构造函数、成员函数。必要时重载函数。

    (9) 要求将Person类设置为虚基类,以消除其派生类成员访问的二义性问题(注意在虚基类各级派生类的构造函数实现时调用虚基类的构造函数)。

    (10) 要求在Person类中定义虚函数displayDetails(),用于显示当前对象的信息;同时定义虚函数inputData(

    ),用于从键盘获取当前对象的信息。Person类所有派生类也要定义同名虚函数,使程序可以实现动态多态性。

    (11) 用菜单方式设计主控模块程序。 (12) 对程序源代码要给出各部分的详细注释,这也是该题目的考核重点之一。

    (13) 用UML语言描述系统用到的类及其关系。

    三、概要设计

    (1)//日期类型定义

    class Date{
    private:
        int year;
        int month;
        int day;
    public:
        Date(Date &d){year = d.year; month = d.month; day = d.day;} //初始化
        ~Date( ){ };
        void setYear(int y){year = y;}
        void setMonth(int m){month = m;}
        void setDay(int d){day = d;}//修改单个属性
        int getYear( ){return year;}
        int getMonth( ){return month;}
        int getDay( ){return day;}//修改单个属性
        void inputDate(){
            cout > year;
            cout > month;
            cout > day;
        }//输入各个属性
        void displayDate(){cout 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]