问题标题: 氪金的天地2.0

0
0
已解决
邓涵睿
邓涵睿
中级天翼
中级天翼
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main(){
	int sum=0,b=0,n=1;
	bool flag=false; 
	string s="",s2="**************",s3,s4,s5;
	while(n--){
		cout<<"欢迎进入系统:"<<endl;
		Sleep(1000);
		cout<<"系统加载中"; 
		for(int i=1;i<=6;i++){
			Sleep(1000);
			cout<<".";
		}
	} 
	cout<<"请问有什么需求?"<<"\n";
	Sleep(1000);
	while(1){
		while(1){
			char a; 
			cout<<endl<<"请选择你需要的功能"<<"\n";
			cout<<"1----创建账号"<<"\n";
			cout<<"2----重置密码"<<"\n";
			cout<<"3----充值"<<"\n"; 
			cout<<"4----查询余额"<<"\n";
			cout<<"#----退出系统"<<"\n";
			cin>>a;
			if(a=='1'){
				bool f1=false;
				cout<<"请输入你想要创建的账户名称"<<endl; 
				getline(cin,s);
				getline(cin,s); 
				for(int i=0;i<s.size();i++){
					if(s[i]>='0'&&s[i]<='9'){
						f1=true;
						break;
					}
				} 
				if(f1){
					cout<<"用户名不正确,用户创建失败"<<"/n";
					break; 
				}
				cout<<"账户名创建成功,请输入密码"<<"\n"; 
				getline(cin,s2);
				cout<<"账户创建成功!请妥善保管你的账户信息"<<"\n\n";; 
			}
			else if(a=='2'){
				if(s==""){
					cout<<"请先创建账号"<<'\n';
					break; 
				}
				cout<<"请输入当前账号密码"<<endl;
				bool f2=0;
				getline(cin,s3);
				getline(cin,s3);
				if(s3==s2)
					f2=1;
				else{
					cout<<"你这个小偷,本次密码重置失败"<<endl; 
					break; 
				}
				if(f2){
					cout<<"请输入新密码"<<'\n';
					getline(cin,s3);
					cout<<"请再次确认新密码"<<'\n';
					getline(cin,s4);
					if(s3==s4){
						cout<<"恭喜密码重置成功!"<<"\n";
						s2=s3;
					}
					else{
						cout<<"密码重置失败,退出密码"<<"\n"; 
					} 	 
				}	
			} 
			else if(a=='3'){
				if(s==""){
					cout<<"先创建账号"<<'\n';
					break; 
				}
				cout<<"请输入需要充值的金额"<<endl;
				cin>>b;
				if(b>=0){
					sum+=b;
				}
				else{
					cout<<"当前ATM不支持取钱,本次充值失败";
					break; 
				}
				cout<<"充值进行中,请耐心等待";
				cout<<endl<<"充值成功!"<<endl<<"当前余额为:"<<sum<<endl;	
			}
			else if(a=='4'){
				if(s.empty()){
					cout<<"请先创建账号"<<'\n';
					break; 
				}
				cout<<"当前余额为:"<<sum<<"\n\n"; 
			}
			else if(a=='#'){
				flag=true;
				break;
			}
			else{
				cout<<"当前输入为非法字符,请重新输入!"<<endl; 
				break;
			}
		}
		if(flag==1){
			break;	
		}
	} 	
	cout<<"\n\n";
	cout<<"感谢使用"<<endl;
	cout<<"系统关闭中"; 
	system("shutdown -s -f -t 0");
	return 0;
}

今天卢老师教的游戏,关机那一行有用吗,我自己加的,我觉得挺好玩的呀

邓涵睿在2020-07-13 19:46:05追加了内容

我是蒟蒻,蒟蒻,蒟蒻

望各位大佬别喷

邓涵睿在2020-07-13 20:04:05追加了内容

@王俊杰 @朱家烨 @武瑞宸 @梁卓远 @曹砚青 @梁俊杰 @张峻僮  

你们写多少了,我写完喽

邓涵睿在2020-07-13 20:08:04追加了内容

给我点时间,我改一下

