博文

花儿(2006-03-23 23:30:00)

摘要: #include #include /*花儿*/void hua(int x,int y){register i;setcolor(12);arc(x+65,y-60,150,350,8);arc(x+66,y-54,300,470,8);arc(x+65,y-56,30,230,10);arc(x+64,y-57,300,460,17);ellipse(x+73,y-30,250,450,27,40);ellipse(x+59,y-30,100,290,27,40);ellipse(x+65,y-40,140,270,20,30);setfillstyle(SOLID_FILL,5);floodfill(x+65,y-20,12);arc(x,y,150,350,12);arc(x+1,y+8,280,470,12);arc(x,y+2,30,230,16);arc(x,y+3,80,240,28);arc(x+2,y+8,180,330,22);arc(x-2,y+2,310,460,25);ellipse(x-12,y+30,120,300,30,40);ellipse(x+10,y+28,250,423,30,42);ellipse(x-4,y+10,290,393,30,40);setfillstyle(SOLID_FILL,4);floodfill(x+5,y+31,12);ellipse(x+120,y+5,0,360,15,25);setfillstyle(SOLID_FILL,15);floodfill(x+120,y,12);ellipse(x-70,y+10,0,360,14,20);setfillstyle(SOLID_FILL,14);floodfill(x-70,y+10,12);setcolor(10);ellipse(x-15,y+32,190,310,30,35);ellipse(x+16,y+32,235,355,26,35);ellipse(x,y+35,190,350,43,50);arc(x,y+82,190,350,6);setfillstyle(SOLID_FILL,2);floodfill(x,y+75,10);ellipse(x+50,y-48,190,320,22,50);ellipse(x+80,y-48......

阅读全文(4711) | 评论:0

进制转换(2006-03-19 23:22:00)

