- C语言学生成绩管理系统设计
-代码如下:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <windows.h>
#define NUM 2
int c_score [NUM];//C语言成绩
int e_score[NUM];//大学英语成绩?
int m_score[NUM];//高等数学成绩
long xuehao[NUM];//学号
char name[NUM][20];//姓名
int main()
{void zcd(); //声明zcd函数
zcd();
system("pause");
return 0;
}
//输入学生学号、姓名、三门课成绩
void input()
{
int i;
system("cls");
for(i=0;i<NUM;i++){
printf("\n请输入%d个学生的学号:",i+1);
fflush(stdin);
scanf("%ld",&xuehao[i]);
fflush(stdin);
printf("\n请输入%d个学生的姓名:",i+1);
gets(name[i]);
fflush(stdin);
printf("\n请输入%d个学生的三门课程成绩:",i+1);
printf(" 格式 123,121,120 \n");
scanf("%d,%d,%d",&c_score[i],&e_score[i],&m_score[i]);
}
}
//输出学生信息函数
void print()
{
int i;
printf(" 学号\t 姓名\t C语言\t 英语\t 数学\n");
for(i=0;i<NUM;i++)
printf(" %d\t%s\t%d\t%d\t%d\n",xuehao[i],name[i],c_score[i],e_score[i],m_score[i]);
system("pause");
}
//求某门课程最高分函数,三门课程选择其中一门即可
//q求C语言的最高分学生信息
void Max()
{
int max_index = 0;
int i;
for (i = 1; i < NUM; i++) {
if (c_score[i] > c_score[max_index]) { // 更新最高分
max_index = i;
}
}
printf("C 语言课程的最高分为:\n");
printf("学号:%d\n", xuehao[max_index]);
printf("姓名:%s\n", name[max_index]);
printf("成绩:%d\n", c_score[max_index]);
system("pause");
}
//求某门课程最低分函数,三门课程选择其中一门即可
// 求C语言课最低分函数,
void Min()
{
int min_index = 0;
int i;
for (i = 1; i < NUM; i++) {
if (c_score[i] < c_score[min_index]) { // 更新最低分
min_index = i;
}
}
printf("C 语言课程的最低分为:\n");
printf("学号:%d\n", xuehao[min_index]);
printf("姓名:%s\n", name[min_index]);
printf("成绩:%d\n", c_score[min_index]);
system("pause");
}
//求某门课程平均值函数,三门课程选择其中一门即可
// 求C语言课平均值函数,
void average()
{
float sum = 0,avg;
int i;
for (i = 0; i < NUM; i++) {
sum += c_score[i];
}
avg = sum / NUM;
printf("C 语言课程的平均分为:%.2f\n", avg);
system("pause");
}
//某门课程成绩从高到低排序函数,请添加代码,实现相应功能,三门课程选择其中一门即可
//大学英语到低排序函数,请添加代码,实现相应功能
void sort()
{
int i, j;
int temp;
int choice;//声明变量
long t;//由于交换位置,需要交换学号对应的名字
char name_temp[20];
printf("\n请选择要排序的课程:\n");
printf("1. C语言\n");
printf("2. 大学英语\n");
printf("3. 高等数学\n");
printf("这里用大学英语演示 输入指令 2\n");
scanf("%d", &choice);
if(choice == 2){//如果选择了大学英语,则按照大学英语成绩从高到低排序
//冒泡排序
for(i=0;i<NUM-1;i++){
for(j=0;j<NUM-i-1;j++){
if(e_score[j] < e_score[j+1]){
//交换e_score[j]和e_score[j+1]
temp = e_score[j];
e_score[j] = e_score[j+1];
e_score[j+1] = temp;
//同时交换其他三门课程的成绩
temp = c_score[j];
c_score[j] = c_score[j+1];
c_score[j+1] = temp;
temp = m_score[j];
m_score[j] = m_score[j+1];
m_score[j+1] = temp;
t = xuehao[j];
xuehao[j] = xuehao[j+1];
xuehao[j+1] = t;
strcpy(name_temp, name[j]);
strcpy(name[j], name[j+1]);
strcpy(name[j+1], name_temp);
}
}
}
printf("\n按照大学英语成绩排序结果:\n");
printf(" 排名\t 姓名\t 学号\t C语言\t 英语\t 数学\n");
for(i=0;i<NUM;i++){
printf("%d\t%s\t%ld\t%d\t%d\t%d\n", i+1, name[i], xuehao[i], c_score[i], e_score[i], m_score[i]);//按照格式输出
}
}else if(choice == 1){//如果选择了C语言,与前面的代码一样
//类似地可以使用冒泡排序,并交换其他两门课程的成绩
}else if(choice == 3){//如果选择了高等数学,与后面的代码一样
//类似地可以使用冒泡排序,并交换其他两门课程的成绩
}else{
printf("\n无效的选择\n");//如果输入的不是1、2、3中的任何一个,则提示错误信息
}
system("pause");
}
/*按学号查找某名学生三门课程成绩并显示*/
void search_num()
{
long num;
int i, index = -1;//初始化为-1,表示未找到
printf("\n请输入要查询的学生学号:");
fflush(stdin);
scanf("%ld", &num);
for(i=0;i<NUM;i++){
if(num == xuehao[i]){//如果找到匹配的学号,将index设置为i,并跳出循环
index = i;
break;
}
}
if(index == -1){//如果未找到,则提示“查无此人”
printf("\n查无此人\n");
}else{//否则,输出该名学生的姓名和成绩
printf("\n姓名:%s\n", name[index]);
printf("C语言成绩:%d\n", c_score[index]);
printf("大学英语成绩:%d\n", e_score[index]);
printf("高等数学成绩:%d\n", m_score[index]);
}
}
/*按姓名查找某名学生三门课程成绩并显示*/
void search_name()
{
char sname[20];
int i, index = -1;//初始化为-1,表示未找到
printf("\n请输入要查询的学生姓名:");
fflush(stdin);//清空输入缓冲区,以避免读取上一个输入时留下的回车符
gets(sname);
for(i=0;i<NUM;i++){
if(strcmp(sname, name[i]) == 0){//如果找到匹配的姓名,将index设置为i,并跳出循环
index = i;
break;
}
}
if(index == -1){//如果未找到,则提示“查无此人”
printf("\n查无此人\n");
}else{//否则,输出该名学生的学号和成绩
printf("\n学号:%ld\n", xuehao[index]);
printf("C语言成绩:%d\n", c_score[index]);
printf("大学英语成绩:%d\n", e_score[index]);
printf("高等数学成绩:%d\n", m_score[index]);
}
}
/*主函数界面*/
void zcd()
{ int n=0;
char m;
system("cls");/*清屏*/
printf("按任一键进入主菜单\n"); /*按任一键进入主菜单*/
printf("********************************************************************************\n");
printf("\t\t欢迎您\n");
printf("\n\t\t--------- 欢迎使用简单成绩管理系统\n\t\t\t\n");
printf("************************************ MENU **************************************\n");
printf("\t1. 输入学生成绩信息 input the record\n"); /*输入学生成绩记录*/
printf("\t2. 显示学生成绩信息 print the record\n");
printf("\t3. 显示某门课程的最高分 print the highest score \n");
printf("\t4. 显示某门课程的最低分 print the lowest score\n");
printf("\t5. 显示某门课程的平均分 print the average score\n");
printf("\t6. 从高到低显示某门课程成绩 print the score from high to low\n");
printf("\t7. 按学号查找某个学生三门课程成绩 search record on number\n");
printf("\t8. 按姓名查找某个学生三门课程成绩 search record on name\n");
printf("\t9. 退出 quit\n");
printf("********************************************************************************\n");
printf("\t输入你的选择 Enter your choice(1~9):");
fflush(stdin);
m=getchar();
do
{switch(m)
{
case '1':input();zcd();break;
case '2':print();zcd();break;
case '3':Max();zcd();break;
case '4':Min();zcd();break;
case '5':average();zcd();break;
case '6':sort();zcd();break;
case '7':search_num();Sleep(3000);zcd();break;
case '8':search_name();Sleep(3000);zcd();break;
case '9':exit(0); /*如菜单返回值为9则程序结束*/
default:printf("错误命令"); getchar();zcd();
}
} while(1);
}
公众号 Aq头像社