寒假作业2

这个作业属于哪个课程 2020面向对象程序设计张栋班
这个作业要求在哪里 面向对象程序设计寒假作业2
这个作业的目标 1.实践题:新建GitHub仓库,并将作业上传至该仓库2.编程题:优化代码、编译脚本、添加功能
作业正文
其它参考文献 windows批处理教程 (我觉得这个教程对新手特别友好)

一,实践题

(新建一个github仓库,使用git,或者github desktop把接下去的编程题的代码及测试脚本传到这个仓库。
请使用.gitignore文件忽略不要上传的文件。用法自行百度。)

新建GitHub库

打开GitHubDesktop 直接CTRL+N或者左上角File中New repository打开这个界面 并填写完整 最后点击Create repository即可
寒假作业2_第1张图片

上传文件到库

点击此界面中Show In Exploer
寒假作业2_第2张图片

出现此界面后将需要上传的文件复制进去
寒假作业2_第3张图片

最后点击GitHubDesktop右上角Fetch origin即可
寒假作业2_第4张图片

二,编程题

(继续完成作业一的编程题。
优化架构,一般要求每个函数长度不超过15行。
优化规范,尤其是命名规范。
制作一个编译脚本,运行该脚本可以编译你的代码,可选的脚本语言,python(2.7),windows批处理,powershell,shell。
示例脚本:
gcc 1.cpp -o lang.exe
进行单元测试,即测试每一个函数,并制作一个测试脚本,运行该脚本可以进行测试,并显示测试结果。
示例脚本:
gcc 1.cpp test.cpp -o test.exe
test
在作业一编程题的基础上添加以下功能:
通过命令行读取一个文件,然后运行这个文件。如我的程序叫lang,lang 1.txt代表我要运行1.txt这个文本中的代码。
假设我的1.txt内容如下:
整数 钱包 等于 零
钱包 增加 四
钱包 减少 三
看看 钱包
输入lang 1.txt后,命令行输出一。)

优化程序

为了减少那些数字真的尝试了很多种方法了,可是最后都会出现好多问题,还不如这个。真的肝不出来(头疼),而且我真的舍不得打出来的那么多数字/(ㄒoㄒ)/~~

#include
#include

struct Var {
    char Name[20] = {};
    int Value = 0;
};

char* ChnArr[] = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十", "三十一", "三十二", "三十三", "三十四", "三十五", "三十六", "三十七", "三十八", "三十九", "四十", "四十一", "四十二", "四十三", "四十四", "四十五", "四十六", "四十七", "四十八", "四十九", "五十", "五十一", "五十二", "五十三", "五十四", "五十五", "五十六", "五十七", "五十八", "五十九", "六十", "六十一", "六十二", "六十三", "六十四", "六十五", "六十六", "六十七", "六十八", "六十九", "七十", "七十一", "七十二", "七十三", "七十四", "七十五", "七十六", "七十七", "七十八", "七十九", "八十", "八十一", "八十二", "八十三", "八十四", "八十五", "八十六", "八十七", "八十八", "八十九", "九十", "九十一", "九十二", "九十三", "九十四", "九十五", "九十六", "九十七", "九十八", "九十九", "一百", "一百零一", "一百零二", "一百零三", "一百零四", "一百零五", "一百零六", "一百零七", "一百零八", "一百零九", "一百一十", "一百一十一", "一百一十二", "一百一十三", "一百一十四", "一百一十五", "一百一十六", "一百一十七", "一百一十八", "一百一十九", "一百二十", "一百二十一", "一百二十二", "一百二十三", "一百二十四", "一百二十五", "一百二十六", "一百二十七", "一百二十八", "一百二十九", "一百三十", "一百三十一", "一百三十二", "一百三十三", "一百三十四", "一百三十五", "一百三十六", "一百三十七", "一百三十八", "一百三十九", "一百四十", "一百四十一", "一百四十二", "一百四十三", "一百四十四", "一百四十五", "一百四十六", "一百四十七", "一百四十八", "一百四十九", "一百五十", "一百五十一", "一百五十二", "一百五十三", "一百五十四", "一百五十五", "一百五十六", "一百五十七", "一百五十八", "一百五十九", "一百六十", "一百六十一", "一百六十二", "一百六十三", "一百六十四", "一百六十五", "一百六十六", "一百六十七", "一百六十八", "一百六十九", "一百七十", "一百七十一", "一百七十二", "一百七十三", "一百七十四", "一百七十五", "一百七十六", "一百七十七", "一百七十八", "一百七十九", "一百八十", "一百八十一", "一百八十二", "一百八十三", "一百八十四", "一百八十五", "一百八十六", "一百八十七", "一百八十八", "一百八十九", "一百九十", "一百九十一", "一百九十二", "一百九十三", "一百九十四", "一百九十五", "一百九十六", "一百九十七", "一百九十八", "一百九十九", "二百", "二百零一", "二百零二", "二百零三", "二百零四", "二百零五", "二百零六", "二百零七", "二百零八", "二百零九", "二百一十", "二百一十一", "二百一十二", "二百一十三", "二百一十四", "二百一十五", "二百一十六", "二百一十七", "二百一十八", "二百一十九", "二百二十", "二百二十一", "二百二十二", "二百二十三", "二百二十四", "二百二十五", "二百二十六", "二百二十七", "二百二十八", "二百二十九", "二百三十", "二百三十一", "二百三十二", "二百三十三", "二百三十四", "二百三十五", "二百三十六", "二百三十七", "二百三十八", "二百三十九", "二百四十", "二百四十一", "二百四十二", "二百四十三", "二百四十四", "二百四十五", "二百四十六", "二百四十七", "二百四十八", "二百四十九", "二百五十", "二百五十一", "二百五十二", "二百五十三", "二百五十四", "二百五十五", "二百五十六", "二百五十七", "二百五十八", "二百五十九", "二百六十", "二百六十一", "二百六十二", "二百六十三", "二百六十四", "二百六十五", "二百六十六", "二百六十七", "二百六十八", "二百六十九", "二百七十", "二百七十一", "二百七十二", "二百七十三", "二百七十四", "二百七十五", "二百七十六", "二百七十七", "二百七十八", "二百七十九", "二百八十", "二百八十一", "二百八十二", "二百八十三", "二百八十四", "二百八十五", "二百八十六", "二百八十七", "二百八十八", "二百八十九", "二百九十", "二百九十一", "二百九十二", "二百九十三", "二百九十四", "二百九十五", "二百九十六", "二百九十七", "二百九十八", "二百九十九", "三百", "三百零一", "三百零二", "三百零三", "三百零四", "三百零五", "三百零六", "三百零七", "三百零八", "三百零九", "三百一十", "三百一十一", "三百一十二", "三百一十三", "三百一十四", "三百一十五", "三百一十六", "三百一十七", "三百一十八", "三百一十九", "三百二十", "三百二十一", "三百二十二", "三百二十三", "三百二十四", "三百二十五", "三百二十六", "三百二十七", "三百二十八", "三百二十九", "三百三十", "三百三十一", "三百三十二", "三百三十三", "三百三十四", "三百三十五", "三百三十六", "三百三十七", "三百三十八", "三百三十九", "三百四十", "三百四十一", "三百四十二", "三百四十三", "三百四十四", "三百四十五", "三百四十六", "三百四十七", "三百四十八", "三百四十九", "三百五十", "三百五十一", "三百五十二", "三百五十三", "三百五十四", "三百五十五", "三百五十六", "三百五十七", "三百五十八", "三百五十九", "三百六十", "三百六十一", "三百六十二", "三百六十三", "三百六十四", "三百六十五", "三百六十六", "三百六十七", "三百六十八", "三百六十九", "三百七十", "三百七十一", "三百七十二", "三百七十三", "三百七十四", "三百七十五", "三百七十六", "三百七十七", "三百七十八", "三百七十九", "三百八十", "三百八十一", "三百八十二", "三百八十三", "三百八十四", "三百八十五", "三百八十六", "三百八十七", "三百八十八", "三百八十九", "三百九十", "三百九十一", "三百九十二", "三百九十三", "三百九十四", "三百九十五", "三百九十六", "三百九十七", "三百九十八", "三百九十九", "四百", "四百零一", "四百零二", "四百零三", "四百零四", "四百零五", "四百零六", "四百零七", "四百零八", "四百零九", "四百一十", "四百一十一", "四百一十二", "四百一十三", "四百一十四", "四百一十五", "四百一十六", "四百一十七", "四百一十八", "四百一十九", "四百二十", "四百二十一", "四百二十二", "四百二十三", "四百二十四", "四百二十五", "四百二十六", "四百二十七", "四百二十八", "四百二十九", "四百三十", "四百三十一", "四百三十二", "四百三十三", "四百三十四", "四百三十五", "四百三十六", "四百三十七", "四百三十八", "四百三十九", "四百四十", "四百四十一", "四百四十二", "四百四十三", "四百四十四", "四百四十五", "四百四十六", "四百四十七", "四百四十八", "四百四十九", "四百五十", "四百五十一", "四百五十二", "四百五十三", "四百五十四", "四百五十五", "四百五十六", "四百五十七", "四百五十八", "四百五十九", "四百六十", "四百六十一", "四百六十二", "四百六十三", "四百六十四", "四百六十五", "四百六十六", "四百六十七", "四百六十八", "四百六十九", "四百七十", "四百七十一", "四百七十二", "四百七十三", "四百七十四", "四百七十五", "四百七十六", "四百七十七", "四百七十八", "四百七十九", "四百八十", "四百八十一", "四百八十二", "四百八十三", "四百八十四", "四百八十五", "四百八十六", "四百八十七", "四百八十八", "四百八十九", "四百九十", "四百九十一", "四百九十二", "四百九十三", "四百九十四", "四百九十五", "四百九十六", "四百九十七", "四百九十八", "四百九十九", "五百", "五百零一", "五百零二", "五百零三", "五百零四", "五百零五", "五百零六", "五百零七", "五百零八", "五百零九", "五百一十", "五百一十一", "五百一十二", "五百一十三", "五百一十四", "五百一十五", "五百一十六", "五百一十七", "五百一十八", "五百一十九", "五百二十", "五百二十一", "五百二十二", "五百二十三", "五百二十四", "五百二十五", "五百二十六", "五百二十七", "五百二十八", "五百二十九", "五百三十", "五百三十一", "五百三十二", "五百三十三", "五百三十四", "五百三十五", "五百三十六", "五百三十七", "五百三十八", "五百三十九", "五百四十", "五百四十一", "五百四十二", "五百四十三", "五百四十四", "五百四十五", "五百四十六", "五百四十七", "五百四十八", "五百四十九", "五百五十", "五百五十一", "五百五十二", "五百五十三", "五百五十四", "五百五十五", "五百五十六", "五百五十七", "五百五十八", "五百五十九", "五百六十", "五百六十一", "五百六十二", "五百六十三", "五百六十四", "五百六十五", "五百六十六", "五百六十七", "五百六十八", "五百六十九", "五百七十", "五百七十一", "五百七十二", "五百七十三", "五百七十四", "五百七十五", "五百七十六", "五百七十七", "五百七十八", "五百七十九", "五百八十", "五百八十一", "五百八十二", "五百八十三", "五百八十四", "五百八十五", "五百八十六", "五百八十七", "五百八十八", "五百八十九", "五百九十", "五百九十一", "五百九十二", "五百九十三", "五百九十四", "五百九十五", "五百九十六", "五百九十七", "五百九十八", "五百九十九", "六百", "六百零一", "六百零二", "六百零三", "六百零四", "六百零五", "六百零六", "六百零七", "六百零八", "六百零九", "六百一十", "六百一十一", "六百一十二", "六百一十三", "六百一十四", "六百一十五", "六百一十六", "六百一十七", "六百一十八", "六百一十九", "六百二十", "六百二十一", "六百二十二", "六百二十三", "六百二十四", "六百二十五", "六百二十六", "六百二十七", "六百二十八", "六百二十九", "六百三十", "六百三十一", "六百三十二", "六百三十三", "六百三十四", "六百三十五", "六百三十六", "六百三十七", "六百三十八", "六百三十九", "六百四十", "六百四十一", "六百四十二", "六百四十三", "六百四十四", "六百四十五", "六百四十六", "六百四十七", "六百四十八", "六百四十九", "六百五十", "六百五十一", "六百五十二", "六百五十三", "六百五十四", "六百五十五", "六百五十六", "六百五十七", "六百五十八", "六百五十九", "六百六十", "六百六十一", "六百六十二", "六百六十三", "六百六十四", "六百六十五", "六百六十六", "六百六十七", "六百六十八", "六百六十九", "六百七十", "六百七十一", "六百七十二", "六百七十三", "六百七十四", "六百七十五", "六百七十六", "六百七十七", "六百七十八", "六百七十九", "六百八十", "六百八十一", "六百八十二", "六百八十三", "六百八十四", "六百八十五", "六百八十六", "六百八十七", "六百八十八", "六百八十九", "六百九十", "六百九十一", "六百九十二", "六百九十三", "六百九十四", "六百九十五", "六百九十六", "六百九十七", "六百九十八", "六百九十九", "七百", "七百零一", "七百零二", "七百零三", "七百零四", "七百零五", "七百零六", "七百零七", "七百零八", "七百零九", "七百一十", "七百一十一", "七百一十二", "七百一十三", "七百一十四", "七百一十五", "七百一十六", "七百一十七", "七百一十八", "七百一十九", "七百二十", "七百二十一", "七百二十二", "七百二十三", "七百二十四", "七百二十五", "七百二十六", "七百二十七", "七百二十八", "七百二十九", "七百三十", "七百三十一", "七百三十二", "七百三十三", "七百三十四", "七百三十五", "七百三十六", "七百三十七", "七百三十八", "七百三十九", "七百四十", "七百四十一", "七百四十二", "七百四十三", "七百四十四", "七百四十五", "七百四十六", "七百四十七", "七百四十八", "七百四十九", "七百五十", "七百五十一", "七百五十二", "七百五十三", "七百五十四", "七百五十五", "七百五十六", "七百五十七", "七百五十八", "七百五十九", "七百六十", "七百六十一", "七百六十二", "七百六十三", "七百六十四", "七百六十五", "七百六十六", "七百六十七", "七百六十八", "七百六十九", "七百七十", "七百七十一", "七百七十二", "七百七十三", "七百七十四", "七百七十五", "七百七十六", "七百七十七", "七百七十八", "七百七十九", "七百八十", "七百八十一", "七百八十二", "七百八十三", "七百八十四", "七百八十五", "七百八十六", "七百八十七", "七百八十八", "七百八十九", "七百九十", "七百九十一", "七百九十二", "七百九十三", "七百九十四", "七百九十五", "七百九十六", "七百九十七", "七百九十八", "七百九十九", "八百", "八百零一", "八百零二", "八百零三", "八百零四", "八百零五", "八百零六", "八百零七", "八百零八", "八百零九", "八百一十", "八百一十一", "八百一十二", "八百一十三", "八百一十四", "八百一十五", "八百一十六", "八百一十七", "八百一十八", "八百一十九", "八百二十", "八百二十一", "八百二十二", "八百二十三", "八百二十四", "八百二十五", "八百二十六", "八百二十七", "八百二十八", "八百二十九", "八百三十", "八百三十一", "八百三十二", "八百三十三", "八百三十四", "八百三十五", "八百三十六", "八百三十七", "八百三十八", "八百三十九", "八百四十", "八百四十一", "八百四十二", "八百四十三", "八百四十四", "八百四十五", "八百四十六", "八百四十七", "八百四十八", "八百四十九", "八百五十", "八百五十一", "八百五十二", "八百五十三", "八百五十四", "八百五十五", "八百五十六", "八百五十七", "八百五十八", "八百五十九", "八百六十", "八百六十一", "八百六十二", "八百六十三", "八百六十四", "八百六十五", "八百六十六", "八百六十七", "八百六十八", "八百六十九", "八百七十", "八百七十一", "八百七十二", "八百七十三", "八百七十四", "八百七十五", "八百七十六", "八百七十七", "八百七十八", "八百七十九", "八百八十", "八百八十一", "八百八十二", "八百八十三", "八百八十四", "八百八十五", "八百八十六", "八百八十七", "八百八十八", "八百八十九", "八百九十", "八百九十一", "八百九十二", "八百九十三", "八百九十四", "八百九十五", "八百九十六", "八百九十七", "八百九十八", "八百九十九", "九百", "九百零一", "九百零二", "九百零三", "九百零四", "九百零五", "九百零六", "九百零七", "九百零八", "九百零九", "九百一十", "九百一十一", "九百一十二", "九百一十三", "九百一十四", "九百一十五", "九百一十六", "九百一十七", "九百一十八", "九百一十九", "九百二十", "九百二十一", "九百二十二", "九百二十三", "九百二十四", "九百二十五", "九百二十六", "九百二十七", "九百二十八", "九百二十九", "九百三十", "九百三十一", "九百三十二", "九百三十三", "九百三十四", "九百三十五", "九百三十六", "九百三十七", "九百三十八", "九百三十九", "九百四十", "九百四十一", "九百四十二", "九百四十三", "九百四十四", "九百四十五", "九百四十六", "九百四十七", "九百四十八", "九百四十九", "九百五十", "九百五十一", "九百五十二", "九百五十三", "九百五十四", "九百五十五", "九百五十六", "九百五十七", "九百五十八", "九百五十九", "九百六十", "九百六十一", "九百六十二", "九百六十三", "九百六十四", "九百六十五", "九百六十六", "九百六十七", "九百六十八", "九百六十九", "九百七十", "九百七十一", "九百七十二", "九百七十三", "九百七十四", "九百七十五", "九百七十六", "九百七十七", "九百七十八", "九百七十九", "九百八十", "九百八十一", "九百八十二", "九百八十三", "九百八十四", "九百八十五", "九百八十六", "九百八十七", "九百八十八", "九百八十九", "九百九十", "九百九十一", "九百九十二", "九百九十三", "九百九十四", "九百九十五", "九百九十六", "九百九十七", "九百九十八", "九百九十九" };

