c语言打字比赛,c语言打字程序

本文目录一览:

请问如何用C语言编写打字模拟练习程序呢

定议键码,

用一个数组来定义

key13=key[13] 是一个数组

在FORM上面的keyperss

上加入

if key=#13 and key=true then //如果你按了回车和当前回车键出现则。。。。。。。

key=false

这样简单可以实现它的原理,基础。。。见笑了

求c语言打字游戏程序,要求如下:

//头文件stdio.h,conio.h,time.h

int main()

{//首先打印信息

getch();

char a,b;

int t,s;

s=time();//获取系统时间,以秒为单位,存入s中

for(;;)

{t=time();

if(t-s=60)break;//假设规定时间是60秒

a=(char)rand();//随机生成数字(返回int型,需要强制转换)

/*rand每次生成的随机数相同,

需要用系统时间初始化随机数生成器,

相关内容可以到百度查*/

for(a’a’||a’z’)a=(char)rand();//如果不是小写字母,重新生成

printf(“%c”,a);

b=getch();

if(a==b);//正确

else printf(“\b_”);//\b代表backspace,错误时打印_

}

getch();//结束

}

//当然,如有兴趣,可以定义两个int型变量,分别记录总字数和敲对的字数

c语言制作一个简单的打字游戏(落下一个字母按相应字母消去,记录分数)

游戏常量参数自行修改(字母的列数,下落最大高度,下落速度等)。

程序功能:(随机生成字母,下落,并检查按键,计分)

多线程:按键检查采用新的线程与主线程同步。

独立速度:每个字母下落速度都是随机且不相同。

玩法:按键区分大小写,落到底部或被玩家按中,下落中的字母就会消失,并在该列顶部创建新的字母下落,按中1次记1分。

注意:由于字母都是随机的,如果同时下落的字母很多,可能会有重复字母出现,如果按键对应了多个同样的字母,这些字母会删掉并新建,也就是说出现按中一次记多分,说明有多个重复字母,不是BUG!

#include stdio.h

#include stdlib.h

#include malloc.h

#include conio.h

#include time.h

#include windows.h

#define W 30//宽度

#define H 20//高度

#define MinSPEED 50//最慢下降速度(周期,数字越小越快)

#define MAXSPEED 5//最快下降速度

int score=0;//总分

typedef struct letter

{

     int ascii;// 字母ASCII码

     int hIndex;//对应打印数组行下标

     int wIndex;//对应打印数组列下标

     int cnt;//周期计数,当cnt==speed,hIndex++并且cnt重新置0

     int speed;//下降速度

     int key;//0表示没有被按中,1表示被按中

     struct letter *next;

}LETR;

void meError(void *p);//内存申请失败

LETR *newLETR(LETR *letrHead,LETR*letrTail,int wIndex);//产生一个新的字母,并添加到链表,返回尾节点

LETR* delLETR(LETR *letrHead,LETR*letrTail,int wIndex);//删除列下标的字母节点,返回新的尾节点

LETR *init(LETR *letrHead);//初始化一组字母,返回链表尾节点

LETR *showList(LETR *letrHead,LETR*letrTail);//显示列表并检查,发现到底或被按键按中的字母删除并新建新的字母,返回新的尾节点

void runLetter(LETR *letrHead);//所有字母一周期计数

DWORD WINAPI checkKey(LPVOID lpParameter);//新线程

int main()

{

    int i;

    LETR *letrHead=NULL,*letrTail=NULL;

    letrHead=(LETR *)malloc(sizeof(LETR));

    meError(letrHead);

    letrHead-next=NULL;

    srand(time(NULL));

    letrTail=init(letrHead);

    CreateThread(NULL,0,checkKey,letrHead,0,NULL);

    letrTail=showList(letrHead,letrTail);

    while(1)

    {

        system(“cls”);

        printf(“总分:%d\n”,score);

        for(i=0;iW;i++)

            printf(“-“);

        printf(“\n”);

        runLetter(letrHead);

        letrTail=showList(letrHead,letrTail);

        for(i=0;iW;i++)

            printf(“-“);

        printf(“\n”);

    }

    return 0;

}

DWORD WINAPI checkKey(LPVOID lpParameter)

{

char c;

LETR *letrHead=NULL;

while(1)

    {

        letrHead=(LETR *)lpParameter;

        c=getch();

        while(letrHead-next)

        {

            if(c==letrHead-next-ascii)

                letrHead-next-key=1,score++;//按键标识置1,考虑可能有多个相同随机字母,故用标识,在显示函数统一删除并新建

            letrHead=letrHead-next;

        }

    }

return 0;

}

