博文

花儿(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,......

阅读全文(3155) | 评论: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];
  ......

阅读全文(3668) | 评论: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 (可选参数) 将一个记录放到内部编译器的堆栈中,可选参数可以为一个标识符或者节......

阅读全文(2497) | 评论: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 60
typedef 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 ......

阅读全文(3479) | 评论: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);
}......

阅读全文(2691) | 评论: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.1415926535
void 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;......

阅读全文(3224) | 评论: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......

阅读全文(3252) | 评论: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++)
           &nb......

阅读全文(3184) | 评论: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
#defi......

阅读全文(3880) | 评论: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",
            "说起这个特......

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