int ChnToNumber(char str[20])
{
    
    for (int i = 0; i < 1000; i++)
    {
        if (strcmp(str, ChnArr[i]) == 0)
        {
            return i;
        }
    }
    return -1;
}

char* NumberToChn(int num)
{
    if (num < 0)
    {
        num = -num;
    }
    return ChnArr[num];
}


Var Vars[1000] = {};
int VarCount = 0;

int main()
{
    
    while (1)
    {
        char symbol[20] = {};
        scanf("%s", symbol);
        if (strcmp(symbol, "整数") == 0)
        {
            char name[20] = {}, op[20] = {}, value[20] = {};
            scanf("%s %s %s", name, op, value);
            VarCount++;
            int val = ChnToNumber(value);
            strcpy(Vars[VarCount - 1].Name, name);
            Vars[VarCount - 1].Value = val;
            printf("创建新变量: %s\n", name);
        }
        else if (strcmp(symbol, "看看") == 0)
        {
            char name[20] = {};
            scanf("%s", name);
            for (int i = 0; i < VarCount; i++)
            {
                if (strcmp(name, Vars[i].Name) == 0)
                {
                    printf("%s 的值为: %s\n", name, NumberToChn(Vars[i].Value));
                    break;
                }
            }
        }
        else
        {
            char op[20] = {}, value[20] = {};
            scanf("%s %s", op, value);
            for (int i = 0; i < VarCount; i++)
            {
                if (strcmp(symbol, Vars[i].Name) == 0)
                {
                    if (strcmp(op, "增加") == 0)
                    {
                        int val = ChnToNumber(value);
                        Vars[i].Value += val;
                        printf("%s 的值增加了 %s\n", symbol, value);
                    }
                    else if (strcmp(op, "减少") == 0)
                    {

                        int val = ChnToNumber(value);
                        Vars[i].Value -= val;
                        printf("%s 的值减少了 %s\n", symbol, value);
                    }
                    break;
                }
                if (i == VarCount - 1) printf("错误的输入!请重新输入!\n");
            }
        }
    }
    
}

制作一个编译脚本

(一开始想学python的,但是网上搜了看了好久的教程还是不太懂,然后看了看powershell的教程,还是云里雾里根本不知道在讲什么,最后看到群里说Windows批处理好学就去百度教程,看了半天门都入不了,最后终于在b站找到一个对新手及其友好的教程。)

我一开始一直是这样,百度了半天一直找不到解决办法,最后看同学的博客发现只要把gcc的路径添加到环境变量path中就好了。
寒假作业2_第5张图片

这是我的编译脚本,因为看过同学的博文,所以知道将另存为的保存类型改为所有文件且编码改为ANSI
寒假作业2_第6张图片

编译成功后会出现exe文件
寒假作业2_第7张图片

进行单元测试,即测试每一个函数,并制作一个测试脚本,运行该脚本可以进行测试,并显示测试结果。

我觉得文字转换为数字那一段最有必要测试
所以写了这段测试代码(请务必忽略前面那段恶心的数字)

