c语言计算一学年加权平均分

合集下载

加权平均分和GPA计算器(C++)

加权平均分和GPA计算器(C++)

加权平均分和GPA计算器(C++)支持原创// it's a GPA calculator,helping you to calculate your score and your GPA,Have fun#include <iostream>#include <string>using namespace std;string course;double score=0;double point=0;double wholepoint=0;double coursescore=0;double GPA=0;double tGPA=0;int main(){while(1){cout<<"这是一个加权成绩和GPA计算器"<<endl;cout<<"请按提示输入你全部的课程,课程绩点和你这一课程的成绩"<<endl;cout<<"如果你把所有课程输入完了,只需在再次提示请输入课程时输入0"<<endl;cout<<"就能计算出你的加权平均成绩和你的GPA。

"<<endl;cout<<"这里的GPA采用这样的计算方法,90分以上为4 ,80分以上为3,"<<endl;cout<<"70分以上为2,60分以上为1,60分以下为0。

"<<endl;cout<<"****************************************************** ***********"<<endl<<endl;while(1){cout<<"请输入课程"<<endl;getline(cin,course);if(course=="0")break;cout<<"请输入课程绩点"<<endl;cin>>point;wholepoint+=point;cout<<"请输入该课程成绩"<<endl;cin>>coursescore;score+=coursescore*point;if(coursescore>=90){GPA=4;tGPA+=GPA*point;}elseif(coursescore>=80){GPA=3;tGPA+=GPA*point;}elseif(coursescore>=70){GPA=2;tGPA+=GPA*point;}elseif(score>=60){GPA=1;tGPA+=GPA*point;}else{GPA=0;tGPA+=GPA*point;}GPA=0;point=0;coursescore=0;cin.get();}score=score/wholepoint;tGPA=tGPA/wholepoint;cout<<"score="<<score<<endl; cout<<"GPA="<<tGPA<<endl;cout<<endl<<endl; continue;}return 0;}。

C++输入函数和成绩显示函数,并计算每位同学的总分和平均分,对成绩排名输出等

C++输入函数和成绩显示函数,并计算每位同学的总分和平均分,对成绩排名输出等

C++程序设计Luozhengchun编写C++程序完成某班学生考试成绩的统计管理,包括成绩的输入函数和成绩显示函数,并计算每位同学的总分和平均分,对成绩排名输出。

