程序设计基础与第四单元形成性考核作业(占形考比例20%)_第1页
程序设计基础与第四单元形成性考核作业(占形考比例20%)_第2页
程序设计基础与第四单元形成性考核作业(占形考比例20%)_第3页
程序设计基础与第四单元形成性考核作业(占形考比例20%)_第4页
程序设计基础与第四单元形成性考核作业(占形考比例20%)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江苏开放大学

形成性考核作业

学__一

姓__—

课程代码:_---------

课程名称:______程隹逡±L基碘

评阅教师:------------------------

第2次任务

共3次任务

050308程序设计基础第四单元形成性考核作业

作业说明:

1.做作业之前首先在封面填上自己的学号和姓名,做完作业后请写上作业完成时间。

2.学习完第四单元后必须完成本次作业,并请在规定时间内通过学习平台提交Word文档形

式的电子作业,本次作业占形成性考核总成绩的20%o

作业内容:

根据“学生成绩的统计”程序,编写一个“歌唱比赛评分系统”的程序,要求运用数组和前面

所学循环结构、输入输出、选择结构,能够进行多名歌手简单信息的录入,比赛分数的录入,

去掉一个最高分,去掉一个最低分,剩余取平均分作为选手成绩,能够根据选手姓名或者编号

查询输出选手成绩。

作业要求:

(1)程序的主要设计思路,以文字或图表的形式描述比如歌手信息包括哪些,比赛分数如

何存储等程序设计细节;

(2)程序的源代码以及对源代码必要的行注释;

(3)请把程序运行结果截图贴在本次作业中;

(4)以上内容请在本文档中完成,并将本文档提交至学习平台,作为本课程第二次作业。

作业回答区:

#include<stdio.h>

#include<windows.h>

#include<math.h>

#include<time.h>

#include<stdlib.h>

#include<string.h>

ttdefinesize5〃评委人数

#definemaxstu10〃选手人数

structstudent〃信息结构体

(

intbanji;〃编号

charname[20];〃名字

intscore[size];〃评委评分

floatmax;〃最大值

floatmin;〃最小值

floatsum;〃总分

floataverage;〃平均值

};

intcount=0;〃选手人数

structstudentstu[size];〃定义全局变量

voidfunl0〃选手信息录入

第1页

050308程序设计基础第四单元形成性考核作业

inti,j;〃i代表选手,j代表评委

intsm;〃定义需要录入几位选手

floatmaxi,mini;〃最大值,最小值

printf(〃请输入10位以内选手人数:〃);

scanf_s&sm);

for(i=0;i<sm;i++)

(

printf(〃请输入%d选手信息\n〃,i+1);

printf(〃请输入编号:〃);

scanf_s(〃%d〃,&stu[i].banji);

getchar();

printf(〃请输入姓名:");

gets_s(stu[i].name);

for(j=0;j<size;j++)

(

printf(〃请输入%d评委打分:〃,j+1);

scanf_s(〃%d〃,&stu[i].score[j]);

)

count++;

)

〃最高分,最低分,总分,平均值

for(i=0;i<count;i++)

(

maxi=stu[i].score[0];

for(j=0;j<size;j++)

(

if(maxi<stu[i].score[j])

maxi=stu[i].score[j];

)

stu[i].max=maxi;

)

for(i=0;i<count;i++)

(

mini=stu[i].score[0];

for(j=0;j<size;j++)

(

if(mini>stu[i].score[j])

mini=stu[i].score[j];

)

stu[i].min=mini;

)

for(i=0;i<count;i++)

第2页

050308程序设计基础第四单元形成性考核作业

stu[i].sum=stu[i].score[0];

for(j=1;j<size;j++)

(

stu[i].sum=stu[i].sum+stu[i],score[j];

}

stu[i].average=(stu[i].sum-stu[i].max-stu[i].min)/3;

}

}

voidfun2()〃按姓名查找