#include
#include
char* ChnArr[] = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十", "三十一", "三十二", "三十三", "三十四", "三十五", "三十六", "三十七", "三十八", "三十九", "四十", "四十一", "四十二", "四十三", "四十四", "四十五", "四十六", "四十七", "四十八", "四十九", "五十", "五十一", "五十二", "五十三", "五十四", "五十五", "五十六", "五十七", "五十八", "五十九", "六十", "六十一", "六十二", "六十三", "六十四", "六十五", "六十六", "六十七", "六十八", "六十九", "七十", "七十一", "七十二", "七十三", "七十四", "七十五", "七十六", "七十七", "七十八", "七十九", "八十", "八十一", "八十二", "八十三", "八十四", "八十五", "八十六", "八十七", "八十八", "八十九", "九十", "九十一", "九十二", "九十三", "九十四", "九十五", "九十六", "九十七", "九十八", "九十九", "一百", "一百零一", "一百零二", "一百零三", "一百零四", "一百零五", "一百零六", "一百零七", "一百零八", "一百零九", "一百一十", "一百一十一", "一百一十二", "一百一十三", "一百一十四", "一百一十五", "一百一十六", "一百一十七", "一百一十八", "一百一十九", "一百二十", "一百二十一", "一百二十二", "一百二十三", "一百二十四", "一百二十五", "一百二十六", "一百二十七", "一百二十八", "一百二十九", "一百三十", "一百三十一", "一百三十二", "一百三十三", "一百三十四", "一百三十五", "一百三十六", "一百三十七", "一百三十八", "一百三十九", "一百四十", "一百四十一", "一百四十二", "一百四十三", "一百四十四", "一百四十五", "一百四十六", "一百四十七", "一百四十八", "一百四十九", "一百五十", "一百五十一", "一百五十二", "一百五十三", "一百五十四", "一百五十五", "一百五十六", "一百五十七", "一百五十八", "一百五十九", "一百六十", "一百六十一", "一百六十二", "一百六十三", "一百六十四", "一百六十五", "一百六十六", "一百六十七", "一百六十八", "一百六十九", "一百七十", "一百七十一", "一百七十二", "一百七十三", "一百七十四", "一百七十五", "一百七十六", "一百七十七", "一百七十八", "一百七十九", "一百八十", "一百八十一", "一百八十二", "一百八十三", "一百八十四", "一百八十五", "一百八十六", "一百八十七", "一百八十八", "一百八十九", "一百九十", "一百九十一", "一百九十二", "一百九十三", "一百九十四", "一百九十五", "一百九十六", "一百九十七", "一百九十八", "一百九十九", "二百", "二百零一", "二百零二", "二百零三", "二百零四", "二百零五", "二百零六", "二百零七", "二百零八", "二百零九", "二百一十", "二百一十一", "二百一十二", "二百一十三", "二百一十四", "二百一十五", "二百一十六", "二百一十七", "二百一十八", "二百一十九", "二百二十", "二百二十一", "二百二十二", "二百二十三", "二百二十四", "二百二十五", "二百二十六", "二百二十七", "二百二十八", "二百二十九", "二百三十", "二百三十一", "二百三十二", "二百三十三", "二百三十四", "二百三十五", "二百三十六", "二百三十七", "二百三十八", "二百三十九", "二百四十", "二百四十一", "二百四十二", "二百四十三", "二百四十四", "二百四十五", "二百四十六", "二百四十七", "二百四十八", "二百四十九", "二百五十", "二百五十一", "二百五十二", "二百五十三", "二百五十四", "二百五十五", "二百五十六", "二百五十七", "二百五十八", "二百五十九", "二百六十", "二百六十一", "二百六十二", "二百六十三", "二百六十四", "二百六十五", "二百六十六", "二百六十七", "二百六十八", "二百六十九", "二百七十", "二百七十一", "二百七十二", "二百七十三", "二百七十四", "二百七十五", "二百七十六", "二百七十七", "二百七十八", "二百七十九", "二百八十", "二百八十一", "二百八十二", "二百八十三", "二百八十四", "二百八十五", "二百八十六", "二百八十七", "二百八十八", "二百八十九", "二百九十", "二百九十一", "二百九十二", "二百九十三", "二百九十四", "二百九十五", "二百九十六", "二百九十七", "二百九十八", "二百九十九", "三百", "三百零一", "三百零二", "三百零三", "三百零四", "三百零五", "三百零六", "三百零七", "三百零八", "三百零九", "三百一十", "三百一十一", "三百一十二", "三百一十三", "三百一十四", "三百一十五", "三百一十六", "三百一十七", "三百一十八", "三百一十九", "三百二十", "三百二十一", "三百二十二", "三百二十三", "三百二十四", "三百二十五", "三百二十六", "三百二十七", "三百二十八", "三百二十九", "三百三十", "三百三十一", "三百三十二", "三百三十三", "三百三十四", "三百三十五", "三百三十六", "三百三十七", "三百三十八", "三百三十九", "三百四十", "三百四十一", "三百四十二", "三百四十三", "三百四十四", "三百四十五", "三百四十六", "三百四十七", "三百四十八", "三百四十九", "三百五十", "三百五十一", "三百五十二", "三百五十三", "三百五十四", "三百五十五", "三百五十六", "三百五十七", "三百五十八", "三百五十九", "三百六十", "三百六十一", "三百六十二", "三百六十三", "三百六十四", "三百六十五", "三百六十六", "三百六十七", "三百六十八", "三百六十九", "三百七十", "三百七十一", "三百七十二", "三百七十三", "三百七十四", "三百七十五", "三百七十六", "三百七十七", "三百七十八", "三百七十九", "三百八十", "三百八十一", "三百八十二", "三百八十三", "三百八十四", "三百八十五", "三百八十六", "三百八十七", "三百八十八", "三百八十九", "三百九十", "三百九十一", "三百九十二", "三百九十三", "三百九十四", "三百九十五", "三百九十六", "三百九十七", "三百九十八", "三百九十九", "四百", "四百零一", "四百零二", "四百零三", "四百零四", "四百零五", "四百零六", "四百零七", "四百零八", "四百零九", "四百一十", "四百一十一", "四百一十二", "四百一十三", "四百一十四", "四百一十五", "四百一十六", "四百一十七", "四百一十八", "四百一十九", "四百二十", "四百二十一", "四百二十二", "四百二十三", "四百二十四", "四百二十五", "四百二十六", "四百二十七", "四百二十八", "四百二十九", "四百三十", "四百三十一", "四百三十二", "四百三十三", "四百三十四", "四百三十五", "四百三十六", "四百三十七", "四百三十八", "四百三十九", "四百四十", "四百四十一", "四百四十二", "四百四十三", "四百四十四", "四百四十五", "四百四十六", "四百四十七", "四百四十八", "四百四十九", "四百五十", "四百五十一", "四百五十二", "四百五十三", "四百五十四", "四百五十五", "四百五十六", "四百五十七", "四百五十八", "四百五十九", "四百六十", "四百六十一", "四百六十二", "四百六十三", "四百六十四", "四百六十五", "四百六十六", "四百六十七", "四百六十八", "四百六十九", "四百七十", "四百七十一", "四百七十二", "四百七十三", "四百七十四", "四百七十五", "四百七十六", "四百七十七", "四百七十八", "四百七十九", "四百八十", "四百八十一", "四百八十二", "四百八十三", "四百八十四", "四百八十五", "四百八十六", "四百八十七", "四百八十八", "四百八十九", "四百九十", "四百九十一", "四百九十二", "四百九十三", "四百九十四", "四百九十五", "四百九十六", "四百九十七", "四百九十八", "四百九十九", "五百", "五百零一", "五百零二", "五百零三", "五百零四", "五百零五", "五百零六", "五百零七", "五百零八", "五百零九", "五百一十", "五百一十一", "五百一十二", "五百一十三", "五百一十四", "五百一十五", "五百一十六", "五百一十七", "五百一十八", "五百一十九", "五百二十", "五百二十一", "五百二十二", "五百二十三", "五百二十四", "五百二十五", "五百二十六", "五百二十七", "五百二十八", "五百二十九", "五百三十", "五百三十一", "五百三十二", "五百三十三", "五百三十四", "五百三十五", "五百三十六", "五百三十七", "五百三十八", "五百三十九", "五百四十", "五百四十一", "五百四十二", "五百四十三", "五百四十四", "五百四十五", "五百四十六", "五百四十七", "五百四十八", "五百四十九", "五百五十", "五百五十一", "五百五十二", "五百五十三", "五百五十四", "五百五十五", "五百五十六", "五百五十七", "五百五十八", "五百五十九", "五百六十", "五百六十一", "五百六十二", "五百六十三", "五百六十四", "五百六十五", "五百六十六", "五百六十七", "五百六十八", "五百六十九", "五百七十", "五百七十一", "五百七十二", "五百七十三", "五百七十四", "五百七十五", "五百七十六", "五百七十七", "五百七十八", "五百七十九", "五百八十", "五百八十一", "五百八十二", "五百八十三", "五百八十四", "五百八十五", "五百八十六", "五百八十七", "五百八十八", "五百八十九", "五百九十", "五百九十一", "五百九十二", "五百九十三", "五百九十四", "五百九十五", "五百九十六", "五百九十七", "五百九十八", "五百九十九", "六百", "六百零一", "六百零二", "六百零三", "六百零四", "六百零五", "六百零六", "六百零七", "六百零八", "六百零九", "六百一十", "六百一十一", "六百一十二", "六百一十三", "六百一十四", "六百一十五", "六百一十六", "六百一十七", "六百一十八", "六百一十九", "六百二十", "六百二十一", "六百二十二", "六百二十三", "六百二十四", "六百二十五", "六百二十六", "六百二十七", "六百二十八", "六百二十九", "六百三十", "六百三十一", "六百三十二", "六百三十三", "六百三十四", "六百三十五", "六百三十六", "六百三十七", "六百三十八", "六百三十九", "六百四十", "六百四十一", "六百四十二", "六百四十三", "六百四十四", "六百四十五", "六百四十六", "六百四十七", "六百四十八", "六百四十九", "六百五十", "六百五十一", "六百五十二", "六百五十三", "六百五十四", "六百五十五", "六百五十六", "六百五十七", "六百五十八", "六百五十九", "六百六十", "六百六十一", "六百六十二", "六百六十三", "六百六十四", "六百六十五", "六百六十六", "六百六十七", "六百六十八", "六百六十九", "六百七十", "六百七十一", "六百七十二", "六百七十三", "六百七十四", "六百七十五", "六百七十六", "六百七十七", "六百七十八", "六百七十九", "六百八十", "六百八十一", "六百八十二", "六百八十三", "六百八十四", "六百八十五", "六百八十六", "六百八十七", "六百八十八", "六百八十九", "六百九十", "六百九十一", "六百九十二", "六百九十三", "六百九十四", "六百九十五", "六百九十六", "六百九十七", "六百九十八", "六百九十九", "七百", "七百零一", "七百零二", "七百零三", "七百零四", "七百零五", "七百零六", "七百零七", "七百零八", "七百零九", "七百一十", "七百一十一", "七百一十二", "七百一十三", "七百一十四", "七百一十五", "七百一十六", "七百一十七", "七百一十八", "七百一十九", "七百二十", "七百二十一", "七百二十二", "七百二十三", "七百二十四", "七百二十五", "七百二十六", "七百二十七", "七百二十八", "七百二十九", "七百三十", "七百三十一", "七百三十二", "七百三十三", "七百三十四", "七百三十五", "七百三十六", "七百三十七", "七百三十八", "七百三十九", "七百四十", "七百四十一", "七百四十二", "七百四十三", "七百四十四", "七百四十五", "七百四十六", "七百四十七", "七百四十八", "七百四十九", "七百五十", "七百五十一", "七百五十二", "七百五十三", "七百五十四", "七百五十五", "七百五十六", "七百五十七", "七百五十八", "七百五十九", "七百六十", "七百六十一", "七百六十二", "七百六十三", "七百六十四", "七百六十五", "七百六十六", "七百六十七", "七百六十八", "七百六十九", "七百七十", "七百七十一", "七百七十二", "七百七十三", "七百七十四", "七百七十五", "七百七十六", "七百七十七", "七百七十八", "七百七十九", "七百八十", "七百八十一", "七百八十二", "七百八十三", "七百八十四", "七百八十五", "七百八十六", "七百八十七", "七百八十八", "七百八十九", "七百九十", "七百九十一", "七百九十二", "七百九十三", "七百九十四", "七百九十五", "七百九十六", "七百九十七", "七百九十八", "七百九十九", "八百", "八百零一", "八百零二", "八百零三", "八百零四", "八百零五", "八百零六", "八百零七", "八百零八", "八百零九", "八百一十", "八百一十一", "八百一十二", "八百一十三", "八百一十四", "八百一十五", "八百一十六", "八百一十七", "八百一十八", "八百一十九", "八百二十", "八百二十一", "八百二十二", "八百二十三", "八百二十四", "八百二十五", "八百二十六", "八百二十七", "八百二十八", "八百二十九", "八百三十", "八百三十一", "八百三十二", "八百三十三", "八百三十四", "八百三十五", "八百三十六", "八百三十七", "八百三十八", "八百三十九", "八百四十", "八百四十一", "八百四十二", "八百四十三", "八百四十四", "八百四十五", "八百四十六", "八百四十七", "八百四十八", "八百四十九", "八百五十", "八百五十一", "八百五十二", "八百五十三", "八百五十四", "八百五十五", "八百五十六", "八百五十七", "八百五十八", "八百五十九", "八百六十", "八百六十一", "八百六十二", "八百六十三", "八百六十四", "八百六十五", "八百六十六", "八百六十七", "八百六十八", "八百六十九", "八百七十", "八百七十一", "八百七十二", "八百七十三", "八百七十四", "八百七十五", "八百七十六", "八百七十七", "八百七十八", "八百七十九", "八百八十", "八百八十一", "八百八十二", "八百八十三", "八百八十四", "八百八十五", "八百八十六", "八百八十七", "八百八十八", "八百八十九", "八百九十", "八百九十一", "八百九十二", "八百九十三", "八百九十四", "八百九十五", "八百九十六", "八百九十七", "八百九十八", "八百九十九", "九百", "九百零一", "九百零二", "九百零三", "九百零四", "九百零五", "九百零六", "九百零七", "九百零八", "九百零九", "九百一十", "九百一十一", "九百一十二", "九百一十三", "九百一十四", "九百一十五", "九百一十六", "九百一十七", "九百一十八", "九百一十九", "九百二十", "九百二十一", "九百二十二", "九百二十三", "九百二十四", "九百二十五", "九百二十六", "九百二十七", "九百二十八", "九百二十九", "九百三十", "九百三十一", "九百三十二", "九百三十三", "九百三十四", "九百三十五", "九百三十六", "九百三十七", "九百三十八", "九百三十九", "九百四十", "九百四十一", "九百四十二", "九百四十三", "九百四十四", "九百四十五", "九百四十六", "九百四十七", "九百四十八", "九百四十九", "九百五十", "九百五十一", "九百五十二", "九百五十三", "九百五十四", "九百五十五", "九百五十六", "九百五十七", "九百五十八", "九百五十九", "九百六十", "九百六十一", "九百六十二", "九百六十三", "九百六十四", "九百六十五", "九百六十六", "九百六十七", "九百六十八", "九百六十九", "九百七十", "九百七十一", "九百七十二", "九百七十三", "九百七十四", "九百七十五", "九百七十六", "九百七十七", "九百七十八", "九百七十九", "九百八十", "九百八十一", "九百八十二", "九百八十三", "九百八十四", "九百八十五", "九百八十六", "九百八十七", "九百八十八", "九百八十九", "九百九十", "九百九十一", "九百九十二", "九百九十三", "九百九十四", "九百九十五", "九百九十六", "九百九十七", "九百九十八", "九百九十九" };

