用C语言实现艺术清屏 vc++不行

合集下载

c语言清屏函数

c语言清屏函数

C语言清屏函数是C语言中最常用的函数之一,它可以让用户清除屏幕上的文字和图像,以便重新开始输入新的内容。

它可以在任何C语言程序中使用,是一个非常实用的函数。

C语言清屏函数的用途很多,它可以用来清除程序运行过程中产生的多余信息,可以用来清除屏幕上的提示信息,也可以用来清除游戏中的动画和文字图像。

在某些情况下,使用清屏函数可以让程序的运行变得更加顺畅,比如在程序运行过程中,如果屏幕上有太多的文字和图像,就可以用清屏函数清除它们,以便空出屏幕空间,让程序运行更有效率。

C语言清屏函数的实现方法也很简单,它只需要一行代码就可以完成。

以Windows系统为例,只需要在程序中调用system("cls")函数,就可以实现清屏功能。

这意味着,只要在程序中添加这一行代码,就可以在合适的地方插入清屏函数,以实现清屏功能。

使用C语言清屏函数可以大大提高程序的运行效率,同时也可以改善用户体验。

在使用C语言程序的过程中,使用清屏函数可以更快地完成任务,而且用户也可以清晰地看到运行结果,从而更容易理解程序的运行逻辑。

总之,C语言清屏函数是一个非常实用的函数,它可以提高程序的运行效率,改善用户体验,同时又能够很容易地实现。

它是C语言中最常用的函数之一,也是掌握C语言编程技术的重要组成部分。

利用C语言实现计算机图像处理的方法

利用C语言实现计算机图像处理的方法

利用C语言实现计算机图像处理的方法利用C语言实现计算机图像处理的方法利用C语言如何实现计算机图像处理?以下是店铺为大家分享的利用C语言实现计算机图像处理的方法,一起来看看吧。

1.图像平移图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。

假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0 +dx, y0 + dy),右下角坐标为(x1 + dx, y1 + dy)。

坐标平移变换公式为:x′ = x + dxy′ = y + dy在屏幕上实现图像的移动分为四个步骤:⑴ 保存原图像到缓冲区。

⑵ 擦除原图像。

⑶ 计算平移后的新坐标。

⑷ 在新的坐标位置重新显示原图像。

其中,擦除原图像的方法与图形变换中擦除原图形的方法一致,在实现中仍采用XOR异或方式画图擦除原图像。

对于新坐标值的计算还需要考虑边界情况,不要在图像平移后超出允许的屏幕范围。

此外,如果采用C函数getimage()和putimage()来保存和恢复图像,则图像的大小不能超过64K。

2.图像颠倒图像颠倒是指把定义好的图像区域上下翻转地显示在屏幕上。

分析图像颠倒的过程,可发现每行的图像信息都保持不变,而只是改变了行的顺序,将第一行与最后的第n行相互交换,第二行与第n -1行交换……,依此类推,从而实现了图像的颠倒。

只需采用按行交换的方式,即可方便地修改缓冲区内容,实现图像的颠倒。

基本步骤如下:(1) 用getimage()保存原图像,并擦除原图像。

(2) 计算图像的高度,即行数height;计算图像宽度width;计算保存一行图像信息height = bottom - top + 1;width = right - left + 1;linebytes = (width + 7) / 8 * 4;(3)利用行交换缓冲区linebuf在图像内存缓冲区中进行信息交换,即把第一行与最末行交换,第2行与第n-1行交换……,依此类推,直至全部交换完毕。

用c语言设计一个多功能计算器

用c语言设计一个多功能计算器

用C语言设计一个多功能计算器实现功能:1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。

依次输入第一个运算数、运算符(+,-,*,/),第二个运算数,然后输出结果。

结果可以作为下一个运算的第一运算数。

按‘C’清屏,按‘X’退出。

例如:输入:2+5输出:72)实现单运算符表达式计算的功能。

输入的操作数可以包含整数或浮点数。

如果遇到错误的表达式,应输出错误提示信息。

输入表达式如下:例如:输入:2+5输出:7目录摘要 (1)第一章引言 (3)1.1 计算器概述 (3)第二章设计任务及要求 (5)2.1 设计任务 (5)2.2 设计要求 (6)第三章计算器硬件设计 (7)3.1 方案说明 (7)3.2 设计单片机主体电路图 (8)第四章软件设计 (9)4.1 模块介绍 (9)4.2 程序流程图 (10)4.3 程序部分 (11)第五章总结 (16)参考文献 (17)摘要:[目录]一、课程设计题目及任务要求二、设计思路三、部分程序介绍四、程序框图五、汇编程序六、参考资料[原文]一、课程设计题目及任务要求请设计十进制加减法计算器。

要求能(不同时)显示3位输入和4位输出。

二、设计思路1、操作显示设备显示设备采用八片七段共阴极LED显示器,共设置16 个键,其中数字键0~9 共十个,接下来依次是加号键、减号键、等于号、清除键。

操作设备是两行八列共16键的简单键盘。

第一行从左至右分别为0、1、2、3、4、5、6、7,第二行分别为8、9、A(+)、B(-)、C(=)、D(清除键)、E (清除键)、F(清除键),“清除键”表示程序初始化,为下次输入准备。

2、程序实现功能(1)十进制加减法计算:输入范围为(1~999),该程序输入两个定点数,每个3位,输出4位;A为加,B为减,C为等于,输出为四位计算结果。

数据输入采用规范化输入,即必须输入3个数才算完成一个运算数的输入,两个运算数之间输入运算符A或者B,输入完成按C显示计算结果;(2)计算机复位功能:DEF均为清零重启,任何时候按下DEF中一个将重新开始;三、部分程序介绍(1)主程序(START)程序开始运行初始化程序,设置输入输出口PA、PB、PC,扫描键盘,输入两个待求数据和运算符,存入寄存器,等待输入等号同时显示第二个数,运行计算程序,并将计算结果分离,输出到显示器;(2)读键子程序(RD_KB)程序分别扫描两行键盘,若有键按下则通过移位的方式计算键码;若无键按下,则将键码缓存设置为10H,判断后进行相应的跳转。

c语言小游戏

c语言小游戏
settextstyle(0,0,6);
outtextxy(50,200,"Let's play!!");
sleep(1);
}
/*开机动画*/
kjdh()
{
setbkcolor(1);
cleardevice();
setcolor(13);
}
n++;
}
}
/*目标小旗*/
mbxq(int x,int y)
{
setlinestyle(0,0,1);
setcolor(4);
moveto(x,y);
lineto(x,y-20);
lineto(250,400);
lineto(300,450);
lineto(580,200);
lineto(640,200);
setcolor(3);
rectangle(210,370,240,400);
rectangle(610,170,640,200);
lineto(x+10,y-20);
lineto(x,y-10);
}
/*地图1*/
map1()
{
setlinestyle(0,0,3);
setbkcolor(0);
setcolor(2);
moveto(50,480);
lineto(200,400);
{
x=random(640);
y=random(480);
z=random(16);
putpixel(x,y,z);
}
}
/*画旗*/

C语言大作业

C语言大作业