{

inti;〃定义循环

charx[20];〃定义查找姓名

printf(“请输入要查找选手的名字:”);

scanf_s("%s”,x);

getchar();

for(i=0;i<count;i++)

(

if(strcmp(stu[i].name,x)!=0)〃判断是否相等

(

continue;

printf(“没有找到学号为%s的选手信息\n”,x);

}

else

(

printf("要查找的选手的信息为:\n编号:%d姓名:%s分数:%d%d%d%d%d最高分:%f

最低分:%f总分:%f平均值:%f",

stu[i].banji,stu[i].name,stu[i],score[0],stu[i].score[1],stu[i].score[2],

stu[i],score[3],stu[i],score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);

)

}

getchar();

}

voidfun3()〃插入歌手信息

(

intweizhi,i,j;

floatmax2,min2;

structstudentx;〃定义局部变量

if(count==maxstu)

(

printf("位置已满,无法插入\n");

}

else

printf(”请输入要插入的位置:");

第3页

050308程序设计基础第四单元形成性考核作业

scanf_s(〃%d〃,&weizhi);

if(weizhi>count+1||weizhi<1)

(

printf(〃位置错误\n〃);

)

else

(

getchar();

printf(〃请输入编号:〃);

scanf_s&x.banji);

getchar();

printf(〃请输入姓名:〃);

gets_s(x.name);

for(j=0;j<size;j++)

(

printf(〃请输入评委打分:〃);

scanf_s&x.score[j]);

}

getchar();

for(i=0;i<count;i++)

(

max2=x.score[0];

for(j=0;j<size;j++)

(

if(max2<x.score[j])

max2=x.score[j];

}

x.max=max2;

}

for(i=0;i<count;i++)

(

min2=x.score[0];

for(j=0;j<size;j++)

(

if(min2>x.score[j])

min2=x.score[j];

}

x.min=min2;

}

for(i=0;i<count;i++)

{

x.sum=x.score[0];

for(j=1;j<size;j++)

第4页

050308程序设计基础第四单元形成性考核作业

X.sum=x.sum+x.score[j];

}

x.average=(x.sum-x.max-x.min)/3;

)

for(i=count-1;i>=weizhi-1;i一)

(

stu[i+1]=stu[i];

)

stu[weizhi-1]=x;

count++;

)

)

}

voidfun4()〃删除歌手信息

(

inti,j;

chara[20];

printf("请输入要删除选手的名字:");

scanf_sa);

getchar();

for(i=0;i<count;i++)

{

if(strcmp(stu[i].name,a)!=0)

(

continue;

printf(“没有找到学号为%s的选手信息\n”,a);

}

else

(

printf(〃要删除的选手的信息为:\n编号:%d姓名:%s分数:%d%d%d%d%d最高分:%f

最低分:%f总分:%f平均值:%f〃,

stu[i].banji,stu[i].name,stu[i].score[0],stu[i].scorefl],stu[i].score[2],

stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);

)

getchar();

for(j=i+1;j<=count;j++)

(

Stu[j-1]=stu[j];

)

count一;

)

)

voidfun50〃修改歌手信息

第5页

050308程序设计基础第四单元形成性考核作业

inti,j;

floatmax2,min2;

charm[20];

printf(〃请输入要修改选手的名字:〃);

scanf_s(〃%s〃,m);

getchar();

for(i=0;i<count;i++)