int ChnToNumber(char str[20])
{
    
    for (int i = 0; i < 1000; i++)
    {
        if (strcmp(str, ChnArr[i]) == 0)
        {
            return i;
        }
    }
    return -1;
}
int main()
{
    char value[13][30]={"零","一百","九十九","一","蔡","徐","困","一百零九","五十五","一百一十","二百五十","二百四十九","五百七十"};
    int i,j;
    for(i=0;i<13;i++)
    {
        int val = ChnToNumber(value[i]);
        printf("%d\n",val);
    } 
    
    
    return 0;
} 

然后编写脚本
寒假作业2_第8张图片

运行这个脚本(错误返回-1)
寒假作业2_第9张图片

在作业一编程题的基础上添加以下功能:

通过命令行读取一个文件,然后运行这个文件。如我的程序叫lang,lang 1.txt代表我要运行1.txt这个文本中的代码。
假设我的1.txt内容如下:
整数 钱包 等于 零
钱包 增加 四
钱包 减少 三
看看 钱包
输入lang 1.txt后,命令行输出一。

我看同学们写的基本都是把这段代码添加到主函数里然后编写一个txt文本

    char s[100];
    scanf("%s",s);
    freopen(s,"r",stdin);

然而我照样做了以后,最后的答案死活出不来
寒假作业2_第10张图片

