数据结构课程设计:学生成绩管理 实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。 能实现对学生信息的简单管理。 具体要求: 建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩
时间: 2023-09-08 22:10:53 浏览: 57
好的,我明白了。这是一个数据结构课程设计,主要是实现一个学生成绩管理的功能。你需要建立一个信息登记表,包括4个学生的信息,每个学生的信息包括学号、姓名和3门课程的成绩。然后,你需要实现以下功能:
1. 输入学生信息
2. 输出学生信息
3. 插入学生信息
4. 删除学生信息
5. 查找学生信息
6. 追加学生信息
7. 读入学生信息
8. 显示学生信息
9. 保存学生信息
10. 拷贝学生信息
11. 对学生信息进行排序
12. 对学生信息进行索引
13. 对学生信息进行分类合计
14. 退出程序
以上这些功能,可以在你的程序中实现,以便对学生信息进行管理和操作。如果你有任何问题,可以随时问我。
相关问题
用c语言编写学生成绩管理实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。
以下是用C语言编写学生成绩管理实现各种功能的示例代码:
1. 输入学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void inputScore(struct Student *student) {
printf("请输入学生的成绩:\n");
printf("大学英语成绩:");
scanf("%f", &(student->english));
printf("毛概成绩:");
scanf("%f", &(student->politics));
printf("数据结构成绩:");
scanf("%f", &(student->dataStructure));
printf("数据库成绩:");
scanf("%f", &(student->database));
}
```
2. 输出学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void outputScore(struct Student student) {
printf("学生的成绩如下:\n");
printf("大学英语成绩:%f\n", student.english);
printf("毛概成绩:%f\n", student.politics);
printf("数据结构成绩:%f\n", student.dataStructure);
printf("数据库成绩:%f\n", student.database);
}
```
3. 插入学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void insertScore(struct Student *student, float english, float politics, float dataStructure, float database) {
student->english = english;
student->politics = politics;
student->dataStructure = dataStructure;
student->database = database;
}
```
4. 删除学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void deleteScore(struct Student *student) {
student->english = 0;
student->politics = 0;
student->dataStructure = 0; student->database = 0;
}
```
5. 查找学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void searchScore(struct Student student) {
printf("学生的成绩如下:\n");
printf("大学英语成绩:%f\n", student.english);
printf("毛概成绩:%f\n", student.politics);
printf("数据结构成绩:%f\n", student.dataStructure);
printf("数据库成绩:%f\n", student.database);
}
```
6. 追加学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void appendScore(struct Student *student, float english, float politics, float dataStructure, float database) {
student->english += english;
student->politics += politics;
student->dataStructure += dataStructure;
student->database += database;
}
```
7. 读入学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void readScore(struct Student *student) {
printf("请输入学生的成绩:\n");
printf("大学英语成绩:");
scanf("%f", &(student->english));
printf("毛概成绩:");
scanf("%f", &(student->politics));
printf("数据结构成绩:");
scanf("%f", &(student->dataStructure));
printf("数据库成绩:");
scanf("%f", &(student->database));
}
```
8. 显示学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void displayScore(struct Student student) {
printf("学生的成绩如下:\n");
printf("大学英语成绩:%f\n", student.english);
printf("毛概成绩:%f\n", student.politics);
printf("数据结构成绩:%f\n", student.dataStructure);
printf("数据库成绩:%f\n", student.database);
}
```
9. 保存学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void saveScore(struct Student student) {
FILE *file = fopen("score.txt", "w");
if (file == NULL) {
printf("保存失败!\n");
return;
}
fprintf(file, "大学英语成绩:%f\n", student.english);
fprintf(file, "毛概成绩:%f\n", student.politics);
fprintf(file, "数据结构成绩:%f\n", student.dataStructure);
fprintf(file, "数据库成绩:%f\n", student.database);
fclose(file);
printf("保存成功!\n");
}
```
10. 拷贝学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void copyScore(struct Student *dest, struct Student src) {
dest->english = src.english;
dest->politics = src.politics;
dest->dataStructure = src.dataStructure;
dest->database = src.database;
}
```
11. 排序学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void sortScore(struct Student *students, int count) {
// 使用冒泡排序按照大学英语成绩从小到大排序
for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - i - 1; j++) {
if (students[j].english > students[j + 1].english) {
struct Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
}
```
12. 索引学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void indexScore(struct Student *students, int count) {
printf("学生成绩索引如下:\n");
for (int i = 0; i < count; i++) {
printf("学生%d的大学英语成绩:%f\n", i + 1, students[i].english);
}
}
```
13. 分类合计学生成绩:
```c
#include <stdio.h>
struct Student {
float english;
float politics;
float dataStructure;
float database;
};
void sumScore(struct Student *students, int count) {
float englishSum = 0;
float politicsSum = 0;
float dataStructureSum = 0;
float databaseSum = 0;
for (int i = 0; i < count; i++) {
englishSum += students[i].english;
politicsSum += students[i].politics;
dataStructureSum += students[i].dataStructure;
databaseSum += students[i].database;
}
printf("大学英语成绩总和:%f\n", englishSum);
printf("毛概成绩总和:%f\n", politicsSum);
printf("数据结构成绩总和:%f\n", dataStructureSum);
printf("数据库成绩总和:%f\n", databaseSum);
}
```
14. 退出程序:
```c
#include <stdio.h>
#include <stdlib.h>
void exitProgram() {
printf("程序已退出!\n");
exit(0);
}
```
用c语言实现 学生成绩管理系统 实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、排序、分类统计、退出。
以下是用C语言实现学生成绩管理系统的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
struct Student {
int id;
char name[50];
float scores[3];
float average;
};
struct Student students[MAX_STUDENTS];
int numStudents = 0;
void inputStudent() {
struct Student newStudent;
printf("请输入学生的学号:");
scanf("%d", &newStudent.id);
printf("请输入学生的姓名:");
scanf("%s", newStudent.name);
printf("请输入学生的3门课成绩:");
for (int i = 0; i < 3; i++) {
scanf("%f", &newStudent.scores[i]);
}
newStudent.average = (newStudent.scores[0] + newStudent.scores[1] + newStudent.scores[2]) / 3;
students[numStudents++] = newStudent;
printf("学生信息已添加。\n");
}
void outputStudent(struct Student student) {
printf("学号:%d\n", student.id);
printf("姓名:%s\n", student.name);
printf("成绩:");
for (int i = 0; i < 3; i++) {
printf("%.2f ", student.scores[i]);
}
printf("\n");
printf("平均成绩:%.2f\n", student.average);
}
void displayStudents() {
if (numStudents == 0) {
printf("没有学生信息。\n");
return;
}
for (int i = 0; i < numStudents; i++) {
printf("第%d个学生信息:\n", i + 1);
outputStudent(students[i]);
}
}
void deleteStudent() {
int studentId;
printf("请输入要删除的学生的学号:");
scanf("%d", &studentId);
int index = -1;
for (int i = 0; i < numStudents; i++) {
if (students[i].id == studentId) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到该学生。\n");
return;
}
for (int i = index; i < numStudents - 1; i++) {
students[i] = students[i + 1];
}
numStudents--;
printf("学生信息已删除。\n");
}
void searchStudent() {
int studentId;
printf("请输入要查找的学生的学号:");
scanf("%d", &studentId);
int index = -1;
for (int i = 0; i < numStudents; i++) {
if (students[i].id == studentId) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到该学生。\n");
return;
}
printf("找到该学生的信息:\n");
outputStudent(students[index]);
}
void saveStudents() {
FILE *file = fopen("students.txt", "w");
if (file == NULL) {
printf("保存失败。\n");
return;
}
for (int i = 0; i < numStudents; i++) {
fprintf(file, "%d %s %.2f %.2f %.2f\n", students[i].id, students[i].name, students[i].scores[0], students[i].scores[1], students[i].scores[2]);
}
fclose(file);
printf("学生信息已保存。\n");
}
void loadStudents() {
FILE *file = fopen("students.txt", "r");
if (file == NULL) {
printf("加载失败。\n");
return;
}
numStudents = 0;
while (fscanf(file, "%d %s %f %f %f", &students[numStudents].id, students[numStudents].name, &students[numStudents].scores[0], &students[numStudents].scores[1], &students[numStudents].scores[2]) != EOF) {
students[numStudents].average = (students[numStudents].scores[0] + students[numStudents].scores[1] + students[numStudents].scores[2]) / 3;
numStudents++;
}
fclose(file);
printf("学生信息已加载。\n");
}
void sortStudents() {
for (int i = 0; i < numStudents - 1; i++) {
for (int j = 0; j < numStudents - i - 1; j++) {
if (students[j].average < students[j + 1].average) {
struct Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
printf("学生信息已排序。\n");
}
void calculateAverage() {
for (int i = 0; i < numStudents; i++) {
students[i].average = (students[i].scores[0] + students[i].scores[1] + students[i].scores[2]) / 3;
}
printf("学生平均成绩已计算。\n");
}
int main() {
int choice;
while (1) {
printf("学生成绩管理系统\n");
printf("1. 输入学生信息\n");
printf("2. 显示学生信息\n");
printf("3. 删除学生信息\n");
printf("4. 查找学生信息\n");
printf("5. 保存学生信息\n");
printf("6. 加载学生信息\n");
printf("7. 排序学生信息\n");
printf("8. 计算学生平均成绩\n");
printf("9. 退出\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
inputStudent();
break;
case 2:
displayStudents();
break;
case 3:
deleteStudent();
break;
case 4:
searchStudent();
break;
case 5:
saveStudents();
break;
case 6:
loadStudents();
break;
case 7:
sortStudents();
break;
case 8:
calculateAverage();
break;
case 9:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效的选择。\n");
break;
}
}
return 0;
}
```