下面我来为大家详细讲解“学生成绩管理系统C++实现代码”的完整攻略。
1. 程序设计思路
这个程序的主要功能是对学生成绩的管理,具体来说包括以下功能:
- 添加学生信息
- 修改学生信息
- 删除学生信息
- 查找学生信息
- 以各种方式展示学生信息列表
接下来,我将会详细介绍这些功能各自的实现。
2. 添加学生信息
要实现添加学生信息的功能,我们需要定义一个结构体来保存学生信息,如下所示:
struct student
{
int id;
char name[20];
float score;
};
然后,我们需要定义一个用于存储学生信息的数组:
struct student stu[100];
int num = 0;
定义好结构体和数组之后,我们就可以愉快地开始添加学生信息了:
cout << "请输入学生的学号:";
cin >> stu[num].id;
cout << "请输入学生的姓名:";
cin >> stu[num].name;
cout << "请输入学生的成绩:";
cin >> stu[num].score;
num++;
cout << "添加成功!" << endl;
3. 修改学生信息
要实现修改学生信息的功能,我们需要先查找到需要修改的学生信息,然后再进行修改。
查找学生信息的方法有很多种,这里介绍一种基于学号进行查找的方法。
int search(int id)
{
for (int i = 0; i < num; i++)
{
if (stu[i].id == id)
{
return i;
}
}
return -1;
}
使用上面的函数来查找需要修改的学生信息,然后再进行修改:
int id;
cout << "请输入需要修改信息的学生学号:";
cin >> id;
int index = search(id);
if (index == -1)
{
cout << "找不到该学生的信息!" << endl;
}
else
{
cout << "修改前的学生信息:" << endl;
cout << "学号\t姓名\t成绩" << endl;
cout << stu[index].id << "\t" << stu[index].name << "\t" << stu[index].score << endl;
cout << "请输入新的学生姓名:";
cin >> stu[index].name;
cout << "请输入新的学生成绩:";
cin >> stu[index].score;
cout << "修改成功!" << endl;
}
4. 删除学生信息
要实现删除学生信息的功能,我们需要先查找到需要删除的学生信息,然后再进行删除。
同样的,在这里介绍一种基于学号进行查找的方法。
int search(int id)
{
for (int i = 0; i < num; i++)
{
if (stu[i].id == id)
{
return i;
}
}
return -1;
}
然后,我们可以像下面这样进行删除操作:
int id;
cout << "请输入需要删除信息的学生学号:";
cin >> id;
int index = search(id);
if (index == -1)
{
cout << "找不到该学生的信息!" << endl;
}
else
{
for (int i = index; i < num - 1; i++)
{
stu[i] = stu[i + 1];
}
num--;
cout << "删除成功!" << endl;
}
5. 查找学生信息
前面已经介绍了一种基于学号进行查找的方法,这里再介绍一种基于姓名进行查找的方法。
void search(const char* name)
{
int found = 0;
cout << "学号\t姓名\t成绩" << endl;
for (int i = 0; i < num; i++)
{
if (strcmp(name, stu[i].name) == 0)
{
found = 1;
cout << stu[i].id << "\t" << stu[i].name << "\t" << stu[i].score << endl;
}
}
if (found == 0)
{
cout << "找不到该学生的信息!" << endl;
}
}
使用上面的函数,我们可以通过输入学生姓名来查找学生信息。
char name[20];
cout << "请输入需要查找的学生姓名:";
cin >> name;
search(name);
6. 展示学生信息列表
展示学生信息列表可以采用多种方式,例如按学号排序、按成绩排序、按姓名排序等等。
下面以按学号排序为例:
void sort_by_id()
{
for (int i = 0; i < num - 1; i++)
{
for (int j = 0; j < num - i - 1; j++)
{
if (stu[j].id > stu[j + 1].id)
{
struct student temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
}
}
cout << "学号\t姓名\t成绩" << endl;
for (int i = 0; i < num; i++)
{
cout << stu[i].id << "\t" << stu[i].name << "\t" << stu[i].score << endl;
}
}
使用上面的函数,我们可以按学号进行排序,并输出排序后的学生信息列表。
sort_by_id();
7. 示例说明
下面给出两个示例说明,一个是添加学生信息的示例,一个是按学号排序并展示学生信息列表的示例。
示例1:添加学生信息
请输入学生的学号:10001
请输入学生的姓名:张三
请输入学生的成绩:95
添加成功!
示例2:按学号排序并展示学生信息列表
学号 姓名 成绩
10001 张三 95
10002 李四 80
10003 王五 70
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:学生成绩管理系统C++实现代码 - Python技术站