然后有个同学提醒我修改记事本的编码ANSI,我试了下,死循环了。。。。。。
寒假作业2_第11张图片

最后发现是代码有错误,修改后就可以了
寒假作业2_第12张图片
寒假作业2_第13张图片

最后吧代码贴出来

#include
#include

struct Var {
    char Name[20] = {};
    int Value = 0;
};

char* ChnArr[] = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十", "三十一", "三十二", "三十三", "三十四", "三十五", "三十六", "三十七", "三十八", "三十九", "四十", "四十一", "四十二", "四十三", "四十四", "四十五", "四十六", "四十七", "四十八", "四十九", "五十", "五十一", "五十二", "五十三", "五十四", "五十五", "五十六", "五十七", "五十八", "五十九", "六十", "六十一", "六十二", "六十三", "六十四", "六十五", "六十六", "六十七", "六十八", "六十九", "七十", "七十一", "七十二", "七十三", "七十四", "七十五", "七十六", "七十七", "七十八", "七十九", "八十", "八十一", "八十二", "八十三", "八十四", "八十五", "八十六", "八十七", "八十八", "八十九", "九十", "九十一", "九十二", "九十三", "九十四", "九十五", "九十六", "九十七", "九十八", "九十九", "一百", "一百零一", "一百零二", "一百零三", "一百零四", "一百零五", "一百零六", "一百零七", "一百零八", "一百零九", "一百一十", "一百一十一", "一百一十二", "一百一十三", "一百一十四", "一百一十五", "一百一十六", "一百一十七", "一百一十八", "一百一十九", "一百二十", "一百二十一", "一百二十二", "一百二十三", "一百二十四", "一百二十五", "一百二十六", "一百二十七", "一百二十八", "一百二十九", "一百三十", "一百三十一", "一百三十二", "一百三十三", "一百三十四", "一百三十五", "一百三十六", "一百三十七", "一百三十八", "一百三十九", "一百四十", "一百四十一", "一百四十二", "一百四十三", "一百四十四", "一百四十五", "一百四十六", "一百四十七", "一百四十八", "一百四十九", "一百五十", "一百五十一", "一百五十二", "一百五十三", "一百五十四", "一百五十五", "一百五十六", "一百五十七", "一百五十八", "一百五十九", "一百六十", "一百六十一", "一百六十二", "一百六十三", "一百六十四", "一百六十五", "一百六十六", "一百六十七", "一百六十八", "一百六十九", "一百七十", "一百七十一", "一百七十二", "一百七十三", "一百七十四", "一百七十五", "一百七十六", "一百七十七", "一百七十八", "一百七十九", "一百八十", "一百八十一", "一百八十二", "一百八十三", "一百八十四", "一百八十五", "一百八十六", "一百八十七", "一百八十八", "一百八十九", "一百九十", "一百九十一", "一百九十二", "一百九十三", "一百九十四", "一百九十五", "一百九十六", "一百九十七", "一百九十八", "一百九十九", "二百", "二百零一", "二百零二", "二百零三", "二百零四", "二百零五", "二百零六", "二百零七", "二百零八", "二百零九", "二百一十", "二百一十一", "二百一十二", "二百一十三", "二百一十四", "二百一十五", "二百一十六", "二百一十七", "二百一十八", "二百一十九", "二百二十", "二百二十一", "二百二十二", "二百二十三", "二百二十四", "二百二十五", "二百二十六", "二百二十七", "二百二十八", "二百二十九", "二百三十", "二百三十一", "二百三十二", "二百三十三", "二百三十四", "二百三十五", "二百三十六", "二百三十七", "二百三十八", "二百三十九", "二百四十", "二百四十一", "二百四十二", "二百四十三", "二百四十四", "二百四十五", "二百四十六", "二百四十七", "二百四十八", "二百四十九", "二百五十", "二百五十一", "二百五十二", "二百五十三", "二百五十四", "二百五十五", "二百五十六", "二百五十七", "二百五十八", "二百五十九", "二百六十", "二百六十一", "二百六十二", "二百六十三", "二百六十四", "二百六十五", "二百六十六", "二百六十七", "二百六十八", "二百六十九", "二百七十", "二百七十一", "二百七十二", "二百七十三", "二百七十四", "二百七十五", "二百七十六", "二百七十七", "二百七十八", "二百七十九", "二百八十", "二百八十一", "二百八十二", "二百八十三", "二百八十四", "二百八十五", "二百八十六", "二百八十七", "二百八十八", "二百八十九", "二百九十", "二百九十一", "二百九十二", "二百九十三", "二百九十四", "二百九十五", "二百九十六", "二百九十七", "二百九十八", "二百九十九", "三百", "三百零一", "三百零二", "三百零三", "三百零四", "三百零五", "三百零六", "三百零七", "三百零八", "三百零九", "三百一十", "三百一十一", "三百一十二", "三百一十三", "三百一十四", "三百一十五", "三百一十六", "三百一十七", "三百一十八", "三百一十九", "三百二十", "三百二十一", "三百二十二", "三百二十三", "三百二十四", "三百二十五", "三百二十六", "三百二十七", "三百二十八", "三百二十九", "三百三十", "三百三十一", "三百三十二", "三百三十三", "三百三十四", "三百三十五", "三百三十六", "三百三十七", "三百三十八", "三百三十九", "三百四十", "三百四十一", "三百四十二", "三百四十三", "三百四十四", "三百四十五", "三百四十六", "三百四十七", "三百四十八", "三百四十九", "三百五十", "三百五十一", "三百五十二", "三百五十三", "三百五十四", "三百五十五", "三百五十六", "三百五十七", "三百五十八", "三百五十九", "三百六十", "三百六十一", "三百六十二", "三百六十三", "三百六十四", "三百六十五", "三百六十六", "三百六十七", "三百六十八", "三百六十九", "三百七十", "三百七十一", "三百七十二", "三百七十三", "三百七十四", "三百七十五", "三百七十六", "三百七十七", "三百七十八", "三百七十九", "三百八十", "三百八十一", "三百八十二", "三百八十三", "三百八十四", "三百八十五", "三百八十六", "三百八十七", "三百八十八", "三百八十九", "三百九十", "三百九十一", "三百九十二", "三百九十三", "三百九十四", "三百九十五", "三百九十六", "三百九十七", "三百九十八", "三百九十九", "四百", "四百零一", "四百零二", "四百零三", "四百零四", "四百零五", "四百零六", "四百零七", "四百零八", "四百零九", "四百一十", "四百一十一", "四百一十二", "四百一十三", "四百一十四", "四百一十五", "四百一十六", "四百一十七", "四百一十八", "四百一十九", "四百二十", "四百二十一", "四百二十二", "四百二十三", "四百二十四", "四百二十五", "四百二十六", "四百二十七", "四百二十八", "四百二十九", "四百三十", "四百三十一", "四百三十二", "四百三十三", "四百三十四", "四百三十五", "四百三十六", "四百三十七", "四百三十八", "四百三十九", "四百四十", "四百四十一", "四百四十二", "四百四十三", "四百四十四", "四百四十五", "四百四十六", "四百四十七", "四百四十八", "四百四十九", "四百五十", "四百五十一", "四百五十二", "四百五十三", "四百五十四", "四百五十五", "四百五十六", "四百五十七", "四百五十八", "四百五十九", "四百六十", "四百六十一", "四百六十二", "四百六十三", "四百六十四", "四百六十五", "四百六十六", "四百六十七", "四百六十八", "四百六十九", "四百七十", "四百七十一", "四百七十二", "四百七十三", "四百七十四", "四百七十五", "四百七十六", "四百七十七", "四百七十八", "四百七十九", "四百八十", "四百八十一", "四百八十二", "四百八十三", "四百八十四", "四百八十五", "四百八十六", "四百八十七", "四百八十八", "四百八十九", "四百九十", "四百九十一", "四百九十二", "四百九十三", "四百九十四", "四百九十五", "四百九十六", "四百九十七", "四百九十八", "四百九十九", "五百", "五百零一", "五百零二", "五百零三", "五百零四", "五百零五", "五百零六", "五百零七", "五百零八", "五百零九", "五百一十", "五百一十一", "五百一十二", "五百一十三", "五百一十四", "五百一十五", "五百一十六", "五百一十七", "五百一十八", "五百一十九", "五百二十", "五百二十一", "五百二十二", "五百二十三", "五百二十四", "五百二十五", "五百二十六", "五百二十七", "五百二十八", "五百二十九", "五百三十", "五百三十一", "五百三十二", "五百三十三", "五百三十四", "五百三十五", "五百三十六", "五百三十七", "五百三十八", "五百三十九", "五百四十", "五百四十一", "五百四十二", "五百四十三", "五百四十四", "五百四十五", "五百四十六", "五百四十七", "五百四十八", "五百四十九", "五百五十", "五百五十一", "五百五十二", "五百五十三", "五百五十四", "五百五十五", "五百五十六", "五百五十七", "五百五十八", "五百五十九", "五百六十", "五百六十一", "五百六十二", "五百六十三", "五百六十四", "五百六十五", "五百六十六", "五百六十七", "五百六十八", "五百六十九", "五百七十", "五百七十一", "五百七十二", "五百七十三", "五百七十四", "五百七十五", "五百七十六", "五百七十七", "五百七十八", "五百七十九", "五百八十", "五百八十一", "五百八十二", "五百八十三", "五百八十四", "五百八十五", "五百八十六", "五百八十七", "五百八十八", "五百八十九", "五百九十", "五百九十一", "五百九十二", "五百九十三", "五百九十四", "五百九十五", "五百九十六", "五百九十七", "五百九十八", "五百九十九", "六百", "六百零一", "六百零二", "六百零三", "六百零四", "六百零五", "六百零六", "六百零七", "六百零八", "六百零九", "六百一十", "六百一十一", "六百一十二", "六百一十三", "六百一十四", "六百一十五", "六百一十六", "六百一十七", "六百一十八", "六百一十九", "六百二十", "六百二十一", "六百二十二", "六百二十三", "六百二十四", "六百二十五", "六百二十六", "六百二十七", "六百二十八", "六百二十九", "六百三十", "六百三十一", "六百三十二", "六百三十三", "六百三十四", "六百三十五", "六百三十六", "六百三十七", "六百三十八", "六百三十九", "六百四十", "六百四十一", "六百四十二", "六百四十三", "六百四十四", "六百四十五", "六百四十六", "六百四十七", "六百四十八", "六百四十九", "六百五十", "六百五十一", "六百五十二", "六百五十三", "六百五十四", "六百五十五", "六百五十六", "六百五十七", "六百五十八", "六百五十九", "六百六十", "六百六十一", "六百六十二", "六百六十三", "六百六十四", "六百六十五", "六百六十六", "六百六十七", "六百六十八", "六百六十九", "六百七十", "六百七十一", "六百七十二", "六百七十三", "六百七十四", "六百七十五", "六百七十六", "六百七十七", "六百七十八", "六百七十九", "六百八十", "六百八十一", "六百八十二", "六百八十三", "六百八十四", "六百八十五", "六百八十六", "六百八十七", "六百八十八", "六百八十九", "六百九十", "六百九十一", "六百九十二", "六百九十三", "六百九十四", "六百九十五", "六百九十六", "六百九十七", "六百九十八", "六百九十九", "七百", "七百零一", "七百零二", "七百零三", "七百零四", "七百零五", "七百零六", "七百零七", "七百零八", "七百零九", "七百一十", "七百一十一", "七百一十二", "七百一十三", "七百一十四", "七百一十五", "七百一十六", "七百一十七", "七百一十八", "七百一十九", "七百二十", "七百二十一", "七百二十二", "七百二十三", "七百二十四", "七百二十五", "七百二十六", "七百二十七", "七百二十八", "七百二十九", "七百三十", "七百三十一", "七百三十二", "七百三十三", "七百三十四", "七百三十五", "七百三十六", "七百三十七", "七百三十八", "七百三十九", "七百四十", "七百四十一", "七百四十二", "七百四十三", "七百四十四", "七百四十五", "七百四十六", "七百四十七", "七百四十八", "七百四十九", "七百五十", "七百五十一", "七百五十二", "七百五十三", "七百五十四", "七百五十五", "七百五十六", "七百五十七", "七百五十八", "七百五十九", "七百六十", "七百六十一", "七百六十二", "七百六十三", "七百六十四", "七百六十五", "七百六十六", "七百六十七", "七百六十八", "七百六十九", "七百七十", "七百七十一", "七百七十二", "七百七十三", "七百七十四", "七百七十五", "七百七十六", "七百七十七", "七百七十八", "七百七十九", "七百八十", "七百八十一", "七百八十二", "七百八十三", "七百八十四", "七百八十五", "七百八十六", "七百八十七", "七百八十八", "七百八十九", "七百九十", "七百九十一", "七百九十二", "七百九十三", "七百九十四", "七百九十五", "七百九十六", "七百九十七", "七百九十八", "七百九十九", "八百", "八百零一", "八百零二", "八百零三", "八百零四", "八百零五", "八百零六", "八百零七", "八百零八", "八百零九", "八百一十", "八百一十一", "八百一十二", "八百一十三", "八百一十四", "八百一十五", "八百一十六", "八百一十七", "八百一十八", "八百一十九", "八百二十", "八百二十一", "八百二十二", "八百二十三", "八百二十四", "八百二十五", "八百二十六", "八百二十七", "八百二十八", "八百二十九", "八百三十", "八百三十一", "八百三十二", "八百三十三", "八百三十四", "八百三十五", "八百三十六", "八百三十七", "八百三十八", "八百三十九", "八百四十", "八百四十一", "八百四十二", "八百四十三", "八百四十四", "八百四十五", "八百四十六", "八百四十七", "八百四十八", "八百四十九", "八百五十", "八百五十一", "八百五十二", "八百五十三", "八百五十四", "八百五十五", "八百五十六", "八百五十七", "八百五十八", "八百五十九", "八百六十", "八百六十一", "八百六十二", "八百六十三", "八百六十四", "八百六十五", "八百六十六", "八百六十七", "八百六十八", "八百六十九", "八百七十", "八百七十一", "八百七十二", "八百七十三", "八百七十四", "八百七十五", "八百七十六", "八百七十七", "八百七十八", "八百七十九", "八百八十", "八百八十一", "八百八十二", "八百八十三", "八百八十四", "八百八十五", "八百八十六", "八百八十七", "八百八十八", "八百八十九", "八百九十", "八百九十一", "八百九十二", "八百九十三", "八百九十四", "八百九十五", "八百九十六", "八百九十七", "八百九十八", "八百九十九", "九百", "九百零一", "九百零二", "九百零三", "九百零四", "九百零五", "九百零六", "九百零七", "九百零八", "九百零九", "九百一十", "九百一十一", "九百一十二", "九百一十三", "九百一十四", "九百一十五", "九百一十六", "九百一十七", "九百一十八", "九百一十九", "九百二十", "九百二十一", "九百二十二", "九百二十三", "九百二十四", "九百二十五", "九百二十六", "九百二十七", "九百二十八", "九百二十九", "九百三十", "九百三十一", "九百三十二", "九百三十三", "九百三十四", "九百三十五", "九百三十六", "九百三十七", "九百三十八", "九百三十九", "九百四十", "九百四十一", "九百四十二", "九百四十三", "九百四十四", "九百四十五", "九百四十六", "九百四十七", "九百四十八", "九百四十九", "九百五十", "九百五十一", "九百五十二", "九百五十三", "九百五十四", "九百五十五", "九百五十六", "九百五十七", "九百五十八", "九百五十九", "九百六十", "九百六十一", "九百六十二", "九百六十三", "九百六十四", "九百六十五", "九百六十六", "九百六十七", "九百六十八", "九百六十九", "九百七十", "九百七十一", "九百七十二", "九百七十三", "九百七十四", "九百七十五", "九百七十六", "九百七十七", "九百七十八", "九百七十九", "九百八十", "九百八十一", "九百八十二", "九百八十三", "九百八十四", "九百八十五", "九百八十六", "九百八十七", "九百八十八", "九百八十九", "九百九十", "九百九十一", "九百九十二", "九百九十三", "九百九十四", "九百九十五", "九百九十六", "九百九十七", "九百九十八", "九百九十九" };

