BASE.CPP
#include<cstdio>
#include<conio.h>
#include<cctype>
#include<cstdlib>
#include<algorithm>
using namespace std;
char cache[85];
void backspace(){
printf("\b%c\b",0);
}
void input_line(int maxlen){
int i=0;
while(1){
cache[i]=getch();
if((isgraph(cache[i])||cache[i]==32) && i<maxlen){
if(cache[i]>=0){
printf("%c",cache[i]);
i++;
}else{
cache[i]=0;
}
}else{
switch(cache[i]){
case 10:
case 13:
cache[i]=0;
printf("\n");
return;
break;
case 8:
if(i>=1){
backspace();
i--;
cache[i]=0;
}
default:
cache[i]=0;
}
}
}
}
int main(){
printf("INPUT INS>>>");
input_line(25);
printf("%s",cache);
return 0;
}
WINCON.CPP
#ifndef _WINCON_CPP_
#define _WINCON_HPP_
#include<cstdio>
#include<windows.h>
#include<conio.h>
const int CON_HEIGHT=25,CON_WIDTH=80; //console area
const COORD FOP={0,0},EOP={CON_WIDTH-1,CON_HEIGHT-1}; //front of page
#define range(a,x,y) (((x)<=(a))&&((a)<=(y)))
#define irange(a,x) range((a),0,((x)-1))
#define incon(y,x) (irange(y,CON_HEIGHT)&&irange(x,CON_WIDTH))
void gotoxy(short y,short x){ //change the output cursor
COORD pos={x,y};
if(!incon(y,x)){
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),FOP);
}else
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void gotocrd(COORD crd){
short x=crd.X,y=crd.Y;
gotoxy(y,x);
}
void color(int col){ //change cursor color
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),col);
}
void setchar(int y,int x,char c,int col=7){
gotoxy(y,x);
color(col);
putchar(c);
}
struct word{
char c[2];
word(char x=0,char y=0){c[0]=x;c[1]=y;}
word(const char* s){c[0]=s[0];c[1]=s[1];}
};
const word Up("△"),Down("▽");
const word ToUp("▲"),ToDown("▼");
const word Squ("□"),Block("■");
const word Empty(" "),Full("█");
void putword(word w){
putchar(w.c[0]);
if(w.c[0]<0)putchar(w.c[1]);
}
word getword(){
word _w;_w.c[0]=getchar();
if(_w.c[0]<=0)_w.c[1]=getchar();
return _w;
}
void setword(int y,int x,word c,int col=7){
gotoxy(y,x);
if(y+1>=CON_WIDTH){
gotoxy(0,0);
}
color(col);
putword(c);
}
void message(const char* s){ //only use when err
gotocrd(FOP);printf("%s",s);
}
struct textbox{
const char* content;char* msg;
int height,width;
textbox(const char* Text=NULL,int H=0,int W=0,int msgl=1){ //constructor
content=Text;
height=H;
width=W;
if(msgl<W)msgl=W;
if(msgl>(H-2)*(W-2)+2)msgl=(H-2)*(W-2)+2;
msg=(char*)calloc(msgl,1);
}
~textbox(){free(msg);} //free message
void clr(int y,int x,int col=(1*16|14)){
for(int i=0;i<width;i++)
for(int j=0;j<height;j++)
setchar(y+j,x+i,'\0',col);
}
void nxt(int& y,int& x){ //next position when output
if(x==width-3)x=0,y++;
else x++;
}
void lst(int& y,int& x){ //last position when output
if(x==0)y--,x=width-3;
else x--;
}
void build(int y,int x,int col){ //build window
clr(y,x,col);
for(int i=0;i<width;i++){
setchar(y,x+i,'=',col);
setchar(y+height-1,x+i,'=',col);
}
for(int i=0;i<height;i++){
setchar(y+i,x,'|',col);
setchar(y+i,x+width-1,'|',col);
}
setword(y,x,Squ,col);
setword(y+height-1,x,Squ,col);
setword(y,x+width-2,Squ,col);
setword(y+height-1,x+width-2,Squ,col);
}
void disp(int y,int x,int col=(1*16|14)){ //output something
build(y,x,col);
int _x=0,_y=0;
for(int i=0;content[i] && _y<height-2;i++){
if(content[i]==10){
_x=0;_y++;continue;
}else if(content[i]<-2){
if(_x+1>=(width-2)){_y++;_x=0;} //newline
if(_y>=height-2)break; //full line
setchar(y+1+_y,x+_x,content[i],col);
i++;nxt(_y,_x);
setchar(y+1+_y,x+_x,content[i],col);
}else if(content[i]<31) //be regared as space
setchar(y+1+_y,x+1+_x,0,col);
else setchar(y+1+_y,x+1+_x,content[i],col);
nxt(_y,_x);
}
color(7);gotoxy(0,0);
}
void input(int y,int x,int len=31,int col=(1*16|14),int icol=(1*16|15)){
msg[0]=0; //init
build(y,x,col); //build a box
setword(y,x,Block,col); //light on
int _x=0,_y=0,_i=0;
while(1){ //readin
char _c=getch();
if(_c==10 || _c==13)break;
if(_c==8 && _i>0){
_i--;lst(_y,_x);
msg[_i]=0;
setchar(y+_y+1,x+_x+1,0,icol);
}else if(_c<31) continue;
else if(_i<len){
msg[_i++]=_c;
setchar(y+_y+1,x+_x+1,_c,icol);
nxt(_y,_x);
}
}
setword(y,x,Squ,col); //light off
color(7);gotoxy(0,0);
}
};
#define _DEBUG_MAIN_ //comment this part when used as header file
#ifdef _DEBUG_MAIN_
int main(){
textbox tb("我就不信输出不了汉字!",10,19);
//tb.disp(5,10);
tb.input(5,10);
printf("%s",tb.msg);
gotocrd(EOP);
while(1)getch();
return 0;
}
#endif
#endif //this will be developed into a header file
PICTURE.PY
# -*- encoding: gb2312 -*-
colorlist = ['red','orange','green','cyan','blue','purple']
from turtle import *
def makeSquare(length):
for i in range(4):
forward(length)
right(90)
reset()
width(4)
for i in range(24):
print "i = ", i
color(colorlist[i % 6])
makeSquare(100)
left(15)
s = Screen()
s.exitonclick()
FACE.PY
# -*- encoding: gb2312 -*-
from turtle import *
try :
width(5)
circle(100)
left(90)
up()
forward(50)
left(90)
forward(30)
right(180)
down()
forward(60)
up()
left(180)
forward(30)
right(90)
forward(80)
left(90)
forward(20)
down()
forward(30)
up()
right(180)
forward(60)
down()
forward(30)
except Exception,e:
print Exception,e
Screen().exitonclick()
BMPHEADER1105.CPP
#include<cstdio>
#include<cstdlib>
#include<cctype>
#include<cstring>
#include<algorithm>
using namespace std;
//size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
void ReadBmpHeader(const char* FileName){
FILE* fpin=fopen(FileName,"r");
if(fpin==NULL){
fprintf(stderr,"File Not Exist!\n");
return;
}
printf("\n------BMP Header------\n");
printf("FileName:\t%s\n",FileName);
char bfType[3]={};
fread(bfType,1,2,fpin);
printf("Bitmap Type:\t%s\n",bfType);
int bfSize=0;
fread(&bfSize,4,1,fpin);
printf("Bitmap Size:\t%d Btyes\n",bfSize);
short bfReserved1=0,bfReserved2=0;
fread(&bfReserved1,2,1,fpin);
fread(&bfReserved2,2,1,fpin);
printf("Reserved:\t(%d,%d)\n",bfReserved1,bfReserved2);
int bfOffBits=0;
fread(&bfOffBits,4,1,fpin);
printf("BitMap Offset:\t%d Bytes\n",bfOffBits);
printf("\n------Info Header------\n");
int biSize=0;
fread(&biSize,4,1,fpin);
printf("Header Size:\t%d Bytes\n",biSize);
int biWidth=0;
fread(&biWidth,4,1,fpin);
printf("Bitmap Width:\t%d px\n",biWidth);
int biHight=0;
fread(&biHight,4,1,fpin);
printf("Bitmap Hight:\t%d px\n",biHight);
short biPlanes=0;
fread(&biPlanes,2,1,fpin);
printf("Bitmap Planes:\t%d picture\n",biPlanes);
short biBitCount=0;
fread(&biBitCount,2,1,fpin);
printf("Bit per px:\t%d\n",biBitCount);
int biCompression=0;
fread(&biCompression,4,1,fpin);
printf("Compression:\t%d\n",biCompression);
int biSizeimage=0;
fread(&biSizeimage,4,1,fpin);
printf("Size image:\t%d\n",biSizeimage);
int biXPelsPerMeter=0,biYPelsPerMeter=0;
fread(&biXPelsPerMeter,4,1,fpin);
fread(&biYPelsPerMeter,4,1,fpin);
printf("PelsPerMeter:\t X=%d\tY=%d\n",biXPelsPerMeter,biYPelsPerMeter);
int biClrUsed=0,biClrImportant=0;
fread(&biClrUsed,4,1,fpin);
fread(&biClrImportant,4,1,fpin);
printf("BitmapColor:\t %d/%d Important/Used\n",biClrImportant,biClrUsed);
}
void ReadLn(FILE* fp,char* strTo){
while(!isgraph(strTo[0]) && strTo[0]!=EOF){
strTo[0]=fgetc(fp);
}
if(strTo[0]==EOF){
strTo[0]=0;
return;
}
for(int i=1;i<1024;i++){
strTo[i]=fgetc(fp);
if(strTo[i]=='\r' || strTo[i]=='\n' || strTo[i]==EOF){
strTo[i]='\0';break;
}
}
}
int main(int argc,char* argv[]){
char FileName[1024]={};
if(argc<=1){
ReadLn(stdin,FileName);
}else{
strcpy(FileName,argv[1]);
}
if(FileName[0]=='\"'){
for(int i=0;FileName[i];i++){
FileName[i]=FileName[i+1];
if(FileName[i]=='\"'){
FileName[i]=0;
break;
}
}
}
ReadBmpHeader(FileName);
system("pause");
return 0;
}
RGB.CPP
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
double Brightness(int R,int G,int B){
return (double)max(max(R,G),B)/255;
}
double Saturation(int R,int G,int B){
return 1.0-(double)min(min(R,G),B)/255;
}
int main(){
int R,G,B;
printf("(R?,G?,B?)=");
scanf("(%d,%d,%d)",&R,&G,&B);
printf("Brightness:%g\n",Brightness(R,G,B));
printf("Saturation:%g\n",Saturation(R,G,B));
return 0;
}