C语言大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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函数*/ {