int ChnToNumber(char str[20])
{
    
    for (int i = 0; i < 1000; i++)
    {
        if (strcmp(str, ChnArr[i]) == 0)
        {
            return i;
        }
    }
    return -1;
}

char* NumberToChn(int num)
{
    if (num < 0)
    {
        num = -num;
    }
    return ChnArr[num];
}


Var Vars[1000] = {};
int VarCount = 0;
int main()
{
    freopen("1.txt", "r", stdin);
    char symbol[20] = {};

    while (scanf("%s", symbol) != EOF)
    {
        if (strcmp(symbol, "整数") == 0)
        {
            char name[20] = {}, op[20] = {}, value[20] = {};
            scanf("%s %s %s", name, op, value);
            VarCount++;
            int val = ChnToNumber(value);
            strcpy(Vars[VarCount - 1].Name, name);
            Vars[VarCount - 1].Value = val;
            
        }
        else if (strcmp(symbol, "看看") == 0)
        {
            char name[20] = {};
            scanf("%s", name);
            for (int i = 0; i < VarCount; i++)
            {
                if (strcmp(name, Vars[i].Name) == 0)
                {
                    printf("%s\n", NumberToChn(Vars[i].Value));
                    break;
                }
            }
        }
        else
        {
            char op[20] = {}, value[20] = {};
            scanf("%s %s", op, value);
            for (int i = 0; i < VarCount; i++)
            {
                if (strcmp(symbol, Vars[i].Name) == 0)
                {
                    if (strcmp(op, "增加") == 0)
                    {
                        int val = ChnToNumber(value);
                        Vars[i].Value += val;
                        
                    }
                    else if (strcmp(op, "减少") == 0)
                    {

                        int val = ChnToNumber(value);
                        Vars[i].Value -= val;
                        
                    }
                    break;
                }
                if (i == VarCount - 1) printf("错误的输入!请重新输入!\n");
            }
        }
    }
    
}

你可能感兴趣的:(寒假作业2)