C语言课程设计-课程成绩统计系统

  • 需求分析:

1.设计题目:C语言成绩统计系统

2.系统功能需求分析:

因不了解具体系统功能需求,多方询问后了解该系统大概需要输入学生成绩、统计平均成绩、统计及格率、查找学生成绩、修改学生成绩、输出学生成绩清单、退出程序七个模块,因学生信息方面过于繁杂,故我设计为学生学号代表学生,避免了需要输入过多学生信息导致程序混乱的情况。

  • 概要设计:

系统总体设计框架:

  • 详细设计:

该程序主要运用do-while语句和switch开关语句,结构简单。

  • 调试分析过程描述
  1. 测试数据:程序1输入五位学生成绩,分别为80、90、70、80、80;程序2统计平均成绩,输出结果为80;程序3统计及格率,输出结果及格率为100%;程序4查找学生成绩,选择查找学号为3的学生,结果为90;程序5修改学生成绩,选择修改学号为4和5的学生,修改为85、75;程序6输出成绩清单,输出清单正确;程序7退出程序,程序结束。
  2. 测试分析结果:该程序运行结果均正确,程序设计过于简单也存在一方面原因。

 程序代码

#include<stdio.h>
void main()
{
	int sel,i=0,x,y,n;
	double sum,ave=1,count=0,a[999];
	do
	{
		printf("\n");
		printf("\t************************************\n");
		printf("\t*    ===========================   *\n");
		printf("\t*          C语言成绩统计系统       *\n");
		printf("\t*    ===========================   *\n");
		printf("\t*                                  *\n");
		printf("\t*     输入学生成绩---------1       *\n");
		printf("\t*     统计平均成绩---------2       *\n");
		printf("\t*     统计及格率-----------3       *\n");
		printf("\t*     查找学生成绩---------4       *\n");
		printf("\t*     修改学生成绩---------5       *\n");
		printf("\t*     输出学生成绩清单-----6       *\n");
		printf("\t*     退出系统-------------7       *\n");
		printf("\t*                                  *\n");
		printf("\t************************************\n");
		printf("\t请输入选项(1-7):");
		scanf("%d",&sel);
		switch(sel)
		{
		case 1:
			printf("执行输入学生成绩命令。\n");
			printf("\t请输入学生人数(0-999):");
			scanf("%d",&n);
			printf("\t\t学号\t成绩\n");
			do
			{
				printf("\t\t[%d]\t",i+1);
				scanf("%lf",&a[i]);
				i++;
			}while(i<n);
			break;
		case 2:
			printf("执行统计平均成绩命令。\n");
				sum=0;
			for(i=0;i<n;i++)
				sum+=a[i];
			ave=sum/n;
			printf("平均成绩为%.1f\n",ave);
			break;
		case 3:
			printf("执行统计及格率命令。\n");
			for(i=0;i<n;i++)
				if(a[i]>=60)
					count++;
				printf("及格率为%.1f%%\n",count/n*100);
				break;
		case 4:
			printf("执行查找学生成绩命令。\n");
			do
			{
				printf("请输入需查找的学生的学号(输入非法数据退出):");
				scanf("%d",&x);
				if(x>0&&x<=n)
					printf("\t[%d]\t%.1f\n",x,a[x-1]);
				else
					break;
			}while(1);
			break;
		case 5:
			printf("执行修改学生成绩命令。\n");
			do
			{
				printf("请输入需修改的学生的学号(输入非法数据退出):");
				scanf("%d",&y);
				if(y>0&&y<=n)
				{ 
					printf("\t[%d]\t%.1f\n",y,a[y-1]);
					printf("\t请输入改动后的分数:");
					scanf("%lf",&a[y-1]);
				}
				else
					break;
			}while(1);
			break;
		case 6:
			printf("执行输出学生成绩清单命令。\n");
			for(i=0;i<n;i++)
			{
				printf("\t\t[%d]\t",i+1);
				printf("%.2lf\n",a[i]);
			}
			break;
		case 7:
			printf("退出系统。再见!\n");
			break;
		default:
			printf("输入错误!\008\n");
			break;
		}
	}while(sel>0&&sel!=7);
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-MTing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值