#include <stdio.h> /*标准输入、输出函数库*/#include <string.h> /*字符串处理函数库*/#include <stdlib.h> /*整数和字符串的转换函数*/#define N 10 /*宏定义,设定班里学生的个数*/void main_mun(); /*输入学生的成绩*/void input(); /*显示学生的成绩*/void output(); /*计算学生的平均成绩*/void average(); /*计算学生的总成绩*/void sum_score(); /*对学生的成绩进行排名*/void sort();char student[N+1][12]={"王非","李丽","刘红","张伟","陈雷","赵丹","罗冰","钱惠云","孙杨","周正","差无此人"}; /*用来记录学生的姓名*/float score[N][4]; /*用来记录学生的各门成绩(数学、语文、英语、政治)*/float aver[N]; /*用来记录学生的平均成绩*/float sum_sc[N]; /*用来记录学生的总成绩*/int sor[N]; /*用来记录每个学生排名情况*/int main(){int in; /*输入的选择转换成整数*/int i,j; /*程序循环所用变量*/char select[6]; /*用于主菜单选择的字符*/for (i=0; i<N; i++) /*对学生成绩进行初始化*/for (j=0; j<4; j++)score[i][j]=0.00;printf("学生考试成绩的统计管理\n");main_mun();gets(select);while ((strcmp(select,"q")!=0)&&(strcmp(select,"Q")!=0)){in=atoi(select); /*将输入的字符串转换成整数*/if( in != 0){switch (in){case 1:{input();break;}case 2:{output();break;}case 3:{average();break;}case 4:{sum_score();break;}case 5:{sort();break;}default:printf("输入的选择有错,请重输!\n"); }main_mun();}gets(select);}printf("管理系统结束!!\n");return 0;}/*学生考试成绩的统计管理主菜单*/ void main_mun(){printf("1: 输入学生的成绩\n");printf("2: 显示学生的成绩\n");printf("3: 计算学生的平均成绩\n"); printf("4: 计算学生的总成绩\n");printf("5: 根据学生成绩排名次\n");printf("请输入你的选择:(q(Q)退出)\n");}/*输入学生的成绩*/void input(){float sc[4]; /*输入成绩的中间变量*/int number; /*表示学号*/int flag=0; /*输入成绩是否有误的标志*/int i;printf("输入学号:\n"); /*循环控制变量*/ printf("输入学生的成绩:\n");scanf("%d",&number);while((number<0)||(number>N)){printf("输入学号有误.\n");return;}printf("输入学生%s的成绩\n",student[number]);printf("数学、语文、英语、政治\n");scanf("%f%f%f%f",&sc[0],&sc[1],&sc[2],&sc[3]);getchar();/*判断成绩输入是否越界*/for (i=0; i<4; i++)if ((sc[i]>100.00)||(sc[i]<0.00)){flag=1;printf("输入成绩有误!!\n");return;}/*成绩未越界后,进行赋值*/for (i=0; i<4; i++)score[number][i]=sc[i];}/*显示学生的成绩*/void output(){int i; /*循环控制变量*/for(i=0;i<N;i++){printf("输出%s各门成绩:\n数学、语文、英语、政治\n",student[i]);printf("%.2f %.2f %.2f %.2f\n\n",score[i][0],score[i][1],score[i][2],score[i][3]); }}/*计算学生的平均成绩*/void average(){float sc=0.00; /*中间变量*/int i,j; /*循环控制变量*/for (j=0; j<N; j++){sc=0.0;for (i=0; i<4; i++)sc+=score[j][i];aver[j]=sc/4;printf("学生%s的平均成绩是:%.2f\n",student[j],aver[j]);}}/*计算学生的总成绩*/void sum_score(){int i,j; /*循环控制变量*/printf("输出学生的总成绩:\n");for (j=0; j<N; j++){sum_sc[j]=0;for (i=0; i<4; i++)sum_sc[j]+=score[j][i];printf("学生%s的总成绩是:%.2f\n",student[j],sum_sc[j]);}}/*对学生的成绩进行排名,以平均成绩为例*/void sort(){int i,j,temp,location; /*循环控制变量*/float max,sc; /*比较用中间变量*/float aver[N];int flag; /*排序是否交换的标志*/int sor[N]; /*记录排序的位置*/for (j=0; j<N; j++){sor[j]=j;sc=0.0;for (i=0; i<4; i++)sc+=score[j][i];aver[j]=sc/4;}for (i=0; i<N; i++) /*对学生平均成绩进行排序*/ {flag=0;max=aver[i];location=i;for (j=i+1; j<N; j++){if (aver[j]>max){max=aver[j];flag=1;location=j;}}if(flag==1){aver[location]=aver[i];aver[i]=max;temp=sor[i];sor[i]=sor[location];sor[location]=temp;}}printf("排序后的结果是:\n");for(i=0;i<N;i++){printf("第%d名学号%d 姓名%s",(i+1),sor[i],student[sor[i]]);printf("%f\n",aver[i]);}}结果如下:例如、输入学号为1的学生:显示成绩:平均成绩:总成绩:成绩排名:其他的结果按照相关提示操作可得出相应的结果,在此不再列出。

c语言课程设计学生成绩管理系统

c语言课程设计学生成绩管理系统

