vc6.0学生信息管理系统
时间: 2023-12-07 15:04:24 浏览: 43
根据提供的引用内容,VC6.0学生信息管理系统需要实现以下功能:
1. 增加记录:可以连续增加多条记录。
2. 删除记录:可以删除指定学生的记录。
3. 修改记录:可以修改指定学生的记录。
4. 查询记录:可以按照学号或姓名查询指定学生的记录。
5. 排序记录:可以按照学号或成绩对学生记录进行排序。
6. 显示记录:可以显示所有学生的记录。
7. 文件操作:可以打开文件,显示班级的所有学生信息;可以将增加或修改后的成绩重新写入文件;可以将排序好的信息写入新的文件。
下面是一个简单的VC6.0学生信息管理系统的实现,包括增加记录、删除记录、修改记录、查询记录、排序记录和显示记录的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_NUM_LEN 10
#define MAX_SCORE_LEN 5
#define MAX_STUDENT_NUM 100
typedef struct student {
char name[MAX_NAME_LEN];
char num[MAX_NUM_LEN];
char score[MAX_SCORE_LEN];
} Student;
Student students[MAX_STUDENT_NUM];
int student_num = 0;
void add_student() {
if (student_num >= MAX_STUDENT_NUM) {
printf("学生信息已满,无法添加!\n");
return;
}
printf("请输入学生姓名:");
scanf("%s", students[student_num].name);
printf("请输入学生学号:");
scanf("%s", students[student_num].num);
printf("请输入学生成绩:");
scanf("%s", students[student_num].score);
student_num++;
printf("添加成功!\n");
}
void delete_student() {
char num[MAX_NUM_LEN];
printf("请输入要删除的学生学号:");
scanf("%s", num);
int i;
for (i = 0; i < student_num; i++) {
if (strcmp(students[i].num, num) == 0) {
int j;
for (j = i; j < student_num - 1; j++) {
strcpy(students[j].name, students[j + 1].name);
strcpy(students[j].num, students[j + 1].num);
strcpy(students[j].score, students[j + 1].score);
}
student_num--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
void modify_student() {
char num[MAX_NUM_LEN];
printf("请输入要修改的学生学号:");
scanf("%s", num);
int i;
for (i = 0; i < student_num; i++) {
if (strcmp(students[i].num, num) == 0) {
printf("请输入学生姓名:");
scanf("%s", students[i].name);
printf("请输入学生成绩:");
scanf("%s", students[i].score);
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
void query_student() {
char name[MAX_NAME_LEN];
char num[MAX_NUM_LEN];
printf("请输入要查询的学生姓名或学号:");
scanf("%s", name);
int i;
for (i = 0; i < student_num; i++) {
if (strcmp(students[i].name, name) == 0 || strcmp(students[i].num, name) == 0) {
printf("学生姓名:%s\n", students[i].name);
printf("学生学号:%s\n", students[i].num);
printf("学生成绩:%s\n", students[i].score);
return;
}
}
printf("未找到该学生!\n");
}
void sort_student() {
char type;
printf("请选择排序方式(n-按学号排序,s-按成绩排序):");
scanf(" %c", &type);
int i, j;
for (i = 0; i < student_num - 1; i++) {
for (j = 0; j < student_num - i - 1; j++) {
if ((type == 'n' && strcmp(students[j].num, students[j + 1].num) > 0) ||
(type == 's' && strcmp(students[j].score, students[j + 1].score) > 0)) {
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
printf("排序成功!\n");
}
void display_student() {
int i;
for (i = 0; i < student_num; i++) {
printf("学生姓名:%s\n", students[i].name);
printf("学生学号:%s\n", students[i].num);
printf("学生成绩:%s\n", students[i].score);
}
}
void open_file() {
FILE *fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return;
}
student_num = 0;
while (fscanf(fp, "%s %s %s", students[student_num].name, students[student_num].num, students[student_num].score) != EOF) {
student_num++;
}
fclose(fp);
printf("文件打开成功!\n");
}
void save_file() {
FILE *fp = fopen("students.txt", "w");
if (fp == NULL) {
printf("文件打开失败!\n");
return;
}
int i;
for (i = 0; i < student_num; i++) {
fprintf(fp, "%s %s %s\n", students[i].name, students[i].num, students[i].score);
}
fclose(fp);
printf("保存成功!\n");
}
void save_sorted_file() {
char type;
printf("请选择排序方式(n-按学号排序,s-按成绩排序):");
scanf(" %c", &type);
FILE *fp = fopen("sorted_students.txt", "w");
if (fp == NULL) {
printf("文件打开失败!\n");
return;
}
int i, j;
for (i = 0; i < student_num - 1; i++) {
for (j = 0; j < student_num - i - 1; j++) {
if ((type == 'n' && strcmp(students[j].num, students[j + 1].num) > 0) ||
(type == 's' && strcmp(students[j].score, students[j + 1].score) > 0)) {
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
for (i = 0; i < student_num; i++) {
fprintf(fp, "%s %s %s\n", students[i].name, students[i].num, students[i].score);
}
fclose(fp);
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("0. 退出程序\n");
printf("请输入操作编号:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
modify_student();
break;
case 4:
query_student();
break;
case 5:
sort_student();
break;
case 6:
display_student();
break;
case 7:
open_file();
break;
case 8:
save_file();
break;
case 9:
save_sorted_file();
break;
case 0:
return 0;
default:
printf("无效操作!\n");
break;
}
}
return 0;
}
```