谁帮我看看我程序,就是不知道哪里有问题。诚信求教。
大作业一要求:要求做两个作业,每个作业必须写明题目名称,软件的使用环境,设计人员的学号,姓名,完成时间。
学生成绩信息管理
有30名学生,有3门课程,对该课程进行信息处理
要求:
(1)结构体字段设计:
学生信息包括:学号、姓名、专业、数学、语文、英语
(2)软件功能:
主函数实现:学生信息的录入、输出
子函数1实现:每个学生三门课程的总成绩、平均成绩。
子函数2实现:班级(30个学生)的总分、平均分,不及格、及格、中、良、优各分数段的人数)。
说明:(1)程序应有主函数及子函数
(2)信息需用文件来存储的可自己参考一下书中文件这一章的基本内容
(3)程序必须有部分是用指针来处理的
用指针的方式处理编制程序
(1)用指针的方式统计30个学生的成绩及大于60分与小于60分的人数
(2)用指针编写排序的程序
我写的是这样:
#include<stdio.h>
#include<string.h>
float sum(float a,float b,float c,int d)
{
float sum,aver;
sum=a+b+c;
aver=sum/3;
if(d==1)
{return(sum);}
else
{return(aver);}
}
int com(float a,int de)
{
static int q,w,e,r,t;
q=w=e=r=t=0;
swith(a/10);
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:q++;break;
case 6:w++;break;
case 7:e++;break;
case 8:r++;break;
case 9:t++;break;
default :printf("error\n");
}
else if(de==1)
return(q);
else if(de==2)
return(w);
else if(de==3)
return(e);
else if(de==4)
return(r);
else if(de==5)
return(t);
}
void main()
{
struct student
{char num;
char name[20];
char sex;
char major;
float chinese;
float math;
float english;
float sum;
float aver;
};
struct student str[30];
int i,d,de,qc,wc,ec,rc,tc,qm,wm,em,rm,tm,qe,we,ee,re,te;
float sum,aver,*p;
for(i=0;i<30;i++)
{scanf("%d\n",str[i].num);
scanf("%s\n",str[i].name);
scanf("%c\n",str[i].sex);
scanf("%s\n",str[i].major);
scanf("%d\n",str[i].chinese);
scanf("%d\n",str[i].math);
scanf("%d\n",str[i].english);
}
for(d=1,i=0;i<30;i++)
{
str[i].sum=sum(str[i].chinese,str[i].math,str[i].english,d);
printf("总分为:%f\n",str[i].sum);
}
for(d=0,i=0;i<30;i++)
{
str[i].aver=sum(str[i].chinese,str[i].math,str[i].english,d);
printf("平均分为:%f\n",str[i].aver);
}
p=&str[0].sum;
for(i=0;i<30;i++)
sum=++(*p++);
printf("全班总分为:%f\n",sum);
aver=sum/30;
printf("全班平均分为:%f\n",aver);
//语文
for(i=0;i<30;i++)
{de=1;qc=com(str[i].chinese,de);}
for(i=0;i<30;i++)
{de=2;wc=com(str[i].chinese,de);}
for(i=0;i<30;i++)
{de=3;ec=com(str[i].chinese,de);}
for(i=0;i<30;i++)
{de=4;rc=com(str[i].chinese,de);}
for(i=0;i<30;i++)
{de=5;tc=com(str[i].chinese,de);}
printf("语文\n不及格人数:%d\n及格人数:%d\n中人数:%d\n良人数:%d\n优人数:%d\n",qc,wc,ec,rc,tc);
//英语
for(i=0;i<30;i++)
{de=1;qe=com(str[i].english,de);}
for(i=0;i<30;i++)
{de=2;we=com(str[i].english,de);}
for(i=0;i<30;i++)
{de=3;ee=com(str[i].english,de);}
for(i=0;i<30;i++)
{de=4;re=com(str[i].english,de);}
for(i=0;i<30;i++)
{de=5;te=com(str[i].english,de);}
printf("英语\n不及格人数:%d\n及格人数:%d\n中人数:%d\n良人数:%d\n优人数:%d\n",qe,we,ee,re,te);
//数学
for(i=0;i<30;i++)
{de=1;qm=com(str[i].math,de);}
for(i=0;i<30;i++)
{de=2;wm=com(str[i].math,de);}
for(i=0;i<30;i++)
{de=3;em=com(str[i].math,de);}
for(i=0;i<30;i++)
{de=4;rm=com(str[i].math,de);}
for(i=0;i<30;i++)
{de=5;tm=com(str[i].math,de);}
printf("数学\n不及格人数:%d\n及格人数:%d\n中人数:%d\n良人数:%d\n优人数:%d\n",qm,wm,em,rm,tm);