目录——学生成绩管理程序题目要求 (2)设计目的 (2)总体设计 (3)详细设计 (3)调试与测试 (12)源程序 (14)总结 (30)学生成绩管理程序一.题目要求1.问题描述:对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放.2.要求:(1)一个文件按以班为单位存储学生记录.(2)将允许的操作分为四种,以A,B ,C,D,E,F为标志:A:插入一个学生记录;B:修改学生记录;C:删除一个学生记录;D:查找一个学生记录;E:浏览学生成绩:F:退出3.计算学生的总成绩.4.按学号排序输出全班学生成绩表.二.设计目的根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.三.总体设计根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块.学生成绩管理系统数据输入数据显示数据修改数据删除数据查找四.详细设计1.主函数:主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择.流程图:显示一系列功能模块N输入n,判断n是否是A--FY根据n的值调用各功能模块函数[程序]://#include "head.h"int menu_select(){char c;printf("\n\n");printf(" | 1. 增加学生记录 5.统计信息 |\n");printf(" | 2. 查询学生记录 6.打开文件 |\n");printf(" | 3. 修改学生记录 7.保存文件 |\n");printf(" | 4. 学生纪录排序 8.显示记录 |\n");printf(" | 0. 退出系统 |\n");printf("\n\n");printf("请选择(0-8):");c=getchar();getchar();return (c-'0');}2.输入模块:[分析]:单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数,采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便信息管理.如果要存放若干学生信息就用结构体数组:void addrecord(student stud[]){int i=0,j,num;char str[5];if(numstus!=0){printf("已有记录存在是否覆盖?(y/n)\n");gets(str);if(str[0]=='Y'||str[0]=='y')i=0;else i=numstus;}printf("请输入增加的学生信息条目数:");scanf("%d",&num);if(i==0)numstus=num;else numstus+=num;if(numstus>lens){lens+=50;pointer=(student *)realloc(pointer,lens*LEN);}printf("请输入学生信息:\n");for(;i<numstus;i++){getchar();printf("请输入学号:");gets(pointer[i].number);printf("请输入姓名:");gets(pointer[i].name);printf("请输入性别(男/女 1/0):");gets(pointer[i].sex);if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女");else strcpy(pointer[i].sex,"男");printf("请输入各科成绩:(按“语文,数学,英语,历史,政治”的顺序):"); stud[i].score=0;for(j=0;j<numsubs;j++){scanf("%f",&stud[i].subject[j]); /*计算总分*/stud[i].score+=stud[i].subject[j];}stud[i].average=stud[i].score/numsubs; /*计算平均分*/}count(stud); /*附名次*/display(stud,0,numstus-1);getchar();}int numstus;int lens;student *pointer;void main(){int i=1;char str[2];lens=100;pointer=(student *)malloc(lens*LEN); /*分配内存*/numstus=0;welcome(); /*欢迎界面*/while(i>0){i=menu_select(); /*控制菜单*/switch(i){case 1:addrecord(pointer);break; /*增加学生信息*/case 2:findrecord(pointer);break; /*查询学生信息*/case 3:amendrecord(pointer);break; /*修改学生信息*/case 4:sort(pointer);break; /*学生信息排序*/case 5:statistic(pointer);break; /*统计信息*/case 6:openfile(pointer);break; /*打开文件*/case 7:writetotext(pointer);break; /*保存文件*/case 8:display(pointer,0,numstus-1);break; /*显示记录*/case 0:if(numstus!=0) printf("是否保存当前记录?(y/n)");gets(str);if(str[0]=='y'||str[0]=='Y')writetotext(pointer);i=-1;break; /*退出系统*/default:printf("请输入数字0~8:\n");i=1; /*输入错误*/}}printf("\t\t 欢迎再次使用本系统。

加权平均分计算方法

加权平均分计算方法

加权平均分计算方法引言:在学术界和商业领域中,加权平均分计算方法广泛应用于各种评价和决策过程中。

它不仅可以帮助我们更好地理解数据,还可以提供有针对性的结果。

本文将详细介绍加权平均分计算方法的原理和应用,并探讨其在不同领域中的实际应用。

一、加权平均分计算方法的原理加权平均分计算方法是一种将不同指标的权重考虑在内的计算方法。

它通过将每个指标的数值乘以其对应的权重,并将所有结果相加,最后再除以所有权重的总和,得到加权平均分。

例如,在学生考试成绩中,数学和英语的权重可能不同,因此可以使用加权平均分计算方法来计算综合成绩。

