小工具知识网

当前位置: 首页 > 行业知识 > C/C++:学生管理系统

行业知识

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

2026-11-07 21:16:26 来源:互联网转载

学生管理系统

  • 一、问题描述
  • 二、设计需求及分析
  • 三、概要设计
  • 四、详细设计
  • 五、设计功能的实现(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 

上一篇:怎么有手机版服务器?

下一篇:宝塔面板安全防护秘籍,构建安全网络环境!