C语言作业的另一种解决方案

这是作业题目:编写一个统计学生当日体温的程序,要求:学生端主要负责信息填写包括:1)学生信息包括学号,学院,年级,班级,当日健康状态主要是体温;2)如果体温高于37.3,则给出报警,如果低于则显示正常;教师端:1)对于高于37.3的,教师端能通过沟通确定问题所在,如误填写,可在教师端口予以矫正;2)学生的当日信息可以显示。

同样是个“半成品”,但可以实现上述要求的功能,剩下“一半”就需要大家自行简化优化啦!

使用Visual Studio 2022,在其它环境下需修改或去除部分代码。

//#define _CRT_SECURE_NO_WARNINGS

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

char nunn[100];
float temp[100];
int templist[100];

int b;
int a, i;
int number=1;
int k = 1;
int goon = 0;
int choice = 0;
int km = 0;

struct stu
{
	char name[10];
	char id[20];
	char xueyuan[30];
	char clas[20];
	//float temp[20];
};

struct stu stu_inf[100];

void choose()
{
	while (1)
	{
		b = 0;

		printf("你是教师还是学生?1表示教师,2表示学生\n");

		scanf("%d", &b);

		if (b == 1)
		{
			a = 1;
		}
		else if (b == 2)
		{
			a = 2;
		}
		else
		{
			printf("输入错误,请重新输入!\n");

		}

		if (a == 1)
		{
			choice = 1;
			printf("欢迎进入教师管理端!\n");
			return;
		}
		else if (a == 2)
		{
			choice = 2;
			printf("欢迎进入学生端!\n");
			return;
		}
	}
/*  //下列代码为另一种实现形式,将while循环去除,在开加上start:即可
	switch (a)
	{

	case 1:
		choice = 1;
		printf("欢迎进入教师管理端!\n");
		break;

	case 2:
		choice = 2;
		printf("欢迎进入学生端!\n");
		break;

	default:
		printf("输入错误,请重新输入!\n");
		choice = 3;
		break;

	}

	 
	if (choice == 3)
	{
		goto start;
	}
	
	*/
}

void stu_infor()
{


		for (i = 0; i < 100; i++)
		{
			k = k + 1;
			printf("请输入你的姓名!\n");
			scanf("%s", &stu_inf[i].name);
			printf("请输入你所在的学院!\n");
			scanf("%s", &stu_inf[i].xueyuan);
			printf("请输入你所在的班级!\n");
			scanf("%s", &stu_inf[i].clas);
			printf("请输入你的学号!(请输入数字)\n");
			scanf("%s", &stu_inf[i].id);
			printf("请输入你当日测量的体温!(输入一位小数)\n");
			scanf("%f", &temp[i]);

				if (temp[i] > 37.3)
				{
					
					//stu_inf[i].temp = temp;
					printf("注意!体温异常!\n");
				}
				else
				{
					//stu_inf[i].temp = temp;
					printf("体温正常!\n");
				}
		

			next:
			printf("是否继续录入下一学生信息?1为继续录入,2为结束录入\n");
			scanf("%d", &goon);
			if (goon == 1)
				printf("开始录入下一学生信息!\n");
			else if (goon == 2)
			{
				printf("已结束录入!\n");
				return;
			}
			else if (goon != 1 && goon != 2)
			{
				printf("输入错误,请重新输入!\n");
				goto next;
			}

		}


}

void teacher()
{
	float temps;
	printf("按下回车以查看已登记的学生信息!");
	getchar();
	printf("\n");

	printf("学号  |  姓名  |  学院  |  班级  |  当日体温\n");

	for (i = 0; i < k-1; i++)
	{
		printf("%-15s", stu_inf[i].id);

		printf("%-15s", stu_inf[i].name);

		printf("%-15s", stu_inf[i].xueyuan);

		printf("%-15s", stu_inf[i].clas);

		temps = temp[i];

		printf("%-15.1f", temp[i]);

		printf("-");

		if (temps > 37.3)
		{
			printf("异常!");
		}

		printf("\n");
	}


}

void teacher_s()
{

	char listtrue[2];
	printf("输入y并按下回车列出体温异常的学生名单\n");
	scanf("%s", &listtrue);
	if (listtrue[0] == 'y')
	{
		for (i = 0; i < k; i++)
		{
			if (temp[i] > 37.3)
			{
				km++;
				printf("序号:%d,学号为%s的学生体温异常,为%.1f℃\n", km,stu_inf[i].id, temp[i]);
				templist[km] = i;
			}
		}
		return;
	}
}

void teacher_ask()
{
	int kn = 0;
	int gn;
	int stu_change;
	float changer;
	printf("是否与体温异常的学生沟通?(若需要请输入1并回车)\n");
	scanf("%d", &kn);
	if (kn == 1)
	{
		asked:
		printf("请输入体温异常的学生序号\n");
		scanf("%d", &stu_change);
		printf("序号为%d的学生体温为%.1f℃", stu_change,temp[templist[stu_change]]);
		setbuf(stdin, NULL);
		printf("请输入修改后的体温:\n");
		scanf("%f",&changer);

		temp[templist[stu_change]] = changer;

		printf("修改完成,是否继续修改?(输入1继续,输入2结束)\n");
		scanf("%d", &gn);
		if (gn == 1)
		{
			goto asked;
		}
		else
		{
			return;
		}

	}
	else
	{
		return;
	}
}

int main()
{
	choose();

	if (choice == 2)
	{
		stu_infor();
		teacher();
		teacher_s();
		teacher_ask();
		teacher();
	}
	if (choice == 1)
	{
		teacher();
	}
	return 0;

}
当前页面URL: https://tylk.cc/chomework1/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
颜文字
洛天依9周年
洛天依夜航星
洛天依8周年
上一篇
下一篇