| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1797 人关注过本帖
标题:看看你windows程序设计是什么级别 ,/
只看楼主 加入收藏
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
结帖率:94.72%
收藏
已结贴  问题点数:20 回复次数:18 
看看你windows程序设计是什么级别 ,/
实现一个类似QQ号登录的效果 :
程序输入一个:NC, 用 * 遮盖
程序输出一个: NC
Enter your password:
**

NC

[ 本帖最后由 BlueGuy 于 2010-10-23 15:56 编辑 ]
搜索更多相关主题的帖子: 程序设计 windows 级别 
2010-10-23 15:41
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
c的那么彻底, 应该不会连个NC都输不出来吧,

鄙人不才, 用不知道叫什么的c 实现了这个,  代码羞于见众。
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 BlueGuy 于 2010-10-23 16:49 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2010-10-23 15:45
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
不是很厉害吗?汇编+c 直接读显存的, 这么简单的东西不是等着反汇编吧,

[ 本帖最后由 BlueGuy 于 2010-10-23 17:34 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2010-10-23 17:32
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:2 
想起当年 wx神牛 的签名了。好像是什么:生命不熄,战斗不止。
2010-10-23 19:29
cacker
该用户已被删除
收藏
得分:2 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-23 19:56
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-23 20:07
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 6楼 cacker
没有那么复杂, 很初级的题目,你写的已经很好了。

我就是真命天子,顺我者生,逆我者死!
2010-10-23 20:37
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
收藏
得分:2 
```晕死··又是这个··

我以前试着写过一个学生成绩管理系统··

但是只写到了系统的管理员帐号创建部分···

连核对部分都没写完··

里面就有我写的密码输入的代码···

现在回头看··好多都不知道怎么回事了···虽然有很多注释··

贴上我处理按退格键和按4个方向移动键以及HOME END键的代码··
程序代码:
/* 处理按退格键的情况 */
void back_spasce( int * words , int * sousor , char * i_w)
{
    if ( *words )
    {
        if ( *words + 1 == *sousor ) DEL_STAR ;
        else
        {
            int right = *words - *sousor , /* 移动到最后一个星星的次数 */
                left  =  right + 2 ;       /* 移动到退格后的位置的次数 */

            while  ( right-- ) STAR ;  /* 向右输出星星覆盖     */
            putchar('\0') ;            /* 消失掉最后一个星星   */
            while  ( left-- ) putchar('\b') ; /* 向左移动光标 */

            right = *sousor - 1 ,  /* 被退掉的字符的前一个字符的位置 */
            left  = right   - 1 ;  /* 被退掉的字符的位置 */

            /* 将密码字符从后向前一个个的移动 */
            while ( ( *( i_w + left++ ) = *( i_w + right++ ) ) != 0 ) ;
        }

        --*words ; --*sousor ; /* 更新字符数和光标的位置 */
    }

    return ;
}



/* 处理按移动键的情况 */
void move_sousor( int * words , int * sousor )
{
    #define LEFT  75  /*  ←   */
    #define HOME  71  /* HOME */
    #define RIGHT 77  /*  →   */
    #define END   79  /* END  */

    char c = getch() ;
    int  move ;       /* 移动的次数 */

    /* 计算向右移动的次数 (按←或home键)*/
    move = ( c == LEFT  ) ? 1 : ( ( c == HOME ) ? ( *sousor - 1 ) : 0 ) ;
    while  ( move-- ) { putchar('\b') ; --*sousor ; } /* 输出退格,光标就移动一下 */

    /* 计算向右移动的次数 (按→或 end键)*/
    move = ( c == RIGHT ) ? ( *words + 1 > *sousor ) : ( ( c == END ) ? ( *words - *sousor + 1 ) : 0 ) ;
    while  ( move-- ) { putchar('*' ) ; ++*sousor ; } /* 输出星星通过覆盖来移动   */

    return ;
}


我把我以前的代码弄上来把···

有兴趣的可以看下···现在回头看···发现原来的代码好乱啊··

多文件编译···程序还是可以运行的··目前只有创建帐号和初步核对··

如果编译不能通过···就不要管了··否则估计会那会把你们看晕的··

smp.zip (5.86 KB)



2010-10-23 21:06
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
上次记得有人问过这个问题,

我就是真命天子,顺我者生,逆我者死!
2010-10-23 21:10
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
收藏
得分:0 
刚才回顾了一下我以前的代码···

把代码找出来写了一个临时的···然后发现居然还有一个BUG···。。。真悲剧··
程序代码:
#include <stdio.h>     /*   USE  I/O & FILE   */
#include <stdlib.h>    /*   USE  CLS          */
#include <conio.h>     /*   USE  getch        */

#define LEN 40  /* The length of ID or WORD  */
#define STAR putchar('*')
#define DEL_STAR printf("%c%c%c",'\b','\0','\b')

void getword( char * w , int len  ) ;
void back_spasce( int * words , int * sousor , char * i_w) ; /* 处理按退格键的情况 */
void move_sousor( int * words , int * sousor ) ; /* 处理按移动键的情况 */


int main(void)
{
    char words[LEN+1] = {'\0'} ;

    printf ("INPUT  WORD:\n\n")  ;

    getword( words, LEN+1 )    ;

    printf ( "\n%s\n" , words );

    return EXIT_SUCCESS ;
}


/* Read the WORD string */
void getword( char * w, int len  )
{
    char c ;              /* Use to read the in-char */
    int words  = 0 ;      /* Statistics characters (统计字符的数目) */
    int sousor = words + 1 ;      /* 光标的位置 */

    while( ( c = getch() ) != '\r' && words<len ) /* Read character into in_id */
    {
        if ( c == '\b' )  { back_spasce( &words , &sousor , w) ; continue ; } /* 处理按退 */
        if ( c == -32  )  { move_sousor( &words , &sousor )    ; continue ; } /* 处理按移 */
        if ( !c ) continue ; /* 处理按移其他无用键 */
        if ( words < LEN ) *(w + words ) = c ;   /* 在允许长度内存放密码 */

        STAR ; ++sousor ; ++words ;
    }

    *(w + words ) = '\0' ;
}


/* 处理按退格键的情况 */
void back_spasce( int * words , int * sousor , char * i_w)
{
    if ( *words )
    {
        if ( *words + 1 == *sousor ) DEL_STAR ;
        else
        {
            int right = *words - *sousor , /* 移动到最后一个星星的次数 */
                left  =  right + 2 ;       /* 移动到退格后的位置的次数 */

            while  ( right-- ) STAR ;  /* 向右输出星星覆盖     */
            putchar('\0') ;            /* 消失掉最后一个星星   */
            while  ( left-- ) putchar('\b') ; /* 向左移动光标 */

            right = *sousor - 1 ,  /* 被退掉的字符的前一个字符的位置 */
            left  = right   - 1 ;  /* 被退掉的字符的位置 */

            /* 将密码字符从后向前一个个的移动 */
            while ( ( *( i_w + left++ ) = *( i_w + right++ ) ) != 0 ) ;
        }

        --*words ; --*sousor ; /* 更新字符数和光标的位置 */
    }
}



/* 处理按移动键的情况 */
void move_sousor( int * words , int * sousor )
{
    #define LEFT  75  /*  ←   */
    #define HOME  71  /* HOME */
    #define RIGHT 77  /*  →   */
    #define END   79  /* END  */

    char c = getch() ;
    int  move ;       /* 移动的次数 */

    /* 计算向右移动的次数 (按←或home键)*/
    move = ( c == LEFT  ) ? 1 : ( ( c == HOME ) ? ( *sousor - 1 ) : 0 ) ;
    while  ( move-- ) { putchar('\b') ; --*sousor ; } /* 输出退格,光标就移动一下 */

    /* 计算向右移动的次数 (按→或 end键)*/
    move = ( c == RIGHT ) ? ( *words + 1 > *sousor ) : ( ( c == END ) ? ( *words - *sousor + 1 ) : 0 ) ;
    while  ( move-- ) { putchar('*' ) ; ++*sousor ; } /* 输出星星通过覆盖来移动   */
}





2010-10-23 21:38
快速回复:看看你windows程序设计是什么级别 ,/
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018917 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved