标题:学生成绩管理系统 求各位指教一下
取消只看楼主
RavenYOUNG
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2019-4-5
结帖率:75%
已结贴  问题点数:10 回复次数:0 
学生成绩管理系统 求各位指教一下
学生成绩管理系统,源代码没有错误,但是每一个模块都运行得不到想要的结果,希望各位帮忙
#include<stdio.h>
#include<stdlib.h>
#define N 40
int ReadScore(float score[],long num[]);
void LinSearch(long num[],float score[],int n);
void DataSort(float score[],int n);
void NumberSort(long num[],float score[],int n);
void Average(float score[],int n);
void Statistics(float[],int n);
void ListRecord(long num[],float score[],int n);
int main()
{
int m=0;
int n=0;
float score[N];
long num[N];
printf("1.录入每个学生的学好和考试成绩。\n");
printf("2.计算课程的总分和平均分。\n");
printf("3.按成绩由高到低排出名次表。\n");
printf("4.按学号由小到大排出成绩表。\n");
printf("5.按学号查询学生排名及其考试成绩。\n");
printf("6.按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数及其课程总分和平均分。\n");
printf("7.输出每个学生的学号、考试成绩以及课程总分和平均分。\n");
printf("0.退出。\n");
n=ReadScore(score,num);
printf("请输入你的选择:\n");
scanf("%d",&m);
switch(m)
{

    case 2:Average(score,n);
    break;
    case 3:DataSort(score,n);
    break;
    case 4:NumberSort(num, score,n);
    break;
    case 5:LinSearch(num,score,n);
    break;
    case 6:Statistics(score,n);
    break;
    case 7:ListRecord(num,score,n);
    break;
    case 0:printf("结束程序。\n");
    exit(0);
    default:printf("没有这个选择!\n");
}
return 0;
}
int ReadScore(float score[],long num[])/*id 和学生考试成绩 */
{
    int i=-1;
    do{
        i++;
        printf("input student's id and score:");
        scanf("%ld%d",&num[i],&score[i]);
    }while (num[i]>0&&score[i]>=0);
    return i;
 }
void Average(float score[],int n)
{
    int i;
    float sum=0;
    for(i=0;i<n;i++)
    {
        sum+=score[i];
    }
    printf("sum=%.0f,aver=%.2f\n",sum,sum/n);
}
 void DataSort(float score[],int n)
 {
     int i,j,temp;
     for(i=0;i<n-1;i++)
     {
         for(j=i+1;j<n;j++)
         {
             if(score[j]>score[i])
             {
                 temp=score[i];
                 score[j]=score[i];
                 score[i]=temp;
             }
        }
     }
 }
 void NumberSort(long num[],float score[],int n)
 {
     int i,j,k;
     float temp1;
     long temp2;
     for(i=0;i<n-1;i++)
     {
         k=i;
         for(j=i+1;j<n;j++)
         {
             if (num[j]<num[k])k=j;
         }
         if(k!=j)
         {
             temp1=score[k];score[k]=score[i];score[i]=temp1;
             temp2=num[k];num[k]=num[i];num[i]=temp2;
         }
     }
 }
void LinSearch(long num[],float score[],int n)
{
    int i;
    long number;
    printf("输入你想查询的学号:\n");
    scanf("%ld",&number);
     for(i=0;i<n;i++)
     {
      if (num[i]==number)
      {
          printf("%1d\t%.0f\n",num[i],score[i]);
         
      }
      }
     printf("查询不到该信息!\n");
 }
 void Statistics(float score[],int n)
 {
int i, total,t[5]={0,0,0,0,0};
for(i=0;i<n;i++)
{
    if(score[i]>0&&score[i]<60)
    t[0]++;
    else if(score[i]<70)
    t[1]++;
    else if(score[i]<80)
    t[2]++;
    else if(score[i]<90)
    t[3]++;
    else if(score[i]<=100)
    t[4]++;
}
printf("成绩优秀占%.2d%\n",t[4]/n*100);
printf("成绩良好占%.2d%\n",t[3]/n*100);
printf("成绩中等占%.2d%\n",t[2]/n*100);
printf("成绩及格占%.2d%\n",t[1]/n*100);
printf("成绩不及格占%.2d%\n",t[0]/n*100);
}
void ListRecord(long num[],float score[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%ld\t%.0f\n",num[i],score[i]);
    }
}
搜索更多相关主题的帖子: int score float num printf 
2019-05-16 23:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494769-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.217593 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved