皮皮网

【裂变源码下载】【lpc驱动源码】【asio http 源码】200 源码

2024-11-23 12:41:44 来源:mmb诚信买卖宝源码

1.200 Դ?源码?
2.求VC++源代码,200行左右,源码要有详细注释,源码悬赏!源码!源码!源码裂变源码下载
3.C++游戏开发,源码超简单的源码入门项目,200行代码搞定开心消消乐
4.求一个c++小程序源代码,源码要求200行以上,源码给100分,源码能用再加100
5.MATLAB全版本安装包详细安装教程附200G源码/视频/讲义

200 源码

200 Դ?源码?

       //作者:小斌

       #include<graphics.h>

       #include<conio.h>

       #include<stdlib.h>

       //using namespace std;

       const char LEFT=0x4b;

       const char RIGHT=0x4d;

       const char DOWN=0x;

       const char UP=0x;

       const char ESC=0x1b;

       const char ENTER=0x0d;

       const int BX=;

       const int BY=;

       const int SQ=;

       const int SQCL=;

       const int BkCl=BLUE;

       const int SHAP1=2;

       const int SHAP2=3;

       const int SHAP3=4;

       const int SHAP4=5;

       void drawxiao(int &x, int &y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SQCL);

        bar(a+1, b+1, a+SQ-1, b+SQ-1);

       }

       void clearxiao(int &x, int &y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, BkCl);

        bar(a+1, b+1, a+SQ-1, b+SQ-1);

       }

       void goleft(int &x, int &y)

       {

        if(x>0)

        {

        clearxiao(x, y);

        drawxiao(--x, y);

        }

       }

       void goright(int &x, int &y)

       {

        if(x<7)

        {

        clearxiao(x, y);

        drawxiao(++x, y);

        }

       }

       void godown(int &x, int &y)

       {

        if(y<7)

        {

        clearxiao(x, y);

        drawxiao(x, ++y);

        }

       }

       void goup(int &x, int &y)

       {

        if(y>0)

        {

        clearxiao(x, y);

        drawxiao(x, --y);

        }

       }

       void end()

       {

        closegraph();

        exit(1);

       }

       void move(int &x, int &y)

       {

        int n=1;

        drawxiao(x, y);

        while(n)

        switch(getch())

        {

        case LEFT :goleft(x, y); break;

        case RIGHT :goright(x, y); break;

        case DOWN :godown(x, y); break;

        case UP :goup(x, y); break;

        case ENTER :n=0; break;

        case ESC :end();

        }

       }

       void qipan()

       {

        int i;

        setbkcolor(BkCl);

        setfillstyle(1, );

        for(i=0; i<9; i++)

        {

        line(BX, i*SQ+BY, BX+8*SQ, i*SQ+BY);

        line(i*SQ+BX, BY, i*SQ+BX, BY+8*SQ);

        }

       }

       void shap1(int x, int y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SHAP1);

        bar(a+1, b+1, a+SQ-1, b+2*SQ-1);

        bar(a-SQ+1, b+1+SQ, a, b-1+2*SQ);

       }

       void shap2(int x, int y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SHAP2);

        bar(a+1, b+1, a+SQ-1, b+2*SQ-1);

        bar(a+SQ, b+SQ+1, a+2*SQ-1, b+2*SQ-1);

       }

       void shap3(int x, int y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SHAP3);

        bar(a+1, b+1, a+2*SQ-1, b+SQ-1);

        bar(a+SQ+1, b+SQ, a+2*SQ-1, b+2*SQ-1);

       }

       void shap4(int x, int y)

       {

        int a=x*SQ+BX, b=y*SQ+BY;

        setfillstyle(1, SHAP4);

        bar(a+1, b+1, a+2*SQ-1, b+SQ-1);

        bar(a+1, b+SQ, a+SQ-1, b+2*SQ-1);

       }

       void chessboard(int size, int tr, int tc, int dr, int dc)

       {

        if(size>=2)

        {

        size=size/2;

        if(dc<tc+size)//左边半个棋盘

        {

        if(dr<tr+size)//左上

        {

        shap1(tr+size, tc+size-1);

        chessboard(size, tr, tc, dr, dc);

        chessboard(size, tr+size, tc, tr+size, tc+size-1);

        }

        else//左下

        {

        shap2(tr+size-1, tc+size-1);

        chessboard(size, tr, tc, tr+size-1, tc+size-1);

        chessboard(size, tr+size, tc, dr, dc);

        }

        chessboard(size, tr, tc+size, tr+size-1, tc+size);

        chessboard(size, tr+size, tc+size, tr+size, tc+size);

        }

        else//在右边半个棋盘

        {

        if(dr<tr+size)//右上

        {

        shap3(tr+size-1, tc+size-1);

        chessboard(size, tr, tc+size, dr, dc);

        chessboard(size, tr+size, tc+size, tr+size, tc+size);

        }

        else//右下

        {

        shap4(tr+size-1, tc+size-1);

        chessboard(size, tr, tc+size, tr+size-1, tc+size);

        chessboard(size, tr+size, tc+size, dr, dc);

        }

        chessboard(size, tr, tc, tr+size-1, tc+size-1);

        chessboard(size, tr+size, tc, tr+size, tc+size-1);

        }

        }

       }

       int main()

       {

        int driver=DETECT, mode;

        int x=0, y=0;

        initgraph(&driver, &mode, "C:\\JMSOFT\\DRV");

        qipan();//画棋盘

        move(x, y);//移动特殊方格

        chessboard(8, 0, 0, x, y);//覆盖棋盘

        getch();

        return 0;

       }

求VC++源代码,行左右,源码要有详细注释,源码悬赏!源码!!

       哈弗曼压缩

       #include <string.h>

       #include <stdlib.h>

       #include<iostream.h>

       #include<fstream.h>

       #define MaxNodes

       #define MaxBufSize

       #define MaxBits

       struct Node

       {

        unsigned char b;

        int count;

        int parent,lch,rch;

        char bits[MaxBits];

       }Nodes[MaxNodes];

       ifstream ifile;

       ofstream ofile;

       char *fname=new char();

       unsigned char c;

       char buf[MaxBufSize];

       int flen;

       int NodesNum;

       void decompress();

       void compress();

       void charCount();

       void initNodes();

       void creatHuffTree();

       void huffCoding();

       void sortByCount();

       int FindMin(int curlen);

       void comToFile();

       void decomToFile();

       void clearSDS();

       void locChar(int loc,int i);

       void main()

       {

        char choice;

        while(1)

        {

        cout<<" ------------------------------------------------------"<<endl;

        cout<<" # 0.退出 #"<<endl;

        cout<<" # 1.压缩 #"<<endl;

        cout<<" # 2.解压 #"<<endl;

        cout<<" ------------------------------------------------------"<<endl;

        do

        {

        cout<<"请选择:"<<endl;

        cin>>choice;

        if(choice!='0' && choice!='1' && choice!='2')

        {

        cout<<"输入出错!请重新输入!lpc驱动源码"<<endl;

        }

        }

        while(choice!='0' && choice!='1' && choice!='2');

        switch(choice)

        {

        case '0':cout<<"成功退出!"<<endl;exit(0); break;

        case '1':compress();break;

        case '2':decompress();break;

        }

        }

       }

       void compress()

       {

        cout<<"请输入待压缩的文件名:";

        cin>>fname;

        ifile.open(fname,ios::nocreate|ios::binary);

        if(!ifile)

        {

        cout<<"文件不存在!"<<endl;

        return;

        }

        charCount();

        initNodes();

        sortByCount();

        creatHuffTree();

        huffCoding();

        cout<<"请输入压缩后的文件名:";

        cin>>fname;

        ofile.open(fname,ios::binary);

        ofile.write((char*)&NodesNum,sizeof(NodesNum));

        ofile.write((char*)&flen,sizeof(flen));

        for(int i=0;i<NodesNum;i++)

        {

        ofile.write((char*)&Nodes[i].b,sizeof(Nodes[i].b));

        ofile.write((char*)&Nodes[i].count,sizeof(Nodes[i].count));

        }

        comToFile();

        ifile.close();

        ofile.close();

        clearSDS();

       }

       void decompress()

       {

        clearSDS();//不加此句,关闭程序再解压,会提示BUF出错

        cout<<"请输入待解压的文件名:";

        cin>>fname;

        ifile.open(fname,ios::nocreate|ios::binary);

        if(!ifile)

        {

        cout<<"文件不存在!"<<endl;

        return;

        }

        ifile.read((char*)&NodesNum,sizeof(NodesNum));

        ifile.read((char*)&flen,sizeof(flen));

        cout<<NodesNum<<" "<<flen<<endl;

        for(int i=0;i<NodesNum;i++)

        {

        ifile.read((char*)&Nodes[i].b,sizeof(Nodes[i].b));

        ifile.read((char*)&Nodes[i].count,sizeof(Nodes[i].count));

        }

        creatHuffTree();

        cout<<"请输入解压后的文件名:";

        cin>>fname;

        ofile.open(fname);

        decomToFile();

        ifile.close();

        ofile.close();

        clearSDS();

       }

       void clearSDS()//SDS is short for Shared Data Structure

       {

        NodesNum=flen=c=0;

        for(int i=0;i<MaxNodes;i++)

        {

        Nodes[i].b=0;

        Nodes[i].count=0;

        Nodes[i].parent=Nodes[i].lch=Nodes[i].rch=-1;

        buf[i]=0;

        for(int j=0;j<MaxBits;j++) Nodes[i].bits[j]=0;

        }

       }

       void comToFile()

       {

        ifile.clear();

        ifile.seekg(0);

        char tbuf[]="";

        while(ifile.get(c))

        {

        for(int i=0;i<NodesNum;i++)

        {

        if(c==Nodes[i].b)

        {

        strcat(buf,Nodes[i].bits);

        break;

        }

        }

        while(strlen(buf)>=8)

        {

        memcpy(tbuf,buf,8);

        c=(char)strtol (tbuf,NULL,2);

        memmove(buf,buf+8,strlen(buf)+1-8);

        ofile.write((char*)&c,sizeof(c));

        }

        }

        if(strlen(buf)>0)//剩余

        {

        strcat(buf,"");//最多接7个0即可

        memcpy(tbuf,buf,8);

        c=(char)strtol (tbuf,NULL,2);

        ofile.write((char*)&c,sizeof(c));

        }

       }

       void decomToFile()

       {

        while (ifile.get(c)) //while(!ifile.eof()),老样子

        { //ifile.read((char*)&c,sizeof(c));

        char tbuf[]="";

        char rbuf[]="";

        itoa((int)c,rbuf,2);

        strcpy(tbuf+8-strlen(rbuf),rbuf);

        memmove(buf+strlen(buf),tbuf,8);//末尾会多一个tbuf,无碍

        while(strlen(buf)>&&flen>0) locChar(2*NodesNum-2,0);

        }

        while(strlen(buf)>0&&flen>0) locChar(2*NodesNum-2,0);

       }

       void locChar(int loc,int i)//递归得出字符

       {

        if((Nodes[loc].lch==-1)&&(Nodes[loc].rch==-1))

        {

        ofile.write((char*)&Nodes[loc].b,sizeof(Nodes[loc].b));

        flen--;

        //memmove(buf,buf+i,strlen(buf)-i+1);

        //memmove(buf,buf+i,-i);//Very improtant code modified at here!

        memcpy(buf,buf+i,-i);//Same result Like the line Above!Maybe not effective

        return;

        }

        else

        {

        switch( buf[i])

        {

        case '0': loc=Nodes[loc].lch;break;

        case '1': loc=Nodes[loc].rch;break;

        default: cout<<"buf中出错!"<<endl;break;

        }

        i++;

        locChar(loc,i);

        }

       }

       void charCount()//统计字符出现次数

       {

        while(ifile.get(c))

        {

        Nodes[c].count++;

        flen++;//得出文件长度

        }

       }

       void initNodes()//初始化

       {

        for(int i=0;i<MaxNodes;i++)

        {

        if(Nodes[i].count!=0)

        Nodes[i].b=(unsigned char)i;

        else Nodes[i].b=0;

        Nodes[i].parent=Nodes[i].lch=Nodes[i].rch=-1;

        }

       }

       void creatHuffTree()//建树

       {

        int t=2*NodesNum-1;

        for(int i=NodesNum;i<t;i++)

        {

        int loc=FindMin(i);

        Nodes[i].count=Nodes[loc].count;

        Nodes[loc].parent=i;

        Nodes[i].lch=loc;

        loc=FindMin(i);

        Nodes[i].count+=Nodes[loc].count;

        Nodes[loc].parent=i;

        Nodes[i].rch=loc;

        }

        Nodes[t-1].parent=-1;

       }

       int FindMin(int curlen)//找没有父结点,且Count最小的节点

       {

        int loc=curlen-1;//找不到,返回最后一个,最后一个不在查找范围

        for(int i=0;i<curlen;i++)

        {

        if(Nodes[i].count<=Nodes[loc].count)

        {

        if(Nodes[i].parent==-1)

        loc=i;

        }

        }

        return loc;

       }

       void huffCoding()//根据树来编码

       {

        int Pid,asio http 源码t;//Parent id

        for(int i=0;i<NodesNum;i++)

        {

        t=i;

        while(Nodes[t].parent!=-1)

        {

        Pid=Nodes[t].parent;

        if(Nodes[Pid].lch==t) //置左分支编码0

        { //函数原型:void *memmove( void *dest, const void *src, size_t count );

        memmove(Nodes[i].bits+1,Nodes[i].bits,strlen(Nodes[i].bits)+1);

        Nodes[i].bits[0]='0';

        }

        else //置右分支编码1

        {

        memmove(Nodes[i].bits+1,Nodes[i].bits,strlen(Nodes[i].bits)+1);

        Nodes[i].bits[0]='1';

        }

        t=Pid;

        }

        }

       }

       //降序

       void sortByCount()

       {

        Node tempNode;

        for(int i=0;i<MaxNodes;i++)

        for(int j=MaxNodes-1;j>i;j--)

        {

        if(Nodes[i].count<Nodes[j].count)

        {

        tempNode=Nodes[i];

        Nodes[i]=Nodes[j];

        Nodes[j]=tempNode;

        }

        }

        for(i=0;i<MaxNodes;i++) if(Nodes[i].count==0) break;

        NodesNum=i;//关键得出有效叶子结点个数NodesNum

       }