(

if(strcmp(stu[i].name,m)!=0)

(

continue;

printf(〃没有找到学号为%s的选手信息\n〃,m);

)

else

(

printf(〃当前选手的信息为:\n编号:%d姓名:%s分数:%d%d%d%d%d最高分:%f最

低分:%f总分:%f平均值:%f\n〃,

stu[i].banji,stu[i].name,stu[i].score[0],stu[i].scored],stu[i].score[2],

stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);

printf(〃请输入要修改的编号:〃);

scanf_s(〃%d〃,&stu[i].banji);

getchar();

printf(〃请输入要修改的姓名:〃);

gets_s(stu[i].name);

for(j=0;j<size;j++)

{

printf(〃请输入%d评委打分:〃,j+1);

scanf_s(级d〃,&stu[i].score[j]);

getchar();

〃最高分,最低分,总分

for(i=0;i<count;i++)

(

max2=stu[i].score[0];

for(j=0;j<size;j++)

(

if(max2<stu[i].score[j])

max2=stu[i].score[j];

)

stu[i].max=max2;

)

for(i=0;i<count;i++)

第6页

050308程序设计基础第四单元形成性考核作业

min2=stu[i].score[0];

for(j=0;j<size;j++)

(

if(min2>stu[i].score[j])

min2=stu[i].score[j];

)

stu[i].min=min2;

)

for(i=0;i<count;i++)

(

stu[i].sum=stu[i].score[0];

for(j=1;j<size;j++)

(

stu[i].sum=stu[i].sum+stu[i].scorefj];

)

stu[i].average=(stu[i].sum-stu[i].max-stu[i].min)/3;

)

}

voidfun6()〃显示选手信息

(

inti;

getchar();

for(i=0;i<count;i++)

(

printf(〃\n%d选手的信息为:\n编号:%d姓名:%s分数:%d%d%d%d%d最高分:%f最低

分;%f总分:%f平均值:%f〃,i+1,

stu[i].banji,stu[i].name,stu[i].score[0],stu[i].score[l],stu[i].score[2],

stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);

)

getchar();

)

voidfun7()〃按平均分排序

(

inti,j;

structstudenttemp;

for(i=0;i<count;i++)

(

for(j=i+1;j<count;j++)

(

if(stu[i].average>stu[j].average)

(

temp=stu[i];

stu[i]=stu[j];

第7页

050308程序设计基础第四单元形成性考核作业

stu[j]=temp;

getchar();

for(i=0;i<count;i++)

(

printf(〃\n%d平均分按小到大排序为:\n编号:%d姓名:%s分数:%d%d%d%d%d最高分:%f

最低分:%f总分:%f平均值:%f〃,i+1,

stu[i].banji,stu[i].name,stu[i].score[0],stu[i].scorefl],stu[i].score[2],

stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);

)

getchar();

)

voidSetColor(unsignedshortForeColor,unsignedshortBackGroundColor)

(

HANDLEhCon=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundCo1or%16*16));

)

voidmain()

intn,i;

for(i=1;i<=50;i++)

SetColor(0,14);

printf(〃〃);

printf2*i);

Sleep(101-2*i);

printf(〃\b\b\b〃);

SetColor(15,0);

printf(〃\b\n加载完成!即将进入:〃);

Sleep(2000);

system(〃cls〃);

do

system(〃cls〃);

printf(〃\n\t\t\t******歌手评分系统******\n");

printf(/z\n\t\t\tl:录入选手信息\n〃);

printf(z/\n\t\t\t2:按姓名查找\n〃);

printf(z,\n\t\t\t3:插入歌手信息\n〃);

printf(z/\n\t\t\t4:删除歌手信息\n〃);

printf(〃\n\t\t\t5:修改歌手信息\n〃);

printf(z,\n\t\t\t6:显示歌手信息\n〃);

第8页

050308程序设计基础第四单元形成性考核作业

printfC\n\t\t\t7:按平均分排序\n〃);

printf(z/\n\t\t\t0:退出\n〃);

printf('\n\t\t\t请选择(0-7):\n〃);

scanf_s(〃%d〃,&n);

switch(n)

case1:funl();break;

case2:fun2();break;

case3:fun3();break;

case4:fun4();break;

case5:fun5();break;

case6:fun6();break;

case7:fun7();break;

1

J

}while(n!=0);

国C:\Users\yurongguo\Deslctop\Prqject3\Debug\Prqject3.exe一□X

******歌手评分系统******

1:录入选手信息

2:按姓名查找

3:插入歌手信息

4:删除歌手信息

5:修改歌手信息

6:显小歌手信息

7:按平均分排序

0:退出

请选择(0-7):

><

退

1

1W人

1手

龙6

评:

入1

富8

入2

委9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论