二、加权平均分计算方法的应用1. 学校评估:学校评估通常需要考虑多个指标,如学生的学术表现、师资力量、教学质量等。

通过使用加权平均分计算方法,可以将不同指标的权重考虑在内,得到一个综合评价指标,从而更准确地评估学校的综合实力。

2. 股票投资:在股票投资中,投资者通常需要考虑多个因素,如股票价格、市盈率、市值等。

通过使用加权平均分计算方法,可以根据不同因素的重要性,计算出每只股票的综合评分,从而辅助投资者做出投资决策。

3. 产品评价:在产品评价中,消费者往往需要考虑多个因素,如价格、质量、功能等。

使用加权平均分计算方法,可以根据消费者对各个因素的重视程度,计算出产品的综合评分,帮助消费者做出购买决策。

4. 绩效评估:在企业中,绩效评估是一个重要的管理工具。

通过使用加权平均分计算方法,可以根据不同指标的权重,计算出员工的综合评分,从而更准确地评估员工的工作表现,并作出相应的奖励或惩罚。

5. 项目决策:在项目管理中,决策者通常需要考虑多个因素,如成本、时间、风险等。

通过使用加权平均分计算方法,可以根据不同因素的重要性,计算出每个项目的综合评分,帮助决策者做出决策,并选择最优的项目。

结论:加权平均分计算方法是一种重要的评价和决策工具,它能够更准确地反映不同指标的重要性,并提供有针对性的结果。

通过在不同领域中的应用,加权平均分计算方法为我们提供了一种全面、客观的评价和决策方式。

java加权平均法计算公式

java加权平均法计算公式

java加权平均法计算公式Java加权平均法计算公式在Java编程中,加权平均法是一种常用的计算方法,用于根据给定的权重,计算出加权平均值。

在本文中,我们将介绍加权平均法的计算公式,并提供了一些示例来解释其使用方法。

什么是加权平均法?加权平均法是一种用于计算加权平均值的统计方法。

它通过给定的一组数值和对应的权重,将每个数值乘以权重,然后将所有乘积求和,并将总和除以权重的总和,从而得出加权平均值。

计算公式加权平均法的计算公式如下:加权平均值 = (数值1 * 权重1 + 数值2 * 权重2 + ... + 数值n * 权重n) / (权重1 + 权重2 + ... + 权重n)在上述公式中,数值1到数值n表示一组数值,而权重1到权重n表示对应的权重。

示例假设我们需要计算一个班级学生成绩的加权平均值。

每个学生的成绩乘以对应科目的权重后,再计算所有科目的成绩总和除以权重总和,就可以得到班级的加权平均成绩。

假设有以下数据:学生 | 语文成绩 | 数学成绩 | 英语成绩 |—- | | | |张三 | 85 | 90 | 80 |李四 | 70 | 75 | 85 |王五 | 90 | 80 | 95 |权重如下:科目 | 权重 || —- |语文 | |数学 | |英语 | |按照加权平均公式计算班级加权平均成绩:班级加权平均成绩 = ((85 * ) + (90 * ) + (80 * ) + (70 * ) + (75 * ) + (85 * ) + (90 * ) + (80 * ) + (95 * )) / ( + + + + + + + + )计算结果为:班级加权平均成绩 = ( + 36 + 24 + 21 + 30 + + 27 + 32 + ) /班级加权平均成绩 = 250 /班级加权平均成绩≈因此,班级的加权平均成绩约为。

结论通过加权平均法,我们可以根据给定的权重,计算出数值的加权平均值。

平均学分绩点的计算