#include<stdio.h>#include<string.h>#include<stdlib.h> //exit()的头文件#include<conio.h> //屏幕操作函数#define N 100 //控制学生记录的容量#define M 3 //控制课程数#define LEN 9void menu();void browse();typedef struct student //定义学生结构体{char num[11]; //把学号定义成字符数组类型,一来学号可能比较长,二来可直接用strcmp来比较,确保无雷同char name[20];int score[M];double ave;}STU;STU stu[N]; //定义一个外部学生结构体变量/*****以写的方式保存数据到文件的函数【原数据将被覆盖】*****/int save(int n) //保存函数,保存n个记录{FILE *fp;int i;if((fp=fopen("zhouhao.txt","wb"))==NULL)//以二进制写的方式打开,在此前的记录被覆盖{printf("无法打开文件!\n任意键退出程序... ...\n");getch(); //预防闪屏return 0;}for(i=0;i<n;i++)if(stu[i].ave!=0) //在后面的del()函数中通过将stu[i].ave=0来表示该记录被删除了if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)//开始写入文件printf("文件写入发生错误\n");fclose(fp);return 0; // 注意下这个地方,我只是随便赋的值,只是为了消除一个警告}/********【拷贝函数单纯的将一个文件拷贝到另一个文件中】*******/void copy(){char outfile[20],infile[10]; //保存源文件名和目标文件名FILE *sfp,*tfp; //定义指向源文件(sourcefile)和目标文件(targetfile)的指针STU *p=NULL; //定义临时指针,暂存读出的记录system("CLS"); //清屏;printf("请输入需要被复制的文件名(默认数据处理在zhouhao.txt中):\n");scanf("%s",infile); //输入源文件名if((sfp=fopen(infile,"rb"))==NULL)//以二进制方式打开源文件{printf("无法打开文件!\n任意键退出程序... ...\n");//显示不能打开文件的信息getch();return;}printf("另存为...,比如:hao.txt:\n"); //提示输入目标文件名scanf("%s",outfile); //输入目标文件名if((tfp=fopen(outfile,"wb"))==NULL)//以二进制写方式打开目标文件{printf("无法打开文件!\n\n");//显示不能打开文件的信息getch();return; //退出程序,同exit(0)}while(!feof(sfp)) //读文件直到文件尾fputc(fgetc(sfp),tfp); //从stp复制文件到tfpfclose(sfp); //关闭源文件fclose(tfp); //关闭目标文件printf("\n复制成功!!!\n"); //显示拷贝成功信息printf("\n输入任意键返回主菜单");getch();menu();}/***【加载记录或可以计算记录个数的函数】***/int load(){FILE *fp;int i;if((fp=fopen("zhouhao.txt","rb"))==NULL) //以二进制读的方式打开{printf("无法打开文件!\n任意键退出程序... ...\n"); //显示不能打开文件的信息getch(); //预防闪屏return 0;}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct student),1,fp); //将文件数据读入学生结构体fclose(fp);return(i-1); //返回目前总的记录个数,注意是i-1}/***【一个任务结束时的选择浏览还是返回的函数】***/void printf_back(){int w;printf("\n\t操作成功!^_^\n");printf("\t接着干什么?\n\t1).立刻浏览全部数据\t2).返回:[ ]\b\b");scanf("%d",&w);if(w==1)browse();elsemenu();}/***【显示数据结构项目函数】***/void printf_face(){printf("\n\t学号\t姓名\t\t 数学\t 英语C语言平均分\n"); //显示行头}/***【求平均分函数】因为后面在修改数据中要专门重算平均数***/void average(int i){int j,sum;for(sum=0,j=0;j<M;j++)sum+=stu[i].score[j];stu[i].ave=sum*1.0/M;}/*******【学号长度处理函数】********/void no_deal(int i){int j,l,a;l=strlen(stu[i].num);if(l<LEN){for(j=LEN-l,a=0;j<LEN;j++){stu[i].num[j]=stu[i].num[a++];}stu[i].num[i]='\0';for(a=0;a<LEN-l;a++)stu[i].num[a]='0';}if(l>LEN)stu[i].num[l]='\0';}/*******【学号输入函数】*******/int no_input(int i,int n) //i表示第i个学生信息,n表示比较到第n个学生{int j,k,w1;do{w1=0;printf("学号:\t\t 【%d位,低于%d位前面补0,长的截尾处理!】\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b",LEN,LEN);scanf("%s",stu[i].num);no_deal(i);for(j=0;stu[i].num[j]!='\0';j++) //学号输入函数,作了严格的规定if(stu[i].num[j]<'0' || stu[i].num[j]>'9') //判断学号是否为数字{puts("别开玩笑!只能输入0——9.好吧,再给你一次机会,别让我失望!\n");w1=1; //这个w1=1,表示学号中输入了不是数字的字符break;}if(w1!=1) //w1!=1,确保验证时学号已经是由0-9的数组成的for(k=0;k<n;k++) //比较到第n个学生if(k!=i && strcmp(stu[k].num,stu[i].num)==0)//判断学号是否有雷同{puts("已经存在啦!重来一次!\n");w1=1; //w1=1,表示学号存在雷同break;}}while(w1==1); //总之,w1=1代表学号输入又问题,要重新输入return 0;}/***【分数输入函数】***/int score_input(int i){int j;for(j=0;j<M;j++){printf("分数%d:",j+1);scanf("%d",&stu[i].score[j]);}return 0;}/***【输入一整条记录的函数】***/void input(int i){no_input(i,i); //调用输入学号的函数printf("姓名:");scanf("%s",stu[i].name); //输入姓名score_input(i); //输入分数average(i); //计算平均分}/***【显示一整条记录的函数】***/void printf_one(int i){int j;printf("%11s %-14s",stu[i].num,stu[i].name); //输出学号和姓名for(j=0;j<M;j++)printf("%9d",stu[i].score[j]); //输出分数printf(" %9.2f\n",stu[i].ave); //输出平均分}/*【显示----函数顶部】*/void topput___(){printf("\n 记录浏览");printf("\n--------------------------------------------------------------------------------\n");}/*【显示----函数底部】*/void puts___(){printf("\n\n--------------------------------------------------------------------------------\n");}/*【修改记录函数】*/int modify_data(int i,int n) //修改数据函数,修改第i个记录{int c,w1;do{puts("\n你想修改什么: =>\n\n1).学号\t2).姓名\t3).数学\t4).英语\t5).C语言\n6).重输所有分数\t7).重输所有记录\t8).取消并返回");printf("想好就输,快:[ ]\b\b");scanf("%d",&c);if(c>8 || c<1)puts("\n选择失误!严肃点,再来一次!");//判断选择是否错误,若是则重新选择getchar(); //当输入时字符时可以防止死循环,觉得这个很重要,老师也没提过}}while(c>8 || c<1);do{switch(c) //选择要修改的项目{case 1:no_input(i,n);break;case 2:printf("姓名:");scanf("%s",stu[i].name);break;//调用学号输入函数case 3:printf("数学:");scanf("%d",&stu[i].score[0]);break;case 4:printf("英语:");scanf("%d",&stu[i].score[1]);break;case 5:printf("C语言:");scanf("%d",&stu[i].score[2]);break;case 6:score_input(i);break;case 7:input(i);break;case 8:menu(); //break; 在最后,有没有无所谓}if(c>2 && c<7)average(i); //由于3,4,5,6项改变的同时也把平均分动了,必须修正一下puts("\n现在:\n");printf_face();printf_one(i); //显示修改后的数据printf("\n你确定你目前的决定?\n\n\t1).当然啦! \t2).不不不,重修改一下!\n\t3).算了还是走吧,别保存了![ ]\b\b");//是否确定scanf("%d",&w1); //选择2则表示这次修改错误要重新修改}while(w1==2);return w1; //返回控制值}/* * * * * * * * * * * * 输入模块* * * * * * * * * * * */void enter(){int i,n;system("CLS"); //引用外部清屏,clrscr()在VC++中不好用printf("输入你要记录的学生数吧:(1~%d)?\t['0'返回]:\n",N);scanf("%d",&n); //要输入的计入个数if(n==0)menu(); //输0 的时候返回else{printf("\n\t好的!开始输入...\n");for(i=0;i<n;i++)printf("\n请输入第%d个的记录.\n",i+1);input(i); //调用输入函数}if(i!=0)save(n); //调用保存函数printf_back();} //一个任务结束时让用户选择是浏览还是返回}/*******************************追加模块*************************************/ int add(){int i,n,m,k;FILE *fp;system("CLS");n=load(); //获得总记录的个数,并加载记录printf("你需要加入多少学生:(0 ~ %d)?:",N-n);scanf("%d",&m); //输入要追加记录的个数if(m==0)menu();else{k=m+n;for(i=n;i<k;i++){printf("\n请输入第%d个的记录.\n",i-n+1);input(i); //调用输入函数}if((fp=fopen("zhouhao.txt","ab"))==NULL)//以ab方式打开,追加保存{printf("文件打不开!\n"); //显示不能打开文件的信息getch();return 0;}for(i=n;i<k;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件写入错误!\n");fclose(fp);printf_back(); //一个任务结束时让用户选择是浏览还是返回}return 0;}/***************************** 修改模块*************************/{struct student s;int i,n,k,w0=0,w1,w2=0;n=load(); //获得总记录的个数,并加载记录do{system("CLS");k=-1;/*****给用户看所有的记录以便用户确认要修改的记录*****/topput___();printf_face();for(i=0;i<n;i++)printf_one(i); //调用显示一个记录的函数puts___();/*****给用户看所有的记录以便用户确认要修改的记录*****/do{printf("\n\n输入你要修改记录的学号! 学号. :\t【'Ctrl-z' 退出】");if(scanf("%s",s.num)!=1) //输入要修改数据的学号menu();for(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.num,stu[i].num)==0){k=i; //找到要修改的记录s=stu[i]; //把stu[i](即把当次修改的学生记录)备份给s,以便用户反悔时恢复}if(k==-1)printf("\n\n不存在! 请重新输入~");}while(k==-1); //当K=-1表示没有找到printf_face(); //调用显示数据结构项目函数printf_one(k); //显示查找的记录w1=modify_data(k,n); //修改学生记录并且返回保存控制值w1,w1=1则表示用户已确认修改[w1只能是1或3(1代表确认修改,3代表不保存返回)] if(w1==1) //w1=1代表确认修改{printf("\n操作成功!\n\n决定修改别的吗?\n\n\t1).是的\t2).不!保存并返回\t[ ]\b\b");scanf("%d",&w0);w2=1; //来控制保存,使w2=1是标记已有过修改}else //此时w1=3,表示不保存返回{w0=0;if(w2==1) //w2=1表示已有过修改stu[k]=s; //反悔了,将修改前的值复原}if(w0!=1 && w2==1) //w0不等于1则表示正常返回,w2=1表示在此之前有修改过,这时就保存用户已确认修改的并返回save(n); //w2不等于1表示在此之前没有修改过,而又反悔这次修改,则不保存,保存时覆盖原先数据}while(w0==1);menu(); //返回主菜单}/*******************************删除模块*************************/void del(){struct student s;int i,k,n,c,w0=1;system("CLS");n=load(); //获得总记录的个数,并加载记录do{system("CLS");k=-1;/*给用户看全部记录以便确认要删除的记录*/topput___();printf_face(); //调用显示数据结构项目的函数for(i=0;i<n;i++)if(stu[i].ave!=0)printf_one(i); //显示所有数据puts___();/*给用户看全部记录以便确认要删除的记录*/do //输入要删除记录的学号,并寻找{printf("\n\n输入你要删除记录的学号! NO.:\t【'Ctrl-z' 退出】");if(scanf("%s",s.num)!=1)menu();for(i=0;i<n;i++)if(strcmp(s.num,stu[i].num)==0){k=i; //重赋k值表示找到寻找的数据s=stu[i];}if(k==-1) //k=-1表示没找到相同的printf("\n\n不存在! 请重新输入!");}while(k==-1);puts("\n");printf_face();printf_one(k); //显示要删除的记录printf("\n你确定?\n\t1).确定2).不,我要删除其他的3).不保存退出[ ]\b\b");//给用户一次反悔的机会scanf("%d",&c);if(c==1){stu[k].ave=0; //这是很重要的,通过stu[k].ave=0,通知保存的时候忽略掉,不进行保存printf("\n\n操作成功!\n\n要继续删数据吗?\n\t1).继续2).返回主菜单\t[ ]\b\b");scanf("%d",&w0);}if(c==3)w0=0; //w0=0不删除直接返回if(w0!=0 && c!=3) //只有当确认删除后返回才保存,不删除直接返回则不保存,且不保存在此之前删除过的记录save(n);}while(w0==1);menu();}/**************************************浏览(全部)模块*****************************************/void browse(){int i,n;n=load(); //获得总记录的个数,并加载记录system("CLS");topput___();printf_face(); //调用显示数据结构项目的函数for(i=0;i<n;i++) //循环输出所有学生的信息printf_one(i);puts___();printf("\n\t 这里一共有%d 个记录!\n",n);printf("\n\t 输入任意键返回主菜单... ...");getch();menu();}/*******************************查找模块************************************/ void search(){int i,n,k,w1=1,w2,w3,w4;struct student s;system("CLS");n=load(); //获得总记录的个数,并加载记录do{do{k=-1;printf("\n\n输入你要查找记录的主人公! 姓名:");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,stu[i].name)==0){k=i;printf_one(k); //考虑到同名的情况,可能输出不只一个,把所有的记录都查找一下}if(k==-1) //k=-1表示没找到相同的{printf("\n\n不存在! 请重新输入!");printf("\n\n要继续吗?\n\t1).继续\t 2).不,我要返回\t[ ]\b\b");scanf("%d",&w1);}}while(k==-1 && w1!=2); //k=-1表示没找到要查找的对象,w1!=2表示继续查找w4=w3=0; //初始化w4=w3=0if(k!=-1){printf("\n\n接着干什么?\n\t1).再次查找2).修改3).删除4).返回主菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 2:w3=modify_data(k,n);break;case 3:{printf("\n\n你确定了吗?\n\t1).确定2).不,还是返回吧! \t[ ]\b\b");scanf("%d",&w4);if(w4==1) //w4=1,表示确定删除stu[k].ave=0; //表示删除,当stu[k].ave=0,在save()中就不保存该数据,表示删除break;}}if(w3==1 || w4==1){save(n);printf("\n\n操作成功!");printf("\n\n接着干什么?\n\t1).再次查找2).返回[ ]\b\b");scanf("%d",&w2);}}}while(w2==1);menu();}/*******************************排序模块(按平均成绩)*********************************/void order(){int i,j,k,n;struct student s;system("CLS"); //清屏n=load(); //获得总记录的个数,并加载记录for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(stu[j].ave>stu[k].ave) //选择法排序,按平均分降序k=j;s=stu[i];stu[i]=stu[k];stu[k]=s;}save(n);puts("\n\n");printf_back();}/**********************************主界面************************************/ void menu(){int n,w1;do{system("CLS");;puts("\n\t\t\t\t学生信息管理系统\n");puts("\t ------- 周浩\n");puts("\t ************************ 主菜单*********************\n\n");puts("\t\t\t 1.初始数据输入(会覆盖已有数据)");puts("\t\t\t 2.可选择个数的数据添加");puts("\t\t\t 3.数据部分修改");puts("\t\t\t 4.数据部分删除");puts("\t\t\t 5.数据查看与浏览");puts("\t\t\t 6.数据查找(按姓名)");puts("\t\t\t 7.数据排序(按平均分降序)");puts("\t\t\t 8.已有文件文件拷贝");puts("\t\t\t 0.退出系统");puts("\n\n\t ****************************************************\n");printf("\t输入你的选择(0~8):[ ]\b\b");scanf("%d",&n);if(n<0 || n>8){w1=1;printf("\t你的选择不再0 到8 之间,按任意键重新输入!");getch();}elsew1=0;}while(w1==1);switch(n){case 1:enter();break;case 2:add();break;case 3:modify();break;case 4:del();break;case 5:browse();break;case 6:search();break;case 7:order();break;case 8:copy();break;case 0:exit(0);break;}}/************************************主函数***************************************/void main(){menu();}。