C++游戏开发,超简单的入门项目,行代码搞定开心消消乐

       C++游戏开发入门:行代码轻松实现开心消消乐

       开发游戏并不需要高深技术,即使是初学者也能上手。本文将带你通过一个简单的C++项目,一步步了解游戏开发过程。

       源代码可在本文底部获取,对代码有任何建议,欢迎加入我们的学习交流群进行讨论。

       连连看的双喜源码网开发首先需要确定数据结构。游戏中的矩阵界面用二维数组表示,方便快速访问每个格子的数据,用数字标记不同的。例如,矩阵初始化时,8种不同随机分布,最外圈为空。

       接下来,我们通过std::random_shuffle函数生成初始矩阵。xp扫雷源码一旦数据布局完成,就要设计游戏玩法。关键在于连接判断,通过总结游戏规则,我们发现有不转折、转折一次和转折两次三种连线类型。最简单的是不转折连接,通过横向和纵向检查实现;转折一次则涉及两个红点的连接,找到这两个点即可;转折两次的逻辑更为复杂,但本质上也是找到两个可以无转折连接的点,然后检查它们之间的路径。

       最后,实现连线功能,清除已点击的格子,整个连连看的核心逻辑就完成了。通过这个行左右的代码,你也能动手制作自己的开心消消乐游戏。快来尝试吧!