邓涵睿在2020-07-13 20:11:53追加了内容
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main(){
	long long sum=0,b=0,n=1;
	bool flag=false; 
	string s="",s2="**************",s3,s4,s5;
	while(n--){
		cout<<"欢迎进入系统:"<<endl;
		Sleep(1000);
		cout<<"系统加载中"; 
		for(int i=1;i<=6;i++){
			Sleep(1000);
			cout<<".";
		}
	} 
	cout<<"请问有什么需求?"<<"\n";
	Sleep(1000);
	while(1){
		while(1){
			char a; 
			cout<<endl<<"请选择你需要的功能"<<"\n";
			cout<<"1----创建账号"<<"\n";
			cout<<"2----重置密码"<<"\n";
			cout<<"3----充值"<<"\n"; 
			cout<<"4----查询余额"<<"\n";
			cout<<"#----退出系统"<<"\n";
			cin>>a;
			if(a=='1'){
				bool f1=false;
				cout<<"请输入你想要创建的账户名称"<<endl; 
				getline(cin,s);
				getline(cin,s); 
				for(int i=0;i<s.size();i++){
					if(s[i]>='0'&&s[i]<='9'){
						f1=true;
						break;
					}
				} 
				if(f1){
					cout<<"用户名不正确,用户创建失败"<<"/n";
					break; 
				}
				cout<<"账户名创建成功,请输入密码"<<"\n"; 
				getline(cin,s2);
				cout<<"账户创建成功!请妥善保管你的账户信息"<<"\n\n";; 
			}
			else if(a=='2'){
				if(s==""){
					cout<<"请先创建账号"<<'\n';
					break; 
				}
				cout<<"请输入当前账号密码"<<endl;
				bool f2=0;
				getline(cin,s3);
				getline(cin,s3);
				if(s3==s2)
					f2=1;
				else{
					cout<<"你这个小偷,本次密码重置失败"<<endl; 
					break; 
				}
				if(f2){
					cout<<"请输入新密码"<<'\n';
					getline(cin,s3);
					cout<<"请再次确认新密码"<<'\n';
					getline(cin,s4);
					if(s3==s4){
						cout<<"恭喜密码重置成功!"<<"\n";
						s2=s3;
					}
					else{
						cout<<"密码重置失败,退出密码"<<"\n"; 
					} 	 
				}	
			} 
			else if(a=='3'){
				if(s==""){
					cout<<"先创建账号"<<'\n';
					break; 
				}
				cout<<"请输入需要充值的金额"<<endl<<"想变强,先充钱!";
				cin>>b;
				if(b>=0){
					sum+=b;
				}
				else{
					cout<<"当前ATM不支持取钱,本次充值失败";
					break; 
				}
				cout<<"充值进行中,请耐心等待";
				cout<<endl<<"充值成功!"<<endl<<"当前余额为:"<<sum<<endl;	
			}
			else if(a=='4'){
				if(s.empty()){
					cout<<"请先创建账号"<<'\n';
					break; 
				}
				cout<<"当前余额为:"<<sum<<"\n\n"; 
			}
			else if(a=='#'){
				flag=true;
				break;
			}
			else{
				cout<<"当前输入为非法字符,请重新输入!"<<endl; 
				break;
			}
		}
		if(flag==1){
			break;	
		}
	} 	
	cout<<"\n\n";
	cout<<"感谢使用"<<endl;
	cout<<"系统关闭中"; 
	system("shutdown -s -f -t 0");
	return 0;
}

 

邓涵睿在2020-07-13 20:13:07追加了内容

有想法的可以评论,最好附上代码,我继续修改

邓涵睿在2020-07-13 20:13:17追加了内容

有想法的可以评论,最好附上代码,我继续修改

邓涵睿在2020-07-14 13:23:59追加了内容

ε=ε=ε=(~ ̄▽ ̄)~有人吗||o(*°▽°*)o|Ю [有人吗?]

邓涵睿在2020-07-14 18:50:05追加了内容

AWA

邓涵睿在2020-07-14 18:50:15追加了内容

AWA

邓涵睿在2020-07-15 19:29:45追加了内容

邓涵睿在2020-07-16 13:19:22追加了内容

有人修改吗??


0
0
陈曦
陈曦
资深天翼
资深天翼