C语言实训报告

C语言实训报告

C语言实训报告姓名:单体凯班级: 信息管理121 学号: 201206021112指导老师:丁晓娣实训日期:16周实训地点:科技楼305实训目的:1、进一步掌握和利用C语言进行程设计的能力。

2、进一步理解和运用结构化程设计的思想和方法。

3、初步掌握开发一个小型实用系统的基本方法。

4、学会调试一个较长程序的基本方法。

5、学会利用流程图或N-S图表示算法。

6、掌握书写程设计开发文档的能力实训题目1:、实现学生成绩管理系统实训要求:a、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息.b、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息.c、新生插入:按照该生的学号,将此生的信息保存进文件。

d、可以把各科的平均成绩,最高和最低分分别全部输出e、输出全部学生信息和全部学生成绩。

f、退出系统。

算法分析:头文件的确定及使用<conio.h>清屏头文件,不是标准的。

在VC++6.0的环境需用system("cls");<stdio.h>输入输出函数printf 形式:printf(char *format,args,…)按format指向的格式字符串所规定的格式、将输出表列args的值输出到标准输出设备;scanf 形式:scanf(char *format,args,…)从标准输入设备按gormat指向的格式字符串所规定的格式,输入数据给args所指向的单元;<string.h> 字符串函数strcmp 形式:strcmp(char *s1,char *s2) 对s1 和s2所指字符串进行比较,s1<s2返回负数;s1==s2返回;s1>s2返回正数。

C语言system函数使用方法详解

C语言system函数使用方法详解

C 语⾔system 函数使⽤⽅法详解⽬录函数接⼝作⽤返回值测试代码参数MODE 命令color 命令函数接⼝1234_DCRTIMP int __cdecl system(_In_opt_z_ char const* _Command );system 函数已经被收录在标准c 库中,头⽂件为<stdlib.h>作⽤执⾏系统命令调⽤命令处理器来执⾏命令。

如果命令是空指针,则该函数只检查是否有命令处理器可以被此函数使⽤。

命令⾮空则调⽤命令的效果取决于系统和库的实现,并可能导致程序以⾮标准的⽅式运⾏或终⽌。

补充:执⾏ dos(windows 系统) 或 shell(Linux/Unix 系统) 命令,参数字符串command 为命令名。

另,在windows 系统下参数字符串不区分⼤⼩写。

说明:在windows 系统中,system 函数直接在控制台调⽤⼀个command 命令。

在Linux/Unix 系统中,system 函数会调⽤fork 函数产⽣⼦进程,由⼦进程来执⾏command 命令,命令执⾏完后随即返回原调⽤的进程返回值如果命令为空指针,如果命令处理器是可⽤的则该函数将返回⼀个⾮零值,如果不可⽤,则为零。

如果命令不是NULL 指针,返回的值取决于系统和库的实现,但如果⽀持的话,通常期望它是被调⽤的命令返回的状态代码,通常是命令执⾏成功返回0,执⾏失败返回-1。

