C语言大作业

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

学院

目录

1 摘要 (3)

1.1设计题目 (3)

1.2设计内容 (3)

1.3开发工具 (3)

1.4应用平台 (3)

2 详细设计 (3)

2.1程序结构 (3)

2.2主要功能 (3)

2.3函数实现 (4)

2.4开发日志 (4)

3 程序调试及运行 (5)

3.1程序运行结果 (5)

3.2程序使用说明 (6)

3.3程序开发总结 (6)

4 附件(源程序) (6)

1 摘要

1.1 设计题目

(1)数学型大作业4.歌星大奖赛。

(2)数学型大作业6. 高次方数的尾数.

1.2 设计内容

(1)在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分,选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。

(2)求13的13次方的最后三位数。

1.3 开发工具

开发工具为Microsoft Visual C++ 6.0.

1.4 应用平台

Windows XP32位。

2 详细设计

2.1 程序结构

(1)整体包括一个主函数和一个自定义函数,首先在主函数中输入10个分数,在输出函数中调用自定义函数,在调用过程中向自定义函数传递实参。在自定义函数中实现了平均分的计算。然后返回到主函数输出。

(2)程序整体上是用到一个主函数和一个自定义函数。程序先运行主函数,然后在主函数中调用自定义函数Thr,Thr函数实现了求13的13次方的最后三位尾数。调用Thr函数时将实参(13,13)传递到自定义函数的形参中,从而实现了对问题的求解。

2.2 主要功能

(!)该程序主要用于求解去除最高分和最低分的平均分。该功能的实现是在自定义的函数中实现的,即用选择法先对10个分数进行排序,排序中用的是选择法,即从第i+1至第n个数中选出比第i个数小的,

然后和其交换,如都大于第i个数,则不进行交换。从而实现从小到大的排序。然后只计算第2至第n-1个数的平均值,计算结果即为最后得分。

(2)该程序的主要功能为实现高次方数的尾数的求解。高次方数的结果一般较大,超过了计算机的内存,由乘法的运算性质知其最后的尾数只与每次最后三位的乘积有关,于是每次只运行最后三位的乘积即可,然后截取即可,这样就避免了内存不足这一缺陷,程序便可得到正确的结果。

2.3 函数实现

(1)输入和输出是直接调用标准库函数,平均分的计算是在自定义函数中实现的,在输出时调用自定义函数。然后将返回值返回输出。

(2)该程序不用外部输入,输出是在主函数中实现的。输出时调用了自定义函数Thr,通过调用该函数,实现了输出。在自定义函数中,进行13的13次方运算,用一个for循环,循环13次后结束,每循环一次,就截取一次最后三位尾数,则最后即得正确结果。

2.4 开发日志

6月8日完成程序和报告的书面写作。

6月9日上机运行,发现“歌星大奖赛”无法得到小数部分值,经调试发现是自定义函数的基类型为整型,无法输出平均分的小数部分,于是将其修改为double型,经运行与结果完全相符。并完成了报告的其它部分。

3 程序调试及运行3.1 程序运行结果

歌星大奖赛运行结果

(2)高次方数的尾数运行结果

3.2 程序使用说明

(1)在VC6.0下运行该程序,首先输入10个评委的分数,各个分数的输入中间间隔用空格键,输入完毕按回车键即可。

(2)只要打开程序在VC6.0下运行即可

3.3 程序开发总结

编写该大作业使我对规范化编写程序有了了解,也使我对程序的调试有所了解,知道了如何写程序报告。这对我们的程序理解有很大的帮助,能使我们对自己编写的程序有更深的了解,使我们更了解自己的算法思想。

4 附件(源程序)

(1)cxsj_01 math_04 歌星大奖赛

#include

void main()

{

double aver(int a[],int n);

int i, a[10];

printf("Please enter the scores.\n");

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

scanf("%d",&a[i]);

printf("The average score is %.2lf.\n",aver(a,10)); }

double aver(int a[],int n)

{

int i,j,k,m,t;

double ave,sum=0;

for(i=0;i

{

k=i;

for(j=i+1;j

if(a[k]>a[j])

k=j;

if(k!=i)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

for(m=1;m

sum=sum+a[m];

ave=sum/(n-2);

return(ave);

}

(2)cxsj_02 math_06.cpp 高次方数的尾数

#include

void main()

{

int Thr(int,int); /*函数声明*/

printf("13的13次方的最后三位尾数?\n");

printf("%d.\n",Thr(13,13)); /*函数调用*/

}

int Thr(int m,int n) /*定义Thr函数*/ {

相关文档
最新文档