摘要:/** Function : fun* Usage : fun(num_10,num,n);* --------------------------* num_10 : 10进制数* num    : 保存转换后的字符数组* n      : 几进制(如2,8,16)* -----------------------------*/void fun(int num_10,char *num,int n) {     char *p=num,temp;     do {         temp=(num_10%n+'0');         *p++=(temp>=':')?('A'+(temp-':')):temp;          }while (num_10/=n);     *p='\0';     /*修改存放位置,因为上面是以反向存放的*/     for (p--;p>=num;p--,num++)        temp=*p,*p=*num,*num=temp;}int main() {    int num_10;    char num[80];    scanf("%d",&num_10);    fun(num_10,num,8);   ......

阅读全文(3894) | 评论:1

在C中的一些词问题(2006-03-19 23:09:00)

摘要:在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.下面介绍了一下该指令的一些常用参数,希望对大家有所帮助! 一. message 参数。 message 它能够在编译信息输出窗  口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为:  #pragma message(“消息文本”)  当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。  当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些宏,此时我们可以用这条指令在编译的时候就进行检查。假设我们希望判断自己有没有在源代码的什么地方定义了_X86这个宏可以用下面的方法  #ifdef _X86  #pragma message(“_X86 macro activated!”)  #endif  当我们定义了_X86这个宏以后,应用程序在编译时就会在编译输出窗口里显示“_  X86 macro activated!”。我们就不会因为不记得自己定义的一些特定的宏而抓耳挠腮了        二. 另一个使用得比较多的#pragma参数是code_seg。格式如:  #pragma code_seg( [ [ { push | pop}, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] ) 该指令用来指定函数在.obj文件中存放的节,观察OBJ文件可以使用VC自带的dumpbin命令行程序,函数在.obj文件中默认的存放节为.text节如果code_seg没有带参数的话,则函数存放在.text节中push (可选参数) 将一个记录放到内部编译器的堆栈中,可选参数可以为一个标识符或者节名pop(可选参数) 将一个记录从堆栈顶端弹出,该记录可以为一个标识符或者节名identifier (可选参数) 当使用push指令时,为压入堆栈的记录指派的一个标识符,当该标识符被删......

阅读全文(2741) | 评论:0

关于简谐振动的演示(2006-03-19 23:05:00)

摘要:#include <graphics.h>#include <math.h>#include <dos.h>#include <malloc.h>#include <string.h>#define TIMEINTR 0x1c#define MARGIN 4#define BUTTONNUM 2#define SCROLLBUTTONNUM 1#define PI 3.1415926535#define SB_WIDTH  20#define SB_LENGTH 60typedef enum bool {false, true}bool;typedef enum state {OFF = 1, ON}State;typedef enum mode {UP = 2, DOWN = 1};typedef struct {        int x,oldx;        int y,oldy;        int but;} MOUSE;typedef struct movement{    double A, W, Angle;    double (*Coordinate)(double Time, struct movement *p);}MOVE;typedef struct button{    int x,y;    char *contents;    void (*Show)(struct button *p, int mode);    bool (*Clicked)(struct button *p);    void (*Function)();}BUTT......

阅读全文(3706) | 评论:1

setjmp与longjmp相结合,实现程序的非本地的跳转(2006-03-19 23:01:00)

摘要:setjmp与longjmp相结合,实现程序的非本地的跳转  呵呵!这就是goto语句所不能实现的。也正因为如此,所以才说在C语言中,setjmp与longjmp相结合的方式,它提供了真正意义上的异常处理机制。其实上一篇文章中的那个例程,已经演示了longjmp函数的非本地跳转的场景。这里为了更清晰演示本地跳转与非本地跳转,这两者之间的区别,我们在上面刚才的那个例程基础上,进行很小的一点改动,代码如下:void Func1(){// 其它代码的执行// 判断程序远行中,是否出现错误,如果有错误,则跳转!if(1) longjmp(mark, 1);}void Func2(){// 其它代码的执行// 判断程序远行中,是否出现错误,如果有错误,则跳转!if(2) longjmp(mark, 2);}void Func3(){// 其它代码的执行// 判断程序远行中,是否出现错误,如果有错误,则跳转!if(-1) longjmp(mark, -1);}void main( void ){int jmpret;jmpret = setjmp( mark );if( jmpret == 0 ){// 其它代码的执行// 下面的这些函数执行过程中,有可能出现异常Func1();Func2();Func3();// 其它代码的执行}else{// 错误处理模块switch (jmpret){case 1:printf( "Error 1\n");break;case 2:printf( "Error 2\n");break;case 3:printf( "Error 3\n");break;default :printf( "Unknown Error");break;}exit(0);}return;}  回顾一下,这与C++中提供的异常处理模型是不是很相近。异常的传递是可以跨越一个或多个函数。这的确为C程序员提供了一种较完善的异常处理编程的机制或手段。setjmp和longjmp使用时,需要特别注意的事情  1、setjmp与longjmp结合使用时,它们必须有严格的先后执行顺序,也即先调用setjmp函数,之后再调用longjmp函数,以恢复到先前被保存的“程序执行点”。否则,如果在setjmp调用之前,执行longjmp函数,将导致程序的执行流变的不可预测,很容易导致程......

阅读全文(2918) | 评论:0

图形方式下的学生管理系统(2006-03-19 22:37:00)

摘要:#include"math.h"#include"graphics.h"#include <stdlib.h>#include <stdio.h>#include <malloc.h>#include <string.h>#include <conio.h>#define N 10#define PI 3.1415926535void updateInfo();void freeInfo();void saveInfo();void show_file();         /*函数声明*/char exitSys();void sortInfo();void update();void addInfo();void deleInfo();void showInfo();typedef struct node      /*定义结构体*/{    char sex[9];    int age;    int flat;    int num;    char name[15];    int money;    int english;    int math;    int computer;    int average;    struct node *next;}student_info;/*主函数*/void main(){   char menu();    char ch,mark;    student......

阅读全文(3500) | 评论:0

网络基础课程设计,A/D转换(c代码)(2006-03-19 22:34:00)

摘要:/*****------ad.c-------******输入要求:输入二进制字符串,如1110011。*          尽量小于10,不然后面的图形无法显示***************************/#include<stdio.h>#include<graphics.h>#include<conio.h>#include<math.h>char str_num[100];void initgraphics(){    int gd=DETECT;    int gm;    initgraph(&gd,&gm,"d:\\language\\tc20\\bgi");    return;}void graph_xy(int len){    setfillstyle(SOLID_FILL,BLUE);    bar(0,20+len,635,220+len);    setcolor(WHITE);    line(100,30+len,100,200+len);    outtextxy(95,30+len,"\/");    outtextxy(100,30+len,"\\y");    outtextxy(90,130+len,"0");    line(25,125+len,600,125+len);    outtextxy(600,120+len,"\\");    outtextxy(593,125+len,"x\/");&......

阅读全文(3509) | 评论:0

简单模拟发扑克牌(c代码)(2006-03-19 22:33:00)

摘要:/*仅输出一位玩家的牌*/#include<stdio.h>#include<conio.h>#include<math.h>#include<stdlib.h>int puke[52]={0};void input(int x,int y);void xipai(void){    int i=0,j=0,flag=0;    int x=0,y=0,z=0;    randomize();    for(i=0;i<52;i++)    {        do{            flag=0;            x=(int)(rand()%4)+1;            y=(int)(rand()%13)+1;            z=x*100+y;            for(j=0;j<i;j++)            {              &nbs......

阅读全文(3389) | 评论:1

模拟tc20界面了解下拉菜单的设计(c代码)(2006-03-19 22:31:00)

摘要:#ifndef                MENU#define                MENU#include<graphics.h>#include<bios.h>#include<alloc.h>#include<dos.h>#include<conio.h>#include<stdio.h>#include<stdlib.h>#define        F1         0x3B00#define        F10        0x4400#define        LEFT       0x4B00#define        RIGHT      0x4D00#define        UP         0x4800#define        DOWN &nbs......

阅读全文(4095) | 评论:0

DOS汉字显示(2006-03-18 18:33:00)

摘要:#include <graphics.h>#include <stdio.h> #define MAXX  640 /*屏幕宽度*/#define MAXY  480 /*屏幕高度*/#define WIDTH 20  /*每一汉字宽度*/#define HIGH  20  /*每一汉字高度*/#define CHSIZ 2   /*英文字体大小*/ int priChi(unsigned char *); /*中文打印函数,传入参数:中文数组指针 返回值 -1 异常 0 正常*/ int X=0; /*全局变量X Y控制中文打印格式*/int Y=0; int main(){    char chinese[][60]={/*TC编译器不支持长行 所以将中文字符串以二维形式存放*/            "我放弃清华计?????!@!a专业的保送资格而选择参加高考的消息震撼",            "从校长到班主任到各科目任课老师都找我谈过话我有点惊异他们的变",            "化在我获得全国信息this is a program for type Whinese words  ",            "and english words.djfkjaiejfjas>ifojaewkfjaweifjaokjdsfjiaew",            "说起这个特别奖还真的挺有意思虽然叫全国决赛但也无非是出几个笔",    &......

阅读全文(13944) | 评论:0