c语言课程设计 学生成绩管理系统
时间: 2024-06-20 16:03:51 浏览: 117
C语言课程设计的学生成绩管理系统是一种基于C语言的小型软件,用于管理学生的学习成绩。该系统可以方便地录入学生信息和成绩,进行成绩的查询、修改、删除等操作。一般来说,该系统包含以下几个主要模块:
1. 学生信息管理模块:用于添加、修改、删除学生信息;
2. 学生成绩管理模块:用于添加、修改、删除学生成绩;
3. 成绩查询模块:用于根据不同条件查询学生成绩;
4. 数据统计模块:用于对学生成绩进行统计分析。
下面是一个简单的C语言课程设计的学生成绩管理系统的代码示例:
```c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
typedef struct student{
char name[20]; //姓名
int num; //学号
int math; //数学成绩
int english; //英语成绩
int total; //总分
}stu;
int n=0; //学生总数
stu stu_array[MAX]; //学生数组
void input(stu *p); //输入学生信息
void output(stu *p); //输出学生信息
void find(stu *p); //查找学生成绩
void sort(stu *p); //成绩排序
int main(){
int choice;
while(1){
printf("\n");
printf("1. 输入学生信息\n");
printf("2. 输出学生信息\n");
printf("3. 查找学生成绩\n");
printf("4. 成绩排序\n");
printf("5. 退出\n");
printf("请选择:");
scanf("%d", &choice);
switch(choice){
case 1:
input(&stu_array[n]);
n++;
break;
case 2:
output(stu_array);
break;
case 3:
find(stu_array);
break;
case 4:
sort(stu_array);
break;
case 5:
exit(0);
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
void input(stu *p){
printf("请输入姓名:");
scanf("%s", p->name);
printf("请输入学号:");
scanf("%d", &p->num);
printf("请输入数学成绩:");
scanf("%d", &p->math);
printf("请输入英语成绩:");
scanf("%d", &p->english);
p->total = p->math + p->english;
}
void output(stu *p){
int i;
if(n==0){
printf("没有录入任何信息!\n");
return;
}
printf("\n姓名\t学号\t数学\t英语\t总分\n");
for(i=0;i<n;i++){
printf("%s\t%d\t%d\t%d\t%d\n", p[i].name, p[i].num, p[i].math, p[i].english, p[i].total);
}
}
void find(stu *p){
int choice;
int i;
char name[20];
int num;
int math;
int english;
int total;
if(n==0){
printf("没有录入任何信息!\n");
return;
}
while(1){
printf("\n");
printf("1. 按姓名查找\n");
printf("2. 按学号查找\n");
printf("3. 按数学成绩查找\n");
printf("4. 按英语成绩查找\n");
printf("5. 按总分查找\n");
printf("6. 返回上一级菜单\n");
printf("请选择:");
scanf("%d", &choice);
switch(choice){
case 1:
printf("请输入姓名:");
scanf("%s", name);
for(i=0;i<n;i++){
if(strcmp(name, p[i].name)==0){
printf("\n姓名\t学号\t数学\t英语\t总分\n");
printf("%s\t%d\t%d\t%d\t%d\n", p[i].name, p[i].num, p[i].math, p[i].english, p[i].total);
return;
}
}
printf("没有找到该学生信息!\n");
break;
case 2:
printf("请输入学号:");
scanf("%d", &num);
for(i=0;i<n;i++){
if(num==p[i].num){
printf("\n姓名\t学号\t数学\t英语\t总分\n");
printf("%s\t%d\t%d\t%d\t%d\n", p[i].name, p[i].num, p[i].math, p[i].english, p[i].total);
return;
}
}
printf("没有找到该学生信息!\n");
break;
case 3:
printf("请输入数学成绩:");
scanf("%d", &math);
for(i=0;i<n;i++){
if(math==p[i].math){
printf("\n姓名\t学号\t数学\t英语\t总分\n");
printf("%s\t%d\t%d\t%d\t%d\n", p[i].name, p[i].num, p[i].math, p[i].english, p[i].total);
return;
}
}
printf("没有找到该学生成绩!\n");
break;
case 4:
printf("请输入英语成绩:");
scanf("%d", &english);
for(i=0;i<n;i++){
if(english==p[i].english){
printf("\n姓名\t学号\t数学\t英语\t总分\n");
printf("%s\t%d\t%d\t%d\t%d\n", p[i].name, p[i].num, p[i].math, p[i].english, p[i].total);
return;
}
}
printf("没有找到该学生成绩!\n");
break;
case 5:
printf("请输入总分:");
scanf("%d", &total);
for(i=0;i<n;i++){
if(total==p[i].total){
printf("\n姓名\t学号\t数学\t英语\t总分\n");
printf("%s\t%d\t%d\t%d\t%d\n", p[i].name, p[i].num, p[i].math, p[i].english, p[i].total);
return;
}
}
printf("没有找到该学生成绩!\n");
break;
case 6:
return;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
}
void sort(stu *p){
int choice;
int i,j;
if(n==0){
printf("没有录入任何信息!\n");
return;
}
while(1){
printf("\n");
printf("1. 按数学成绩排序\n");
printf("2. 按英语成绩排序\n");
printf("3. 按总分排序\n");
printf("4. 返回上一级菜单\n");
printf("请选择:");
scanf("%d", &choice);
switch(choice){
case 1:
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(p[j].math>p[i].math){
stu temp=p[j];
p[j]=p[i];
p[i]=temp;
}
}
}
output(p);
break;
case 2:
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(p[j].english>p[i].english){
stu temp=p[j];
p[j]=p[i];
p[i]=temp;
}
}
}
output(p);
break;
case 3:
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(p[j].total>p[i].total){
stu temp=p[j];
p[j]=p[i];
p[i]=temp;
}
}
}
output(p);
break;
case 4:
return;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
}
```
阅读全文