1、/参考程序1 /sum. cpp #include int add(int a,int b); int main() int x,y,sum; coutx;y; sum=add(x,y);The sum is:sumendl; return 0; int add(int a,int b) int c; c=a+b; return c;涉及知识点:输入与输出流Experiment1-2分别编写四个同名函数maxl,实现函数重载,在main()函数中测试函数功能。程序名:lab1_2.cpp。#include x1y1; max_1=max1(x1,y1); coutThe max number
2、is: max_1y2z2; max_2=max1(x2,y2,z2);max_2 Enter two double number:x3;y3; max_3=max1(x3,y3);max_3y4z4; max_4=max1(x4,y4,z4);max_4=b) return a; else return b; int max1(int a,int b,int c) if(ab&ac) if(ba&b return b; if(ccb) return c; double max1(double a,double b) else double max1(double a,double b,dou
3、ble c)函数重载Experiment1-3编写并测试3X3矩阵转置函数,使用数组保存3X3矩阵:void move(int *matrix) int i,j,k,c; for(i=0;i1;i+) for(j=0;j3;j+) k=matrixij; matrixij=matrixji; matrixji=k; c=matrix12; matrix12=matrix21; matrix21=c;main() int i,j; int *p; p=new int*3;输入矩阵的元素: pi=new int3;j+) cout 第 i+1 行第 j+1pij; cout 输入的矩阵的为: en
4、dl; for(i=0; i i+) for (j=0; j j+) cout pij move(p);转置后的矩阵的为: delete p;数组的运用Experiment1-4使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能#include int i,j,t; int a33,(*p)3,*q; printf(input %d datas:,3*3); for(j=0;j+) scanf(%d,&aij);before change:); p=a; for(;pa+3;p+) for(q=*p;qfstreamcstdlibiomanipstringusing names
5、pace std;void new_line(ifstream& fin,char& temp); int main(int argc,char *argv) ifstream fin; ofstream fout; int num_line=1; char temp,inFileName128; string buffer; if(argc=1)请用格式:SetLineNUm filenamen exit(0); else strcpy(inFileName,argv1);正打开输入文件.nfin.open(inFileName); /打开输入文件 if(fin.fail()cout0) f
6、outsetw(3)num_line+: /设置行号 buffer; while(!fin.eof();fin.close(); /关闭文件fout.close();成功关闭输入输出文件。程序结束。return 0; void new_line(ifstream& temp) do /跳过行首空格和空行 fin.get(temp); while(isspace(temp);文件的输入输出流五、实验总结1.基本掌握如何操作C+的界面,包括运行,编译,调试等过程;2掌握基本数据类型变量和常量、运算符与表达式的简单应用;理解了函数重载3.学会使用vc6.0开发环境中的debug调试功能:单步执行、设
7、置断点、观察变量值;熟练使用快捷键的使用。4.基本掌握函数的运用,并对C语言的复习与运用,认识了C+与C语言的异同。六、思考题1) 重载函数是通过什么来区分?答:区分重载方法的依据在于这些方法具有不同的方法特征。所谓方法特征是指方法的参数的数量、顺序和类型。不同的方法特征指参数的数量、顺序和类型至少有一个不相同。2) new和delete操作符与C语言中的malloc()和free()函数有何异同点?1,malloc与free是C+/C语言的标准库函数,new/delete是C+的运算符。它们都可用于申请动态内存和释放内存。2, 对于非内部数据类型的对象而言,光用maloc/free无法满足动
8、态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。3,因此C+语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。4,C+程序经常要调用C函数,而C程序只能用malloc/free管理动态内存3) C+提供的输入输出操作与C语言的输入输出操作的异同点?c语言中的scanf 和printf ,他们不是类型安全的,而且没有扩展性。对于C+来说,因为类型安全和扩展性是C+的基石,另外,scanf/printf 系列函数把要读写的变量和控制读写格式的信息分开来4) 什么是流?使用流有那些好处?流是C+标准库类的一个类,常见的有输入流,输出流,使用流不需要明确确定输入字符的格式,譬如输出整形,C中为printf(,i);而C+中只要couti即可搞定。方便很多,5) C+与定义了那些流?他们分别与什么设备相连?标准输入输出流cin cout 控制台文件流ifstream ofstream 文件字符串流istrstream ostrstream 字符串七、参考文献无。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1