void runLetter(LETR *letrHead)//所有字母一周期计数

{

    while(letrHead-next)

    {

        if(letrHead-cntletrHead-speed)

            letrHead-cnt++;

        else

            (letrHead-next-hIndex)++,letrHead-cnt=0;

        letrHead=letrHead-next;

    }

}

LETR *showList(LETR *letrHead,LETR*letrTail)//显示列表并检查,发现到底或被按键按中的字母删除并新建新的字母,返回新的尾节点

{

    int i,j,wIndex;

    char sp[H][W];

    LETR *head=letrHead;

    for(i=0;iH;i++)

        for(j=0;jW;j++)

            sp[i][j]=’ ‘;

    while(letrHead-next)

    {

        if(letrHead-next-hIndexH-1 || letrHead-next-key==1)//到底或者被按中就删除并新建,重新循环

        {

            wIndex=letrHead-next-wIndex;

            letrTail=delLETR(head,letrTail,wIndex);

            letrTail=newLETR(head,letrTail,wIndex);

            letrHead=head;

        }

        else

            sp[letrHead-next-hIndex][letrHead-next-wIndex]=letrHead-next-ascii;

        letrHead=letrHead-next;

    }

    for(i=0;iH;i++,printf(“\n”))

        for(j=0;jW;j++)

            printf(“%c”,sp[i][j]);

    return letrTail;

}

LETR *init(LETR *letrHead)//初始化一组字母,返回链表尾节点

{

    int i;

    LETR*letrTail=NULL;

    for(i=0;iW;i++)

        letrTail=newLETR(letrHead,letrTail,i);

    return letrTail;

}

LETR *newLETR(LETR *letrHead,LETR*letrTail,int wIndex)//在列下标wIndex首行,产生一个新的字母,并添加到链表,返回尾节点

{

    int n;

    LETR *leterNEW=(LETR *)malloc(sizeof(LETR));

    meError(leterNEW);

    leterNEW-next=NULL;

    n=rand()%2;

    if(n)//随机大小写

        leterNEW-ascii=rand()%26+65;//随机一个大写字母

    else

        leterNEW-ascii=rand()%26+97;//随机一个小写字母

    leterNEW-hIndex=0;

    leterNEW-wIndex=wIndex;

    leterNEW-cnt=0;

    leterNEW-speed=rand()%(MinSPEED-MAXSPEED)+1+MAXSPEED;

    leterNEW-key=0;

    if(letrHead-next==NULL)

        letrHead-next=leterNEW;

    else

        letrTail-next=leterNEW;

    letrTail=leterNEW;

    return letrTail;

}

LETR* delLETR(LETR *letrHead,LETR*letrTail,int wIndex)//删除列下标的字母节点,返回新的尾节点

{

    LETR *lhead=letrHead,*letrDel=NULL;

    while(letrHead-next)

    {

        if(letrHead-next-wIndex==wIndex)

        {

            letrDel=letrHead-next;

            letrHead-next=letrHead-next-next;

            free(letrDel);

            break;

        }

        letrHead=letrHead-next;

    }

    letrHead=lhead;

    while(letrHead-next)//重置尾节点

        letrHead=letrHead-next;

    return letrHead;

}

void meError(void *p)//内存申请失败

{

    if(p==NULL)

    {

        printf(“\n异常:内存申请失败!回车结束程序!\n”);

        while(getch()!=’\r’);

        exit(0);

    }

}

C语言编写一个小项目,打字测试 求大神帮忙

最简单明了的程序如下:

#include

main(){

double

x,y,max,min;min=max=0;

for(x=0;x=2;x+=0.2)

{

y=2*x*x*x-3*x*x*x*x+6*x*x*x*x*x-4*x-50;

printf(“当x=%f时,y=%f\n”,x,y);

if(ymax)

max=y;

if(y

追问:

我想检验符不符合作业要求

有什么软件能推荐一下么

大神

评论

加载更多

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/231824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-11 01:07
下一篇 2024-12-11 01:07

相关推荐

  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • 爬虫是一种程序

    爬虫是一种程序,用于自动获取互联网上的信息。本文将从如下多个方面对爬虫的意义、运行方式、应用场景和技术要点等进行详细的阐述。 一、爬虫的意义 1、获取信息:爬虫可以自动获取互联网上…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • Python一元二次方程求解程序

    本文将详细阐述Python一元二次方程求解程序的相关知识,为读者提供全面的程序设计思路和操作方法。 一、方程求解 首先,我们需要了解一元二次方程的求解方法。一元二次方程可以写作: …

    编程 2025-04-29

发表回复

登录后才能评论