915xjtu2016_3

建立一个学生在某一个课程到课情况统计程序。功能要求:
(1)可一次性输入所有学生的到课情况,输入学生总人数,该课程总课时,学生学号,及其到课情况,分为正常,迟到,请假,旷课;
(2)可统计某一学生的到课情况的上课率(包括正常,迟到),旷课率并输出。
(3)可统计所有学生的上课率,旷课率并输出。

#include<stdio.h>
#include<string.h>
#define N 10
struct student{
	char id[20];//学生学号
	int cla[4]; //到课情况,cla[i](i为0正常,1迟到,2请假,3旷课),数组值为次数 
	double skl;//上课率 
	double kkl;//旷课率 
}s[N];
//统计全部学生的到课情况 
void allstu(int n){
    for(int i=0;i<n;i++){
        printf("学号为:%s的学生上课率为:%.2lf%%,旷课率:%.2lf%%\n",s[i].id,s[i].skl,s[i].kkl);
		}
}
//统计某一学生的到课情况 
void stu(char id[20],int n){
    for(int i=0;i<n;i++){
    	if(strcmp(id,s[i].id)==0){
            printf("学号为:%s的学生上课率为:%.2lf%%, 旷课率:%.2lf%%\n",s[i].id,s[i].skl,s[i].kkl);
            break;
        }
	}
}
int main(){
	int sum,course;
	printf("请输入学生总人数:");
	scanf("%d",&sum); 
	printf("请输入课程总课时:");
	scanf("%d",&course); 
	printf("请依次输入所有学生的到课情况:\n");
    for(int i=0;i<sum;i++){
        printf("输入第%d位学生学号:",i+1);
		scanf("%s",&s[i].id); 
		printf("请依次输入该学生正常,迟到,请假,旷课次数:");
		for(int j=0;j<4;j++){
			scanf("%d",&s[i].cla[j]); 
		}
        s[i].skl=100*(s[i].cla[0]+s[i].cla[1])/(1.0*course);
        s[i].kkl=100*(s[i].cla[3])/(1.0*course);
    }
    char id[20];
    printf("请输入要查询到课情况学生的学号:");
    scanf("%s",&id);
    stu(id,sum);
	printf("输出所有学生的到课情况:\n");
    allstu(sum);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值