标题:C 关于一个多账号登陆的问题
只看楼主
zwcsuperman
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-6-7
结帖率:0
已结贴  问题点数:20 回复次数:2 
C 关于一个多账号登陆的问题
题目的要求是
编写算法实现密码设置与校验:
1.从屏幕上输入多个账号密码,账号密码的长度不超过20个字符,输入的密码在屏幕上以”*”显示,并保存在文本文件中。
2.实现登陆功能,如果登陆输入的账号密码与设置的相同,则显示欢迎信息,如果密码不正确,则提示错误,并重试,如果三次仍失败则退出程序。

也就是类似于QQ多账户的同时登陆问题。现在楼主写了一些代码如下,
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
    FILE *fp;
    char ch,person[20],password1[20];
    char name[20];
    char password[20];
    int n,p,i=1;
    int flag=0;  //flag用于跳出最后循环结构
    printf("请输入账号密码组数:\n");  //输入密码个数
    scanf("%d",&n);
    printf("账号:\n");
    scanf("%s",&name);
    if((fp=fopen("test.txt","w"))==NULL)
    {
        printf("没有打开文件,程序退出\n");

    }
    printf("输入密码:");
    while(i++<=n)
    {
        while(ch=getch())
        {

            if(ch!=13)
            {
                printf("*");
                fputc(ch,fp);
            }
            else
            {
                printf("\n");
                fputc('\n',fp);
                break;//检测密码是否为空、回车等无意义
            }
        }
    }
    fclose(fp);
    fp=fopen("test.txt","r");
    getchar();
    for(p=1;p<=3;p++)
    {
        if(flag==0)
        {
            printf("You have only %d chances:\n",4-p);  //提示密码出错次数
        }

        gets(password1);
        rewind(fp);   
        for(i=0;i<n;i++)//此处for循环用于检测多个密码和文件中的密码是否一致
        {
            fscanf(fp,"%s",name);
            if(strcmp(name,person)==0)
            {
                printf("用户名正确请继续输入密码!");
            }
            else
                printf("用户名输入错误\n");
            fscanf(fp,"%s",password);
            if(strcmp(password,password1)==0)
            {
                printf("Welcome to enter the system\n");  //输入正确,欢迎进入系统
                flag=1;
            }
        }
    }

    fclose(fp);
    if(flag==0)
    {
        printf("You have no right to enter the system!\n");//三次机会用完,程序退出无法进入系统!
    }
}


现在问题是这样。楼主需要一个功能比如说我已经输入一个账号和密码然后需要再输入账号密码时候先输入一个数字或者其他就能重新转到输入账号的功能上去。
搜索更多相关主题的帖子: 文本文件 include person 账号 
2014-06-07 23:58
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
输入的密码在屏幕上以”*”显示,   //控制台下这能实现吗

DO IT YOURSELF !
2014-06-08 07:06
靠谱的白蓝
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:55
专家分:189
注 册:2013-12-11
得分:10 
你的说法是发现密码错误在没有确认之前的密码重置么?我觉得程序还缺少很多功能!
2014-06-08 13:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-432637-1-1.html




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

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