求一个c++小程序源代码,要求行以上,给分,能用再加

       //=================================[说明]=======================================*/

       //学生成绩管理

       //文件名:main.cpp

       //------!!!!!!---------BOF-[程序代码开始]-------------------

       #include<iostream>

       #include<string>

       using namespace std;

       //=============<开始定义结构体>===================================================

       struct combox

       {

        int num;

        int mark;

        string name;

        combox *next;

       };

       //=============<结束定义结构体>===================================================

       //=============<开始定义Commonbox类>==============================================

       //-----类体开始------------------------

       class Commonbox

       {

       private:

        combox *head;

        void Swap(combox *,combox *); //交换两个combox变量的数据域

        void Print(combox *); //输出一combox指定的记录

        combox *Find(int); //查找条例条件的记录,并返回该记录的指针

       public:

        Commonbox()

        {

        head=NULL;

        }

        int ListCount(); //统计当前链表的记录总数,返回一个整数

        void AddItem(int num, string name, int mark); //添加一条记录到表尾

        void RemoveItem(int); //删除一条指定的记录

        void List(); //列出当前链表中的所有记录

        void Sort(); //对当前链表进行排序

        void Search(int); //在当前链表查找指定记录并输出

        float Average(); //计算平均成绩

       };

       //-----类体结束------------------------

       //-----类成员函数开始----------------------------------

       int Commonbox::ListCount() //统计当前链表的记录总数,返回一个整数

       {

        if (! head)return 0;

        combox *p=head;

        int n=0;

        while (p)

        {

        n++;

        p=p->next;

        }

        return n;

       }

       void Commonbox::AddItem(int num, string name, int mark) //添加一条记录到表尾

       {

        if (! head)

        {

        head=new combox;

        head->mark=mark;

        head->num=num;

        head->name=name;

        head->next=NULL;

        return;

        }

        combox *t=head;

        while (t && t->num!=num)

        t=t->next;

        if (t)

        {

        cout<<"操作失败:学号为"<<num<<"的记录已经存在!"<<endl;

        return;

        }

        combox *p=head;

        while (p->next)p=p->next;

        combox *p1=new combox;

        p1->num=num;

        p1->mark=mark;

        p1->name=name;

        p1->next=NULL;

        p->next=p1;

        return;

       }

       void Commonbox::RemoveItem(int num) //删除一条指定的记录

       {

        combox *t=Find(num);

        if (! t)return;

        combox *p=head;

       //如果要删除的记录位于表头

        if (head==t)

        {

        head=head->next;

        delete p;

        cout <<"成功删除学号为 "<<num<<" 的记录!"<<endl<<endl;

        return;

        }

        while (p->next!=t)p=p->next;

        combox *p1=p->next;

        p->next=p1->next;

        delete p1;

        cout <<"成功删除学号为 "<<num<<" 的记录!"<<endl<<endl;

        return;

       }

       void Commonbox::Print(combox *p) //输出一combox指定的记录

       {

        cout<<p->num<<"\t\t";

        cout<<p->name<<"\t\t";

        cout<<p->mark<<endl;

        return;

       }

       void Commonbox::List() //列出当前链表中的所有记录

       {

        if (ListCount()==0)

        {

        cout <<"错误:当前的列表为空!"<<endl;

        return;

        }

        combox *p=head;

        cout<<"共有记录:"<<ListCount()<<endl;

        cout<<"学号\t\t姓名\t\t分数"<<endl;

        while (p)

        {

        Print(p);

        p=p->next;

        }

        cout <<endl;

        return;

       }

       void Commonbox::Search(int num) //在当前链表查找指定记录并输出

       {

        cout <<"Searching...."<<endl;

        combox *p=Find(num);

        if (p)

        {

        cout<<"学号\t\t姓名\t\t分数"<<endl;

        Print(p);

        }

        cout <<endl;

       }

       combox *Commonbox::Find(int num)

       {

        if (ListCount()==0)

        {

        cout <<"错误:当前的列表为空!"<<endl;

        return NULL;

        }

        combox *p=head;

        while (p)

        {

        if (p->num==num)break;

        p=p->next;

        }

        if (! p)

        {

        cout <<"错误:找不到该记录!\n";

        return NULL;

        }

        return p;

       }

       void Commonbox::Swap(combox *p1, combox *p2) //交换两个combox变量的数据域

       {

        combox *temp=new combox;

        temp->num=p1->num;

        temp->mark=p1->mark;

        temp->name=p1->name;

        p1->num=p2->num;

        p1->mark=p2->mark;

        p1->name=p2->name;

        p2->num=temp->num;

        p2->mark=temp->mark;

        p2->name=temp->name;

       }

       void Commonbox::Sort() //对当前链表进行排序

       {

        cout <<"Sorting..."<<endl;

        if (ListCount()<2) return;

        combox *temp=NULL,*p=NULL,*p1=NULL,*p2=NULL,*k=NULL;

        int n=ListCount(),i,j;

        p=head;

        for (i=1;i<n;i++)

        {

        k=p;

        p1=p->next;

        for (j=0;j<n-i;j++)

        {

        if (k->num > p1->num)

        {

        k=p1;

        }

        p1=p1->next;

        }

        if (p!=k)Swap(k,p);

        p=p->next;

        }

        cout <<"Complete successfully!"<<endl<<endl;

        return;

       }

       float Commonbox::Average() //计算平均成绩

       {

        if (ListCount()==0)

        {

        cout <<"错误:当前的列表为空!"<<endl;

        return -1;

        }

        int sum=0,n=0;

        combox *p=head;

        while (p)

        {

        sum += p->mark;

        p=p->next;

        n++;

        }

        return float(sum)/n;

       }

       //-----类成员函数结束----------------------------------

       //=============<结束定义Commonbox类>==============================================

       Commonbox student; //定义全局变量

       int Menu()

       {

        cout <<"===========[主选单:]==========="<<endl;

        int n=1,select=-1;

        cout <<n++<<".输入学生成绩;"<<endl<<endl;

        cout <<n++<<".按学号排序;"<<endl<<endl;

        cout <<n++<<".按学号查找记录;"<<endl<<endl;

        cout <<n++<<".删除由学号指定的记录;"<<endl<<endl;

        cout <<n++<<".列出所有记录;"<<endl<<endl;

        cout <<n++<<".计算平均成绩;"<<endl<<endl;

        cout <<"0.退出;"<<endl<<endl;

        cout <<"[请选择(输入相应数字)]:";

        cin >>select;

        return select;

       }

       char Exit() //返回一个字符患,用于确认退出

       {

        char s;

        cout<<"确定要退出程序吗?[Y/N]:";

        cin >>s;

        return s;

       }

       void Input(int *num, string *name, int *mark) //输入学生信息

       {

        cout <<"请输入 学号 姓名 分数:";

        cin >>*num;

        if (*num==-1)return;

        cin >>*name>>*mark;

        return;

       }

       void AddNew() //增加记录

       {

        int num=0,mark=0;

        string name="";

        cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl;

        Input(&num, &name, &mark);

        while (num!=-1)

        {

        student.AddItem(num,name,mark);

        Input(&num, &name, &mark);

        }

        return;

       }

       void DoFind() //按学号查找

       {

        int num;

        cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl;

        do

        {

        cout <<"请输入要查找的学生的学号: ";

        cin>>num;

        if (num==-1)continue;

        student.Search(num);

        }

        while (num!=-1);

        return;

       }

       void DoDelete() //删除记录

       {

        cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl;

        int num;

        do

        {

        cout <<"请输入要删除的学生的学号:";

        cin>>num;

        if (num==-1)continue;

        student.RemoveItem(num);

        }

        while (num!=-1);

        return;

       }

       void ShowAverage() //输出平均数

       {

        float avr=student.Average();

        if (avr>0)

        {

        cout<<"共有记录:\t"<<student.ListCount()<<endl<<endl;

        cout<<"平均成绩:\t"<<avr<<endl<<endl;

        }

        return;

       }

       //-------