我的代码库

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值