當前位置:首頁 » 編程語言 » cshape語言詳細教程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

cshape語言詳細教程

發布時間: 2022-07-18 21:06:21

⑴ 關於Shape類用C++編

1、 設計一個Shape類, a) Shape具有一個成員函數來計算面積,Shape具有public Shape{ public: Circle(double x, double y, double r):c(x,y)

⑵ C語言列印菱形詳細講解

/*下面的程序是菱形列印的【終結者】,
改變下設置,就基本可以滿足所有菱形列印的題目。
程序主體 for 語句只有9行,簡單而強大
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 這個小函數用來輸出 repeatTimes 個字元 c
void printChar(char c,int repeatTimes)
{
int i;
for(i=0;i<repeatTimes;i++)
printf("%c",c);
}
/*
特別的函數,獲取當前要列印的下一個菱形圖案
height : 菱形的高
shapeVariantStep : 變化的步數
baseShape : 菱形的基本圖案
row : 當前列印的菱形圖案的行坐標。
col : 當前列印的菱形圖案的列坐標。
*/
char _buffer_[2]={0};
char* getShape(int height,int shapeVariantStep,char baseShape[],int row,int col)
{

int first = baseShape[0],last = first +(height-1)/2*shapeVariantStep;
if(shapeVariantStep==0 || strlen(baseShape)!=1)
return baseShape;
else
{
if( first>='0'&&first<='9'&&last<='9' ||
first>='a'&&first<='z'&&last<='z' ||
first>='A'&&first<='Z'&&last<='Z'
)
{
_buffer_[0] = first + ((height-2*abs(row)-1)/2 - abs(col))*shapeVariantStep;
_buffer_[1] = '\0';
return _buffer_;
}
else
{
return baseShape;
}
}
}

int main(int argc, char *argv[])
{
// 菱形的圖案
char shape[]="*";
// 菱形圖案間的空白圖案
char space=' ';
// 每個圖案之間的最小間隔(以一個字元為單位,不足用空白圖案填充)
int interval=5;
// 菱形的高(要求是奇數)
int height=7;
// 菱形是否空心(只有邊上的圖案)。是:1,否 0
int isHollow=0;
/* 特別的參數:設定菱形的圖案是變化。
只有指定 shape 為 :
"0","1",...,"9",
或者 "a","b",...,"z",
或者 "A","B",...,"Z" 其中之一,
並且要保證從指定圖形開始,後面至少還有連續的:
(height-1)/2*shapevariantStep
個可選的圖形,菱形的圖形才會是可變的。

*/
int shapeVariantStep = 0;

int i,j,k,n;
interval = interval < strlen(shape)?strlen(shape):interval;
for(i=-(height-1)/2;i<=(height-1)/2;i++)
{
// 用來輸出每行前的空白
printChar(space,abs(i)*interval);
// 這個 for(j) 語句用來輸出每行的菱形圖案
for(j=-(height-2*abs(i)-1)/2;j<=(height-2*abs(i)-1)/2;j++)
{
// 如果是非空心,輸出所有圖案;否則只輸出兩端的圖案。
if(!isHollow || (isHollow && (j==0 || j==height-2*abs(i)-1)))
{
n=printf("%s",getShape(height,shapeVariantStep,shape,i,j));
// 補齊為到寬度為 interval
printChar(space,interval-n);
}
// 對於空心的菱形,在本應該輸出圖案的地方,輸出空白。
else
{
printChar(space,interval);
}
}
// 這個 for(j) 語句用來輸出每行後的空白
printChar(space,abs(i)*interval);
printf("\n");
}
return 0;
}
/*
運行結果:
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*

shape[]="**";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
**
** ** **
** ** ** ** **
** ** ** ** ** ** **
** ** ** ** **
** ** **
**

shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
...............*...................
..........*....*....*..............
.....*....*....*....*....*.........
*....*....*....*....*....*....*....
.....*....*....*....*....*.........
..........*....*....*..............
...............*...................

shape[]="*";
space[]=" ";
interval=0;
height=7;
isHollow=0;
shapevariantStep = 0
*
***
*****
*******
*****
***
*

shape[]="*";
space[]=" ";
interval=5;
height=11;
isHollow=0;
shapevariantStep = 0
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=1;
shapevariantStep = 0
*
* *
* *
* *
* *
* *
*

shape[]="A";
space[]=" ";
interval=5;
height=17;
isHollow=0;
shapevariantStep = 1
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
shape[]="a";
space[]=" ";
interval=5;
height=17;
isHollow=0;
shapevariantStep = 1
a
a b a
a b c b a
a b c d c b a
a b c d e d c b a
a b c d e f e d c b a
a b c d e f g f e d c b a
a b c d e f g h g f e d c b a
a b c d e f g h i h g f e d c b a
a b c d e f g h g f e d c b a
a b c d e f g f e d c b a
a b c d e f e d c b a
a b c d e d c b a
a b c d c b a
a b c b a
a b a
a

shape[]="1";
space[]=" ";
interval=5;
height=9;
isHollow=0;
shapevariantStep = 2
1
1 3 1
1 3 5 3 1
1 3 5 7 5 3 1
1 3 5 7 9 7 5 3 1
1 3 5 7 5 3 1
1 3 5 3 1
1 3 1
1

*/

⑶ Cshape語言中用ref和不用ref的區別(希望從用法講解,不要用堆棧解釋,謝謝)

怎麼可以這么不負責任的回答啊,用不用當然有很大的區別了。
ref是按引用傳遞,不寫的話默認按值傳遞。如果你是初學,能按值傳遞就按值傳遞即可。
ref是將變數的引用的地址傳遞過去的,函數執行完後該內存地址中還保存有數據,而按值傳遞函數執行完了會自動釋放,等待垃圾回收。
我也不是高手,是按我自己的理解描述的,僅供參考。

⑷ 寫一個程序,定義抽象基類Cshape,由它派生出5個派生類:

這是測你的設計模式啊~還有多態,封裝,繼承三大特性啊

⑸ C shape 是什麼

不是C shape

是C#(C Sharp)是微軟(Microsoft)為.NET Framework量身訂做的程序語言,C#擁有C/C++的強大功能以及Visual Basic簡易使用的特性,是第一個組件導向(Component-oriented)的程序語言,和C++與Java一樣亦為對象導向(object-oriented)程序語言。

http://ke..com/view/107979.htm?fr=ala0_1

⑹ 編程完成如下要求:(1)假設已有一個CShape圖形類,並滿足如下要求:1)CShape類有

