{"id":376,"date":"2023-02-24T20:31:58","date_gmt":"2023-02-24T12:31:58","guid":{"rendered":"https:\/\/9iwd.top\/?p=376"},"modified":"2023-02-24T20:35:08","modified_gmt":"2023-02-24T12:35:08","slug":"c-%e6%80%bb%e7%bb%93%e6%a1%88%e4%be%8b%ef%bc%9a%e9%80%9a%e8%ae%af%e5%bd%95%e7%b3%bb%e7%bb%9f","status":"publish","type":"post","link":"http:\/\/9iwd.top\/?p=376","title":{"rendered":"C++ \u603b\u7ed3\u6848\u4f8b\uff1a\u901a\u8baf\u5f55\u7cfb\u7edf"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>#include &lt;iostream>\/\/ \u8f93\u51fa\u6d41\u5e93\n#include &lt;string>\/\/ \u5b57\u7b26\u4e32\u5934\u6587\u4ef6\nusing namespace std;\/\/\u4f7f\u7528\u6807\u51c6\u547d\u540d\u7a7a\u95f4\n\n#define MAX 100\/\/\u6700\u5927\u7684\u4e0a\u9650\n\n\n\/\/\u7528\u6237\u4fe1\u606f\u7ed3\u6784\u4f53\nstruct Person\n{\n    string m_Name;\/\/\u59d3\u540d\n    int m_Sex = 0;\/\/\u6027\u522b1\u75372\u5973\n    int m_Age = 0;\/\/\u5e74\u9f84\n    string m_Phone;\/\/\u7535\u8bdd\u53f7\u7801\n    string m_Address;\/\/\u4f4f\u5740\n}; \n\n\/\/\u901a\u8baf\u5f55\u7ed3\u6784\u4f53\nstruct Addressbooks\n{\n    struct Person personArray&#91;MAX];\/\/\u901a\u8baf\u5f55\u4fdd\u5b58\u8054\u7cfb\u4eba\u6570\u7ec4\n    int m_Size = 0;\/\/\u4eba\u5458\u7684\u4e2a\u6570\n};\n\n\/\/\u521b\u5efa\u83dc\u5355\u51fd\u6570\nvoid showMenu()\n{\n    system(\"cls\");\/\/\u6e05\u7a7a\u63a7\u5236\u53f0\u7a97\u53e3\u4fe1\u606f\n    cout &lt;&lt; \"***************************\" &lt;&lt; endl;\n    cout &lt;&lt; \"*****  1\u3001\u6dfb\u52a0\u8054\u7cfb\u4eba  *****\" &lt;&lt; endl;\n    cout &lt;&lt; \"*****  2\u3001\u663e\u793a\u8054\u7cfb\u4eba  *****\" &lt;&lt; endl;\n    cout &lt;&lt; \"*****  3\u3001\u5220\u9664\u8054\u7cfb\u4eba  *****\" &lt;&lt; endl;\n    cout &lt;&lt; \"*****  4\u3001\u67e5\u627e\u8054\u7cfb\u4eba  *****\" &lt;&lt; endl;\n    cout &lt;&lt; \"*****  5\u3001\u4fee\u6539\u8054\u7cfb\u4eba  *****\" &lt;&lt; endl;\n    cout &lt;&lt; \"*****  6\u3001\u6e05\u7a7a\u8054\u7cfb\u4eba  *****\" &lt;&lt; endl;\n    cout &lt;&lt; \"*****  0\u3001\u9000\u51fa\u901a\u8baf\u5f55  *****\" &lt;&lt; endl;\n    cout &lt;&lt; \"***************************\" &lt;&lt; endl;\n}\n\n\/\/\u6dfb\u52a0\u8054\u7cfb\u4eba\nvoid addPerson(Addressbooks* abs)\n{\n    \/\/\u5982\u679c\u901a\u8baf\u5f55\u662f\u5426\u5df2\u6ee1\uff0c\u5982\u679c\u6ee1\u4e86\u5c31\u4e0d\u518d\u6dfb\u52a0\n    if(abs->m_Size == MAX)\n    {\n        cout &lt;&lt; \"\u901a\u8baf\u5f55\u5df2\u6ee1\uff0c\u65e0\u6cd5\u6dfb\u52a0\uff01\" &lt;&lt; endl;\n        return;\n    }\n    else \n    {\n        \/\/\u6dfb\u52a0\u5177\u4f53\u8054\u7cfb\u4eba\n        cout &lt;&lt; \"\u8bf7\u8f93\u5165\u59d3\u540d\uff1a\" &lt;&lt; endl;\n        cin >> abs->personArray&#91;abs->m_Size].m_Name;\n        \n        int sex=0;\n        while (true)\n        {   \/\/\u5982\u679c\u8f93\u5165\u7684\u6570\u5b57\u4e0d\u662f1\/2\uff0c\u7ee7\u7eed\u8f93\u5165\n            cout &lt;&lt; \"\u8bf7\u8f93\u5165\u6027\u522b(1\u75372\u5973)\uff1a\" &lt;&lt; endl;\n            cin >> sex;\n            if (sex == 1 || sex == 2)\n            {\n                abs->personArray&#91;abs->m_Size].m_Sex = sex;\n                break;\n            }\n        }\n\n        int age;\n        while (true)\n        {   \/\/\u5e74\u9f84\u7684\u533a\u95f4\u662f\u5426\u6b63\u786e\n            cout &lt;&lt; \"\u8bf7\u8f93\u5165\u5e74\u9f84\uff1a\" &lt;&lt; endl;\n            cin >> age;\n            if (age >= 1 &amp;&amp; age &lt;=100)\n            {\n                abs->personArray&#91;abs->m_Size].m_Age = age;\n                break;\n            }\n        }\n\n        string Phone ;\n        while (true)\n        {   \/\/\u624b\u673a\u53f7\u7801\u7684\u957f\u5ea6\u662f\u5426\u6b63\u786e\n            cout &lt;&lt; \"\u8bf7\u8f93\u5165\u7535\u8bdd\uff1a\" &lt;&lt; endl;\n            cin >> Phone;\n            if (Phone.length() == 11)\n            {\n                abs->personArray&#91;abs->m_Size].m_Phone = Phone;\n                break;\n            }\n        }\n\n        cout &lt;&lt; \"\u8bf7\u8f93\u5165\u4f4f\u5740\uff1a\" &lt;&lt; endl;\n        cin >> abs->personArray&#91;abs->m_Size].m_Address;\n    }\n    \/\/\u66f4\u65b0\u901a\u8baf\u5f55\u4eba\u6570\n    abs->m_Size++;\n\n    cout &lt;&lt; \"\u8054\u7cfb\u4eba\u4fe1\u606f\u6dfb\u52a0\u5b8c\u6210\" &lt;&lt; endl;\n}\n\n\/\/\u663e\u793a\u8054\u7cfb\u4eba\nvoid showPerson(Addressbooks* abs)\n{\n    \/\/\u5224\u65ad\u901a\u8baf\u5f55\u4e2d\u4eba\u6570\u662f\u5426\u4e3a0\uff0c\u5982\u679c\u4e3a0\u63d0\u793a\u4e3a\u7a7a\n    if (abs->m_Size == 0)\n    {\n        cout &lt;&lt; \"\u5f53\u524d\u8bb0\u5f55\u4e3a\u7a7a\" &lt;&lt; endl;\n    }\n    else \n    {\n        \/\/\u5faa\u73af\u8f93\u51fa\u901a\u8baf\u5f55\u7684\u6240\u6709\u4fe1\u606f\n        for (int i = 0; i &lt; abs->m_Size; i++)\n        {\n            cout &lt;&lt; \"\u7f16\u53f7\uff1a\" &lt;&lt; i\n                &lt;&lt; \"\\t\u59d3\u540d\uff1a\" &lt;&lt; abs->personArray&#91;i].m_Name\n                &lt;&lt; \"\\t\u6027\u522b\uff1a\" &lt;&lt; (abs->personArray&#91;i].m_Sex == 1 ? \"\u7537\" : \"\u5973\")\n                &lt;&lt; \"\\t\u5e74\u9f84\uff1a\" &lt;&lt; abs->personArray&#91;i].m_Age\n                &lt;&lt; \"\\t\u624b\u673a\u53f7\u7801\uff1a\" &lt;&lt; abs->personArray&#91;i].m_Phone\n                &lt;&lt; \"\\t\u4f4f\u5740\uff1a\" &lt;&lt; abs->personArray&#91;i].m_Address &lt;&lt; endl;\n        }\n    }\n    \n}\n\n\/\/\u68c0\u6d4b\u8054\u7cfb\u4eba\u662f\u5426\u5b58\u5728\uff0c\u5b58\u5728\u8fd4\u56de\u8054\u7cfb\u4eba\u6570\u7ec4\u4e0b\u6807\uff0c\u4e0d\u5b58\u5728\u8fd4\u56de-1\nint isExist(Addressbooks* abs, string name)\n{\n    for (int i = 0; i &lt; abs->m_Size; i++)\n    {\n        if (abs->personArray&#91;i].m_Name == name)\n        {\n            return i;\/\/\u5b58\u5728\u8fd4\u56de\u8054\u7cfb\u4eba\u6570\u7ec4\u4e0b\u6807\n        }\n    }\n    return -1;\/\/\u5982\u679c\u904d\u5386\u5b8c\u6210\u627e\u4e0d\u5230\u5bf9\u5e94\u6210\u5458\uff0c\u8fd4\u56de-1\n}\n\n\/\/\u5220\u9664\u8054\u7cfb\u4eba\nvoid deletePerson(Addressbooks* abs)\n{\n    string name;\n    cout &lt;&lt; \"\u8bf7\u8f93\u5165\u4f60\u8981\u5220\u9664\u7684\u59d3\u540d\" &lt;&lt; endl;\n    cin >> name;\n\n    int ret = isExist(abs, name);\n    if (ret == -1)\n    {\n        cout &lt;&lt; \"\u5f53\u524d\u8054\u7cfb\u4eba\u4e0d\u5b58\u5728\" &lt;&lt; endl;\n    }\n    else\n    {\n        for (int i = ret; i &lt; abs->m_Size; i++)\n        {\n            abs->personArray&#91;i] = abs->personArray&#91;i + 1];\n        }\n        abs->m_Size--;\/\/\u66f4\u65b0\u901a\u8baf\u5f55\u4e2d\u7684\u4eba\u5458\u6570\n        cout &lt;&lt; \"\u5f53\u524d\u8054\u7cfb\u4eba\u5df2\u5220\u9664\" &lt;&lt; endl;\n    }\n}\n\n\/\/\u67e5\u627e\u6307\u5b9a\u8054\u7cfb\u4eba\u4fe1\u606f\nvoid findPerson(Addressbooks* abs)\n{\n    cout &lt;&lt; \"\u8bf7\u8f93\u5165\u4f60\u8981\u67e5\u627e\u7684\u8054\u7cfb\u4eba\" &lt;&lt; endl;\n    string name;\n    cin >> name;\n\n    \/\/\u5224\u65ad\u6307\u5b9a\u8054\u7cfb\u4eba\u662f\u5426\u5b58\u5728\n    int ret = isExist(abs, name);\n    if (ret != -1)\n    {\n        cout &lt;&lt; \"\u7f16\u53f7\uff1a\" &lt;&lt; ret\n            &lt;&lt; \"\u59d3\u540d\uff1a\" &lt;&lt; abs->personArray&#91;ret].m_Name\n            &lt;&lt; \"\\t\u6027\u522b\uff1a\" &lt;&lt; (abs->personArray&#91;ret].m_Sex == 1 ? \"\u7537\" : \"\u5973\")\n            &lt;&lt; \"\\t\u5e74\u9f84\uff1a\" &lt;&lt; abs->personArray&#91;ret].m_Age\n            &lt;&lt; \"\\t\u624b\u673a\u53f7\u7801\uff1a\" &lt;&lt; abs->personArray&#91;ret].m_Phone\n            &lt;&lt; \"\\t\u4f4f\u5740\uff1a\" &lt;&lt; abs->personArray&#91;ret].m_Address &lt;&lt; endl;\n    }\n    else\n    {\n        cout &lt;&lt; \"\u67e5\u627e\u4e0d\u5230\u5f53\u524d\u8054\u7cfb\u4eba\" &lt;&lt; endl;\n    }\n}\n\n\/\/\u4fee\u6539\u8054\u7cfb\u4eba\nvoid amendPerson (Addressbooks* abs)\n{\n    cout &lt;&lt; \"\u8bf7\u8f93\u5165\u4f60\u8981\u4fee\u6539\u7684\u8054\u7cfb\u4eba\" &lt;&lt; endl;\n    string name;\n    cin >> name;\n\n    \/\/\u5224\u65ad\u6307\u5b9a\u8054\u7cfb\u4eba\u662f\u5426\u5b58\u5728\n    int ret = isExist(abs, name);\n    if (ret != -1)\n    {\n        \/\/\u6dfb\u52a0\u5177\u4f53\u8054\u7cfb\u4eba\n        cout &lt;&lt; \"\u8bf7\u8f93\u5165\u59d3\u540d\uff1a\" &lt;&lt; endl;\n        cin >> abs->personArray&#91;ret].m_Name;\n\n        int sex = 0;\n        while (true)\n        {   \/\/\u5982\u679c\u8f93\u5165\u7684\u6570\u5b57\u4e0d\u662f1\/2\uff0c\u7ee7\u7eed\u8f93\u5165\n            cout &lt;&lt; \"\u8bf7\u8f93\u5165\u6027\u522b(1\u75372\u5973)\uff1a\" &lt;&lt; endl;\n            cin >> sex;\n            if (sex == 1 || sex == 2)\n            {\n                abs->personArray&#91;ret].m_Sex = sex;\n                break;\n            }\n        }\n\n        int age;\n        while (true)\n        {   \/\/\u5e74\u9f84\u7684\u533a\u95f4\u662f\u5426\u6b63\u786e\n            cout &lt;&lt; \"\u8bf7\u8f93\u5165\u5e74\u9f84\uff1a\" &lt;&lt; endl;\n            cin >> age;\n            if (age >= 1 &amp;&amp; age &lt;= 100)\n            {\n                abs->personArray&#91;ret].m_Age = age;\n                break;\n            }\n        }\n\n        string Phone;\n        while (true)\n        {   \/\/\u624b\u673a\u53f7\u7801\u7684\u957f\u5ea6\u662f\u5426\u6b63\u786e\n            cout &lt;&lt; \"\u8bf7\u8f93\u5165\u7535\u8bdd\uff1a\" &lt;&lt; endl;\n            cin >> Phone;\n            if (Phone.length() == 11)\n            {\n                abs->personArray&#91;ret].m_Phone = Phone;\n                break;\n            }\n        }\n        cout &lt;&lt; \"\u8bf7\u8f93\u5165\u4f4f\u5740\uff1a\" &lt;&lt; endl;\n        cin >> abs->personArray&#91;ret].m_Address;\n    }\n    else\n    {\n        cout &lt;&lt; \"\u67e5\u627e\u4e0d\u5230\u5f53\u524d\u8054\u7cfb\u4eba\" &lt;&lt; endl;\n    }\n}\n\n\/\/\u6e05\u7a7a\u901a\u8baf\u5f55\nvoid clearPerson(Addressbooks* abs)\n{\n    cout &lt;&lt; \"\u5f53\u524d\u64cd\u4f5c\u4e0d\u80fd\u9006\u8f6c\\n\u8f93\u51651\u786e\u8ba4\u6e05\u7a7a\uff0c\u522b\u7684\u53d6\u6d88\" &lt;&lt; endl;\n    int temp;\n    cin >> temp;\n    if (temp == 1)\n    {\n        \/\/\u53ea\u662f\u903b\u8f91\u6e05\u7a7a\uff0c\u5982\u679c\u8981\u8fdb\u884c\u6570\u636e\u62b9\u9664\uff0c\u9700\u8981for\u8fdb\u884c\u64cd\u4f5c\n        abs->m_Size = 0;\n    }\n}\n\nint main()\n{\n    \/\/\u521b\u5efa\u901a\u8baf\u5f55\u53d8\u91cf\n    struct Addressbooks abs;\n\n    \/\/\u521d\u59cb\u5316\n    abs.m_Size = 0;\n\n    while (true)\n    {\n        \/\/\u8f93\u51fa\u83dc\u5355\u529f\u80fd\n        showMenu();\n\n        int a = 0;\n        cin >> a;\n        \n        switch (a)\n        {\n        case 1:\/\/\u6dfb\u52a0\u4fe1\u606f\n            addPerson(&amp;abs);\/\/\u5229\u7528\u5730\u5740\u4f20\u9012\uff0c\u53ef\u4ee5\u4fee\u9970\u5b9e\u53c2\n            break;\/\/\u9000\u51fa\u5f53\u524d\u5206\u652f\n        case 2:\/\/\u663e\u793a\u4fe1\u606f\n            showPerson(&amp;abs);\n            break;\n        case 3:\/\/\u5220\u9664\u4fe1\u606f\n            deletePerson(&amp;abs);\n            break;\n        case 4:\/\/\u67e5\u627e\u4fe1\u606f\n            findPerson(&amp;abs);\n            break;\n        case 5:\/\/\u4fee\u6539\u4fe1\u606f\n            amendPerson(&amp;abs);\n            break;\n        case 6:\/\/\u6e05\u7a7a\u4fe1\u606f\n            clearPerson(&amp;abs);\n            break;\n        case 0:\/\/\u9000\u51fa\u7cfb\u7edf\n            cout &lt;&lt; \"\u6b22\u8fce\u4e0b\u6b21\u4f7f\u7528\" &lt;&lt; endl;\n            system(\"pause\");\/\/\u6682\u505c\uff0c\u7b49\u5f85\u8f93\u5165\u4efb\u610f\u952e\n            return 0;\n            break;\n            \/\/default:\/\/\u4e0a\u9762\u7684\u5206\u652f\u90fd\u4e0d\u6ee1\u8db3\u7684\u60c5\u51b5\u4e0b\u6267\u884c\u4ee5\u4e0b\u4ee3\u7801\n            \/\/    break;\n        }\n        system(\"pause\");\/\/\u6682\u505c\uff0c\u7b49\u5f85\u8f93\u5165\u4efb\u610f\u952e\n        \/\/return 0;\/\/ \u7ed3\u675f\u8fd4\u56de\u503c\uff1a0\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"_links":{"self":[{"href":"http:\/\/9iwd.top\/index.php?rest_route=\/wp\/v2\/posts\/376"}],"collection":[{"href":"http:\/\/9iwd.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/9iwd.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/9iwd.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/9iwd.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=376"}],"version-history":[{"count":0,"href":"http:\/\/9iwd.top\/index.php?rest_route=\/wp\/v2\/posts\/376\/revisions"}],"wp:attachment":[{"href":"http:\/\/9iwd.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/9iwd.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=376"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/9iwd.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}