| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2235 人关注过本帖
标题:用了gerchar(),屏幕还是一闪而过怎么办(自动取款机的程序)
只看楼主 加入收藏
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:2 
图片附件: 游客没有浏览图片的权限,请 登录注册

9个错误,二个警告,vc2008里可能提示更多。。按Ctrl+F5,如果程序编译出错,你要仔细查看代码窗口下面的编译错误信息窗口,双击上面的错误条,自动弹到你的错误行,改错。

我们都在路上。。。。。
2011-11-18 12:31
Angel乖乖
Rank: 1
等 级:新手上路
帖 子:70
专家分:3
注 册:2011-5-14
收藏
得分:0 
回复 9楼 hellovfp
主函数必须是int类型的吗
用void 可以不
2011-11-18 12:31
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:1 
VC可以,这个不是主要问题,只是新的C++编程规范要求主函数定义必须是int型的。

我们都在路上。。。。。
2011-11-18 12:33
Angel乖乖
Rank: 1
等 级:新手上路
帖 子:70
专家分:3
注 册:2011-5-14
收藏
得分:0 
回复 13楼 hellovfp
现在能执行了,就是结果错误
函数调用有问题
你能再帮我看看吗
2011-11-18 12:41
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:1 
函数调用问题就只有靠你自己了,学会调试,vc2008调试好象是按F10,F11,下断点是F9,否则你自己是学不到什么东西的,今天这个程序既使我帮你调试成功了,你自己下个程序一样的,也不会调试。

我们都在路上。。。。。
2011-11-18 12:48
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:2 
int ACCOUNT::chaxun(unsigned long id,unsigned int pw)
{
    if(check(pw,id))  《----唉,粗心啊,check函数把传入值写反了,check(id, pw),连第一个查询功能都出现问题呢。
        return ballance;


我们都在路上。。。。。
2011-11-18 13:14
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
        cout<<"请继续选择"<<endl;
        cout<<"<1>存款\n<2>取款\n<3>查询余额\n<4>结束"<<endl;
        cin >> c;    《----最后那里while循环内,少了这句,菜单选择会不生效的。
    }
    cout<<"谢谢使用!"<<endl;
    getchar();
    return 0;
}
大至改了一下:1,3,4功能成功,第2个取款总觉得你的提示有点问题,或是你没有写完。自己改吧。
程序代码:
#include <iostream>
#include <string>
#include <cstdio>
#define error 0
#define succee 1
using namespace std;
class ACCOUNT
{
private:
    unsigned long ID;
    unsigned int password;
    string name;
    int ballance;
public:
    ACCOUNT(unsigned long id,unsigned int pw,const char *n,int a);

    int cunkuan(unsigned long id,unsigned int pw,int a);
    int qukuan(unsigned long id,unsigned int pw,int a);
    int chaxun(unsigned long id,unsigned int pw);
    int check(unsigned long id,unsigned int pw);
};
ACCOUNT::ACCOUNT(unsigned long id,unsigned int pw,const char * n,int a)
{
    ID=id;
    password=pw;
    name = n;
    ballance=a;

}
int ACCOUNT::cunkuan(unsigned long id,unsigned int pw,int a)
{
    if(check(pw,id))
        return error;
    else
    {
        ballance+=a;
        return succee;
        cout<<"您的余额为:"<<ballance<<endl;
    }
}
int ACCOUNT::qukuan(unsigned long id,unsigned int pw,int a)
{
    if(check(pw,id))
        return error;
    else
    {
        if(ballance<a)
            cout<<"您的余额已不足!"<<endl;
        else
            ballance-=a;
    }
    return succee;
}
int ACCOUNT::chaxun(unsigned long id,unsigned int pw)
{
    if(check(id,pw))
        return ballance;
    else
    {
        cout << "here" << endl;
        return error;
    }
}
int ACCOUNT::check(unsigned long id,unsigned int pw)
{
    if( id==ID && pw==password )
        return succee;
    else
        return error;
}
int main()
{
    ACCOUNT A(1005170228,123456,"Angel",500);
    int c;
    unsigned long id;
    unsigned int pw;
    int a;
    cout<<"欢迎使用"<<endl;
    cout<<"-----------------------"<<endl;
    cout<<"<1>存款\n<2>取款\n<3>查询余额\n<4>结束"<<endl;
    cout<<"请选择:"<<endl;
    cout << A.chaxun(1005170228, 123456) << endl;
    cin>>c;
    while(c!=4)
    {
        switch(c)
        {
        case 1:
            cout<<"请输入账号:"<<endl;
            cin>>id;
            cout<<"请输入密码:"<<endl;
            cin>>pw;
            cout<<"请输入存款余额:"<<endl;
            cin>>a;
            if(A.cunkuan(id,pw,a))
            {
                cout<<"操作成功,您目前的余额为 "<<endl;

                cout<<A.chaxun(id,pw)<<""<<endl;
            }
            else
                cout<<"操作失败!"<<endl;
            getchar();
            break;
        case 2:
            cout<<"请输入账号:"<<endl;
            cin>>id;
            cout<<"请输入密码:"<<endl;
            cin>>pw;
            cout<<"请选择取款余额:\t<1>100\t<2>200\t<3>500\t<4>1000"<<endl;
            cin>>a;
            if(A.qukuan(id,pw,a))
            {
                cout<<"操作成功,您目前的余额为 "<<endl;
                cout<<A.chaxun(id,pw)<<""<<endl;
            }
            else
                cout<<"操作失败!"<<endl;
            getchar();
            break;
        case 3:
            cout<<"请输入账号:"<<endl;
            cin>>id;
            cout<<"请输入密码:"<<endl;
            cin>>pw;

            cout << id << endl;
            cout << pw << endl;
            cout << "invoke here" << endl;
            if(A.check(id,pw))
                cout<<"您目前的余额为 "<<endl;
            cout<<A.chaxun(id,pw)<<""<<endl;
            getchar();

            break;
        }
        cout<<"请继续选择"<<endl;
        cout<<"<1>存款\n<2>取款\n<3>查询余额\n<4>结束"<<endl;
        cin >> c;
    }
    cout<<"谢谢使用!"<<endl;
    getchar();
    return 0;
}


