用VC++实现:有一个一维数组score,内放10个学生成绩,求平均成绩
时间: 2023-11-25 07:08:12 浏览: 96
您好,欢迎使用 ChitGPT 进行对话!
关于您的问题,可以如下实现:
double score[10] = {85.6, 78.9, 92.5, 67.8, 80.0, 72.3, 88.5, 91.2, 76.4, 83.7};
double sum = 0;
for (int i = 0; i < 10; i++) {
sum += score[i];
}
double average = sum / 10;
printf("平均成绩为:%.2f\n", average);
以上是用 C 和 VC 实现的代码,将学生的成绩存入数组中,然后求出数组中所有成绩的总和,最后计算平均值并输出即可。
希望能解决您的问题,如果您还有其他问题,请继续提出。
相关问题
用VC++写有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后,能求出最高分、最低分和平均分
我了解你的问题,可以为你提供一个解决方案。你可以使用以下的代码来实现这个功能:
```c
#include <stdio.h>
void calculate_score(double *score_array, int length, double *min_score, double *max_score, double *avg_score) {
// 初始化最小分和最大分
*min_score = score_array[0];
*max_score = score_array[0];
// 计算总分
double total_score = 0.0;
for (int i=0; i<length; i++) {
// 更新最小分和最大分
if (score_array[i] > *max_score) {
*max_score = score_array[i];
}
if (score_array[i] < *min_score) {
*min_score = score_array[i];
}
total_score += score_array[i];
}
// 计算平均分
*avg_score = total_score / (double) length;
}
int main()
{
double score_array[10] = {85.5, 90.0, 73.5, 92.0, 65.5, 88.0, 78.5, 81.0, 77.0, 79.5}; // 学生成绩数组
double min_score, max_score, avg_score; // 最低分、最高分和平均分
calculate_score(score_array, 10, &min_score, &max_score, &avg_score); // 调用函数
printf("最低分:%.1f\n", min_score);
printf("最高分:%.1f\n", max_score);
printf("平均分:%.1f\n", avg_score);
return 0;
}
```
这个代码会在控制台输出最低分、最高分和平均分。你可以将你自己的学生成绩数组放入score_array中进行测试。请注意,这里使用了指针参数来传递计算后的最低分、最高分和平均分,这是因为函数无法直接返回多个值。
用VC++写一个学生成绩管理系统
学生成绩管理系统主要包括学生信息管理和成绩管理两个模块,下面是一个简单的基于VC++的学生成绩管理系统的实现。
1. 学生信息管理模块
学生信息包括学号、姓名、性别、出生日期、班级等基本信息。我们可以使用一个结构体来存储学生信息。同时,我们可以将学生信息保存在文件中,方便管理和查询。
```c++
struct student{
char id[20]; //学号
char name[20]; //姓名
char gender[10]; //性别
char birth[20]; //出生日期
char classname[20]; //班级
};
//学生信息管理类
class StudentManager {
public:
StudentManager() {};
~StudentManager() {};
//添加学生信息
void addStudent();
//删除学生信息
void deleteStudent();
//修改学生信息
void modifyStudent();
//查询学生信息
void queryStudent();
//显示所有学生信息
void showAllStudents();
private:
//保存学生信息的文件名
const char* fileName = "students.txt";
//读取学生信息
void readData();
//保存学生信息
void saveData();
//学生信息数组
student students[100];
//学生数量
int studentCount = 0;
};
```
通过读取和保存文件来实现学生信息的读取和保存。下面是读取文件的代码:
```c++
void StudentManager::readData()
{
FILE* file = nullptr;
fopen_s(&file, fileName, "r");
if (file == nullptr) {
printf("打开文件失败!\n");
return;
}
while (fscanf_s(file, "%s%s%s%s%s", students[studentCount].id, 20, students[studentCount].name, 20, students[studentCount].gender, 10, students[studentCount].birth, 20, students[studentCount].classname, 20) != EOF) {
studentCount++;
}
fclose(file);
}
```
保存文件的代码如下:
```c++
void StudentManager::saveData()
{
FILE* file = nullptr;
fopen_s(&file, fileName, "w");
if (file == nullptr) {
printf("打开文件失败!\n");
return;
}
for (int i = 0; i < studentCount; i++) {
fprintf_s(file, "%s %s %s %s %s\n", students[i].id, students[i].name, students[i].gender, students[i].birth, students[i].classname);
}
fclose(file);
}
```
2. 成绩管理模块
成绩管理包括学生成绩的录入、查询、修改、删除等功能。我们可以使用一个二维数组来保存学生成绩,其中第一维是学生,第二维是课程。
```c++
//成绩管理类
class ScoreManager {
public:
ScoreManager() {};
~ScoreManager() {};
//录入学生成绩
void inputScore();
//查询学生成绩
void queryScore();
//修改学生成绩
void modifyScore();
//删除学生成绩
void deleteScore();
//显示所有学生成绩
void showAllScores();
private:
//保存成绩的文件名
const char* fileName = "scores.txt";
//读取成绩
void readData();
//保存成绩
void saveData();
//学生成绩数组
int scores[100][5];
//学生成绩数量
int scoreCount = 0;
};
```
读取和保存成绩的代码与读取和保存学生信息的代码类似,这里不再赘述。
3. 主函数
在主函数中,我们可以通过菜单来选择学生信息管理和成绩管理两个模块。
```c++
int main()
{
StudentManager studentManager;
ScoreManager scoreManager;
int choice;
while (true) {
printf("请选择操作:\n");
printf("1. 学生信息管理\n");
printf("2. 成绩管理\n");
printf("3. 退出\n");
scanf_s("%d", &choice);
switch (choice) {
case 1:
studentManager.showMenu();
break;
case 2:
scoreManager.showMenu();
break;
case 3:
exit(0);
default:
printf("无效选择!\n");
break;
}
}
return 0;
}
```
在学生信息管理和成绩管理的菜单中,我们可以选择添加、删除、修改、查询或显示所有学生信息或成绩。
```c++
void StudentManager::showMenu()
{
int choice;
while (true) {
printf("请选择操作:\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 查询学生信息\n");
printf("5. 显示所有学生信息\n");
printf("6. 返回\n");
scanf_s("%d", &choice);
switch (choice) {
case 1:
addStudent();
break;
case 2:
deleteStudent();
break;
case 3:
modifyStudent();
break;
case 4:
queryStudent();
break;
case 5:
showAllStudents();
break;
case 6:
return;
default:
printf("无效选择!\n");
break;
}
}
}
void ScoreManager::showMenu()
{
int choice;
while (true) {
printf("请选择操作:\n");
printf("1. 录入学生成绩\n");
printf("2. 查询学生成绩\n");
printf("3. 修改学生成绩\n");
printf("4. 删除学生成绩\n");
printf("5. 显示所有学生成绩\n");
printf("6. 返回\n");
scanf_s("%d", &choice);
switch (choice) {
case 1:
inputScore();
break;
case 2:
queryScore();
break;
case 3:
modifyScore();
break;
case 4:
deleteScore();
break;
case 5:
showAllScores();
break;
case 6:
return;
default:
printf("无效选择!\n");
break;
}
}
}
```
以上就是一个简单的基于VC++的学生成绩管理系统的实现,需要注意的是,代码中只是实现了基本的功能,还有很多细节需要完善。
阅读全文