| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3022 人关注过本帖, 1 人收藏
标题:自己写的一个登陆验证
只看楼主 加入收藏
叶柄
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-17
收藏(1)
 问题点数:0 回复次数:14 
自己写的一个登陆验证
自己写的一个登陆验证
可以上下切换,和删除
程序代码:
#include<stdio.h>
#include<conio.h>
#include "windows.h" 

#define ORG_X 20
#define ORG_Y 3
/*
**定义账号,密码最大位数
*/
#define HMAX 10
#define PMAX 10
/*
**定义账号,密码
*/
#define HH "2007121148"
#define PP "771691"



int main(void)
{
    int password(void);

    if( 1==password() )
    {
        printf("欢迎!\n");
    }
    else
    {
        printf("非法用户!\n");
    }
    return 0;
}




void gotoxy(int x,int y)
{ 
    COORD c; 
    c.X=x-1; 
    c.Y=y-1; 
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); 
} 


int password(void)
{
    int h_x,p_x,now_y; /*h_x,p_x,now_y当前帐号,密码,行光标位置*/
    int count_h=0,count_p=0;/*已输入帐号,密码个数*/
    char ch;
    char h[HMAX+1],p[PMAX+1];/*保存账号,密码*/


    p_x=h_x=ORG_X;
    now_y=ORG_Y;

    gotoxy(ORG_X-5,ORG_Y+1);
    printf("密码:");

    gotoxy(ORG_X-5,ORG_Y);
    printf("帐号:");


    while((ch=getch())!=13)
    {

        /*
        **处理切换
        */
        if( ('\t'==ch) && ORG_Y==now_y )
        {
            now_y+=1;
            gotoxy(p_x,now_y);
            continue;
        }

        if( ('\t'==ch) && ORG_Y+1==now_y)
        {
            now_y-=1;
            gotoxy(h_x,now_y);
            continue;
        }

        /*
        **处理删除
        */
        if( ((char)8==ch) && h_x>ORG_X && ORG_Y==now_y  )
        {
            h[ORG_X - h_x]=0;
            h_x--;
            count_h--;
            gotoxy(h_x,now_y);
            printf(" ");            
            gotoxy(h_x,now_y);
            continue;
        }
        
        if( ((char)8==ch) && p_x>ORG_X && ORG_Y+1==now_y )
        {
            p[ORG_X - p_x]=0;
            p_x--;
            count_p--;
            gotoxy(p_x,now_y);
            printf(" ");
            gotoxy(p_x,now_y);
            continue;

        }
        /*
        **处理输入
        */

        if(ORG_Y==now_y && count_h<HMAX && ch!=8)
        {
            h[h_x - ORG_X]=ch;
            printf("%c",ch);
            h_x++;
            count_h++;
        }

        if(ORG_Y+1==now_y && count_p<PMAX && ch!=8)
        {
            p[p_x - ORG_X]=ch;
            printf("*");
            p_x++;
            count_p++;
        }
    }

    p[p_x-ORG_X]=0;
    printf("\n");
    h[h_x-ORG_X]=0;

    /*
    **验证密码
    */
    if( 0==strcmp(h,HH) )
    {    
        if( 0==strcmp(p,PP) )
        {
            system("cls");
            return 1;
        }
    }
    system("cls");

    return 0;
}
搜索更多相关主题的帖子: define windows int void 
2007-12-20 12:40
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
收藏
得分:0 
好,支持楼主一下。。。

真理往往掌握在少数人手中,可现实却是少数服从多数!
2007-12-20 12:48
baoheike
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-12-16
收藏
得分:0 
好东西
2007-12-20 14:09
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
哇……自己写的Input啊……支持!~!

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-20 15:17
阿牧
Rank: 1
等 级:新手上路
威 望:1
帖 子:138
专家分:0
注 册:2007-11-5
收藏
得分:0 
就两行输入,没看出有什么功能啊?
2007-12-20 21:34
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
为什么我用TC会乱码呢?

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2007-12-20 23:07
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
怎么写这么长啊

—>〉Sun〈<—
2007-12-20 23:10
jingru
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-11-16
收藏
得分:0 
会有一点bug哦,当使用方向键的时候
2007-12-21 00:08
灭火的风
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:161
专家分:10
注 册:2006-6-15
收藏
得分:0 
原帖由 [bold][underline]hanzhu3366[/underline][/bold] 于 2007-12-20 23:07 发表 [url=http://bbs.][/url]
为什么我用TC会乱码呢?

他是用vc写的,用TC的话就不要include"windows.h"了,这个头文件是Windows API库。因为楼主是在VC下开发的,所以为了实现gotoxy函数才要调用Windows API函数SetConsoleCursorPosition,这个函数用来设置Windows下命令行窗口的光标位置。但是如果你是用TC的话,connio.h头文件里好像直接就有gotoxy(x,y);这个函数了,所以不需要自己写这个函数,而且也不能用这个API函数。
    另外,TC是在实模式下的,所以也可以很容的易直接写字符屏幕的缓存来实现这种效果。

[[italic] 本帖最后由 灭火的风 于 2007-12-21 00:23 编辑 [/italic]]
2007-12-21 00:15
灭火的风
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:161
专家分:10
注 册:2006-6-15
收藏
得分:0 
楼主的程序些的挺好的,结构也很清晰。不过还是提个小建议:在判断输入的时候用switch结构会更清楚些。
2007-12-21 00:25
快速回复:自己写的一个登陆验证
数据加载中...
 
   



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

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