测试代码12345678910/* system example : DIR */#include <stdio.h> /* printf */#include <stdlib.h> /* system, NULL, EXIT_FAILURE */int main() {11121314151617181920212223242526int i;printf("Checking if processor is 可⽤的...?");if (system(NULL)) puts("Ok");else exit(EXIT_FAILURE);printf("Executing command DIR...\n");i = system("dir");printf("The value returned was: %d.\n", i);return 0; }参数参数功能使⽤说明ASSOC 显⽰或修改⽂件扩展名关联ATTRIB 显⽰或更改⽂件属性BREAK 设置或清除扩展式 CTRL+C 检查BCDEDIT 设置启动数据库中的属性以控制启动加载CACLS 显⽰或修改⽂件的访问控制列表(ACL)CALL 从另⼀个批处理程序调⽤这⼀个CD 显⽰当前⽬录的名称或将其更改CHCP 显⽰或设置活动代码页数CHDIR 显⽰当前⽬录的名称或将其更改CHKDSK 检查磁盘并显⽰状态报告CHKNTFS 显⽰或修改启动时间磁盘检查CLS 清除屏幕*CMD 打开另⼀个 Windows 命令解释程序窗⼝*COLOR 设置默认控制台前景和背景颜⾊system("color 0B");COMP ⽐较两个或两套⽂件的内容COMPACT显⽰或更改 NTFS 分区上⽂件的压缩CONVERT将 FAT 卷转换成 NTFS 你不能转换当前驱动器COPY将⾄少⼀个⽂件复制到另⼀个位置DATE显⽰或设置⽇期system("date /T");后⾯加 /t 表⽰显⽰⽇期DEL删除⾄少⼀个⽂件DIR显⽰⼀个⽬录中的⽂件和⼦⽬录DISKPART显⽰或配置磁盘分区属性DOSKEY编辑命令⾏、撤回 Windows 命令并创建宏DRIVERQUERY显⽰当前设备驱动程序状态和属性ECHO显⽰消息,或将命令回显打开或关闭ENDLOCAL结束批⽂件中环境更改的本地化ERASE删除⼀个或多个⽂件*EXIT退出 CMD.EXE 程序(命令解释程序)*FC⽐较两个⽂件或两个⽂件集并显⽰它们之间的不同*FIND在⼀个或多个⽂件中搜索⼀个⽂本字符串*FINDSTR在多个⽂件中搜索字符串*FOR为⼀组⽂件中的每个⽂件运⾏⼀个指定的命令FORMAT格式化磁盘,以便⽤于 WindowsFSUTIL显⽰或配置⽂件系统属性FTYPE显⽰或修改在⽂件扩展名关联中使⽤的⽂件类型GOTO将 Windows 命令解释程序定向到批处理程序中某个带标签的⾏GPRESULT显⽰计算机或⽤户的组策略信息GRAFTABL使 Windows 在图形模式下显⽰扩展字符集*HELP获取该表格的内容ICACLS显⽰、修改、备份或还原⽂件和⽬录的 ACLIF在批处理程序中执⾏有条件的处理操作LABEL创建、更改或删除磁盘的卷标MD创建⼀个⽬录MKDIR创建⼀个⽬录MKLINK创建符号链接和硬链接MODE查看与配置系统设备system(mode); MORE逐屏显⽰输出*MOVE将⼀个或多个⽂件从⼀个⽬录移动到另⼀个⽬录OPENFILES显⽰远程⽤户为了⽂件共享⽽打开的⽂件PATH为可执⾏⽂件显⽰或设置搜索路径PAUSE暂停批处理⽂件的处理并显⽰消息POPD还原通过 PUSHD 保存的当前⽬录的上⼀个值PRINT打印⼀个⽂本⽂件PROMPT更改 Windows 命令提⽰PUSHD保存当前⽬录,然后对其进⾏更改RD删除⽬录RECOVER从损坏的或有缺陷的磁盘中恢复可读信息*REM记录批处理⽂件或 CONFIG.SYS 中的注释(批注)REN重命名⽂件RENAME重命名⽂件REPLACE替换⽂件*RMDIR删除⽬录ROBOCOPY复制⽂件和⽬录树的⾼级实⽤⼯具SET显⽰、设置或删除 Windows 环境变量SETLOCAL开始本地化批处理⽂件中的环境更改SC显⽰或配置服务(后台进程)SCHTASKS安排在⼀台计算机上运⾏命令和程序SHIFT调整批处理⽂件中可替换参数的位置SHUTDOWN允许通过本地或远程⽅式正确关闭计算机system(“shutdown -s –t 60”)60秒后关机system("shutdown -a");取消关机system("shutdown -p");⽴即关闭system("shutdown -1");注销计算机SORT对输⼊排序START启动单独的窗⼝以运⾏指定的程序或命令SUBST将路径与驱动器号关联SYSTEMINFO显⽰计算机的特定属性和配置TASKLIST显⽰包括服务在内的所有当前运⾏的任务TASKKILL中⽌或停⽌正在运⾏的进程或应⽤程序TIME显⽰或设置系统时间system("date /T");后⾯加 /t 表⽰显⽰⽇期TITLE设置 CMD.EXE 会话的窗⼝标题“TITLE 你想改成啥”TREE以图形⽅式显⽰驱动程序或路径的⽬录结构“TREE D:”TYPE显⽰⽂本⽂件的内容“TYPE D:\\⽂本.txt”VER显⽰ Windows 的版本VERIFY告诉 Windows 是否进⾏验证,以确保⽂件正确写⼊磁盘VOL显⽰磁盘卷标和序列号XCOPY复制⽂件和⽬录树WMIC在交互式命令 shell 中显⽰ WMI 信息MODE命令system(mode);(936表⽰简体中⽂)应⽤⽰例⽰例⼀:改变DOS窗⼝的尺⼨:打开命令提⽰符cmd,键⼊mode con cols=100 lines=40则DOS窗⼝的尺⼨将会变为40⾏100列的,cols最⼩值为13,lines最⼩值为1。

C语言实现流星雨效果流程

C语言实现流星雨效果流程

C语⾔实现流星⾬效果流程⽬录⼀、头⽂件⼆、结构体三、初始化四、绘制函数五、移动函数六、界⾯设计七、主函数总结视频讲解感谢序再亮眼的流星,也会⼀闪⽽过。

嗨!这⾥是狐狸~~没错,我⼜来了,上次的“烟花”表⽩程序你学废了吗,这次我次我⼜来给⼤家⽀招啦,学会了“烟花”,我们⼀起来看“流星⾬”吧直接上界⾯上次忘记说了,因为我们是⽤C语⾔写的所以是控制台程序,创造不出来界⾯,那怎么办呢,我们就要⽤Windows的远房表亲EasyX图形库来建界⾯了,上次忘记说了,望谅解我们今天就和往常⼀样⼀步⼀步的教⼤家如何去完成这个“流星⾬”表⽩程序吧!⼀、头⽂件最近总是被吐槽为什么没有头⽂件,原因是呢,我觉得我分享项⽬最主要的⽬的是让⼤家学知识,头⽂件这些没营养的,开始就没有考虑,但鉴于需要的⼩伙伴太多了,我就发出来吧#include<stdio.h>#include<easyx.h> //第三⽅图形库,需要安装#include<time.h>#include<conio.h>#include<mmsystem.h>#pragma comment(lib,"winmm.lib")⼆、结构体⽼朋友结构体他⼜来了,不⽤多说,直接看struct Star //⼩星星{int x;int y;int r;int speed; //速度COLORREF color; //颜⾊};struct Meteor{int x;int y;int speed;};三、初始化初始化星星以及流星,要⽤到随机函数哦,让星星和流星看起来更⾃然。

//初始化星星void initStar(int i){star[i].x = rand() % getwidth();star[i].y = rand() % getheight();star[i].r = rand() % 3 + 1;star[i].speed = rand() % 5; //0 1 2 3 4star[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);}//初始化流星void initMeteor(int i){//[0,2400)//[-1200,1200)meteor[i].x = rand() % (2 * getwidth()) - getwidth(); //[-1200,1200)meteor[i].y = 20 - 200;meteor[i].speed = rand()%15+1;}四、绘制函数绘制星星以及流星,简单的贴图就⾏啦绘制星星void drawStar(){for (size_t i = 0; i < STAR_NUM; i++){//putpixel(star[i].x, star[i].y, star[i].color);setfillcolor(star[i].color);solidcircle(star[i].x, star[i].y, star[i].r);}}//绘制流星void drawMeteor(){for (size_t i = 0; i < METEOR_NUM; i++){putimage(meteor[i].x, meteor[i].y, img + rand() % 2,SRCPAINT);}}五、移动函数不仅流星要动,星星也要跟着动,怎么动才能更⾃然,⾃⼰也可以优化⼀下。

C++程序例题:在VC中实现全屏窗口程序

C++程序例题:在VC中实现全屏窗口程序

全屏显⽰是⼀些应⽤软件程序必不可少的功能。

⽐如在⽤VC++编辑⼯程源⽂件或编辑对话框等资源时,选择菜单“ViewFull Screen”,即可进⼊全屏显⽰状态,按“Esc”键后会退出全屏显⽰状态。

在VC++6.0中我们⽤AppWizard按默认⽅式⽣成单⽂档界⾯的应⽤程序框架。

下⾯将先讨论点击菜单项“ViewFull Screen”实现全屏显⽰的⽅法,再讲述按“Esc”键后如何退出全屏显⽰状态。

1)在CMainFrame类中,增加如下三个成员变量。

Class CMainFrame : public CFrameWnd { private: //⾃⼰添加的三个成员变量 WINDOWPLACEMENT m_OldWndPlacement; //⽤来保存原窗⼝位置 BOOL m_bFullScreen; //全屏显⽰标志 Crect m_FullScreenRect; //表⽰全屏显⽰时的窗⼝位置 protected: CMainFrame(); DECLARE_DYNCREATE(CMainFrame)} 2)在资源编辑器中编辑菜单IDR_MAINFRAME。

在“View”菜单栏下添加菜单项“Full Screen”。

在其属性框中,ID设置为ID_FULL_SCREEN,Caption为“Full Screen”。

还可以在⼯具栏中添加新的⼯具图标,并使之与菜单项“Full Screen”相关联,即将其ID值也设置为ID_FULL_SCREEN。

3)设计全屏显⽰处理函数,在CMainFrame类增加上述菜单项ID_FULL_SCREEN消息的响应函数。

响应函数如下: void CMainFrame::OnFullScreen() {GetWindowPlacement(&m_OldWndPlacement); Crect WindowRect; GetWindowRect(&WindowRect); Crect ClientRect; RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &ClientRect); ClientToScreen(&ClientRect); //获取屏幕的分辨率 int nFullWidth=GetSystemMetrics(SM_CXSCREEN); int nFullHeight=GetSystemMetrics(SM_CYSCREEN); //将除控制条外的客户区全屏显⽰到从(0,0)到(nFullWidth, nFullHeight)区域, 将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗⼝和除控制条之外的客户区位置间的差值, 就得到全屏显⽰的窗⼝位置 m_FullScreenRect.left=WindowRect.left-ClientRect.left; m_FullScreenRect.top=WindowRect.top-ClientRect.top; m_FullScreenRect.right=WindowRect.right-ClientRect.right+nFullWidth; m_FullScreenRect.bottom=WindowRect.bottom-ClientRect.bottom+nFullHeight; m_bFullScreen=TRUE; //设置全屏显⽰标志为 TRUE //进⼊全屏显⽰状态 WINDOWPLACEMENT wndpl; wndpl.length=sizeof(WINDOWPLACEMENT); wndpl.flags=0; wndpl.showCmd=SW_SHOWNORMAL; wndpl.rcNormalPosition=m_FullScreenRect; SetWindowPlacement(&wndpl);} 4)重载CMainFrame类的OnGetMinMaxInfo函数,在全屏显⽰时提供全屏显⽰的位置信息。

如何用C语言编写游戏

如何用C语言编写游戏

怎样用 C语言编写游戏网络游戏是常谈的话题 , 是交互式娱乐的主力军 , 是一种高层次的综合艺术 , 更是一个民族的文化 , 世界观的崭新流传方式作为游戏玩家的我们 , 能否是想设计一个属于自己的游戏呢 ?爱玩是人的本性 , 而 C 语言是我们计算机专业都要学习的一门基础学科 . 一般来说 , 是比较乏味的 . 那么 , 我们能不可以经过编一些小游戏来提升它的兴趣性呢?这样学习程序设计 , 就不会是一件艰辛,乏味的事 , 它变得象电脑游戏同样充满好奇 , 富裕乐趣 . 这正是我要写这文档目的 .1, 老是从 Hello,world 开始学习编程的第一个程序 , 一般就是打印一个和蔼的词语—— "Hello,world!". 让我们来看看这个最简单的 C程序 :#incolude <> /*把输入输出函数的头文件包含进来*/int main(){printf("Hello,world!");/*在屏幕上输出字符串 "Hello,world!"*/return 0;/*退出main函数,并返回0*/}下边我们发现几个值得改良的地方,1, 程序的运转结果一闪而过.2, 每履行这个程序一次都能看见上一次运转留下的字符.3, 我们还希望屏幕输出一个笑容来欢迎我们.( 大家不要小瞧了这个笑容以前有人发贴特意问呢) 让我们来改良一下这个程序吧!1, 在 return语句的前方加一句:getch ();,表示按随意键结束.2, 在 printf语句前用clrscr函数清屏,要使用这个函数和get ch 函数 , 需要在程序开头再包含头文件码也有很多特别好玩的字符 , 比方 ASCII 码值为 2 的就是一个笑容 , 我们可以用printf("%c", 2)来输出一个笑容.此刻我们把Hello,world程序改成一个更漂亮的Hello,world了.下面让我们开始做游戏吧!2,心动的开始, 一个运动中的笑容大家小时侯喜爱看动画片吗 ?哈哈 , 我猜你们都喜爱吧 ! 下边就让我们来做一个小动画吧 . 在屏幕上显示一个运动的小笑容 , 并且当它抵达屏幕的边沿时会自动弹回来.先在程序定义一个在屏幕中运动的点的构造:struct move_point{int x, y;/*该点的地点,包含x坐标和y坐标*/int xv, yv;/*该点在x轴,y轴的速度*/};运动的原理是 , 先擦去物体先前的轨迹 , 让物体按其速度挪动一段距离 , 再画出该物体 . 让我们看到以下代码 : gotoxy, ;/* 把光标移到指定的坐标 */printf(" ");/*输出一个空格,把先前的字符擦去*/而后我们让物体按其速度运动:+= ;/*水平方向按x轴的速度运动*/+= ;/*垂直方向按y轴的速度运动*/运动后还要判断物体能否出界, 假如出了界 , 就令物体反弹 , 即让它下一刻的速度等于此刻的速度的相反数. 最后打印出这个笑容 : gotoxy, ;printf("%c\b", 2); /*输出ASCII码值为2的"笑容"字符*/怎么样 ?能否是很风趣呢 ?可是这个笑容向来是自己运动, 能不可以让我们来控制它运动呢?答案是必定的 , 让我们持续往放学吧 !3,交互的实现——让我们来控制笑容运动这个程序的主要功能是接受按键, 假如接收的是方向键 , 就让笑容顺着方向挪动 , 假如接收的是 ESC键就退出程序 , 其余按键则忽视办理 . 接受按键我们用以下两条语句:while (bioskey(1) == 0);/*等候按键*/key = bioskey(0);/*把接收的按键的键盘码赋给变量key*/而后用 switch 语句来判断按键以及履行有关操作, 以下 :switch (key) /*对变量key的值进行判断*/{case UP: /*假如按的是向上键*/break; /* 让物体向上运动 , 并退出 switch*/case DOWN: /* 假如按的是向下键 */break; /* 让物体向下运动 , 并退出 switch*/case LEFT: /*向左键*/break;;/*向左运动*/case RIGHT: /*向右键*/break;/* 向右运动 */赞62004-9-9 19:26答复c闲人202位粉丝2楼default:break;/*其余按键则忽视办理 */}怎么样 , 能否是有了玩游戏的感觉了?可是这个程序没有什么目的,也没有什么判断输赢的条件 . 下边我们就利用这个能控制它挪动的笑容来做一个更风趣的游戏吧 !4, 在迷宫中探究小时侯 , 我常在一些小人书和杂志上看见一些迷宫的游戏 , 特别喜爱玩 , 还常到一些书上找迷宫玩呢 . 好的 , 此刻我们用 C语言来编个迷宫的游戏 , 重温一下童年的乐趣 .第一 , 我们定义一个二维数组map,用它来保留迷宫的地图 , 此中 map[x][y] == '#'表示在(x,y)坐标上的点是墙壁.DrawMap函数在屏幕上输出迷宫的地图和一些欢迎信息.在 main 函数里 , 我们定义了 " 小人 "man 的坐标和 " 目的地 "des 的坐标 . 在游戏循环中 , 我们增添了一些用来判断输赢的语句 :if == && == /*假如人的坐标等于目的地的坐标 */{gotoxy(35, 3);printf("Ok! You win!"); /*输出成功信息*/.}在判断按键时 , 假如玩家按的是方向键 , 我们还要先判断前方能否是有 " 墙壁 ", 假如有的话 , 就不可以往前挪动了 . 好的 , 我们在判断按键的 switch 语句的各个分支加上了判断语句 , 以下 :if (map[][] == '#') break;/*假如前方是墙壁,就不履行下去 */哇噻 ! 真棒 , 我们做出了一个完好的游戏了 . 自然你还能够经过改正二维数组 map来改正迷宫的地图 , 让它更有挑战性 . 可是 , 我们要设计一个更好玩的游戏——5,聪慧的搬运工大家必定玩过 " 搬运工 " 的游戏吧 ! 这是在电脑和电子词典上较流行的益智游戏 , 让我们着手做一个属于自己的" 搬运工 " 吧!程序依旧用数组map来保留地图 , 数组元素假如为空格则表示什么也没有 ,'b'表示箱子,'#'表示墙壁,'*'表示目的地,'i'表示箱子在目的地 . 我们此后每推一下箱子 , 不只要改变屏幕的显示 , 也要改变 map相应元素的值 .游戏的主循环依旧是接受按键 . 当接收一个方向键 , 需要判断小人前方一格的状态 , 假如是空地或目的地 , 则人物能够直接挪动 ; 假如是墙壁 , 则不行挪动 ; 假如是箱子或目的地上的箱子 , 则需要持续判断箱子前方一格的状态 : 假如前一格是空地或目的地 , 则人推箱子行进 , 不然不行挪动 . 好的 , 我们在 switch 中增添了这些判断语句 .程序还有一个重要的功能就是判断成功 . 数组Des 用来记录所有目的地的坐标 , 我们每履行一步操作后 , 程序就要经过 Des 数组判断这些目的地上能否都有箱子了 .真棒啊 ! 我们能够做游戏了 . 并且是一个老小皆宜 , 兴趣实足的游戏呢 ! 自然 , 我们能够经过改正 map数组来制作不一样的游戏地图 , 我们还能够互相分享好的游戏地图呢 . 结尾 :在 C++等高级语言还没出来的时候, 好多应用程序也是C语言开发的.C 语言在与硬件联系密切的编程中, 也据有重要地位 .其实我感觉学习编程 , 能够经过一些小游戏 , 适用的例子来学习 . 象学习音乐的人 , 不是要等到把所有乐理学完后才演奏一个完好的曲子 . 而是刚开始学时就有一些简单的曲子让你演奏 , 让你马上就有成就感 , 让你很快就能卖弄出来在他人眼前表现自己了 . 经过编游戏来学习编程 , 把学习变为游戏 , 不失为学习计算机的一种好方法.好了 , 编游戏就这么简单 , 希望大家也试试用C语言或其余的语言来做几个自己喜爱的小游戏.时间延缓函数函数名 : delay功能:将程序的履行暂停一段时间( 毫秒 )用法: void delay(unsigned milliseconds);重画屏幕地区的函数函数名: getimage功能:将指定地区的一个位图存到主存中用法: void far getimage( int left, int top, int right, intbottom, void far *bitmap);函数名: putimage功能:在屏幕上输出一个位图用法: void far putimage( int x, int y, void far *bitmap,int op );图像大小函数函数名 : imagesize功能:返回保留位图像所需的字节数用法: unsigned far imagesize( int left, int top, int right,int bottom );异或模式函数函数名 : setwritemode功能:设置图形方式下画线的输出模式用法: void far setwritemode(int mode);参数 MODE能够被设置位COPY_PUT或许 XOR_PUT两种模式。