我们都在路上。。。。。
2011-11-18 13:24
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
加了一些调试输出语句,自己删除吧,结果给你了,但。。。你从里面学到了什么呢?vc2008表示鸭梨很大。

我们都在路上。。。。。
2011-11-18 13:31
jinh
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2011-5-31
收藏
得分:0 
程序代码:
#include<iostream>
#include<string.h>
using namespace std;
//#define error 0
//#define succee 1
class ACCOUNT
{
private:
    unsigned long ID;
    unsigned int password;
    char name[20];
    int ballance;
public:
    ACCOUNT(unsigned long id,unsigned int pw,char *n,int a);

    int cunkuan(unsigned long id,unsigned int pw,int a);
    int qukuan(unsigned long id,unsigned int pw,int a);
    int chaxun(unsigned long id,unsigned int pw);
    int check(unsigned long id,unsigned int pw);
};
ACCOUNT::ACCOUNT(unsigned long id,unsigned int pw,char *n,int a)
{
    ID=id;password=pw;
    strcpy(name, n);
    ballance=a;

}
int ACCOUNT::cunkuan(unsigned long id,unsigned int pw,int a)
{
    if(check(pw,id))
        return 0;
    else
    {
        ballance+=a;
        return 1;
        cout<<"您的余额为:"<<ballance<<endl;
    }
}
int ACCOUNT::qukuan(unsigned long id,unsigned int pw,int a)
{
    switch(a){
    case 1:a=100;
        break;
    case 2:a=200;
        break;
    case 3:a=500;
        break;
    case 4:a=1000;
    }
    if(!check(id,pw)){
        return 0;
        cout<<"用户名密码错误!!"<<endl;
    }
    else
    {if(ballance<a)
    cout<<"您的余额已不足!"<<endl;
    else
        ballance-=a;
    return ballance;
    }
}
int ACCOUNT::chaxun(unsigned long id,unsigned int pw)
{
    int ji=check(id,pw);
    if(ji==1)
        return ballance;
    else
        return 0;
}
int ACCOUNT::check(unsigned long id,unsigned int pw)
{
    if(id==1005170228&&pw==123456)
        return 1;
    else
        return 0;
}
void main()
{
    ACCOUNT A(1005170228,123456,"Angel",500);
    int c;
    unsigned long id;
    unsigned int pw;
    int a;

loop:
    cout<<"欢迎使用"<<endl;
    cout<<"-----------------------"<<endl;
    cout<<"<1>存款\n<2>取款\n<3>查询余额\n<4>结束"<<endl;
    cout<<"请选择:"<<endl;
    cin>>c;
    //getchar();
    while(c!=4)
    {
        switch(c)
        {
        case 1:
            cout<<"请输入账号:"<<endl;
            cin>>id;
            cout<<"请输入密码:"<<endl;
            cin>>pw;
            cout<<"请输入存款余额:"<<endl;
            cin>>a;
            if(A.cunkuan(id,pw,a))
            {
                cout<<"操作成功,您目前的余额为 "<<endl;
                int ui;
                ui=A.chaxun(id,pw);
      
                cout<<ui<<""<<endl;
            }
            else
                cout<<"操作失败!"<<endl;
            //getchar();
            goto loop;
        case 2:
            cout<<"请输入账号:"<<endl;
            cin>>id;
            cout<<"请输入密码:"<<endl;
            cin>>pw;
            cout<<"请选择取款余额:\t<1>100\t<2>200\t<3>500\t<4>1000"<<endl;
            cin>>a;
            if(A.qukuan(id,pw,a))
            {
                cout<<"操作成功,您目前的余额为 "<<endl;
                cout<<A.chaxun(id,pw)<<""<<endl;
            }
            else
                cout<<"操作失败!"<<endl;
            //getchar();
            goto loop;
        case 3:
            cout<<"请输入账号:"<<endl;
            cin>>id;
            cout<<"请输入密码:"<<endl;
            cin>>pw;
            if(A.check(id,pw))
                cout<<"您目前的余额为 "<<endl;
            cout<<A.chaxun(id,pw)<<""<<endl;
            //getchar();

            goto loop;
        }
        cout<<"请继续选择"<<endl;
        cout<<"<1>存款\n<2>取款\n<3>查询余额\n<4>结束"<<endl;
    }
    cout<<"谢谢使用!"<<endl;
    //getchar();

}
稍微修改了下,不过有些当密码用户名错误时的提示有些没弄,
2011-11-18 15:08
Angel乖乖
Rank: 1
等 级:新手上路
帖 子:70
专家分:3
注 册:2011-5-14
收藏
得分:0 
回复 19楼 jinh
谢谢
2011-11-21 11:13
快速回复:用了gerchar(),屏幕还是一闪而过怎么办(自动取款机的程序)
数据加载中...
 
   



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

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