c语言编程模板(c语言编程模板大全)
C语言程序编写?
#includeiostream
#includetypeinfo
using namespace std;
const int PI=3.14;
templatetypename T
class Circle{
private:
T r;
public:
Circle(){r=0;}//无参构造函数
Circle(T x):r(x){}//带参构造函数
void show()
{
coutrendl;
}
T area()
{
return PI*r*r;
}
};
int main()
{
/******int*****/
Circleint a(3);
a.show();//输出半径
couta.area()endl;//输出面积
/***double***/
Circledouble b(3.2);
b.show();//输出半径
coutb.area()endl;//输出面积
return 0;
}
c语言编程在线急(用标签里的代码模板)
#include"stdio.h"
void?output(int?a[],int?n);?
main()
{
????int?n,i,j,x,pos;
????int?c=0;?//c表示有效的数据个数
????int?a[20];
????scanf("%d",n);
????for(i=0;in;i++)?//插入n个数据
????{???
????????scanf("%d",x);
????????//查找插入的位置pos,并且向后移动数据
????????for(pos?=?c;pos??0;pos--)
????????????if(x??a[pos-1])
????????????????a[pos]?=?a[pos-1];
????????????else
????????????????break;
????
????????a[pos]=x;?//在pos位置插入数据
????????c++;?//个数加1
????}???
????output(a,?n);?
????return?0;
}
void?output(int?a[],?int?n)
{
????int?i;
????for(i?=?0;i??n;i++)
????????printf("%d?",?a[i]);
????printf("\n");
}
c语言编程时的模板里面{跟//是什么意思?
{和}是匹配的
表示一个单独的
程序段
。
当if
while
for等
这类
控制语句
,要包含多余一句的语句时
需要用{}括起来。
//表示注释
。
//之后到行末
只给编写程序的人看,
编译器
不会处理。
c语言课程设计报告模板
课程设计报告内容
报告应包括以下内容:
摘要(300~400字)
目录
1. 概述
2. 课程设计任务及要求
2.1 设计任务
2.2 设计要求
3. 理论设计
3.1方案论证
3.2 系统设计
3.2.1 结构框图及说明
3.2.2 系统原理图及工作原理
3.3 单元电路设计
3.3.1单元电路工作原理
3.3.2元件参数选择
4. 系统设计
4.1 软件设计
4.2 编程过程
4.2 编程结果
5. 安装调试
5.2 安装调试过程
5.3 故障分析
6. 结论
7. 使用仪器设备清单
8. 收获、体会和建议
9. 参考文献
c语言程序模板
//考虑在输入非数字或非纯数字的时候要报错
main()
{
char str[100];
int i;
float c, f; //声明摄氏和华氏温度变量
printf("请输入华氏温度:"); //提示输入华氏温度
scanf("%s", str); //将输入的字符串保存到变量str数组中
for (i = 0; i strlen(str); i++) {
if (str[i] '0' || str[i] '9') {
printf("输入不是纯数字");
return;
}
} //判断输入的字符串里是否只有数值字符
f = atof(str); //将数值字符转换成浮点数
c = 5.0 / 9 * (f - 32); //计算摄氏温度
printf("摄氏温度是%0.2f", c); //保留两位小数输出
}
//直接运行通过
C中的模板怎样使用? 最好给个例子~
看看这个吧
其他的见
C语言中实现模板函数的方法
在C语言中实现模板函数的方法:
各种用C语言实现的模板可能在使用形式上有所不同。
现以一个求和函数Sum为例,用C++Template可写如下:
templateclassT,classR RSum(constT*array,intn)
{
Rsum=0;
for(inti=0;in;++i)
sum+=i;
returnsum;
}
如果不是内置类型,该模板隐式地需要有RR::operator+=(T)运算符可用。
1. 使用函数指针作为Functor替换者
TypedefstructtagAddClass
{
Void(*add)(char*r1,constchar*r2);
IntelemSize;
Char sum[MAX_ELEM_SIZE];
}AddClass;
voidSum(AddClass*self,constchar*array,intn)
{
for(inti=0;in;++i)
self-add(self-sum,array+i*self-elemSize);
}
使用时:
…..
VoidAddInt(char*r1,constchar*r2)
{
*(long*)r1+=*(int*)r2;
}
AddClassaddClass={AddInt,2,0};
Intarray[100];
Read(array);
Sum(addClass,array,100);
…..
2. 用宏作为Functor的替换者
#define GenSumFun(SumFunName,Add,RetType,ElemType) \
RetTypeSumFunName(constElemType*array,intn) \
{ \
RetTypesum=0; \
for(inti=0;in;++i) \
Add(sum,i); \
returnsum; \
}
使用时:
#defineAddInt(x,y) ((x)+=(y))
GenSumFun(SumInt,AddInt,long,int)
…..
Intarray[100];
Read(array);
Longsum=SumInt(array,100);
…..
3. 所有可替换参数均为宏
至少需要一个额外的文件(实现文件)为impsum.c
/*impsum.c*/
RetTypeFunName(constElemType*array,intn)
{
RetTypesum=0;
for(inti=0;in;++i)
Add(sum,i);
returnsum;
}
使用时:
#undef RetType
#undef FunName
#undef ElemType
#undef Add
#defineAddInt(x,y) ((x)+=(y))
#defineRetTypelong
#defineFunNameSumInt
#defineElemTypeint
#defineAdd AddInt
#includeimpsum.c
…..
Intarray[100];
Read(array);
Longsum=SumInt(array,100);
…..
4. 总结:
第一种方法,易于跟踪调试,但是效率低下,适用于对可变函数(函数指针)的效率要求不高,但程序出错的可能性较大(复杂),模板函数(Sum)本身很复杂,模板参数也比较复杂(add)的场合。
第二种方法,效率高,但很难跟踪调试,在模板函数和模板参数本身都很复杂的时候更是如此。
第三种方法,是我最近几天才想出的,我认为是最好的,在模板参数(Add)比较复杂时可以用函数(第二种也可以如此),简单时可以用宏,并且,易于调试。在模板函数本身很复杂,而模板参数比较简单时更为优越。但是,可能有点繁琐。
一般情况下,没有必要做如此劳心的工作,一切交给编译器去做就行了。但是本人在开发一个文件系统时,由于是基于一种少见的平台,没有可用的C++编译器,有几个函数,除了其中的类型不同(uint16和uint32),和几个可参数化的宏不同,其它地方完全相同,而函数本身很复杂(两百多行代码)。Copy出几个完全类似的函数副本,维护起来特别烦人。非常需要如此的编程模式,故此,分享出来,大家共同探讨。