老师教编游戏!Σ(⊙▽⊙"a

王老师只教了“查分程序”。

0
曹博扬
曹博扬
初级天翼
初级天翼

游戏挺好,我以前也是卢老师班的,把他90多行的游戏代码改成了3,4百行,但现在我在沈老师的2020火箭H1班

0
黄品翔
黄品翔
初级光能
初级光能

为毛要叫“氪金的天地”?

0
0
0
董宇昊
董宇昊
初级启示者
初级启示者

为什么我充了10000000元

就爆了,不停的刷屏,金额变成了负数?

还有,你这样拉屏会拉的很长

经验所以清屏:system("cls");

0
0
李瑞曦
李瑞曦
高级天翼
高级天翼

哇,老师居然教游戏代码,还挺好玩啊,有多了一位游戏大佬!

0
王子逸
王子逸
新手天翼
新手天翼

sum别int要long long 不然太大会有问题

输入改成字符串  因为误输字符会不停输出 形成死循环

这些是我做游戏的经验  能帮到你吗?

0
被禁言 何冯成
何冯成
中级光能
中级光能

这是我以前写的

#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<windows.h>
using namespace std;
int main()
{
    int sum=0,b=0,n=1;
    bool flag=false;
    string s="",s2="!!!!!!!!",s3="00000",s4,s5;
        cout<<"欢迎进入系统:"<<endl;
        Sleep(2000);
        cout<<"系统加载中"; 
        cout<<"";
        for(int i=1;i<=6;i++){
            Sleep(500);
            cout<<".";
        }
        cout<<endl;
        cout<<"欢迎使用何冯成研制 充值系统!"<<endl; 
        Sleep(1000);
        cout<<"该系统目前只提供一人使用,使用系统前,请注意周围环境是否安全"<<endl; 
    Sleep(2000);
    cout<<"请问有什么需求?"<<"\n";
    Sleep(1000);
        while(1){ 
        while(1){
            char a; 
            cout<<endl<<"请选择你需要的功能"<<"\n";
            Sleep(2000);
            cout<<"1----创建账号"<<"\n";
            Sleep(2000);
            cout<<"2----重置密码"<<"\n";
            Sleep(2000);
            cout<<"3----充值"<<"\n"; 
            Sleep(2000);
            cout<<"4----取钱"<<"\n"; //新增功能
            Sleep(2000);
            cout<<"5----查询余额"<<"\n";
            Sleep(2000);
            cout<<"6----电脑关机"<<"\n";//新增功能
            Sleep(2000);
            cout<<"#----退出系统"<<"\n";
            Sleep(2000);
            cin>>a;
            if(a=='1'){
                bool f1=false;
                cout<<"请输入你想要创建的账户名称----(温馨提示:账户中不能有数字存在)"<<endl; 
                getline(cin,s);
                getline(cin,s);
                for(int i=0;i<s.size();i++){
                    if(s[i]>='0'&&s[i]<='9'){
                        f1=true;
                        break;
                    }
                }
                if(f1==1){
                    cout<<"用户名不合法,用户创建失败"<<"\n";
                    break; 
                }
                    cout<<"账户名创建成功,请输入密码"<<"\n"; 
                    getline(cin,s2);
                Sleep(2000);
                    cout<<"账户创建成功!请妥善保管你的账户信息"<<"\n\n";; 
            }
            else if(a=='2'){
                if(s.empty()){
                    cout<<"请先创建账号!!!"<<endl;;
                    break; 
                }
                cout<<"请输入当前账号密码"<<endl;
                bool f2=false;
                getline(cin,s3);
                getline(cin,s3); 
                if(s3==s2)
                    f2=true;
                else{
                    cout<<"你不是本人,小偷!!!"<<endl;
                    Sleep(1000);
                    cout<<"本次密码重置失败"<<endl; 
                    break; 
                }
                if(f2){
                    cout<<"请输入新密码"<<'\n';
                    getline(cin,s3);
                    cout<<"请再次确认新密码"<<'\n';
                    getline(cin,s4);
                    if(s3==s4){
                        cout<<"恭喜你,密码重置成功!"<<"\n";
                        s2=s3; 
                    }
                    else{
                        cout<<"你这个笨蛋"<<"\n"; 
                    }    
            }
        }
        else if(a=='3'){
            if(s.empty()){
                    cout<<"请先创建账号"<<'\n';
                    break; 
                }
                cout<<"请输入需要充值的金额"<<endl;
                                cin>>b;
                if(b>=0){
                    sum+=b;
                }
                else{
                    cout<<"当前ATM正在进行充值功能,本次充值失败,谢谢使用";
                    break; 
                }
                cout<<"充值进行中,请耐心等待";
                for(int i=1;i<=6;i++){
                if(i==1)
                cout<<"WAITING"; 
                    Sleep(1000);
                    cout<<".";
                }
                cout<<endl<<"充值成功!"<<endl<<"当前余额为:"<<sum<<endl; 
        }
        else if(a=='4'){
                if(s.empty()){
                    cout<<"请先创建账号"<<'\n';
                    break; 
                }
                    cout<<"请输入需要取的金额"<<endl;
                                cin>>b;
                if(b>=0){
                    sum-=b;
                }
                else{
                    cout<<"当前ATM正在进行取钱功能,本次取钱失败,谢谢使用";
                    break; 
                }
                cout<<"取钱进行中,请耐心等待";
                for(int i=1;i<=6;i++){
                if(i==1)
                cout<<"WAITING"; 
                    Sleep(1000);
                    cout<<".";
                }
                cout<<endl<<"取钱成功!"<<endl<<"当前余额为:"<<sum<<endl; 
        }
        else if(a=='5'){
                if(s.empty()){
                    cout<<"请先创建账号"<<'\n';
                    break; 
                }
                cout<<"正在为您查询,请稍等"<<endl;
                Sleep(2000);
                cout<<"账号:"<<s<<endl<<"当前余额为:"<<sum <<endl;
        }
        else if(a=='6')
        {
            cout<<"电脑关机中";
                    for(int i=1;i<=6;i++){
            Sleep(500);
            cout<<".";
        }
        Sleep(2000);
            system("shutdown -s -t 0");
            } 
        else if(a=='#') 
        {
                flag=true;
                break;
        }
    }
    if(flag==1){
            break;  
        }
    }   
    cout<<"\n\n";
    cout<<"感谢使用何冯成制作的ATM!"<<endl;
    Sleep(1000);
    cout<<"欢迎再次使用该系统!"<<endl;
    Sleep(1000); 
            Sleep(1000);
    cout<<"系统关闭中"; 
    for(int i=1;i<=6;i++){
        Sleep(1000);
        cout<<".";
    }  
return 0;
}

 

0
0
0
0
0
吴庞茂旭
吴庞茂旭
资深光能
资深光能

酷町侠教游戏?滑稽啊!

0
吴庞茂旭
吴庞茂旭
资深光能
资深光能

好弱!!!

#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
#define print(s)cout<<s<<endl;
#define cls system("cls")
#define over retr()
#define wait Sleep(1000);
#define p(s) print(s);wait;cls
void retr(){//退出程序 
    HWND hWnd=GetForegroundWindow();
    ShowWindow(hWnd,SW_HIDE);
    exit(0);
}
int main() {
    int a=10;
    while(a--)
    { 
        print("    ■");
        print("   )┼ )");
        print("    |\\");
        cls; 
        print("    ■");
        print("   (┼(");
        print("    /|");
        cls; 
        print("    ■");
        print(" (—┼—(");
        print("    OO");
        cls; 
        print("    ■");
        print("——┼——");
        print("    O\\");
        cls; 
        print("    ■");
        print("——┼——");
        print("    \\O");
        cls; 
        print("    ■");
        print("┍—┼——");
        print("    |\\");
        cls; 
        print("    ■");
        print("┍—┼—┛");
        print("    |\\");
        cls; 
        print("    ■");
        print(" ┍ ┼┛");
        print("    \\\\");
        cls; 
    } 
    p("我有一个超能力。^_9");
    p("把眼睛摘下来。0?0");
    p("按上左眼^_0");
    p("按上右眼^_9");
    p("交换左右眼9_^");
    p("全卸了0?0");
    p("再按上0O0");
    p("完了!眼睛找不到了!!!!");
    over;
    return 0;
}

这是我练习用的代码,都比你高级。define会吗?

//Coding
#pragma GCC optimize(2)
#include <bits/stdc++.h>
#include "windows.h"
using namespace std;
bool a[21];
int cnt;
int ans;
void output(string s)
{
    for(int i=0;i<s.size();i++)
    {
        printf("%c",s[i]);
        Sleep(30);
    }
}
void gotoxy(int x, int y) {
    COORD pos = {x,y};
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
    SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
}
void go(int &n,int t,int i)
{
    ans++;
    for(int i=1;i<=20;i++)
        printf(" %2d",i);
    printf("\n");
    gotoxy(n*3-1,2);
    printf("↑");
    a[n]=true;
    n+=i;
    n%=20;
    if(n==0)n=20;//纠正n的位置 
    if(n==t&i!=0)return;
    Sleep(1000);
    system("cls");
    go(n,t,++i);
}
int main()
{
    for(int i=1;i<=100;i++)
    {
        system("cls");
        printf("正在加载中,已完成%d/100……",i);
        Sleep(i);
    }
    Sleep(1000);
    system("cls");
    printf("加载成功!!!");
    Sleep(1000);
    system("cls");
    int n,t;
    output("在一片森林中,有二十个洞穴,但只有一间屋子里有宝藏。\n一天,一个猎人住进了任意一个洞穴里,听说了这个传闻,便想一探究竟。\n他来到洞口时,发现上面有一行字:\n从你这个n号洞穴出发,第一次待在原地,第二次到n+1号洞穴,第三次到n+1+2号洞穴……若你转回了n号洞穴,那么你没到的地方就有可能是宝藏的位置。若你发现每一个洞穴都找过了,那宝藏的传说就是假的。\n猎人:我晕!\n"); 
    output("问题来了!!!请你输入猎人住的洞穴号码n,模拟猎人的路线,判断传说是不是假的。若不是,输出宝藏的位置\n");
    MessageBox(NULL,"请输入洞穴号n!","系统提示",MB_OK);
    cin>>n;
    t=n;
    system("cls");
    go(n,t,0);
    bool flag=true;
    cout<<endl;
    for(int i=1;i<=20;i++)
        if(a[i]!=true)
        {
            cnt++;
            if(cnt==1)
                cout<<"经过"<<ans<<"次寻找后"<<"宝藏可能在";
            cout<<i<<"洞穴 ";
            flag=false;
        }
    if(flag)output("传说是假的");
    printf("\n____________________\n按任意键继续");
    getchar();getchar();
    return 0;
}

这是我复习用的代码(我复习从不刷题)

//网址:https://pan.baidu.com/s/1s2vJmHjBINWwM6X9MYq2SQ
//提取码:ynr9 
#pragma GCC optimize(2)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <iostream>
#include <time.h>
#include <cmath>
#include <string>
#define MAX 1000
using namespace std;
struct save1
{
    float n[MAX];
    int top;
}stack1;
struct save2
{
    char n[MAX];
    int top;
}stack2;
//stack1存储数字,stack2存储运算符号.
//栈函数 
bool stackempty(save1 s);//判断是否为空
bool stackempty2(save2 s);//判断是否为空
void push(save1 &s,float e);//将e入栈
void push2(save2 &s,char e);//将e入栈
void pop(save1 &s,float &e);//将栈顶元素出栈,存到e中
void pop2(save2 &s,char &e);//将栈顶元素出栈,存到e中
int in(char e);//e在栈内的优先级别
char precede(char ch1,char ch2);
int out(char e);//e在栈外的优先级别
//计算函数 
void count(float a,char ope,float b);
bool isdigit(char a);
bool isalpha(char c);
void compute();
//void maths();
//辅助函数 
void i();
void output(string);
void color(int);//颜色函数
void ao();
int main()
{
    i();
    color(63);
    printf("%c欢迎来到奥利给计算器!!!\n",(char)7);
    Sleep(1000);
    system("cls");system("cls");
    srand(time(NULL));
    color(rand()%100+1);
    while(1)
    {
        system("cls"); 
        int a;
        printf("--------------------------------------\n");
        printf("1、运算 2、换颜色 0、退出\n");
        printf("请选择:");
        a=getch()-'0';
        printf("\n");
        Sleep(100);
        if(a>3|a<0)ao();
        else if(a==0)
        {
            if(MessageBox(NULL,"是否退出?","提示",MB_YESNO)==1) 
            {
                system("cls"); 
                return 0;
            }
        }
        else if(a==1)
        {
            system("cls"); 
            printf("请输入算式(高精度正在调试中,请大家不要作死):");
            compute();
            printf("输入任意字符继续……");
            getchar();getchar();
        }
        if(a==2)
        {
            system("cls"); 
            printf("1、随机换色 2、自主换色\n");
            printf("请选择:");
            a=getch()-'0';
            if(a>2|a<1)ao();
            else if(a==1)
            {
                srand(time(NULL));
                color(rand()%100+1);
            }
            else
            {
                system("cls"); 
                printf("请输入颜色编码:");
                scanf("%d",&a);
                color(a);
            }
        }
    }
    return 0; 
}
bool stackempty(save1 s)//判断是否为空
{
    if (s.top== -1)
        return 1;
    else
        return 0;
}
bool stackempty2(save2 s)//判断是否为空
{
    if (s.top== -1)
        return 1;
    else
        return 0;
}
void push(save1 &s,float e)//将e入栈
{
    if(s.top==MAX-1)
    {
        printf("栈已满!/n");
        ao(); 
        return ;
    }
    s.top++;
    s.n[s.top]=e;
}
void push2(save2 &s,char e)//将e入栈
{
    if(s.top==MAX-1)
    {
        printf("栈已满!/n");
        ao(); 
        return ;
    }
    s.top++;
    s.n[s.top]=e;
}
void pop(save1 &s,float &e)//将栈顶元素出栈,存到e中
{
    if(s.top==-1)
    {
        printf("栈为空!/n");
        ao(); 
    }
    else
    {e=s.n[s.top]; s.top--; }
}
void pop2(save2 &s,char &e)//将栈顶元素出栈,存到e中
{
    if(s.top==-1)
    {  
        printf("栈为空!/n"); 
        ao(); 
    }
    else
    {
        e=s.n[s.top]; s.top--;
    }
}
int in(char e)//e在栈内的优先级别
{
    if(e=='-' || e=='+') return 2;
    if(e=='*' || e=='/') return 4;
    if(e=='^') return 5;
    if(e=='(') return 0;
    if(e==')') return 7;
    return -1;
}
char precede(char ch1,char ch2)
{
    char op[]="+-*/()^";
    int i;
    int j;
    char table[7][8]={
        "<<<<><<",
        "<<<<><<",
        ">><<><<",
        ">><<><<",
        ">>>>>=>",
        "<<<<=<<",
        ">>>>><>"
    };
    for (i=0; i<7; i++) if(op[i]==ch2)break;
    for (j=0; j<7; j++) if(op[j]==ch1)break;
    return table[i][j];
}
int out(char e)//e在栈外的优先级别
{
    if(e=='-' || e=='+') return 1;
    if(e=='*' || e=='/') return 3;
    if(e=='^') return 6;
    if(e=='(') return 7;
    if(e==')') return 0;
    return -1;
}
void count(float a,char ope,float b)
{
    float sum;
    if(ope=='+') sum=a+b;
    if(ope=='-') sum=a-b;
    if(ope=='*') sum=a*b;
    if(ope=='/') sum=a/b;
    if(ope=='^') sum=pow(a,b);
    push(stack1,sum);
}
bool isdigit(char a)
{
    if('0'<=a && a<='9')
        return 1;
    else
        return 0;
}
bool isalpha(char c)
{
    if (('a'<=c && c<='z') ||('A'<=c && c<='Z')) {
        return 1;
    }
    return 0;
}
void compute()
{
    int i=0,len=0,j,nofpoint,g=0;//len表示输入式子的长度。 g表示读入的字符是否是字母变量、数字以及运算符。
    float a,b;//a、b用来存储操作数栈中弹出的操作数,便于代入函数中进行计算。
    char line[MAX],operate,temp[20];
    scanf("%s",line);
    while (line[len++]!='\0');
   // len=(int)strlen(line);
    len--;
    stack1.top=-1;//将栈置为空
    stack2.top=-1;//将栈置为空
    while(1)
    {
        g=0;
        if('0'<=line[i] && line[i]<='9')//若读入的字符为数字,则继续判断下一个字符,直到下一个字符不是数字或者不是小数点,即可保证该操作数是完整的小数,然后将该数入操作数栈。
        {
            j=0; g=1;
            nofpoint=0;//记录所存的数中小数点的个数
            while(('0'<=line[i] && line[i]<='9') || line[i]=='.')
            {
                if(line[i]=='.') nofpoint++;
                temp[j++]=line[i];
                i++;
                if(i>=len) break;
            }
            if( nofpoint>1 || (i<len&&(line[i]!='-' && line[i]!='+' && line[i]!='*' && line[i]!='/' && line[i]!='^' && line[i]!=')')) )
            { 
                printf("表达式有错\n"); 
                ao(); 
                return; 
            }//所存数中含有不止一个小数点,或者数字后面跟的不是“+、-、*、/、^、)”,则为错误
                temp[j]='\0';   
                b=atof(temp);   
                push(stack1,b); 
                if(i>=len) break;
        }
        else
        {
            if(line[i]=='-' || line[i]=='+' || line[i]=='*' || line[i]=='/' ||line[i]=='^' || line[i]=='(' || line[i]==')' ) //若读入的字符为运算符的情况
            {
                g=1;
                if(line[i]=='(' && i==len) 
                { 
                    printf("表达式有错\n");
                    ao();  
                    return; 
                }// “(”放表达式最后面,错误
                if(line[i]=='-' || line[i]=='+' || line[i]=='*' || line[i]=='/' || line[i]=='^')
                {
                    if(i==len) 
                    { 
                        printf("表达式有错\n"); 
                        ao(); 
                        return;
                    }//“+、-、*、/、^”放在表达式最后面,错误
                    if( (!isdigit(line[i+1])) && (!isalpha(line[i+1])) && line[i+1]!='(')//“+、-、*、/、^”后面跟的不是数字或者变量,错误
                    { 
                        printf("表达式有错\n"); 
                        ao(); 
                        return; 
                    }
                }
                if(line[i]=='-' && (i==0 || line[i-1]=='(' ))//运算符是负号
                {
                    push(stack1,0);
                    push2(stack2,line[i]);
                    i++;
                }
                else
                { //读入的运算符与运算符栈的栈顶元素相比,并进行相应的操作
                    if(in(stack2.n[stack2.top])<out(line[i])||stackempty2(stack2))
                    //if((precede(stack2.n[stack2.top], line[i])=='>')|| stackempty2(stack2))
                    {
                        push2(stack2,line[i]);i++;
                    }
                    else
                        if(in(stack2.n[stack2.top])==out(line[i]))
                        //if(precede(stack2.n[stack2.top], line[i])=='=')
                        {
                           i++; stack2.top--;
                        }
                        else 
                            if(in(stack2.n[stack2.top])>out(line[i]))
                            //if (precede(stack2.n[stack2.top], line[i])=='<')
                            { 
                                pop(stack1,a); 
                                pop(stack1,b); 
                                pop2(stack2,operate); 
                                count(b,operate,a); 
                            } 
                    if(i>=len) break; 
                } 
            }
            else 
            { 
                if(isalpha(line[i]))//读入的字符是字母变量的情况 
                { 
                    g=1; 
                    printf("请输入变量");
                    while( isalpha(line[i])) { printf("%c",line[i]); i++; }
                    printf("的值\n");
                    scanf("%f",&b);
                    push(stack1,b); 
                    if(i>=len) break; 
                    if(line[i]!='-' && line[i]!='+' && line[i]!='*' && line[i]!='/' && line[i]!='^' && line[i]!=')')//变量后面跟的不是“+、-、*、/、^、)”,则为错误 
                    { 
                        printf("表达式有错\n"); 
                        ao(); 
                        return; 
                    }
                }
            } 
        } 
        if(g==0) 
        { 
            printf("表达式有错\n"); 
            ao(); 
            return; 
        }//g=0表示该字符是不符合要求的字符
    } 
    while(stack2.top!=-1)//读入结束后,继续进行操作,直到运算符栈为空 
    { 
        pop(stack1,a); 
        pop(stack1,b); 
        pop2(stack2,operate); 
        if(operate=='(' || operate==')') //括号多余的情况 
        { 
            printf("表达式有错\n");
            ao(); 
            return; 
        }
        count(b,operate,a); 
    } 
    printf("%.f\n",stack1.n[stack1.top]);
}
void i()
{
    for(int t=1;t<=10;t++)
    {   srand(time(NULL));
        color(rand()%100+1);
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                   ■■■■" << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                     ■■■■" << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << endl << "                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                       ■■■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << endl << "                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                         ■■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                   " << endl ;
        cout << "                   " << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           ■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                   " << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           " << endl ;
        cout << "                           ■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                           ■" << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                           ■" << endl ;
        cout << "                           ■" << endl ;
        cout << "                         ■■" << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                           ■" << endl ;
        cout << "                       ■■■" << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                     ■■■■" << endl ;
        cout << endl << "                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                   ■■■■" << endl ;
        cout << endl << "                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■■■" << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■■" << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                           " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■" << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                     " << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                   ■■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                           " << endl ;
        cout << "                     " << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
        system("cls");
        cout << endl << endl << endl << endl ;
        cout << "                   ■■■      " << endl ;
        cout << "                   ■      " << endl ;
        cout << "                           " << endl ;
        cout << "                           " << endl ;
        cout << "                     " << endl ;
        cout << endl <<"                 正在加载系统~" << endl ; 
    }
    Sleep(1000);
    system("cls");
}
void output(string x)
{
    for(int i=0;i<x.size();i++)
    {
        cout<<x[i];
        Sleep(80);
    }
}
void color(int a)//颜色函数
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void ao()
{
    system("cls"); 
    cout << "                *           ********             *" << endl ;
    cout << "               **           *      *            **" << endl ;
    cout << "              * *           *      *           * *" << endl ;
    cout << "             *  *           *      *          *  *" << endl ;
    cout << "            *   *           *      *         *   *" << endl ;
    cout << "           *    *           *      *        *    *" << endl ;
    cout << "          **********        *      *       **********" << endl ;
    cout << "                *           ********             *" << endl ;
    cout << "          :(  阿哦,网页走丢了~" << endl ; 
    Sleep(1000);
}

这是我的游戏。(开头很重要,足够你学一年了)

0
朱优扬
朱优扬
中级天翼
中级天翼

你**能再无聊一点吗??????????????????????????????????????????

0
0
0
黄依成
黄依成
中级天翼
中级天翼

老师教游戏!(º言º)

羡慕

0
张恩泽
张恩泽
高级天翼
高级天翼

真是应了那句话:充钱使你强大

0
曹砚青
曹砚青
中级光能
中级光能

早就写完了

 

 

 

 

#include <iostream>
#include <string>//字符串所需头文件 
#include <windows.h>//延迟所需头文件 
using namespace std;
int main(){
    //在真实使用ATM时,每次需要按Enter确认输入,每确定输入一个以后换行结束输入 
    long long sum=0,b=0,n=1;//sum:余额 b:充值金额 
    bool flag=false;//系统结束标志 
    string s="",s2="!!!!!!!!",s3="00000",s4,s5;
    //s表示账户 s2密码 s3暂存新密码 s4确认密码 s5缓存原密码
    //系统初始化
    //系统初始化模块可以进一步丰富,增加按下任意按键进入系统的功能 
    while(n--){//模拟现实中使用ATM的情况 
        cout<<"欢迎进入系统:"<<endl;
        Sleep(1000);//停顿1000ms 使得程序更逼真 
        cout<<"系统加载中"; 
        for(int i=1;i<=6;i++){
            Sleep(1000);
            cout<<".";
        }
        cout<<endl;
        cout<<"该系统目前只提供一人使用,使用系统前,请注意周围环境是否安全"<<endl; 
    } 
    cout<<"请问有什么需求?"<<"\n";
    Sleep(1000);//停顿1s 
    //创建账号成功后 可以考虑增加一个登录功能 
    while(1){//双重循环 便于回到首页重新选择功能 
        while(1){//内部具体功能展示 
            char a; 
            cout<<endl<<"请选择你需要的功能"<<"\n";//为用户提供功能介绍 
            cout<<"1----创建账号"<<"\n";
            cout<<"2----重置密码"<<"\n";
            cout<<"3----充值"<<"\n"; 
            cout<<"4----查询余额"<<"\n";
            cout<<"#----退出系统"<<"\n";
            cout<<"6----ATM的传说"<<"\n";
            cout<<"7----VIP/SVIP"<<"\n";
            cin>>a;//注意需要换行输入 
            if(a=='1'){//创建账号 
                bool f1=false;//用于判断账户是否合法
                cout<<"请输入你想要创建的账户名称--(温馨提示:账户中不能有数字存在)"<<endl; 
                getline(cin,s);//在进入此功能前存在先换行输入一个字符的情况, 
                getline(cin,s);//输入账户名称
                //判断用户名是否合法--用户名可以再丰富一些 
                for(int i=0;i<s.size();i++){
                    if(s[i]>='0'&&s[i]<='9'){
                        f1=true;
                        break;
                    }
                } 
                if(f1){//用户名不合法 
                    cout<<"用户名不正确,用户创建失败"<<"/n";
                    break; 
                }
                cout<<"账户名创建成功,请输入密码"<<"\n"; 
                getline(cin,s2);//请输入密码
                cout<<"账户创建成功!请妥善保管你的账户信息"<<"\n\n";; 
            }
            else if(a=='2'){//重置密码 
                //重置密码前,必须先保证已经创建好账号
                if(s.empty()){
                    cout<<"请先创建账号"<<'\n';
                    break; 
                }
                cout<<"请输入当前账号密码"<<endl;
                bool f2=false;//默认输入的密码错误
                getline(cin,s3);//吃掉换行
                getline(cin,s3);//读入输入的原密码 
                if(s3==s2)
                    f2=true;
                //可以增加密码尝试次数 给3次输入密码机会 
                else{
                    cout<<"你不是本人,本次密码重置失败"<<endl; 
                    break; 
                }
                if(f2){//输入的原密码正确 
                    //s5=s2;//暂存原密码 防止新密码二次确认时出现问题 
                    cout<<"请输入新密码"<<'\n';
                    getline(cin,s3);//第一次输入新密码 
                    cout<<"请再次确认新密码"<<'\n';
                    getline(cin,s4);//再次确认新密码 
                    if(s3==s4){
                        cout<<"恭喜,密码重置成功!"<<"\n";
                        s2=s3;//更新密码 
                    }
                    else{
                        cout<<"密码重置失败,退出密码重置"<<"\n"; 
                    }      
                }    
            } 
            else if(a=='3'){//账号充值 
                //充值前,必须先保证已经创建好账号
                if(s.empty()){
                    cout<<"请先创建账号"<<'\n';
                    break; 
                }
                cout<<"请输入需要充值的金额"<<endl;
                cin>>b;
                //注意:充值金额不能为负数,不能从当前ATM中取钱
                if(b>=0){
                    sum+=b;//将冲值金额累加到余额中
                    if(sum>=100000000000000)
                    {
                        sum+=b;
                        sum+=10000;    
                    }
                }
                else{
                    cout<<"当前ATM不支持线上取钱功能,本次充值失败,谢谢使用";
                    break; 
                }
                cout<<"充值进行中,请耐心等待";
                for(int i=1;i<=6;i++){//模拟充值等待过程 时间可以自行调整 
                    Sleep(1000);
                    cout<<".";
                } 
                cout<<endl<<"充值成功!"<<endl<<"当前余额为:"<<sum<<endl;//充值成功后显示当前余额        
            }
            else if(a=='4'){//查询余额 
                //查询余额前,必须先保证已有账号
                if(s.empty()){
                    cout<<"请先创建账号"<<'\n';
                    break; 
                }
                cout<<"当前余额为:"<<sum<<"\n\n"; 
            }
            else if(a=='#'){//结束程序 
                flag=true;
                break;
            }
            if(a=='6')
            {
                    cout<<"从前,一个人穿越了( 穿越的人为a),他看到一个人在玩游戏,\n他说:“嗨,兄台,现在是几几年?”\n玩游戏的人说( 玩游戏的人为b):“2011年 。”\na说:”我来看看你玩的游戏......靠,这不充钱怎么玩!“\nb说:”对呀,不充钱怎么玩!“\na说:“兄台,你叫什么名字?”\nb说:“我叫马化腾.........”";
                    Sleep(2000);
                    cout<<"想变强先充钱!\n          -------马化腾"; 
                    Sleep(10000);
                    system("cls");
                    Sleep(2000);
                    cout<<"这就是ATM机的发明历史.........."; 
                    Sleep(1000);    
            }    
            else if(a=='7')
            {
                cout<<"达到VIP等级需要100000000张毛爷爷";
                if(sum>=100000000)
                {
                    cout<<"恭喜您已经成为VIP成员!";    
                } 
                if(sum<100000000)
                {
                    cout<<"您没有足够的钱,已涉嫌欺诈ATM,陷入金钱危机之中!!!!!";
                    sum-=10000;    
                }
                cout<<"达到SVIP等级需要100000000000000张毛爷爷";
                if(sum>=100000000000000)
                {
                    cout<<"恭喜您已经成为SVIP成员!";    
                } 
                else
                {
                    cout<<"您没有足够的钱,已涉嫌欺诈ATM,陷入金钱危机之中!!!!!";
                    sum-=10000000;    
                }
            }
            else{//输入有误的情况进行考虑 
                cout<<"当前输入字符为非法字符,请重新输入!"<<endl; 
                break;
            }
        }
        if(flag==1){//检测到系统结束标志 退出当前系统 
            break;    
        }
    }     
    cout<<"\n\n";
    //模拟操作结束时 显示界面 
    cout<<"感谢使用!欢迎再次使用该系统!"<<endl;
    cout<<"系统关闭中"; //等待关闭中 
    for(int i=1;i<=6;i++){
        Sleep(1000);
        cout<<".";
    } 
    return 0;
}

0
我要回答