CC++linux下光标定位和清屏函数

CC++linux下光标定位和清屏函数

C/C++ linux下光标定位和清屏函数printf("\033[47;31mhello world\033[5m");47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码.颜色代码:QUOTE:字背景颜色范围: 40--49 字颜色: 30--3940: 黑30: 黑41: 红31: 红42: 绿32: 绿43: 黄33: 黄44: 蓝34: 蓝45: 紫35: 紫46: 深绿36: 深绿47: 白色37: 白色ANSI控制码:QUOTE:\033[0m 关闭所有属性\033[1m 设置高亮度\03[4m 下划线\033[5m 闪烁\033[7m 反显\033[8m 消隐\033[30m -- \033[37m 设置前景色\033[40m -- \033[47m 设置背景色\033[nA 光标上移n行\03[nB 光标下移n行\033[nC 光标右移n行\033[nD 光标左移n行\033[y;xH设置光标位置\033[2J 清屏\033[K 清除从光标到行尾的内容\033[s 保存光标位置\033[u 恢复光标位置\033[?25l 隐藏光标\33[?25h 显示光标这样, 在某些时候就可以实现动态的输出.文章出处:飞诺网():/course/6_system/linux/Linuxjs/2 0090728/168199.htmlprintf("\033[47;31mhello world\033[5m");47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码.颜色代码:QUOTE:字背景颜色范围: 40--49 字颜色: 30--3940: 黑30: 黑41: 红31: 红42: 绿32: 绿43: 黄33: 黄44: 蓝34: 蓝45: 紫35: 紫46: 深绿36: 深绿47: 白色37: 白色ANSI控制码:QUOTE:\033[0m 关闭所有属性\033[1m 设置高亮度\03[4m 下划线\033[5m 闪烁\033[7m 反显\033[8m 消隐\033[30m -- \033[37m 设置前景色\033[40m -- \033[47m 设置背景色\033[nA 光标上移n行\03[nB 光标下移n行\033[nC 光标右移n行\033[nD 光标左移n行\033[y;xH设置光标位置\033[2J 清屏\033[K 清除从光标到行尾的内容\033[s 保存光标位置\033[u 恢复光标位置\033[?25l 隐藏光标\33[?25h 显示光标这样, 在某些时候就可以实现动态的输出.。

C语言如何实现动画技术

C语言如何实现动画技术

1 重 画技 术
重 画技术 的简 单理 解就 是 画 了擦 , 了再 画 , 擦 不
断循 环 下去 。也就 是不 断直 接重 画屏幕 显存 。重 画
幕 大小 内容 还是 可 以申请 到 的。 双缓 冲技术 要求 开辟 一块 与显示 对 象相 同大小
收 稿 日期 :0 6 1一 0 20.l 2 作 者 简 介 : 梅 (9 0 , , 张 17 一) 女 河北 省 井 县 人 , 师 , 从 事 计 算 机 教 学 工 作 。 讲 现
Ab ta t s r c :Th he i nr d c s t e u u lte oo o n l e c ro n, i n l d e tc niaii u h a e r w, o e t ss ito u e s a e h tg t xk a to h n y t t icu e t e h c lt s c s rd a x r, s h s e p lte, a aet 击 g— f  ̄ C U,a d c iv me t y C al哪le.I n lss tea v ts d ia v tS falk n so b We n t a he e nsb lI g he g ta ay e h d a a e a ds d a e e o l i d fmeh d n s n n s to s. Ke wo d y r s:l l w e h oo y; o e n lg p lt e h lg drg— s re t h oo y  ̄la tc n lg x rtch oo y+ aet tc noo y; a " e c e n e n lg c
维普资讯
5 4
包 钢 科 技
第3 3卷
的 内存 区域 , 每次操 作 都只对 这 块 的内存进 行 , 在屏

c语言清屏命令的简单用法

c语言清屏命令的简单用法

c语言清屏命令的简单用法C语言是一种高级编程语言,它是一种通用的、面向过程的编程语言,广泛应用于各种领域。

在C语言中,清屏命令是一种非常常用的命令,它可以清除屏幕上的所有内容,使得屏幕变得干净整洁,方便用户进行下一步操作。

本文将介绍C语言清屏命令的简单用法,帮助读者更好地理解和掌握这个命令。

一、C语言清屏命令的作用在C语言中,清屏命令的作用是清除屏幕上的所有内容,使得屏幕变得干净整洁。

当我们在编写C语言程序时,有时需要清空屏幕上的内容,以便用户能够更清晰地看到程序的输出结果。

此时,我们就可以使用清屏命令来实现这个功能。

二、C语言清屏命令的简单用法在C语言中,清屏命令的函数名为system(),它的原型如下:int system(const char *command);其中,command参数是一个字符串类型的参数,用于指定要执行的命令。

在使用清屏命令时,我们需要传递一个特定的命令给system()函数,以便它能够执行清屏操作。

在不同的操作系统中,清屏命令的具体实现方式可能会有所不同。

下面分别介绍Windows和Linux系统中清屏命令的具体实现方式。

1. Windows系统中清屏命令的实现方式在Windows系统中,清屏命令的实现方式是使用系统命令cls。

cls命令是Windows系统中的一个命令行命令,它的作用是清空屏幕上的所有内容。

因此,在使用清屏命令时,我们需要将cls命令作为参数传递给system()函数,以便它能够执行清屏操作。

下面是一个简单的示例代码:#include <stdio.h>#include <stdlib.h>int main(){printf("Hello, world!\n");system("cls");return 0;}在上面的代码中,我们先输出了一条Hello, world!的消息,然后调用了system("cls")函数来清空屏幕上的所有内容。

大一c语言实训报告优秀范文

大一c语言实训报告优秀范文

2020年大一c语言实训报告优秀范文2020年大一c语言实训报告优秀范文一为期一周的C语言实验室实践学习已经结束,这是对自己上学期的C语言学习的检验,同时也对于旧知识、旧思路的复习理解提供了很好的机会。

于其中的漫漫路也是给了我许多感触。

(1)“独木不成林”。

单凭个人力量若要有所成就着实不易。

即便非大成功,就C语言程序的设计而言,若仅个人之力,有些问题想破脑袋仍无结果,有时却只需老师、同学轻轻一点便迎刃而解。

不仅效率可大大提高,亦能增进与人交流机会,促进彼此情感。

反之,倘若一个人独立行走,就可能走极端,反思路做题,结果显而易见。

(2)细心方面仍是一个大问题。

一次次“运行失败”其实更多是因粗心引起。

仅小小的分号,就不知漏了几次。

抑或是少了个括号,少了个等号,便显示程序无法运行或者进入了死循环。

很多时候,碎小的个体会影响到整个工程效果。

所谓“牵一发而动全身”,C语言编程是这个理,而生活很多其他问题不也是如此吗?(3)“锲而不舍,金石可镂”。

很多题目需要靠坚持才能有结果。

一次次编写的程序无法运行,一次次的改正无法获得”编译成功“的认可,心情有多糟无需多说。

此时倘若将其放掉,那这个题目可能就永远被埋掉了,那些错误之处也就再无机会得到修正,那个知识点也可能从此漏了。

(4)同时还更为深刻理解了模块化编程的重要意义。

以模块化方式考虑程序结构,以函数形式书写复杂的程序是C语言编程的重要思路。

不仅利于错误检查,也大大提高了速率。

(5)需注意巩固过往知识,熟悉它们的用途。

就如函数f4(题9)程序的编写,原本在判断两数是否为质数时只需用“”就能很好解决,实际编写中却用了分开判断的思路,使得问题变复杂了,程序编写自然困难了许多。

坦白说,刚开始得知还有个C语言专周用来搞这个,心情一下子变灰色调了。

跟C语言不熟不说,就算懂,也是没什么兴趣的。

想起上学期,就它最折腾我的。

现在想来,倒觉得多亏了学校有这个安排。

不仅复习了一些基本知识,也大大提高了对C语言的兴趣。

c语言实现整蛊朋友小程序(附源码)

c语言实现整蛊朋友小程序(附源码)

c语⾔实现整蛊朋友⼩程序(附源码)前⾔感觉学了c语⾔后仍然⼀⽆是处想要整蛊⼀下朋友仍然不会别慌,看完这篇⽂章,你就会了。

下⾯给⼤家分享两个基础的整蛊⼩程序1.我是猪关机程序2.⽆限弹窗程序⼀、我是猪关机程序效果:运⾏程序后电脑在60s后关机,如果输⼊“我是猪”则取消关机;如果输⼊“你是猪”则⽴即关机;输⼊其他⽂字会提⽰重新输⼊;若强⾏关闭程序电脑仍会关机。

本程序基于控制台,其功能是通过dos命令来实现。

那么就先讲⼀下所⽤到的dos命令(shutdown -s -t 60)1.dos命令(强制关机)shutdown -s -t 60 -c -f各参数的意思:-s 动作为关机-r 为重启-a 为取消关机-t 60 延迟60秒关机-c “想要显⽰的注释”-f 关机时强制关闭所有程序⽽不显⽰任何警告。

标准格式:(shutdown -s -t xx)t xx是关机延时时间 /秒;xx可以是00,直接关机。

注意:可能输⼊命令后,windows提⽰n分钟后关机,但关机时间仍然是设定的时间。

2.源码注意的是,想使⽤cmd命令,需要调⽤库函数<stdlib.h>话不多说,直接源码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(void){char b[10]="我是猪",c[10]="你是猪",a[10];system("shutdown -s -t 60"); //命令关机do{ //判断输⼊的是否为指定的语句printf("如果不想关机,请(只能输⼊这两句话)输⼊我是猪 or 你是猪只给你⼀分钟时间哦\n");scanf("%s",&a);if(strcmp(a,b)==0){ //判断输⼊的语句system("shutdown -a"); //取消关机命令system("cls"); //清屏函数printf("哈哈哈,okok\n");system("pause"); //暂停函数}if(strcmp(a,c)==0){system("pause");printf("我怀疑你在骂我,那我只好给你关机了\n");system("shutdown -s -t 5"); //5s后关机printf("哈哈哈,拜拜\n");system("pause");}}while(strcmp(a,b)!=0&&strcmp(a,c)!=0);return 0;}整蛊朋友前⼀定提醒他保存当前⽂件哦。

c语言实验报告心得总结(精选14篇)

c语言实验报告心得总结(精选14篇)

c语言实验报告心得总结(精选14篇)(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作报告、合同协议、心得体会、演讲致辞、规章制度、岗位职责、操作规程、计划书、祝福语、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample texts, such as work reports, contract agreements, insights, speeches, rules and regulations, job responsibilities, operating procedures, plans, blessings, and other sample texts. If you want to learn about different sample formats and writing methods, please pay attention!c语言实验报告心得总结(精选14篇)【第1篇】c语言实验报告心得总结900字在初学c语言的一个学期后,我们进行了c语言实训阶段,尝试编写一个比较复杂的程序系统。

C语言程序课程设计心得体会.doc

C语言程序课程设计心得体会.doc

C语言程序课程设计心得体会学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。

那么,现在就来看看,以下两篇关于C语言程序课程设计心得体会的范文!C语言程序课程设计心得体会1在科技高度发展的今天,计算机在人们之中的作用越来越突出。

而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理。

简单界面程序。

高级界面程序。

程序的添加修改。

用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

C语言实用程序设计100例流程图

C语言实用程序设计100例流程图

盛年不重来,一日难再晨。

及时宜自勉,岁月不待人。

C语言实用程序100例第一篇基础与提高实例1利用库函数编写基本显示程序实例2变量属性实例3运算符与类型实例4关于程序结构实例5显示函数曲线图实例6二分法选代的应用实例7多变的立方体实例8 一维整型数组应用(1)实例9 一维整型数组应用(2)实例10 一维整型数组应用(3)实例11 一维整型数组应用(4)实例12二维数组应用(1)――显示杨辉三角实例13二维数组应用(2)――魔方阵实例14字符数组应用(1)――逻辑判断实例15字符数组应用(2)――数据模拟实例16二维数组应用——字符比较实例17利用指针进行数据处理实例18指针与字符串实例19利用指针处理二维数组实例20 一级指针实例21利用指针传递参数值实例22结构体的应用实例23链表的应用(1)实例24链表的应用(2)实例25链表的应用(3)实例26共用体的应用实例27枚举类型应用实例28位运算买例29义件加密实例30文件的按记录随机读写第二篇图形与多媒体实例31改变文字背景色实例32及本颜色设置实例33制作表格实例34制作多样的椭圆实例35美丽的透视图形实例36错位窗口实例37能移动的矩形实例38多变的填充矩形实例39黄黑相间的矩形与圆实例40 六叶图案实例41 特殊图案实例42 国际象棋棋盘实例43 制作楼梯实例44 使用线类型函数设置多个汉字实例45 彩色群点实例46 饼图买例47 产品折线图实例48 直方图实例49 变大变色的拒形与国实例50 多变的填充多边形实例51 流星球实例52 小球动态碰撞买倒53 多,曲线实例54 多变的圆与环实例55 优美的球体实例56 运动的小车实例57 统计动画消失次数实例58 运行的时钟实例59 直升飞机实例60演绎“生命游戏”实例61 猜猜看买例62 艺术清屏买倒63 制作火焰实例64动态绘制256 条不同颜色的直线实例65 红绿蓝三原色渐变第三篇综合小程序实例66 两个矩阵相乘实例67 艺术钟实例68 家庭财务管理小程序实例69 用系统时间实现随机数实例70 闪动的多彩圆实例71 检查系统有无鼠标实例72 圆形光盘与矩形实例73 动态渐变图案实例74 往返两地间的小车实例75 飘扬的红旗实例76 显示蓝天白云图形实例77 百叶窗第四篇计算机等级考试上机试题(二级)第五篇计算机等级考试上机试题(三级)部分流程图实例1实例2实例3s oA II •x A 当toupper(yes)=='Y'时=>count产生随机数:number输入guess值当1<guess<1时«««9fwu寸匡u共享知识分享快乐实例6实例7共享知识分享快乐实例8递归函数hanoi递归调用hanoi(n-1,a,c,b)显示移盘信息move递归调用hanoi(n-1,c,b,a)i=O,j=O当i<N时实例9实例10共享知识分享快乐实例112=>i当i<=n时---------------1=>j当j<i时---------------AAAAAAAAa[i-1][j-1]+a[i-1][j]=>a[i][j]j++实例120=>j 实例131=>a『0]『i]实例14共享知识分享快乐实例150=>i当i<4时0=>i共享知识分享快乐图15-2 流程图实例16共享知识分享快乐当*p!='\0'&&(*p>='0')&&(*p<=9) 时k=*(p++)-48;nu mber=10* nu mber+k;retur n nu mber;实例17实例18实例19共享知识分享快乐0=>i实例20实例22共享知识分享快乐共享知识分享快乐实例23仁>flaghead=>*p当p!=NULL&&flag==1 时p->key==k是否0=>flag p_>n ext=>pflag==0 _ _ 一一^^一否p->co un t++; head=>phead=(struct number *)malloc(LENGTH);head->key=k; head->co un t=1; head->n ext=p;实例24函数newhead=>p1,head=>p2开辟空间:p=(struct stude nt *)malloc(LENGTH);共享知识分享快乐图25-2 流程图实例260=>i当i<N时gets(i nfo[i]. name);sea nf("%d",&in fo[i].age); getchar();in fo[i].sex=getchar();getchar();in fo[i].job=getchar();getchar();根据职业不冋选择单位类型输入数据实例27i=RED当j=RED当j<=BLACK 时另外三种赋值共享知识 分享快乐k =0x 8000;p r i n t f (" %04x (16) \t ",n u m b e r );9 T — Vp r i n t f ("%d ",b i t );\ Knii //p r i n t f ("-");b =n u m b e r > >nf 1 1>牠氐聘«««6CXI匡邸8CXI 匡邸实例30写新记录实例78 k=n *sizeof(struct stude nt);实例79打印x实例81 AAAAAA AA实例82 AAAAAAAA共享知识分享快乐实例83共享知识分享快乐表达式1 x=1实例84实例85定义数组a[11],变量l,h,m及指针变量p输入数据给a[1]到a[10],输入要找的数xl=1 ; h=10 ; p=a实例86实例87共享知识分享快乐实例88 实例89共享知识分享快乐共享知识分享快乐共享知识分享快乐实例93共享知识分享快乐实例94定义整型数组变量a[N1][N2],max,min,i,j,row1,row2,column 1,column2, (*ap)[4]ap=a row1=row2=colu mn 1=colu mn 2=0for( i=0; i<N1;i++)for( j=0; j<N1;j++)任意输入字符串放到二维数组中max=mi n=a[0][0] for( i=0; i<N1;i++)for( j=0; j<N1;j++)打印最大值和最小值及它们所在的行与列共享知识分享快乐实例95实例96for ( n=1; n<=10 ;n++)p=p* ne=e+1.0/p打印输出e的值共享知识分享快乐实例97(1)实例97 ( 2)实例99。

C语言编写一个计算器界面(可视化界面和多功能)

C语言编写一个计算器界面(可视化界面和多功能)

C语⾔编写⼀个计算器界⾯(可视化界⾯和多功能)⽬录引⾔计算器总结引⾔在⼤学期间,C 语⾔或者数据结构等课程,⽼师会要求学⽣编写⼀个⼩项⽬练⼿,或者期末编写⼀个⼩软件等课程设计。

今天在电脑看到⼤⼀学C语⾔时,实验课上写的计算器功能,挺有意思。

所以在此分享给学C语⾔的学弟学妹,记得收藏保留!计算器简单版本计算器,主要实现的是简单两个数的加法,减法,乘法,除法,求余功能。

⽤户可以在主菜单选择需要计算的功能,然后根据⽤户输⼊的数字,进⾏计算,输出结果。

⾸先,我们定义五个⽅法,实现两个数的加法,减法,乘法,除法,求余功能。

代码如下:// 加法float add(float a, float b) {return a + b;}// 减法float sub(float a, float b) {return a - b;}// 乘法float mul(float a, float b) {return a * b;}// 除法float mod(float a, float b) {return a / b;}// 求余int com(int a, int b) {return a % b;}然后定义⼀个打印主菜单界⾯的函数,使⽤简介美观的菜单界⾯,供⽤户选择要计算的功能,代码如下:// 打印主功能菜单void printMenu() {// 清屏// system("cls");printf("|----------------------- 计算器 -----------------------|\n");printf("| |\n");printf("| By -- 陈⽪的JavaLib |\n");printf("| |\n");printf("|---------------------- 1:加法 -----------------------|\n");printf("|---------------------- 2:减法 -----------------------|\n");printf("|---------------------- 3:乘法 -----------------------|\n");printf("|---------------------- 4:除法 -----------------------|\n");printf("|---------------------- 5:求余 -----------------------|\n");printf("|---------------------- 6:退出 -----------------------|\n");printf("| |\n");printf("|----------------------- 计算器 -----------------------|\n");}最后,我们在主函数 main 中,定义⼀个 while 循环代码块,不断读取⽤户输⼊的内容,进⾏数字计算,代码如下:int main() {// 选择的功能int select = 0;// 定义算术的两个数float a, b;while (select != 6){select = 0;// 打印主菜单printMenu();// 只允许选择菜单栏内的数字,不是则重新选择while (select < 1 || select > 6) {printf("请输⼊菜单功能(1-6):");scanf("%d", &select);}if (6 == select) {printf("\n|----------------- 欢迎使⽤计算器!再见!-----------------|\n"); return 0;}printf("\n请输⼊两个数(⽤空格隔开两个数):");scanf("%f %f", &a, &b);switch (select) {case 1:printf("%f+%f=%f\n\n", a, b, add(a, b));break;case 2:printf("%f-%f=%f\n\n", a, b, sub(a, b));break;case 3:printf("%f*%f=%f\n\n", a, b, mul(a, b));break;case 4:printf("%f/%f=%f\n\n", a, b, mod(a, b));break;case 5:printf("%f/%f=%d\n\n", a, b, com((int)a, (int)b));break;case 6:default:break;}}}下⾯我们演⽰⼏个例⼦,能更加直观体验计算器的功能:菜单功能选择错误,会提⽰重新选择加法除法退出简单版本计算器,完整代码如下:#include <stdio.h>#include <stdlib.h>// 加法float add(float a, float b) {return a + b;}// 减法float sub(float a, float b) {return a - b;}// 乘法float mul(float a, float b) {return a * b;}// 除法float mod(float a, float b) {return a / b;}// 求余int com(int a, int b) {return a % b;}// 打印主功能菜单void printMenu() {// 清屏// system("cls");printf("|----------------------- 计算器 -----------------------|\n");printf("| |\n");printf("| By -- 陈⽪的JavaLib |\n"); printf("| |\n");printf("|---------------------- 1:加法 -----------------------|\n");printf("|---------------------- 2:减法 -----------------------|\n");printf("|---------------------- 3:乘法 -----------------------|\n");printf("|---------------------- 4:除法 -----------------------|\n");printf("|---------------------- 5:求余 -----------------------|\n");printf("|---------------------- 6:退出 -----------------------|\n");printf("| |\n");printf("|----------------------- 计算器 -----------------------|\n");}/*** 简单版本计算器功能 By -- 陈⽪的JavaLib* @return*/int main() {// 选择的功能int select = 0;// 定义算术的两个数float a, b;while (select != 6){select = 0;// 打印主菜单printMenu();// 只允许选择菜单栏内的数字,不是则重新选择while (select < 1 || select > 6) {printf("请输⼊菜单功能(1-6):");scanf("%d", &select);}if (6 == select) {printf("\n|----------------- 欢迎使⽤计算器!再见!-----------------|\n");return 0;}printf("\n请输⼊两个数(⽤空格隔开两个数):");scanf("%f %f", &a, &b);switch (select) {case 1:printf("%f+%f=%f\n\n", a, b, add(a, b));break;case 2:printf("%f-%f=%f\n\n", a, b, sub(a, b));break;case 3:printf("%f*%f=%f\n\n", a, b, mul(a, b));break;case 4:printf("%f/%f=%f\n\n", a, b, mod(a, b));break;case 5:printf("%f/%f=%d\n\n", a, b, com((int)a, (int)b));break;case 6:default:break;}}}总结在⼤学期间,如果是计算机类的专业,⼀般都会学习 C 语⾔,作为编程⼊门语⾔,⼤家⼀定要学习好此门语⾔,⽽且如果学好了,其实学习其他编程语⾔就很容器上⼿的,不同语⾔其实⼤同⼩异,只要你编程思维提升了,基础语法掌握了,才能学习更加深⼊的知识。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
t=s=(y1+y2)/2;
for(j=x2;j>x1;j--)
for(i=y1;i<y2;i++){
goto_xy(j,i);
putchar(' ');
delay(10);
}
}
/******************配置光标子函数******************/
void goto_xy(int x,int y)
main()
{
puta();
getch();
dcls(0,4,0,79);
getch();
puta();
getch();
bcls(0,25,0,79);
getch();
puta();
getch();
zcls(0,25,0,79);
getch();
}
/*********center clear screen(中央清屏)***********/
for(j=x1;j<x2;j++){
goto_xy(j,t);
putchar(' ');
goto_xy(j,s);
putchar(' ');
delay(10);
}
}
/*****************close screen clear*****闭幕式清屏*******************/
void bcls(int x1,int x2,int y1,int y2)
{
int t,s,j;
t=y1;
s=y2;
for(t=y1;t<(y1+y2)/2;t++,s--)
for(j=x1;j<x2;j++){
goto_xy(j,t);
putchar(' ');
goto_xy(j,s);
void kcls(int x1,int x2,int y1,int y2);
void recls(int x1,int x2,int y1,int y2);
void zcls(int x1,int x2,int y1,int y2);
void puta(void);
/*--------------演示程式---------------------*/
void zcls(int x1,int x2,int y1,int y2)
{
int x00,y00,x0,y0,i,d;
if((y2-y1)>(x2-x1)){
d=(x2-x1)/2;
x0=(x1+x2)/2;
y0=y1+d;
y00=y2-d;
for(i=0;i<(d+1);i++)
goto_xy(x1,i);
putchar(' ');
goto_xy(x2,i);
putchar(' ');
delay(10);
}
for(j=x1;j<x2;j++){
goto_xy(i,y1);
putchar(' ');
goto_xy(j,y2);
putchar(' ');
delay(10);
#include<stdio.h>
#include<dos.h>
#include<conio.h>
void goto_xy(int x,int y);
void dcls(int x1,int x2,int y1,int y2);
void bcls(int x1,int x2,int y1,int y2);
putchar(' ');
delay(10);
}
}
/******************bottom screen clear(自下清屏)********************/
void dcls(int x1,int x2,int y1,int y2)
{
int t,s,j,i;
}
}
/******************open screen clear(开屏式清屏)*********************/
void kcls(int x1,int x2,int y1,int y2)
{
int t,s,i,j;
t=s=(y1+y2)/2;
for(;t<=y2;t++,s--)
{
int i,j;
for(i=0;i<24;i++){
for(j=0;j<79;j++){
goto_xy(i,j);
printf("a");
}
}
}
{
union REGS r;
r.h.ah=2;
r.h.dl=y;
r.h.dh=x;
r.h.bh=0;
int86(0x10,&r,&r);
}
/**********************在屏幕上打出一连串的a字母用于演示程式******************/
void puta(void)
recls((x0-i),(x00+i),(y0-i),(y00+i));
delay(10);
}
else{
d#43;y2)/2;
x0=x1+d;
x00=x2-d;
for(i=0;i<d+1;i++)
recls(x0-i,x00+i,y0-i,y00+i);
delay(10);
}
}
/************* clear rectangle side(矩形边清屏)***********************/
void recls(int x1,int x2,int y1,int y2)
{
int i,j;
for(i=y1;i<y2;i++){
相关文档
最新文档