我的实用代码

这里是英(C)语(yǔ)科(yán)听力部分。该部分有第一、第二两节。

请注意,回答听力部分时,请先将答案写在试卷上,听力部分结束前,你将有两分钟的时间将试卷上的答案转移到答题卡上。

听力考试,现在开始!

光标隐藏函数

void HideCursor(void)
{
   CONSOLE_CURSOR_INFO cursor_info = {1, 0};
   SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}

show_bytes

#include <bits/stdc++.h>
using namespace std;
typedef unsigned char* bite_pointer;
typedef int T;//数据类型为int,可更改
void show_bites(bite_pointer p,size_t len)
{
    size_t i;
    cout<<"In machine order:";
    for(i=0;i<len;i++)
    {
        printf("%.2x ",p[i]);
    }
    printf("\n");
    cout<<"In person order: ";
    for(i=len-1;i>0;i--)
    {
        printf("%.2x ",p[i]);
    }
    printf("%.2x ",p[i]);
    printf("\n");
}
int main()
{
    int a;
    cout<<"Please input the data in type \"int\":";
    cin>>a;
    show_bites((bite_pointer)&a,sizeof(T));
    return 0;
}

界面设计和上色

注意:本内容请勿改动任何参数!

#include <windows.h>
#include <conio.h>
#include <time.h>

int wide=60,high=30;//宏常量定义,数据可变
HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);//写在主函数或调用函数内部,用于定义hout并进行初始化
system("mode con cols=80 lines=40 ");//运行框大小限制

void gotoxy(HANDLE hout,int x,int y)
{
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(hout,pos);
}
int color(int c)//设置颜色
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);
    return 0;
}//颜色有若干种
//两个调用函数

设置某句子的位置用gotoxy(hout,wide*k,high*m),就是在 wide 的 k 倍,high 的 m 倍的位置。 句子上色用color(c),c 为指定颜色序号。 输出后的停顿用void Sleep(int t)函数,在<windows.h>中,t 代表暂停的毫秒数。 使用时每个句子前都要用 gotoxy 指定位置,用 color 上色。 合起来如下:

    gotoxy(hout,wide/5,high/6);
    color(6);
    printf("本计算器仅支持5个及以下的矩阵,分别名为A~E(大写)。");
    Sleep(200);
    gotoxy(hout,wide/5,high/6+1);
    color(6);
    printf("每个矩阵阶数不超过5*5。");
    Sleep(200);

关于音乐效果

#include<windows.h>
#include<mmsystem.h>
#pragma comment(lib."Winmm.lib") //头文件
PlaySound(TEXT("音乐名.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);//开始播放
PlaySound(NULL,NULL,SND_FILENAME);//结束播放

注意:音频必须使用wav格式,必须放在跟代码同一个文件夹,如果不然,音乐名处应当使用其绝对地址或相对地址

震动心形设计

#define I 20
#define R 340

int wide=80,high=40;//宏常量定义,数据可变
system("title xxx");//运行框名称修改,主函数第一句
system("mode con cols=80 lines=40 ");//运行框大小限制

void draw_color()//整体颜色震动效果函数
{
    char cl[20];
    srand((unsigned int)time(NULL));
    int k = rand() % strlen(back_color);
    strcpy(cl, Color);
    cl[len] = back_color[k];
    srand((unsigned int)time(NULL));
    k = rand() % strlen(font_color);
    cl[len + 1] = font_color[k];
    cl[len + 2] = '\0';
    system(cl);
}

颜色震动使用方法实例:

for(i=0;i<6;i++,lower+=3)
{
    puts(data[i+15]);
    for(j=0;j<wait;j++)
    {
        draw_color();
        Sleep(200);
    }
    Sleep(200);
}
void draw_heart(int wait)//心形设计函数,传入参数为0即可
{
    int i,j,e,a;
    for(i=1,a=I;i<I/2;i++,a--)
    {
        for(j=(int) ( I-sqrt(I*I-(a-i)*(a-i)) );j>0;j--)
        {
            printf(" ");
        }
        for(e=1;e<=2*sqrt(I*I-(a-i)*(a-i));e++)
        {
            printf("\3");
        }
        for(j=(int)( 2*( I-sqrt(I*I-(a-i)*(a-i)) ) );j>0;j--)
        {
            printf(" ");
        }
        for(e=1;e<=2*sqrt(I*I-(a-i)*(a-i));e++)
        {
            printf("\3");
        }
        printf("\n");
        if(wait&&i%2)
        {
            draw_color();
            Sleep(80);
        }
    }
    for(i=1;i<80;i++)
    {
        if(i==20)
        {
            for(int j=0;j<40;j++)
            {
                printf("\3");
            }
            i+=40;
        }
        printf("\3");
    }
    printf("\n");
    for(i=1;i<=R/2;i++)
    {
        if(i%2||i%3)
        {
            continue;
        }
        for(j=(int) ( R-sqrt(R*R-i*i) );j>0;j--)
        {
            printf(" ");
        }
        for(e=1;e<=2*( sqrt(R*R-i*i) - (R-2*I) );e++)
        {
            printf("\3");
        }
        printf("\n");
        if(wait)
        {
            draw_color();
            Sleep(80);
        }
    }
}

给代码加行号的代码

#include<stdio.h>

int main(void)
{
    FILE *fpIn;
    // 输入文件的指针
    FILE *fpOut;
    // 输出文件的指针
    char str[1000];
    // 用来存储从文件中读取出的”一行“字符串信息
    int row = 1;
    fpIn = fopen("文件名.cpp", "r");
    /* 以只读和文本格式打开需要的.cpp文件
     *这里的文件名无所谓大小写
     */
    fpOut = fopen("文件名.txt", "w");
    // 以创建方式(也叫写方式)打开文件名.txt文件
    fgets(str, 81, fpIn);
    /* 从文件中读取一行信息,保存到str数组中。
     *这里要注意的是这个81,
     *一般情况下,编写文本格式文件的人,都习惯遇到行尾就敲回车,
     *所以,一般情况下,文本文件一行最多80个字符。
     *如果,一行不够80个字符,这个函数会自动只读到'\n'就结束了。
     */
    while(!feof(fpIn))
    { // 判断上一次fgets()是否正常(即,没有遇到文件尾部)
        fprintf(fpOut, "%4d   %s", row, str);
        // 在读入的每一行信息前,加入0000到9999的行号(应该够用了吧),呵呵呵呵
        row++; // 行号加一
        fgets(str, 81, fpIn); // 读取下一行
    }
    fclose(fpIn); // 关闭文件
    fclose(fpOut);
}