广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 8057 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
snowfish7
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] 用dev c++写出帐号登入系统
因为在下还没学到连结外部资料库,所以就直接内建一组帐号密码。

目前希望能够有这些功能:
判断帐号是否正确、
判断密码是否正确、
最多只能输入5次错误的密码。

目前构想出来的写法如上:


而在主函数中特别宣告一个int acc_db 变数
并且设定成acc_datebase(acc,pw)的回传值,

是不想在执行swith回圈的时候又算一次,
好像用参照也可以....?"


目前的问题是:
在acc_datebase()函数的定义里面,

想要用acc_db 、pw_db 来比对帐号lovehina 与密码 lemon1357
if(acc_db=="lovehina") // 判断帐号是非
if(pw_db=="lemon1357") // 判断密码是非

不过好像不是这么写,
因为acc_datebase()函数的回传值总是3.....


目前也找不到 if回圈+用字元阵列当判断条件 的用法;
exp:
if(字元阵列[]==字串XXX)
{
叙述1...
叙述2..
}

还有while(acc_db!=1 || pw_error!=0); 这段逻辑似乎也有问题
在下希望只要pw_error ==0 或者 acc_db==1 其中之一成立就能离开回圈...


可以请c++的前辈指点吗?"

还有如果有更适合的写法也请前辈多多指点,

如果有不懂的功能在下会另外再请教的~


#include <iostream>
#include <cstdlib& ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被snowfish7在2008-05-29 23:00重新编辑 ]



在下是c++的初学者,

如果问了一般c++使用者都应该懂的傻瓜问题
还请见谅了 o (_ _)o
献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2008-05-29 22:52 |
海洋天使 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x35
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

帐号密码的话
不建议这样写,也不应该这样写

您使用char 当做宣告,然后阵列表示


值都会是3没错 你传的值会是个指标,当然这组位置是不可能相等的

要这样子写
例子:
int acc_datebase(char acc_db[16],char pw_db[16])
// 假的帐密资料库
{
   char acc[16] = "lovehina";         //这部份这样写不知道对不对 不对的话用strcpy来copy
   char pw[16] = "lemon1234";   //这部份就是告知原本帐密

      for(int i=0; i<16; i++)
       if(acc_db[ i ] != acc [ i ] || pw_db[ i ] != pw [ i ])
                return false;   //错误传回0
           else
                return true;   //正确的话传回1
}


我不是高手,但是给您参考看看︿︿


献花 x0 回到顶端 [1 楼] From:台湾 | Posted:2008-05-29 23:59 |
jonaspeng
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x24
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

int acc_datebase(char acc_db[16],char pw_db[16])
{
  /* 相同回传0, 前大于后回传正值, 前小于后回传负值 */
  /* 自己运用吧!!! /
  return strcmp(acc_db, pw_db);
}


献花 x0 回到顶端 [2 楼] From:台湾中华 | Posted:2008-05-30 10:50 |
daviddr
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x7
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

> 目前也找不到 if回圈+用字元阵列当判断条件 的用法;

试试这个~

复制程式
//判断字串是否相等
bool str_eq (register const char* a, register const char* b) 
{
    while (*a==*b++) if (!*a++) return true; 
    return !(*a-b[-1]);
}

int acc_datebase (char acc_db[16],char pw_db[16])
// 假的帐密资料库 
{
    if (!str_eq (acc_db,"lovehina")) return 3;  // 判断帐号是非  
    return str_eq (pw_db,"lemon1234")? 1: 2;    // 判断密码是非 
} 

> 还有while(acc_db!=1 || pw_error!=0); 这段逻辑似乎也有问题
> 在下希望只要pw_error ==0 或者 acc_db==1 其中之一成立就能离开回圈...

改成这样:

复制程式
do {  ...  }
while (acc_db!=1 && pw_error>0);


献花 x0 回到顶端 [3 楼] From:台湾中华 | Posted:2008-05-30 14:40 |
daviddr
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x7
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

这是.... 雏田庄的资料库吼.... 表情


献花 x0 回到顶端 [4 楼] From:台湾中华 | Posted:2008-05-30 14:55 |
snowfish7
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

海洋天使大:
感谢您提供这种判定法给在下啰~

这种字串比对法在下真的还没想到过呢 ^ __ ^- 表情

3Q啰~





jonaspeng大;
抱歉,在下还没学到这种回传型态

return strcmp(acc_db, pw_db)

刚刚上网找了一下

原来这是字串比对的函式库

之后读到这篇的话会特别注意的

多谢您提供个很棒的方法啰~表情





daviddr大;
哎呀呀 , 没想到还是有人记得雏田庄这部漫画呢 (感动... 表情

那个字串判断函数似乎是个很棒的东西...

不过在下目前还看不太懂

我记得register是用命令cpu去计算的指令

const . char* . return !()...这个就完全看不懂了..

如果之后有读到这种类型的指令

在下会多多注意的~



真的非常感谢三位大大啰~ 表情


在下是c++的初学者,

如果问了一般c++使用者都应该懂的傻瓜问题
还请见谅了 o (_ _)o
献花 x0 回到顶端 [5 楼] From:台湾 | Posted:2008-05-31 18:58 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.057260 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言