2022年2022年计算机程序设计基础_C++实验报告 .pdf
1 1 计算机程序设计基础(C+ )实验报告软 件 学 院二 O 一 O 年三月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - 2 实验 _1_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1熟悉 Visual studio 6.0 集成开发环境;2学习新建和打开控制台应用程序的方法;3通过运行示例程序了解程序开发过程;二、实验任务1 输出下面图形:2输入一摄氏温度,输出显示所转换的华氏温度。(提示:摄氏温度=(华氏温度 -32)5/9)三、实验结果 (源程序+ 注释)任务 1:1.#include 2.using namespace std; 3.int main() 4. 5.cout * endl; 6.cout * * * * endl; 7.cout * * * * endl; 8.cout * endl; 9.return 0; 10. 任务 1 截屏:任务 2:1.#include 2.using namespace std; 3.int main() 4. 5.double c,h; 6.coutc; 8.h=c*9.0/5.0+32.0; 9.coutendl 华氏温度 =hendl; 10.return 0; 11. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - - - 3 3 任务 2截屏:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - 4 实验 _2_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:2010.04.01 实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1掌握对一般数据的输入和输出格式控制方法;2掌握对实型数据输出形式的设置和小数位数的控制方法;3了解数据输入的相关注意事项。二、实验任务1. 输入一台计算机的编号和该计算机的价格,并输出这些信息。(如编号为10987654321, 价格为 5 998.00元,注意此处计算机的编号作为一个整数而言超出了int所定义的变量的存储范围,因此只能用double 型变量来存储,但输出时要求看见的是整数形式的编号)2. 输入三个同学的学号,计算机和英语课程的考试成绩,并输出这些信息。要求每个同学的三个信息输出在同一行上,三行输出信息要各列对齐。三、实验结果 (源程序+ 注释)任务 1:1.#include 2.#include / 使用控制符需包含iomanip 头文件3.using namespace std; 4.int main() 5. 6.double a,b; 7.coutab; 9.coutsetiosflags(ios:fixed)setprecision(0)您输入的编号为: aendl; / 使用控制符控制输出格式为固定小数位,且精度为0 位(无小数位)10.coutsetprecision(2)您输入的价格为:bendl; 11./ 使用控制符恢复浮点数精度为小数部分2 位12.return 0; 13. 截屏:任务 2:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - 5 5 1.#include 2.#include 3.using namespace std; 4.int main() 5. 6.int i=0; 7.struct student 8. 9.int num; 10.int computer; 11.int english; 12.std3; /定义结构体变量13.for (i=0;i3;i+) 14. 15.printf(请输入第 %d个同学的学号,计算机成绩,英语成绩:n,i+1); 16.scanf(%d%d%d,&stdi.num,&puter,&stdi.english); /依次赋值17. 18.for (i=0;i3;i+) 19. 20.cout.width(10); 21.coutsetiosflags(ios:right)stdi.num; 22.cout.width(10); puter; 24.cout.width(10); 25.coutstdi.english; 26.coutendl; /依次输出结果27. 28.return 0; 29. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 27 页 - - - - - - - - - 6 实验 _3_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:2010.04.01 实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1.掌握“处理某一或某些操作只有在特定条件成立的情况下才会被执行”的编程思路和方法;2.掌握“一路分支选择结构”算法的实现语句,if 语句的使用方法;3.掌握“二路分支选择结构”算法的实现语句,if-else 语句的使用方法;二、实验任务1. 有一个函数2x1(x0)yx (x0),输入 x 的值,输出相应的函数值。(提示: x 取值分大于零和小于等于0 的两段,对输入的x 值,在计算前应判断范围,采用不同的计算公式。)2已知一函数x(x1)y2x1(1x10)3x11(x10),输入 x 的值,求解并输出相应的y 值。(提示:该题根据x 的取值范围采用不同公式来计算y 的值。显然采用if 选择结构可实现该程序。)三、实验结果 (源程序+ 注释)任务 1:1.#include 2.using namespace std; 3.int main() 4. 5.int x,y; 6.cout 请输入 x:x; 8.if (x0) 9. 10.y=x+1; 11. 12.else 13.y=x*x; 14.couty = y; 15.return 0; 16. 截屏:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 27 页 - - - - - - - - - 7 7 任务 2:1.#include 2.using namespace std; 3.int main() 4. 5.int x,y; 6.cout 请输入 x:x; 8.if (x=10) 13.y=3*x-11; 14.else 15.y=2*x-1; 16. 17.couty = yendl; 18.return 0; 19. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 27 页 - - - - - - - - - 8 实验 _4_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:2010.04.01 实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1掌握“多路分支选择结构”算法的实现语句,switch 语句的使用方法;2学习通过程序调试来跟踪程序运行过程,查看程序运行过程中各个变量的取值变化情况。二、实验任务1 实现一个简单的菜单程序,运行时显示Menu:A(dd)D(elete)S(ort)Q(uit)Select one:要求用户提供相应的输入,并在用户输入A,D,S 时分别提示“数据已经增加、删除、排序”,输入为 Q 时程序结束。(提示:该程序要求用户输入特定的A,D, S,Q 字符显示相应信息,所以适合采用switch 结构。)2 某公司进行产品销售,既零售也批发,零售的价格与批发的价格不同,购买产品数量的多与少其价格也不同。具体标准见下表:批 发 商零 售 商数量(个)单位价格(元 /个)数量(个)单位价格(元 /个)50200 10 120 18 200 以上8 2040 15 4050 12 三、实验结果 (源程序+ 注释)任务 1:1.#include 2.using namespace std; 3.int main() 4. 5.char c; 6.coutMenu :endl; 7.cout A ( dd) endl; 8.cout D ( elete ) endl; 9.cout S ( ort ) endl; 10.cout Q ( uit ) endl; 11.coutc; 13.switch (c) 14. 15.case A:cout数据已经增加。endl;break; 16.case D:cout数据已经删除。endl;break; 17.case S:cout数据已经排序。endl;break; 18.case Q:break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - 9 9 19. 20.return 0; 21. 截屏:任务 2:1.#include 2.using namespace std; 3.int main() 4. 5.int a,y; 6.couta; 8.switch (a-1)/10) 9. 10.case 0: 11.case 1:y=a*18;break; 12.case 2: 13.case 3:y=a*15;break; 14.case 4:y=a*12;break; 15. 16.if (a50&a200) 20.y=a*8; 21.cout 购买数量为 a 应付 y 元 50 元时排列较不规律,所以大于50 元时使用的if语句作为判断。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - 10 实验 _5_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:2010.04.08 实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1掌握“处理某一或某些操作需要被有条件地重复执行”的编程思路和方法;2掌握“当型型循环结构”算法的实现语句之一while 循环语句的使用方法;3掌握“直到型循环结构”算法的实现语句do-while 循环语句的使用方法;4掌握“当型型循环结构”算法的实现语句之一for 循环语句的使用方法。二、实验任务1计算 123 4 99100。2输入一个整数,将各位数字反转后输出。三、实验结果 (源程序+ 注释)任务 1:#include using namespace std; int main() int i,sum=0,k=1; for (i=1;i=100;i+) sum+=i*k; k*=-1; /k每循环一次变换一次符号,初始符号为正 cout1-2+3-4.99-100 = sum; return 0; 截屏:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 27 页 - - - - - - - - - 11 11 任务 2:1.#include 2.using namespace std; 3.int main() 4. 5.char s20; 6.int i,a=1,sum=0; 7.couts; 9.for (i=0;si!=0;i+) 10.if (si=0&si=9) / 为数字11.continue; 12.else 13. 14.cout 请输入数字!请重新输入:s; 16.break; 17. / 该 for 循环用于判断s 中是否为纯数字18.for (i=0;si!=0;i+) 19. 20.sum+=(si-48)*a); /si转换成数字后与位数相乘,然后加至sum21.a*=10; /a作为位数标识每次自乘1022. 23.cout 反转后: sumendl; 24.return 0; 25. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 27 页 - - - - - - - - - 12 实验 _6_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:2010.04.08 实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1掌握循环与选择结构的嵌套的使用方法;2掌握嵌套循环的使用方法;3练习 continue 和 break 语句的使用方法。二、实验任务1. 求两个整数的最大公约数和最小公倍数。2. 用循环结构语句编程并输出下图:* * * * * * * * * * * * 三、实验结果 (源程序+ 注释)任务 1:1.#include 2.using namespace std; 3.int main() 4. 5.int i,a,b,t,xa=1,xb; /xa为最小公倍数,xb 为最大公约数6.coutab; 8.if (ab) t=a;a=b;b=t; / 将 a,b 中大者放后9.for (i=b/a;xa%b!=0;i+) 10.xa=a*i; / 自 b/a 开始,倍数自增1 与 a 相乘,若所得之数整除b,则为最小公倍数11.for (xb=a;(b%xb=0)&(a%xb=0)=0;xb-); / 自 a 开始自减,若a,b 均可被整除,则为最大公约数12.cout 最小公倍数为:xaendl; 13.cout 最大公约数为:xbendl; 14.return 0; 15. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 27 页 - - - - - - - - - 13 13 任务 2:1.#include 2.#define N 4 /N 为前三角的行数,可更改为其他数值3.using namespace std; 4.int main() 5. 6.int i=1,j,k; 7. for (j=1;j=N-i;j+) cout ; 8.cout*endl; / 输出第一行9.for (i=2;i=N;i+) 10. 11.for (j=1;j=N-i;j+) cout ; 12.cout*; 13.for (k=1;k=2*i-3;k+) cout ; 14.cout*=2;i-) 17. 18.for (j=1;j=N-i;j+) cout ; 19.cout*; 20.for (k=1;k=2*i-3;k+) cout ; 21.cout*endl; 22. / 以同样格式输出后三角,i 循环方式倒序23.for (j=1;j=N-i;j+) cout ; 24.cout*endl; / 输出最后一行25.return 0; 26. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 27 页 - - - - - - - - - 14 实验 _7_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:2010.04.15 实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法;2掌握数值型一维数组的使用方法;二、实验任务1. 输入 n 个数,找出所有大于n 个数的平均值的那些数及最小数。2. 设有有序(值从小到大)的两组数据,将这两组数据有序合并(合并过程数据始终保持有序)。(提示:两组原始数据用一维数组a,b 表示,合并后的数据用一维数组c 表示, ia,ib 分别代表当前待放入到数组c 中去的数组a,b 的下标, ic 指向数组c 中当前存放数据的下标,如下图所示。)三、实验结果 (源程序+ 注释)任务 1:1.#include 2.using namespace std; 3.int main() 4. 5.double average=0; 6.int a100,min,i,n; 7.cout 请输入 n 的值 (nn; 9.cout 请输入数据:endl; 10.for (i=0;iai; 13.cout 第i+1 个数据已录入。endl; 14. 15.min=a0; 16.for (i=0;in;i+) 17. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 27 页 - - - - - - - - - 15 15 18.average+=ai; 19.if (aimin) min=ai; 20. / 遍历相加以求出平均数及最小值21.average=average/n; 22.coutendlendl平均值为 averageendl; 23.for (i=0;iaverage) 26.cout 第i+1 个数 ai大于平均值。 endl; 27. 28.cout 最小值为 minendl; 29.return 0; 30. 任务 2:1.#include 2.using namespace std; 3.4.int main() 5. 6.int a10=1,3,5,8,14,43,58,90,101,130,b8=2,4,7,9,21,57,103,200,c18; 7.int ai,bi,i; 8.for (ai=0,bi=0,i=0;ai10|bibbi) /依次判断,若b 中目前值小于a,则取 b 值,且 b 下标自增1,a 下标不变11.ci=bbi;bi+; 12.else /同理13.ci=aai;ai+; 14. 15.for (i=0;i18;i+) 16.coutciendl; /显示出结果17.return 0; 18. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 27 页 - - - - - - - - - 16 实验 _8_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:2010.05.13 实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法;2掌握二维数值型数组的使用方法;二、实验任务1. 输出以下杨辉三角形。1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 2. 有一个 3 4 的矩阵,要求编程序找出每一行中值最大的那个元素并与该行第1列的元素交换。三、实验结果 (源程序+ 注释)任务 1:1.#include 2.using namespace std; 3.#define N 10 / 预定义杨辉三角形的行数4.void set() / 编写为无返回值函数,可自由调整输出数据占位5. 6.cout.width(6); 7. 8.void coutspace(int a)/ 输出 a 个空格9. 10.int i; 11.for (i=0;ia;i+) cout ; 12. 13.14.int main() 15. 16.int aN*(N+1)/2,i,j,k; / 由行数计算得出需要的总个数17.coutspace(N-1)*4); / 每字符占4 格,第一行前插入空格18.a0=1;set();couta0endl; / 第一行为起始行,直接输出19.for (i=1,k=1;iN;i+) / 以行为循环单位,自第二行开始20. 21.coutspace(N-i-1)*4); / 每字符占4 格,输出数据前空格22.ak=1;set();coutak;/ 初始化输出第一个数23.k+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 27 页 - - - - - - - - - 17 17 24.for (j=1;ji;j+) /j为行标25. 26.ak=ak-i+ak-i-1; / 由上一行两数相加计算得出27.set();coutak; / 输出中间的数据28.k+; 29. 30.ak=1;set();coutakendl; / 与第一个数据呼应,输出行末数据31.k+; 32. 33.return 0; 34. 任务 2:1.#include 2.using namespace std; 3.int main() 4. 5.int a34,i,j,k,max,t; 6.for (i=0;i3;i+) 7. 8.for (j=0;j4;j+) 9. 10.cout 请输入第 i+1 行第 j+1列的数据: aij; 12. 13. 14.coutendl 下面是处理结果:endlendl; 15.for (i=0;i3;i+) 16. 17.max=0; /max 为该行列数而非数值18.for (j=0;jaimax) max=j; 21. 22.t=ai0;ai0=aimax;aimax=t; / 将最大值换到第一列23.cout.width(4); 24.coutai0 ai1 ai2 ai3endl; 25. 26.return 0; 27. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 27 页 - - - - - - - - - 18 实验 _9_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:2010.05.13 实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1熟练指针变量的使用,了解其编程技巧;2熟练指针变量做函数参数,了解其传递过程;3熟练指向数组元素的指针,了解指针引用数组元素的编程技巧。二、实验任务1. 使用指针法在的一组数据中,找出其中最大值所在的位置并输出。2. 使用指针法对一维数组a中的数据按降序排列。三、实验结果 (源程序+ 注释)任务 1:1.#include 2.using namespace std; 3.int main() 4. 5.int a10=34,3,23,223,14,56,2,0,4,10, *p,*max; 6.max=a; /预定义最大值为数组第一项7.cout 数组 a的数值为: endl; 8.for (p=a;p-a10;p+) /依次移动指针输出数组 a 的值,并寻找最大值9.10.cout*p*max) max=p; 12. 13.coutendl; 14.15.cout 最大值为 *max 位于第max-a+1 个数据 endl; 16.return 0; 17. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 27 页 - - - - - - - - - 19 19 任务 2:1.#include 2.using namespace std; 3.int main() 4. 5.int a10=34,45,2,5,27,0,67,1,121,100,*p,t,i; 6.cout排序前数组:endl; 7.for (p=a;p-a10;p+) 8.cout*p ; /输出数组9.for (i=0;i10;i+) 10. 11.for (p=a;p-a10-1-i;p+) /利用冒泡法指针顺序移动,小值沉底12. 13.if (*p*(p+1) t=*p;*p=*(p+1);*(p+1)=t; 14. 15. 16.coutendl 排序后数组:endl; 17.for (p=a;p-a10;p+) 18.cout*p ; /输出数组19.return 0; 20. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 27 页 - - - - - - - - - 20 实验 _10_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1了解存放常用的系统函数的头文件;2掌握常用系统函数的功能和使用方法;3掌握返回值的概念和运用。二、实验任务1. 接受用户输入的数值,计算该数的绝对值和该绝对值以10 为底的对数值,并输出计算结果。(提示:使用内置的绝对值函数和对数函数。)2. 编写两个子函数,分别求两个整数的最大公约数和最小公倍数,并编写主函数调用这两个子函数,输出结果,两个整数由键盘输入。三、实验结果 (源程序+ 注释)任务 1:1.#include 2.#include 3.using namespace std; 4.int main() 5. 6.double a; 7.cout 请输入一个数:a; 9.coutendl 该数的绝对值为:fabs(a)endl 该绝对值以10 为底的对数值为:log10(fabs(a)endl; 10.return 0; 11. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 27 页 - - - - - - - - - 21 21 任务 2:1.#include 2.using namespace std; 3.int maxyue(int a,int b) 4. 5.int t,xb; 6.if (ab) t=a;a=b;b=t; /将 a,b中大者放后7.for (xb=a;(b%xb=0)&(a%xb=0)=0;xb-); /自 a开始自减,若a,b 均可被整除,则为最大公约数8.return xb; 9. 10.int minbei(int a,int b) 11. 12.int t,xa=1,i; 13.if (ab) t=a;a=b;b=t; /将 a,b中大者放后14.for (i=b/a;xa%b!=0;i+) 15.xa=a*i; /自 b/a 开始,倍数自增1与 a 相乘,若所得之数整除b,则为最小公倍数16.return xa; 17. 18.int main() 19. 20.int a,b; 21.coutab; 23.cout最小公倍数为:minbei(a,b)endl; 24.cout最大公约数为:maxyue(a,b)endl; 25.return 0; 26. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 27 页 - - - - - - - - - 22 实验 _11_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1掌握自定义有返回值函数的概念、定义及使用;2掌握自定义void 函数的概念、定义及使用;3掌握自定义有返回值函数与自定义void 函数在定义及使用上的区别;4掌握函数参数间的数据传递。二、实验任务1. 设计一个程序,用来计算输入的两个整数的加、减、乘、除,每一个计算要单独用一个用户自定义的void 函数来实现,接收输入数据也要用void 函数来实现,输入数据中不包含0。2. 将键盘输入的10 个整数按从小到大的顺序排序(冒泡法),要求排序功能用自定义函数实现。三、实验结果 (源程序+ 注释)任务 1:1.#include 2.using namespace std; 3.void innum(int &a,int &b) 4. 5.cout 请输入 a,b 的值: ab; 7. 8.void add(int &a,int &b,int &num) 9. num=a+b; 10.void subtract(int &a,int &b,int &num) 11. num=a-b; 12.void multiply(int &a,int &b,int &num) 13. num=a*b; 14.void divide(int &a,int &b,int &num) 15. num=a/b; 16.int main() 17. 18.int a,b,num; 19.innum(a,b); 20.add(a,b,num); /加21.couta+b = numendl; 22.subtract(a,b,num); /减23.couta-b = numendl; 24.multiply(a,b,num); /乘25.couta*b = numendl; 26.divide(a,b,num); /除名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 27 页 - - - - - - - - - 23 23 27.couta/b = numendl; 28.return 0; 29. 30./本程序 5 个子函数均使用引用传递,其中num 变量在执行过程中多次改变,但只要a,b 不变,即不影响程序结果。任务 2:1.#include 2.#define N 10 /定义数组 a元素个数3.using namespace std; 4.void asort(int a) 5. 6.int i,j,t; 7.for (i=0;iN;i+) 8. 9.for (j=0;jaj+1) t=aj;aj=aj+1;aj+1=t; 12. 13. 14. 15.int main() 16. 17.int aN,i; 18.for (i=0;iN;i+) 19. 20.cout 请输入第 i+1 个数: ai; 22. 23.asort(a); /数组名实质上就是指针24.cout数组 a 排序后: endl; 25.for (i=0;iN;i+) 26. 27.coutai ; 28. 29.return 0; 30. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 27 页 - - - - - - - - - 24 实验 _12_实验报告教学班级:32 学生学号:20091126 学生姓名:柳冬玉实验日期:实验地点:7308 (机房) 指导教师签名: _ 实验成绩: _ 一、实验目的1建立文件、读写文件的操作;2文件指针的定位操作。二、实验任务1编写一个程序,用来从键盘读取本班同学的期末成绩,并把该成绩保存在score.dat 文件中。 Score.dat文件内容如下:number Chinese English C 1 87 76 67 2 67 87 65 3 76 88 87 4 46 89 88 2编写一个程序,用来读取上题创建的score.dat 数据文件,并计算其平均成绩和期末总成绩。把计算的结果存在statistics.dat 文件中,并输出成绩有不及格的学生的学号。其格式如下:number Chinese English C total average 1 87 76 67 230 76.67 2 67 87 65 219 73 3 76 88 87 251 83.67 4 46 89 88 223 74.3 三、实验结果 (源程序+ 注释)任务 1:1.#include 2.#include 3.using namespace std; 4.int main() 5. 6.int num,chi,eng,c,i,n; 7.fstream file1; 8.file1.open(C:score.dat,ios:out); 9.if (!file1) 10.cout 文件打开失败!endl; 11.else 12. 13.coutn; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 27 页 - - - - - - - - - 25 25 15.file1numbertChinesetEnglishtCn; /写入文件头部内容16.for (i=0;in;i+) 17. 18.cout请输入第 i+1 个学生成绩:格式为“number Chinese English C” : numchiengc; 20.file1numtchitengtcendl; /由键盘接收数据,写入文件21. 22.file1.close(); 23. 24.return 0; 25. 任务 2:1.#include 2.#include 3.using namespace std; 4.struct student 5. 6.int num,chi,eng,c,total; 7.double ave; 8.stu10; /定义结构体变量用于储存学生数据9.void spaces(char s) /该函数用于清空字符串s 10. 11.s0=0;s1=0;s2=0; 12. 13.int charstoint(char s) /该函数用于将3 位或 3 位以下数字字符串转化为int 类型14. 15.int i,n=0; 16.for (i=0;i=0&si=9) 18. 19.si-=0; 20.n+; 21. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -