2.计算综测平均绩点

最近是综测计算,准备要评奖评优的时候,我用C语言写了一个可以计算平均绩点的程序,还能输出对应的信息。

输入方式

线输入科目名称,再输入科目的绩点,然后再输入对应的分数,最后按回车,一直输入,对照着教务处表,就像这张表一样,对着输入。

(我是菜鸡,没必要看,我不考研,所以无所谓)

输入结束

输入完后,在下一个里面输入三个0,就结束了

像这样,回车结束。

结果查询

输出的结果不仅有终端上的文字,也直接生成了.txt文件

代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
依次输入   科目  成绩绩点  该课程的学分 空格隔开

终端会显示外,也生产了一个"绩点结果.txt"的.txt文件,去软件目录找对应就好

*/

typedef struct all {
	char course[100];
	float	grade;
	float xuefen;
	struct all *next;
} hh;
hh *h, *t, *q, *p, *k;
char buffer[100];

void add(float a, float b, char *c) {
	t = (hh *)malloc(sizeof(hh));
	t->grade = a;
	t->xuefen = b;
	strcpy(t->course, buffer);
	t->next = NULL;
	if (h == NULL) {
		h = t;
		k = t;
	} else {
		k->next = t;
		k = t;
	}
}

int main() {
	FILE *fp;
	int i = 0;
	float gsum = 0, xsum = 0, a, b;
	char save[100];
	fp = fopen("绩点结果.txt", "a");
	while (1) {
		printf("请输入第%d科目||学科名称\t分数\t学分 \n", i);
		scanf("%s%f%f", buffer, &a, &b);
		if (a == 0)
			break;
		add(a, b, buffer);
		i++;
	}
	p = h;
	while (p != NULL) {
		gsum += p->grade * p->xuefen;
		xsum += p->xuefen;

		sprintf(save, "科目:%-20s|成绩:%6.2f|学分:%6.2f |累计当前总分:%6.2f| 累计总学分:%6.2f| 目前平均总分:%6.2f\n",
		        p->course, p->grade,
		        p->xuefen, gsum, xsum, gsum / xsum);

		printf("科目:%-20s|成绩:%6.2f|学分:%6.2f |累计当前总分:%6.2f| 累计总学分:%6.2f| 目前平均总分:%6.2f\n",
		       p->course, p->grade,
		       p->xuefen, gsum, xsum, gsum / xsum);

		fputs(save, fp);
		p = p->next;
	}
	printf("\n\n输出完成,请查看.txt");
	fclose(fp);
	getchar();
	getchar();

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值