平均学分绩点的计算
平均学分绩点应该是每个大学新生比较关心的事,而且一般工科 都会学习 C++程序设计,所以编一个计算平均学分绩点的程序就成老 师喜欢布置的作业题甚至是期末考核的题目。 我根据我们学校的平均学分绩点的计算方法用 C 语言编写的程序; 平均学分绩点 GPA=∑课程绩点*学分/∑学分(即加权计算的方法)
课程绩点=(该门课程考试所得成绩(100 分制)-50)/10 即如果你的高等数学成绩为 96 分,那么你的课程绩点为 4.6((96-50) /10),但是如果你的成绩低于 60 分那么你的课程绩点就为 0。
基于 Visual C++6.0 平台的 C 语言程序如下:
#include<stdio.h>
main()
{ int n,i;
/*定义要计算的科目数的变量和循环时要
用到的中间变量*/
float GPA,grade,kcjd,xf,x=0,yቤተ መጻሕፍቲ ባይዱ0;
/*定义输入成绩和课程绩点的变量*/
printf("*******************个人成绩 GPA 的计算程序*******************\n");
如果你的高等数学成绩为 90,高等数学的学分为 2.5;大学英语成绩 为 90 , 大 学 英 语 的 学 分 为 4.0 时 , 你 的 平 均 课 程 绩 点 GPA= (4.0*2.5+4.0*4.0)/(2.5+4.0)=4.000 考察课中:优=90 分,良=80 分,中=70 分,及格=60 分,不及格<60 分
{ printf("\n 请输入成绩和课程学分:"); /*提示语句*/
scanf("%f%f",&grade,&xf);

加权平均分计算公式

加权平均分计算公式

加权平均分计算公式
其中:
指标分数:指标的分值;
指标权重:指标的权重。

一般情况下,当指标的权重相等时
简单平均数=∑指标分数/指标个数
一、加权平均分可以用来衡量商品质量。

商品的质量与它的几类指标
的得分有关,比如产品品质、销售服务、价格优势、外观设计等。

每种指
标的权重不一样,品质往往占有较大的比例,质量可以用加权平均分衡量,能够更加准确反映出商品的实际质量。

二、可以用来计算学生的总评成绩。

评价学生的总成绩客观反映出学
生的学习水平,但是一份学生的考试成绩有很多方面,比如平时成绩、期
末考试成绩、实验成绩等,每一种指标的权重可能也不一样,所以可以用
加权平均分的方式计算学生的总评情况。

三、可以用来衡量公司的经营状况。

c语言算平均分的函数

c语言算平均分的函数

c语言算平均分的函数下面是一个用C语言编写的计算平均分的函数。

```c#include <stdio.h>float calculateAverage(int scores[], int size)int sum = 0; // 用于存储总分的变量//循环计算总分for (int i = 0; i < size; i++)sum += scores[i];}float average = (float)sum / size; // 计算平均分return average;int mainint numStudents; // 学生数量printf("请输入学生数量: ");scanf("%d", &numStudents);int scores[numStudents]; // 用于存储学生成绩的数组//循环读取学生成绩for (int i = 0; i < numStudents; i++)printf("请输入第%d个学生的成绩: ", i + 1);scanf("%d", &scores[i]);}float averageScore = calculateAverage(scores, numStudents); // 调用函数计算平均分printf("平均分为: %.2f\n", averageScore); // 打印平均分return 0;```此函数通过使用一个循环来计算所有学生的总分,并将其除以学生数量来得到平均分数。

这个函数可以读取用户输入的学生数量和每个学生的成绩,并将结果打印出来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

功能:计算一整学年的加权平均分,输出各科成绩及加权平均分。

流程图:
……
N-S图:
源代码:
#include <stdio.h>
void main ()
{
unsigned long No; //学号//
unsigned int Year,Month,Day; //生日//
float Math1,Math2,English1,English2,MilitaryTheory,Chemistry,Physics,theModernHistoryofChina,Computer;
//成绩//
float MathematicalExperiment1,MathematicalExperiment2,Circuit,LinearAlgebra,PrincipleofMarxism; //成绩//
float MentalHealth,EngineeringGraphics,IdeologicalandMoralCultivationandBasicLawEducation; //成绩// float Total,Average,WeightedAverage; //总分、平均分、加权平均分//
printf("input the student's No:");
scanf("%8ld",&No);
printf("input the student's Birthday(YYYY-MM-DD):");
scanf("%4d-%2d-%2d",&Year,&Month,&Day);
printf("input the student's Scores(Math1):");
scanf("%f",&Math1);
printf("input the student's Scores(Math2):");
scanf("%f",&Math2);
printf("input the student's Scores(English1):");
scanf("%f",&English1);
printf("input the student's Scores(English2):");
scanf("%f",&English2);
printf("input the student's Scores(MilitaryTheory):");
scanf("%f",&MilitaryTheory);
printf("input the student's Scores(Chemistry):");
scanf("%f",&Chemistry);
printf("input the student's Scores(Physics):");
scanf("%f",&Physics);
printf("input the student's Scores(theModernHistoryofChina):");
scanf("%f",&theModernHistoryofChina);
printf("input the student's Scores(Computer):");
scanf("%f",&Computer);
printf("input the student's Scores(MathematicalExperiment1):");
scanf("%f",&MathematicalExperiment1);
printf("input the student's Scores(MathematicalExperiment2):");
scanf("%f",&MathematicalExperiment2);
printf("input the student's Scores(Circuit):");
scanf("%f",&Circuit);
printf("input the student's Scores(LinearAlgebra):");
scanf("%f",&LinearAlgebra);
printf("input the student's Scores(PrincipleofMarxism):");
scanf("%f",&PrincipleofMarxism);
printf("input the student's Scores(MentalHealth):");
scanf("%f",&MentalHealth);
printf("input the student's Scores(EngineeringGraphics):");
scanf("%f",&EngineeringGraphics);
printf("input the student's Scores(IdeologicalandMoralCultivationandBasicLawEducation):");
scanf("%f",&IdeologicalandMoralCultivationandBasicLawEducation);
Total=Math1+Math2+English1+English2+MilitaryTheory+Chemistry+Physics+theModernHistoryofChina+Com puter+MathematicalExperiment1+MathematicalExperiment2+Circuit+LinearAlgebra+PrincipleofMarxism+Mental Health+EngineeringGraphics+IdeologicalandMoralCultivationandBasicLawEducation;
Average=Total/17;
WeightedAverage=(5*Math1+5*Math2+3*English1+3*English2+1*MilitaryTheory+3*Chemistry+4*Physics+2 *theModernHistoryofChina+3.5*Computer+0.5*MathematicalExperiment1+0.5*MathematicalExperiment2+5*Cir cuit+3*LinearAlgebra+2.5*PrincipleofMarxism+2*MentalHealth+2.5*EngineeringGraphics+2.5*IdeologicalandMor alCultivationandBasicLawEducation)/(5+5+3+3+1+3+4+2+3.5+0.5+0.5+5+3+2.5+2+2.5+2.5);
printf("\nNo:%8ld\nBirthday:1%4d-%2d-%2d\nMath1:%7.2f\nMath2:%7.2f\nEnglish1:%7.2f\nEnglish2:%7.2f \nMilitaryTheory:%7.2f\nChemistry:%7.2f\nPhysics:%7.2f\ntheModernHistoryofChina:%7.2f\nComputer:%7.2f\n MathematicalExperiment1:%7.2f\nMathematicalExperiment2:%7.2f\nCircuit:%7.2f\nLinearAlgebra:%7.2f\nPrinci pleofMarxism:%7.2f\nMentalHealth:%7.2f\nEngineeringGraphics:%7.2f\nIdeologicalandMoralCultivationandBasic LawEducation:%7.2f\nTotal:%7.2f\nAverage:%7.2f\n\nWeightedAverage:%7.2f\n",No,Year,Month,Day,Math1,Mat h2,English1,English2,MilitaryTheory,Chemistry,Physics,theModernHistoryofChina,Computer,MathematicalExperim ent1,MathematicalExperiment2,Circuit,LinearAlgebra,PrincipleofMarxism,MentalHealth,EngineeringGraphics,Ideo logicalandMoralCultivationandBasicLawEducation,Total,Average,WeightedAverage);
}
运行结果:。

相关文档
最新文档