用C++实现一个班级学生的学期成绩管理

实现一个班级学生的学期成绩管理

个人信息类CPerson的数据成员有姓名、年龄、性别。
课程类CCourse的数据成员有课程名、学分、成绩。
学生类CStudent从CPerson类派生,并增加数据成员学号、CCourse类对象成员数组(大小为8)总成绩、总学分和平均成绩。
班级类CClass类的数据成员由CStudent类对象数组(大小由构造函数确定)、班号、班级人数等。
要求:
1.本班级类CClass的对象成员数组需要在构造函数中用new动态分配内存空间。在类CClass中添加成员函数seek,通过学号查找并输出该学生的全部信息。
2.构造三个学生的数据,每个学生都有三门课程成绩。输入并显示这些数据。

//cperson.h
#ifndef CPERSON_H_
#define CPERSON_H_
#include <iostream>
#include "string.h"

class CPerson
{
   
private:
    std::string name;
    int age;
    char sex;
public:
    CPerson();
    CPerson(std::string name_,int age_,char sex_);
    void showPerson()const;
};
#endif
//cperson.cpp
#include <iostream>
#include "string.h"
#include "cperson.h"
using std::cout;
CPerson::CPerson(){}
CPerson::CPerson(std::string name_,int age_,char sex_):name(name_),age(age_),sex(sex_){}
void CPerson::showPerson()const
{
    cout<<"\t姓名:"<<name<<"\t 年龄:"<<age<<"\t 性别:"<<sex<<"\n";
}
//ccourse.h
#ifndef CCOURSE_H_
#define CCOURSE_H_
#include <iostream>
#include "string.h"

class CCourse
{
   
public:
    std::string course_name;
    
  • 13
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验题目1:班级学生学期成绩管理系统 (1)程序功能简介 灵活运用的继承、对象成员等机制,设计一个能够实现班级学生学期成绩管理的程序。 (2)程序设计说明 ① 个人信息CPerson的数据成员有姓名、性别、年龄、身份证号等数据成员,成员函数根据需要自行设计; ② 学生CStudent从CPerson派生,并增加学号、CCourse对象成员数组(大小至少3个)等数据成员,并根据需要自行设计成员函数,包括能够求解所选修课程的学分、显示某个学生基本信息和课程信息的成员函数; ③ 课程CCourse包括课程名、学分、分数、任课老师等数据成员,成员函数根据需要自行设计; ④ 班级CClass的数据成员有班级名称、班级人数、CStudent对象成员数组(大小由构造函数确定)等。本班级CClass的对象成员数组需要在构造函数中用new动态分配内存空间,在析构函数中用delete释放。在CClass中设计包括能够求解最高成绩、最低成绩和平均成绩以及通过学号查找并输出某个学生全部信息(例如Seek())等功能在内的成员函数; ⑤ 构造三十个学生的数据,每个学生都有三门课程成绩,输出并显示这些数据; ⑥ 根据的需要添加适当的其它成员,编写完整的程序并测试。 (3)程序调试运行 运行程序查看结果,并进行源代码调试和优化。
好的,下面是一个简单的学生成绩管理系统的 C 语言实现: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_STUDENTS 100 typedef struct { char name[20]; int score; } Student; int main() { Student students[MAX_STUDENTS]; int count = 0; // 添加学生信息 int choice = 1; while (choice == 1) { printf("请输入学生姓名和成绩(用空格隔开):"); scanf("%s %d", students[count].name, &students[count].score); count++; printf("是否继续添加?(1-是,0-否)"); scanf("%d", &choice); } // 显示所有学生的信息 printf("\n所有学生的信息:\n"); for (int i = 0; i < count; i++) { printf("%s %d\n", students[i].name, students[i].score); } // 查询学生信息 char query[20]; printf("\n请输入要查询的学生姓名:"); scanf("%s", query); int found = 0; for (int i = 0; i < count; i++) { if (strcmp(query, students[i].name) == 0) { printf("%s 的成绩是 %d\n", students[i].name, students[i].score); found = 1; break; } } if (!found) { printf("未找到该学生\n"); } return 0; } ``` 该程序使用了一个结构体 `Student` 存储每个学生的姓名和成绩,通过一个数组 `students` 存储所有学生的信息。程序中实现了三个功能: 1. 添加学生信息:用户输入学生姓名和成绩,程序将其存储到 `students` 数组中。 2. 显示所有学生的信息:遍历 `students` 数组,依次显示每个学生的姓名和成绩。 3. 查询学生信息:用户输入要查询的学生姓名,程序在 `students` 数组中查找该学生的信息并显示。 这是一个简单的实现,实际使用中还需要考虑更多的功能和异常情况处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值