C语言实现学生成绩管理系统课程设计

2022-07-22 10:43:02

目录设计要求完整代码运行结果本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下设计要求设计学生成绩管理系统要求如下:1.输入学生信息2.统计学生成绩3.查找并显示学生成...

目录
设计要求
完整代码
运行结果

本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下

设计要求

设计学生成绩管理系统

要求如下:

1.输入学生信息
2.统计学生成绩
3.查找并显示学生成绩
4.按姓名查找,修改学生资料
5.显示所有学生名单
6.查找并删除学生信息
7.输出个科目成绩最高的学生

完整代码

#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
struct Student
{
 int cls;
 char namee[10];
 char number[10];
 int chinese;
 int english;
 int computer;
 int math;
}stud1[100];
int menu()
{
 char a;
 while(a>'8'||a<'0')
 {
  system("cls");
  printf("*****  学生成绩管理系统  *******\n");
  printf("       1.输入学生信息\n");
  printf("       2.统计学生成绩\n");
  printf("       3.查找并显示学生成绩\n");
  printf("       4.按姓名查找,修改学生资料\n");
  printf("       5.显示所有学生名单\n");
  printf("       6.查找并删除学生信息\n");
  printf("       7.输出个科目成绩最高的学生\n");
  printf("        0.退出系统\n");
  printf("************************************\n");
  printf("请选择(0-8)\n");
  a=getchar();//键盘敲的字符赋给a
 }
 return(a-'0');
}
/******************************************/
int Input(Student stud[],int n)   //输入数据  定义输入数据函数
{
 int i=0;
 char sign,x[10];
 for(;sign !='n'&&sign !='N';)
 {
  printf("        姓名:");
  scanf("%s",stud[n+i].namee);
  printf("        班级:");
  scanf("%d",&stud[n+i].cls);
  printf("        学号:");
  scanf("%s",stud[n+i].number);
  printf("        语文:");
  scanf("%d",&stud[n+i].chinese);

  printf("        数学:");
  scanf("%d",&stud[n+i].math);
  printf("        英语:");
  scanf("%d",&stud[n+i].english);
  printf("        计算机:");
  scanf("%d",&stud[n+i].computer);
  gets(x);
  printf("还有要输入的信息吗?(y/n)");
  scanf("%c",&sign);
  i++;
 }
 return(n+i);
}
void Sort(Student stud[], int n)//根据平均分排序(冒泡法)
{
  int i,j;
  struct Student tmp;
  for (i=0;i<n;i++)
  {
    for (j=1;j<n-i;j++)
    {
       if ((stud[j-1].chinese+stud[j-1].english+stud[j-1].computer+stud[j-1].math)<(stud[j].chinese+stud[j].english+stud[j].computer+stud[j].math))
       {
         tmp=stud[j-1];
         stud[j-1]=stud[j];
         stud[j]=tmp;
      }
    }
  }
}
/***************统计数据*******/
void Display(Student stud[], int n)
{
 Sort(stud,n);
 int i;
 printf("   班级  学号  姓名  语文   数学  英语  计算机  总分  平均分\n");
 for(i=1;i<n+1;i++)
 { 
  int s=stud[i-1].chinese+stud[i-1].math+stud[i-1].english+stud[i-1].computer;
  printf("%7d,%7s,%7s,%7d,%7d,%7d,%7d,%7d,%7d\n",stud[i-1].cls,stud[i-1].number,stud[i-1].namee,stud[i-1].chinese,stud[i-1].math,stud[i-1].english,stud[i-1].computer,s,s/4);
  if(i>1 && i%10==0)
  {
   system("pause");
  }
 }
 system("pause");
  int a;
 printf("语文不及格的有:班级  姓名  学号  成绩\n");
 for(a=0;a<n;a++)
 {
  if(stud[a].chinese<60)
  printf("      %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].chinese);
  }
 printf("数学不及格的有:班级  姓名  学号  成绩\n");
 for(a=0;a<n;a++)
 {
  if(stud[a].math<60)
 printf("  %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].math);
  }
 printf("英语不及格的有:班级  姓名  学号  成绩\n");
 for(a=0;a<n;a++)
 {
  if(stud[a编程].english<60)
 printf("      %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].english);
  }
 printf("计算机不及格的有:班级  姓名  学号  成绩\n");
 for(a=0;a<n;a++)
 {
  if(stud[a].computer<60)
 printf("      %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].computer);
  }
  system("pause");
}
/************查找学生显示其信息*******************/
void Query(Student stud[],int n)
{
 char namee[20];
 printf("     输入其姓名:\n");
  scanf("%s",namee);
 int i=0;
 while(strcmp(stud[i].namee,namee)!=0&&i<n)
  i++;
 if(i==n)
 {
  printf("\t\t\t没有发现该学生的资料!\n");
  return;
 }
 printf("     学号:%s\n",stud[i].number);
 printf("     班级:%d\n",stud[i].cls);
 printf("     语文:%d\n",stud[i].chinese);
 printf("     英语:%d\n",stud[i].english);
 printf("     数学:%d\n",stud[i].math);
 printf("     计算机:%d\n",stud[i].computer);
}
/************删除学生信息*********/
int Delete(Student stud[],int n)
{
 char sbraGEa[20];
 int i=0,j;
 printf("    请输入要删除的学生的姓名:\n");
 scanf("%s",s);
 while(strcmp(stud[i].namee,s)!=0&&i<n) i++;
 if(i==n)
 {
  printf("\t\t\t没有发现该学生资料!\n");
  return(n);
 }
 for(j=i;j<n-1;j++)
 {
  strcpy(stud[j].number,stud[j+1].number);
  strcpy(stud[j].namee,stud[j+1].namee);
  stud[j].cls=stud[j+1].cls;
  stud[j].chinese=stud[j+1].chinese;
  stud[j].math=stud[j+1].math;
  stud[j].english=stud[j+1].english;
  stud[j].computer=stud[j+1].computer;
 }
 printf("     当前信息已删除成功!");
 return(n-1);
}
/****************修改信息**********************/
int Revise(Student stud[],int n)
{
 int i=0;
 char na[10];
 scanf("%s",na);
 while(strcmp(stud[i].namee,na)!=0&&i<n)
  i++;
 if(i==n)
 {
  printf("\t\t\t没有发现该学生的资料!\n");
 }
 printf("修改班级:\n");
 scanf("%d",&stud[i].cls);
 printf("修改学号:\n");
 scanf("%s",stud[i].number);
 printf("修改语文成绩:\n");
 scanf("%d",&stud[i].chinese);
 printf("修改英语成绩:\n");
 scanf("%d",&stud[i].english);
 printf("修改数学成绩:\n");
 scanf("%d",&stud[i].math);
 printf("修改计算机成绩:\n");
 scanf("%d",&stud[i].computer);
 printf("修改成功\n");
 return(n);
}

/***************************************显示学生名单**************************************/
void show(Student stud[],int n)
{
  for(int i=0;i<n;i++)
 {
  printf("  %s\n",stud[i].namee);
 }
 system("pause");
}
//
void SercherH(Student stud[],int n)//搜索成绩最高者输出
{
 int a;
 int max ;
 printf("语文成绩最高为:班级  姓名  学号  成绩\n");
 max=stud[0].chinese;
 for(a=1;a<n;a++)
 {
  if(stud[a].chinese>max)
  max=stud[a].chinese;
 }
 for(a=0;a<n;a++)
 {
  if(max==stud[a].chinese)
  printf("      %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].chinese);
 }
 printf("数学成绩最高为:班级  姓名  学号  成绩\n");
 max=stud[0].math;
 for(a=1;a<n;a++)
 {
  if(stud[a].math>max)
  max=stud[a].math;
 }
 for(a=0;a<n;a++)
 {
  if(max==stud[a].math)
  printf("      %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].math);
 }
 printf("英语成绩最高为:班级  姓名  学号  成绩\n");
 max=stud[0].english;
 for(a=1;a<n;a++)
 {
  if(stud[a].english>max)
  max=stud[a].english;
 }
 for(a=0;a<n;a++)
 {
  if(max==stud[a].english)
  printf("      %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].english);
 }
 printf("计算机成绩最高为:班级  姓名  学号  成绩\n");
 max=stud[0].computer;
 for(a=1;a<n;a++){
  if(stud[a].computer>max)
  max=stud[a].computer;}
 for(a=0;a<n;a++) {
  if(max==stud[a].computer)
  printf("      %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].computer);}
 js system("pause");}
/*****************主函数调用*****************/
int main()
{
 int n1=0;
 for(;;)
 {
  switch(menu()){
  case 1:
   printf("        输入学生资料\n");
   n1=Input(stud1,n1);break;
  case 2:
  php printf("         输出所有学生资料\n");
    Display(stud1,n1);break;
  case 3:
   int r;printf("        查找学生\n");
   Query(stud1,n1);
system("pause");break;
  case 4:
   int p;printf("        修改学生资料\n");
printf("        输入你要修改的学生的姓名:");
    n1=Revise(stud1,n1);
   system("pause");break;
  case 5:
   printf("        显示所有学生名单:\n");
    show(stud1,n1);
   system("pause");break;
    case 6:
   printf("        查找并删除学生信息\n");
   int o;
n1=Delete(stud1,n1);
system("pause");break;
  case 7:
   int l;SercherH(stud1,n1);break; 
  case 0:  php  
   system("pause");break;
  }
 }
}

运行结果

C语言实现学生成绩管理系统课程设计

后面的需要执行哪项功能,就输入对应数字就可以!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。