编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
 
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

刚做完的课程设计(用C编译的学生成绩管理系统)

刚做完的课程设计(用C编译的学生成绩管理系统)

#include <stdio.h>//实现库函数的调用
#include <stdlib.h>
#include <string.h>//调用STRCPY函数的字符串连接功能
#define N  8
typedef struct //对结构体进行声明,声明类型名为DATATYPE,它代表int,char,float等指定变量
  {            //在下面的程序中就可以用DATATYPE定义变量了
    int number;
    char name[10];
    float score[5];
}
DATATYPE;
    void input_stu(DATATYPE s1[]);
    void output_stu(DATATYPE s1[]);
    void stu_avg(DATATYPE s1[]);
    void score_avg(DATATYPE s1[]);
    void main()//主函数实现对各个子函数的调用

{
      DATATYPE s[N];
      input_stu(s);
      stu_avg(s);
      score_avg(s);
      output_stu(s);
}

void input_stu(DATATYPE s1[])//实现学生信息的输入
{
      int i,j;//变量声明i表示学生人数 j表示学生科目数
      char t[8];//t表示输入的字符串数
      float x;//x表示输入的分数
      for(i=0;i<N;i++)//for循环语句实现N个学生成绩的录入
      {
         printf("\输入学生的学号:");
         gets(t);//此函数接收有键盘输入的字符串
         s1[i].number=atoi(t);
         if(s1[i].number<=0) break;//学生数目是大于等于0的数
         printf("输入学生的姓名:");
         gets(t);
         strcpy(s1[i].name,t);//此函数实现字符串的复制
         for(j=1;j<5;j++)//for循环语句实现对每个学生5门课的连续输入
           {
             printf("\nscore of %d:",j);
             scanf("%f",&x);//scanf函数
             s1[i].score[j] =x;
           }
         j=getchar();//定义j为getchar函数实现对5门课的同时接收
      }
        printf("\ninput students data end!!!");
}
void output_stu(DATATYPE s1[])//实现学生信息的输出
{
    int i,j;
    printf("\nThe students score list");
    printf("\number\tname\t\ts1\ts2\ts3\ts4\tavg");
    for(i=0;i<N;i++)

    {
        if(s1[i].number<=0) break;
        printf("\n%d\t",s1[i].number);
        printf("%s\t\t",s1[i].name);
        for(j=1;j<5;j++)
        {
           printf("\t%3.1f",s1[i].score[j]);
        }
        printf("\t%3.1f",s1[i].score[0]);
}
printf("\noutput students data end!!!");
}
void stu_avg(DATATYPE s1[])//实现全部学生一门课成绩的平均
{
    int i,j;
    float x;
    for(i=0;i<N;i++)
    {
        if(s1[i].number<=0) break;
        x=0;
        for(j=1;j<5;j++)
        {
            x+=s1[i].score[j];//实现对学生各门课的成绩的求和
        }
        x=x/4;//实现对每个学生成绩的求平均    
        s1[i].score[0]=x;
    }
    printf("\ncalulate students averge score end!!!");
}
void score_avg(DATATYPE s1[])//此函数实现每个学生各门课的求平均
{
    float savg[5]={0};
    int i,j;
    for(i=0;i<N;i++)
    {
        if(s1[i].number<=0) break;
        for(j=0;j<5;j++)
        {
         savg[j]+=s1[i].score[j];//实现对全部学生各门课成绩的求和
        }
    }
   for(j=0;j<5;j++)
   {
       savg[j]/=i;
   }
   printf("\ncalculate averge of score list\n");
   for(j=0;j<5;j++)
   {
       printf("%3.1f\t",savg[j]);
   }
   printf("\此程序运行结束");
   
}

TOP

有报告么?发我一份好么?急需!sh_yangjie@163.com

TOP

你的程序有问题 放上来干什么呀

TOP

这个程序不错
比较适合初学者
千里冰封---My Love 尽管相隔千里 , 依然拥有冰封

TOP

发新话题