沒有問題我可以搞定。

⑺ C#從shape類中派生出Rectangle,Circle等具體形狀類,並計算圖形對象的周長和面積

明顯是在考抽象類。

一個Shape有封閉的邊界,它總是可以被計算周長和面積,但是Shape本身沒有明確的描述時不是一個實體,故Shape是抽象類。Rectangle和Circle都應該繼承Shape並實現其抽象方法。

publicabstractclassShape
{
();
();
}
publicclassCircle:Shape
{
publicdoubleRadius{get;set;}
()
{
returnMath.PI*Radius*Radius;
}
()
{
return2*Math.PI*Radius;
}
}
publicclassRectangle:Shape
{
publicdoubleWidth{get;set;}
publicdoubleHeight{get;set;}
()
{
returnWidth*Height;
}
()
{
return2*(Width+Height);
}
}

⑻ 用C++定義一個shape類知道

#include<iostream>
using
namespace
std;
class
shape
{
public:
virtual
float
area()=0;//純虛函數
virtual
void
show()=0;//純虛函數
};
class
circle:public
shape//公共繼承
{
public:
circle(float
a=0,float
b=0,float
r=0):x(a),y(b),radius(r){}//用參數初始化表對構造函數進行初始化
virtual
void
show(){cout<<"x="<<x<<",y="<<y<<",radius="<<radius<<",area="<<area()<<endl;}//對虛函數進行重新定義
virtual
float
area(){return
3.14*radius*radius;}//同上
private:
float
x,y,radius;//數據成員
};
class
Rectangle:public
shape//公共繼承
{
public:
Rectangle(float
w=0,float
l=0):width(w),length(l){}//同上
virtual
float
area(){return
width*length;}//同上
virtual
void
show(){cout<<"width="<<width<<",length="<<length<<",area="<<area()<<endl;}//同上
private:
float
width,length;
};
int
main()
{
circle
c(1.0,1.0,1.0);//定義circle類的對象c
c.show();//用對象c調用show函數
Rectangle
r(10.0,10.0);//定義Rectangle類對象r
r.show();//用對象r調用s...
#include<iostream>
using
namespace
std;
class
shape
{
public:
virtual
float
area()=0;//純虛函數
virtual
void
show()=0;//純虛函數
};
class
circle:public
shape//公共繼承
{
public:
circle(float
a=0,float
b=0,float
r=0):x(a),y(b),radius(r){}//用參數初始化表對構造函數進行初始化
virtual
void
show(){cout<<"x="<<x<<",y="<<y<<",radius="<<radius<<",area="<<area()<<endl;}//對虛函數進行重新定義
virtual
float
area(){return
3.14*radius*radius;}//同上
private:
float
x,y,radius;//數據成員
};
class
Rectangle:public
shape//公共繼承
{
public:
Rectangle(float
w=0,float
l=0):width(w),length(l){}//同上
virtual
float
area(){return
width*length;}//同上
virtual
void
show(){cout<<"width="<<width<<",length="<<length<<",area="<<area()<<endl;}//同上
private:
float
width,length;
};
int
main()
{
circle
c(1.0,1.0,1.0);//定義circle類的對象c
c.show();//用對象c調用show函數
Rectangle
r(10.0,10.0);//定義Rectangle類對象r
r.show();//用對象r調用show函數
return
0;
}
這個應該符合要求。
展開