如何将两个完整的代码的功能合并在一起


#include <iostream>  
#include <fstream>
#include <string>  
#include <algorithm>
#include <vector>
  
using namespace std;  

//学生模块 
class PartyMember {
private:
    std::string name;
    int count;

public:
    PartyMember(const std::string& name) : name(name), count(0) {
        std::cout << "*****团员 " << name << " 加入党组织*****" << std::endl;
    }



    void applyForTraining() {
        std::cout << "*****团员 " << name << " 提交入党申请*****" << std::endl;
        count++;
    }

    void attendTraining() {
        if (count < 1) {
            std::cout << "*****团员 " << name << " 还未提交申请,请提交申请后再进行培训*****" << std::endl;
        } else {
            std::cout << "*****团员 " << name << " 进行培训*****" << std::endl;
            count++;
        }
        
    }

    void applyForConfirmation() {
        if (count < 4) {
            std::cout << "*****团员 " << name << " 培训次数未达到3次,无法申请转正*****" << std::endl;
        } else {
            std::cout << "*****团员 " << name << " 提交转正申请*****" << std::endl;
        }
    }

    const std::string& getName() const {
        return name;
    }

    int getCount() const {
        return count;
    }
};

//学生模块 


//团支书模块 
struct Member3 {
    std::string name;
    int score;
};

bool compareByScore(const Member3& a, const Member3& b) {
    return a.score > b.score;
}



void tuiyou()
{
   std::vector<Member3> members3;
    // 输入团员信息
    int numMembers;
    std::cout << "请输入团员人数:";
    std::cin >> numMembers;

    for (int i = 0; i < numMembers; i++) {
        Member3 member3;
        std::cout << "请输入团员姓名:";
        std::cin >> member3.name;
        std::cout << "请输入团员分数:";
        std::cin >> member3.score;
        members3.push_back(member3);
    }

    // 根据分数排序
    std::sort(members3.begin(), members3.end(), compareByScore);

    // 输出推优结果
    std::cout << "推优结果:" << std::endl;
    for (const auto& member3 : members3) {
        std::cout << "姓名:" << member3.name << ",分数:" << member3.score;
        if (member3.score > 80) {
            std::cout << "(推优成功)";
        }
        std::cout << std::endl;
    }
}






// 查看团员荣誉函数


struct Award {
    std::string name;
    std::string description;
};

void displayAwards(const std::vector<Award>& awards) {
    std::cout << "奖项列表:" << std::endl;
    for (const auto& award : awards) {
        std::cout << "奖项名称:" << award.name << std::endl;
        std::cout << "奖项描述:" << award.description << std::endl;
        std::cout << "-------------------" << std::endl;
    }
}

void addAward(std::vector<Award>& awards) {
    Award newAward;
    std::cout << "请输入奖项名称:";
    getline(std::cin, newAward.name);
    std::cout << "请输入奖项描述:";
    getline(std::cin, newAward.description);
    awards.push_back(newAward);
    std::cout << "奖项添加成功!" << std::endl;
}

void deleteAward(std::vector<Award>& awards) {
    std::string nameToDelete;
    std::cout << "请输入要删除的奖项名称:";
    getline(std::cin, nameToDelete);
    for (auto it = awards.begin(); it != awards.end(); ++it) {
        if (it->name == nameToDelete) {
            awards.erase(it);
            std::cout << "奖项删除成功!" << std::endl;
            return;
        }
    }
    std::cout << "未找到该奖项!" << std::endl;
}

void saveToFile(const std::vector<Award>& awards, const std::string& filename) {
    std::ofstream file(filename);
    if (file.is_open()) {
        for (const auto& award : awards) {
            file << award.name << std::endl;
            file << award.description << std::endl;
        }
        std::cout << "奖项信息已保存到文件!" << std::endl;
    } else {
        std::cout << "无法打开文件!" << std::endl;
    }
    file.close();
}


void Honor() {
std::vector<Award> awards;
    std::string filename = "awards.txt";
    std::ifstream file(filename);
    if (file.is_open()) {
        std::string line;
        while (getline(file, line)) {
            Award award;
            award.name = line;
            getline(file, line);
            award.description = line;
            awards.push_back(award);
        }
        file.close();
        std::cout << "奖项信息已从文件加载!" << std::endl;
    } else {
        std::cout << "无法打开文件,将创建新的奖项列表!" << std::endl;
    }

    while (true) {
        std::cout << "请选择操作:" << std::endl;
        std::cout << "1. 查看奖项" << std::endl;
        std::cout << "2. 添加奖项" << std::endl;
        std::cout << "3. 删除奖项" << std::endl;
        std::cout << "4. 保存奖项信息到文件" << std::endl;
        std::cout << "5. 退出程序" << std::endl;
        int choice;
        std::cin >> choice;
        std::cin.ignore();  // 忽略输入缓冲区中的换行符

        switch (choice) {
            case 1:
                displayAwards(awards);
                break;
            case 2:
                addAward(awards);
                break;
            case 3:
                deleteAward(awards);
                break;
            case 4:
                saveToFile(awards, filename);
                break;
            case 5:
                break; 
            default:
                std::cout << "无效的选择!" << std::endl;
                break;
        }
    }
}

// 记录团员个人资料和推优记录函数
struct Member2 {
    std::string name;
    int age;
    std::string position;
};

void saveMemberInfo(const Member2& member3) {
    std::ofstream outputFile("members3.txt", std::ios::app);
    if (outputFile.is_open()) {
        outputFile << member3.name << " " << member3.age << " " << member3.position << std::endl;
        outputFile.close();
        std::cout << "团员信息已保存!" << std::endl;
    } else {
        std::cout << "无法打开文件!" << std::endl;
    }
}

void readMemberInfo() {
    std::ifstream inputFile("members3.txt");
    if (inputFile.is_open()) {
        std::string line;
        while (getline(inputFile, line)) {
            std::cout << line << std::endl;
        }
        inputFile.close();
    } else {
        std::cout << "无法打开文件!" << std::endl;
    }
}

void Record(){
    int choice;
    Member2 member3;

    do {
        std::cout << "1. 保存团员信息" << std::endl;
        std::cout << "2. 读取团员信息" << std::endl;
        std::cout << "3. 退出" << std::endl;
        std::cout << "请选择操作:";
        std::cin >> choice;

        switch (choice) {
            case 1:
                std::cout << "请输入团员姓名:";
                std::cin >> member3.name;
                std::cout << "请输入团员年龄:";
                std::cin >> member3.age;
                std::cout << "请输入团员职位:";
                std::cin >> member3.position;
                saveMemberInfo(member3);
                break;
            case 2:
                readMemberInfo();
                break;
            case 3:
                std::cout << "程序已退出。" << std::endl;
                break;
            default:
                std::cout << "无效的选择,请重新输入。" << std::endl;
                break;
        }
    } while (choice != 3);
}
//团支书模块 


//外部函数加这里 



int main()  
{  
    string username, password;  
  
    do {  
        cout << endl;  
        cout << "*********************************************" << endl;  
        cout << "**            *党员发展管理系统*           **" << endl;  
        cout << "**             1、    学    生             **" << endl;  
        cout << "**             2、 团   支   部            **" << endl;  
        cout << "**             3、 党   支   部            **" << endl;  
        cout << "*********************************************" << endl;  
        cout << endl;  
  
        cout << "请选择要登陆的用户(选择数字1,2,3):";  
        cin >> username;  
  
        // 进行登录验证  
        if (username == "1") {  
            cout << "登录成功,欢迎学生用户!" << endl;
PartyMember member1("张三");

    while (true) {
        std::cout << "请选择功能:\n";
        std::cout << "1入党申请\n";
        std::cout << "2进行培训\n";
        std::cout << "3转正申请\n";
        std::cout << "4申请转接关系\n";

        int choice1;
        std::cin >> choice1;

        switch (choice1) {
            case 1:
                member1.applyForTraining();
                break;
            case 2:
               member1.attendTraining();
                break;
            case 3:
                member1.applyForConfirmation();
                break;
            case 4:
                std::cout << "申请提交成功,耐心等待相关人员进行转接手续";
                break;
            default:
                std::cout << "输入错误,请重新选择\n";
                break;
        }
    }

   
        } else if (username == "2") {  
            cout << "登录成功,欢迎团支部用户!" << endl; 
            
         while (true) {
        std::cout << "请选择功能:\n";
        std::cout << "1 进行团员推优\n";
        std::cout << "2 团员荣誉\n";
        std::cout << "3 团员记录\n";

        int choice2;
        std::cin >> choice2;

        switch (choice2) {
            case 1:
               tuiyou(); 
                break;
            case 2:
                Honor(); 
                break;
            case 3:    
                Record();
                break;
            default:
                std::cout << "*************输入错误,请重新选择*************\n";
                break;
        }
    }    
                                             
        } else if (username == "3") {  
            cout << "登录成功,欢迎党支部用户!" << endl;
            
            //主函数加这里 
            
              
        } else {  
            cout << "登录失败,请检查用户名是否正确。" << endl;  
        }  
  
        // 退出循环的条件是用户输入错误的用户名和密码  
    } while (username != "学生" && username != "团支部" && username != "党支部");  
  

 

  
    return 0;  
}











```c++

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;

struct Member4 {
    std::string name;
    double score2;
};

struct Member5 {
    string name;
    string id;
    string date;
};

bool compareByScore(const Member4& A, const Member4& B) {
    return A.score2 > B.score2;
}

//functiong4的函数 
void addMember(vector<Member5>& members5) {
    Member5 newMember;
    cout << "请输入入党成员的姓名:";
    cin >> newMember.name;
    cout << "请输入入党成员的身份证号码:";
    cin >> newMember.id;
    cout << "请输入入党成员的入党日期:";
    cin >> newMember.date;
    members5.push_back(newMember);
}

void saveMembers(const vector<Member5>& members5, const string& filename) {
    ofstream file(filename);
    if (file.is_open()) {
        for (const Member5& member5 : members5) {
            file << member5.name << " " << member5.id << " " << member5.date << endl;
        }
        file.close();
        cout << "成功保存入党成员信息!" << endl;
    } else {
        cout << "无法打开文件进行保存!" << endl;
    }
}

void loadMembers(vector<Member5>& members5, const string& filename) {
    ifstream file(filename);
    if (file.is_open()) {
        members5.clear();
        string line;
             
            
       
        file.close();
        cout << "成功加载入党成员信息!" << endl;
    } else {
        cout << "无法打开文件进行加载!" << endl;
    }
}

void printMembers(const vector<Member5>& members5) {
    for (const Member5& member5 : members5) {
        cout << "姓名:" << member5.name << endl;
        cout << "身份证号码:" << member5.id << endl;
        cout << "入党日期:" << member5.date << endl;
        cout << "------------------------" << endl;
    }
}
//functiong4的函数 






void function1() {
    
    int score3; 
    
    std::vector<Member4> members4;

    // 输入审核人信息
    int numMembers4;
    std::cout << "请输入需要审核的人数:";
    std::cin >> numMembers4;

    for (int i = 0; i < numMembers4; i++) {
        Member4 member4;
        std::cout << "请输入审核推优团员的姓名:";
        std::cin >> member4.name;
        std::cout << "请输入审核推优团员的培训时间(以年为单位):";
        std::cin >> member4.score2;
        members4.push_back(member4);
    }

 std::sort(members4.begin(), members4.end(), compareByScore);

    
// 输出审核结果
std::cout << "审核结果:" << std::endl;
for (const auto& member4 : members4) {
    std::cout << "姓名:" << member4.name << ",分数:" << member4.score2;
    if (member4.score2 >=1) {
        std::cout << "(审核通过,确认该推优成员资格有效)";
    }else {
    std::cout << "(该成员的培训时间不足一年,审核不成功)";} 
    std::cout << std::endl;
  }    

}

void function2() {
        std::vector<Member4> members4;

    // 输入成功审核了的人的信息
    int numMembers4;
    std::cout << "请输入需要确定入党积极分子的人数:";
    std::cin >> numMembers4;

    for (int i = 0; i < numMembers4; i++) {
        Member4 member4;
        std::cout << "请输入成员的姓名:";
        std::cin >> member4.name;
        std::cout << "请输入该成员的得票分数(100分为满分):";
        std::cin >> member4.score2;
        members4.push_back(member4);
    }
    
    std::sort(members4.begin(), members4.end(), compareByScore);

    
// 输出投票结果
std::cout << "投票结果:" << std::endl;
for (const auto& member4 : members4) {
    std::cout << "姓名:" << member4.name << ",分数:" << member4.score2;
    if (member4.score2 >= 50) {
        std::cout << "(投票成功,该成员确定为入党积极分子)";
    }else {
    std::cout << "(得票未达半数,不能确定其成为入党积极分子)";} 
    std::cout << std::endl;
   }    

}




void function3(){
   string answer; 
   std::vector<Member4> members4;

    // 执行入党审核 
    int numMembers4;
    std::cout << "请输入需要确定入党的人数:";
    std::cin >> numMembers4;

    for (int i = 0; i < numMembers4; i++) {
        Member4 member4;
        std::cout << "请输需审核批准成员的姓名:";
        std::cin >> member4.name;
        std::cout << "请输入该成员的信息:";
        std::cout << "成为入党积极分子后是否经过一年以上的培养考察,并且成为了预备党员(yes/no):";
        cin >> answer; 
        if(answer=="yes"){
            std::cout << "该成员成为预备党员后是否间隔了一年并提出的转正申请(yes/no):";
            cin >> answer;
            if(answer=="yes"){
                std::cout << "请输入该成员的得票分数(100分为满分):";
                std::cin >> member4.score2;
               
}else{cout << "审核不通过\n"<<std::endl;}
            }else{cout <<"审核不通过\n"<< std::endl;} 
            members4.push_back(member4);
}
         
               std::sort(members4.begin(), members4.end(), compareByScore);
   
// 输出投票结果
                std::cout << "投票结果:" << std::endl;
           for (const auto& member4 : members4) {
               std::cout << "姓名:" << member4.name << ",分数:" << member4.score2;
                   if (member4.score2 >= 50) {
                   std::cout << "(投票成功,该成员确定为党员)";
                   }else {
                    std::cout << "(得票未达半数或者审核未通过)";} 
                    std::cout << std::endl;
  }   
   
       
}
    
    

void function4() {
    
     vector<Member5> members5;
    string filename = "members.txt";

    loadMembers(members5, filename);

    while (true) {
        cout << "请选择操作:\n1. 添加入党成员\n2. 查看入党成员\n"<< endl;
        int choice5;
        cin >> choice5;
        switch (choice5) {
            case 1:
                addMember(members5);
                saveMembers(members5, filename);
                break;
            case 2:
                printMembers(members5);
                break;
            default:
                cout << "无效的选择!" << endl;
                break;
        }
    }
    
}

int main() {
    while (true) {
        cout << "***************欢迎来到党支部界面***************" << endl << endl;
        cout << "---------------请输入您的选择---------------" << endl;
        cout << "|                                            |" << endl;
        cout << "|              1. 审核推优人员               |" << endl;
        cout << "|                                            |" << endl;
        cout << "|              2. 召开会议确定入党积极分子   |" << endl;
        cout << "|                                            |" << endl;
        cout << "|              3. 入党批准                   |" << endl;
        cout << "|                                            |" << endl;
        cout << "|              4. 记录成功入党成员           |" << endl;
        cout << "|                                            |" << endl;
        cout << "----------------------------------------------" << endl;

        int choice;
        cin >> choice;

        switch (choice) {
            case 1:
                function1();
                break;
            case 2:
                function2();
                break;
            case 3:
                function3();
                break;
            case 4:
                function4();
                break;
            default:
                cout << "您输入的选择有误,请重新输入。" << endl;
                // 执行重新输入的代码逻辑
                break;
        }
    }
    return 0;
}

如何将上面两个代码合并在一起,我想实现一个简单的党员发展管理程序,另外两个模块已经合并在一起了,该如何把最后一个党支部的代码合并在一块呢,下面的代码是党支部的代码,如何将下面的代码合并到上面的代码中去,实现功能合并?

img



#include <iostream>  
#include <fstream>
#include <string>  
#include <algorithm>
#include <vector>
using namespace std;

//学生模块 
class PartyMember {
private:
    std::string name;
    int count;

public:
    PartyMember(const std::string& name) : name(name), count(0) {
        std::cout << "*****团员 " << name << " 加入党组织*****" << std::endl;
    }



    void applyForTraining() {
        std::cout << "*****团员 " << name << " 提交入党申请*****" << std::endl;
        count++;
    }

    void attendTraining() {
        if (count < 1) {
            std::cout << "*****团员 " << name << " 还未提交申请,请提交申请后再进行培训*****" << std::endl;
        }
        else {
            std::cout << "*****团员 " << name << " 进行培训*****" << std::endl;
            count++;
        }

    }

    void applyForConfirmation() {
        if (count < 4) {
            std::cout << "*****团员 " << name << " 培训次数未达到3次,无法申请转正*****" << std::endl;
        }
        else {
            std::cout << "*****团员 " << name << " 提交转正申请*****" << std::endl;
        }
    }

    const std::string& getName() const {
        return name;
    }

    int getCount() const {
        return count;
    }
};

//学生模块 


//团支书模块 
struct Member3 {
    std::string name;
    int score;
};

bool compareByScore(const Member3& a, const Member3& b) {
    return a.score > b.score;
}



void tuiyou()
{
    std::vector<Member3> members3;
    // 输入团员信息
    int numMembers;
    std::cout << "请输入团员人数:";
    std::cin >> numMembers;

    for (int i = 0; i < numMembers; i++) {
        Member3 member3;
        std::cout << "请输入团员姓名:";
        std::cin >> member3.name;
        std::cout << "请输入团员分数:";
        std::cin >> member3.score;
        members3.push_back(member3);
    }

    // 根据分数排序
    std::sort(members3.begin(), members3.end(), compareByScore);

    // 输出推优结果
    std::cout << "推优结果:" << std::endl;
    for (const auto& member3 : members3) {
        std::cout << "姓名:" << member3.name << ",分数:" << member3.score;
        if (member3.score > 80) {
            std::cout << "(推优成功)";
        }
        std::cout << std::endl;
    }
}


// 查看团员荣誉函数

struct Award {
    std::string name;
    std::string description;
};

void displayAwards(const std::vector<Award>& awards) {
    std::cout << "奖项列表:" << std::endl;
    for (const auto& award : awards) {
        std::cout << "奖项名称:" << award.name << std::endl;
        std::cout << "奖项描述:" << award.description << std::endl;
        std::cout << "-------------------" << std::endl;
    }
}

void addAward(std::vector<Award>& awards) {
    Award newAward;
    std::cout << "请输入奖项名称:";
    getline(std::cin, newAward.name);
    std::cout << "请输入奖项描述:";
    getline(std::cin, newAward.description);
    awards.push_back(newAward);
    std::cout << "奖项添加成功!" << std::endl;
}

void deleteAward(std::vector<Award>& awards) {
    std::string nameToDelete;
    std::cout << "请输入要删除的奖项名称:";
    getline(std::cin, nameToDelete);
    for (auto it = awards.begin(); it != awards.end(); ++it) {
        if (it->name == nameToDelete) {
            awards.erase(it);
            std::cout << "奖项删除成功!" << std::endl;
            return;
        }
    }
    std::cout << "未找到该奖项!" << std::endl;
}

void saveToFile(const std::vector<Award>& awards, const std::string& filename) {
    std::ofstream file(filename);
    if (file.is_open()) {
        for (const auto& award : awards) {
            file << award.name << std::endl;
            file << award.description << std::endl;
        }
        std::cout << "奖项信息已保存到文件!" << std::endl;
    }
    else {
        std::cout << "无法打开文件!" << std::endl;
    }
    file.close();
}


void Honor() {
    std::vector<Award> awards;
    std::string filename = "awards.txt";
    std::ifstream file(filename);
    if (file.is_open()) {
        std::string line;
        while (getline(file, line)) {
            Award award;
            award.name = line;
            getline(file, line);
            award.description = line;
            awards.push_back(award);
        }
        file.close();
        std::cout << "奖项信息已从文件加载!" << std::endl;
    }
    else {
        std::cout << "无法打开文件,将创建新的奖项列表!" << std::endl;
    }

    while (true) {
        std::cout << "请选择操作:" << std::endl;
        std::cout << "1. 查看奖项" << std::endl;
        std::cout << "2. 添加奖项" << std::endl;
        std::cout << "3. 删除奖项" << std::endl;
        std::cout << "4. 保存奖项信息到文件" << std::endl;
        std::cout << "5. 退出程序" << std::endl;
        int choice;
        std::cin >> choice;
        std::cin.ignore();  // 忽略输入缓冲区中的换行符

        switch (choice) {
        case 1:
            displayAwards(awards);
            break;
        case 2:
            addAward(awards);
            break;
        case 3:
            deleteAward(awards);
            break;
        case 4:
            saveToFile(awards, filename);
            break;
        case 5:
            break;
        default:
            std::cout << "无效的选择!" << std::endl;
            break;
        }
    }
}

// 记录团员个人资料和推优记录函数
struct Member2 {
    std::string name;
    int age;
    std::string position;
};

void saveMemberInfo(const Member2& member3) {
    std::ofstream outputFile("members3.txt", std::ios::app);
    if (outputFile.is_open()) {
        outputFile << member3.name << " " << member3.age << " " << member3.position << std::endl;
        outputFile.close();
        std::cout << "团员信息已保存!" << std::endl;
    }
    else {
        std::cout << "无法打开文件!" << std::endl;
    }
}

void readMemberInfo() {
    std::ifstream inputFile("members3.txt");
    if (inputFile.is_open()) {
        std::string line;
        while (getline(inputFile, line)) {
            std::cout << line << std::endl;
        }
        inputFile.close();
    }
    else {
        std::cout << "无法打开文件!" << std::endl;
    }
}

void Record() {
    int choice;
    Member2 member3;

    do {
        std::cout << "1. 保存团员信息" << std::endl;
        std::cout << "2. 读取团员信息" << std::endl;
        std::cout << "3. 退出" << std::endl;
        std::cout << "请选择操作:";
        std::cin >> choice;

        switch (choice) {
        case 1:
            std::cout << "请输入团员姓名:";
            std::cin >> member3.name;
            std::cout << "请输入团员年龄:";
            std::cin >> member3.age;
            std::cout << "请输入团员职位:";
            std::cin >> member3.position;
            saveMemberInfo(member3);
            break;
        case 2:
            readMemberInfo();
            break;
        case 3:
            std::cout << "程序已退出。" << std::endl;
            break;
        default:
            std::cout << "无效的选择,请重新输入。" << std::endl;
            break;
        }
    } while (choice != 3);
}
//团支书模块 


//外部函数加这里 


struct Member4 {
    std::string name;
    double score2;
};

struct Member5 {
    string name;
    string id;
    string date;
};

bool compareByScore1(const Member4& A, const Member4& B) {
    return A.score2 > B.score2;
}

//functiong4的函数 
void addMember(vector<Member5>& members5) {
    Member5 newMember;
    cout << "请输入入党成员的姓名:";
    cin >> newMember.name;
    cout << "请输入入党成员的身份证号码:";
    cin >> newMember.id;
    cout << "请输入入党成员的入党日期:";
    cin >> newMember.date;
    members5.push_back(newMember);
}

void saveMembers(const vector<Member5>& members5, const string& filename) {
    ofstream file(filename);
    if (file.is_open()) {
        for (const Member5& member5 : members5) {
            file << member5.name << " " << member5.id << " " << member5.date << endl;
        }
        file.close();
        cout << "成功保存入党成员信息!" << endl;
    }
    else {
        cout << "无法打开文件进行保存!" << endl;
    }
}

void loadMembers(vector<Member5>& members5, const string& filename) {
    ifstream file(filename);
    if (file.is_open()) {
        members5.clear();
        string line;



        file.close();
        cout << "成功加载入党成员信息!" << endl;
    }
    else {
        cout << "无法打开文件进行加载!" << endl;
    }
}

void printMembers(const vector<Member5>& members5) {
    for (const Member5& member5 : members5) {
        cout << "姓名:" << member5.name << endl;
        cout << "身份证号码:" << member5.id << endl;
        cout << "入党日期:" << member5.date << endl;
        cout << "------------------------" << endl;
    }
}
//functiong4的函数 






void function1() {

    int score3;

    std::vector<Member4> members4;

    // 输入审核人信息
    int numMembers4;
    std::cout << "请输入需要审核的人数:";
    std::cin >> numMembers4;

    for (int i = 0; i < numMembers4; i++) {
        Member4 member4;
        std::cout << "请输入审核推优团员的姓名:";
        std::cin >> member4.name;
        std::cout << "请输入审核推优团员的培训时间(以年为单位):";
        std::cin >> member4.score2;
        members4.push_back(member4);
    }

    std::sort(members4.begin(), members4.end(), compareByScore1);


    // 输出审核结果
    std::cout << "审核结果:" << std::endl;
    for (const auto& member4 : members4) {
        std::cout << "姓名:" << member4.name << ",分数:" << member4.score2;
        if (member4.score2 >= 1) {
            std::cout << "(审核通过,确认该推优成员资格有效)";
        }
        else {
            std::cout << "(该成员的培训时间不足一年,审核不成功)";
        }
        std::cout << std::endl;
    }

}

void function2() {
    std::vector<Member4> members4;

    // 输入成功审核了的人的信息
    int numMembers4;
    std::cout << "请输入需要确定入党积极分子的人数:";
    std::cin >> numMembers4;

    for (int i = 0; i < numMembers4; i++) {
        Member4 member4;
        std::cout << "请输入成员的姓名:";
        std::cin >> member4.name;
        std::cout << "请输入该成员的得票分数(100分为满分):";
        std::cin >> member4.score2;
        members4.push_back(member4);
    }

    std::sort(members4.begin(), members4.end(), compareByScore1);


    // 输出投票结果
    std::cout << "投票结果:" << std::endl;
    for (const auto& member4 : members4) {
        std::cout << "姓名:" << member4.name << ",分数:" << member4.score2;
        if (member4.score2 >= 50) {
            std::cout << "(投票成功,该成员确定为入党积极分子)";
        }
        else {
            std::cout << "(得票未达半数,不能确定其成为入党积极分子)";
        }
        std::cout << std::endl;
    }

}




void function3() {
    string answer;
    std::vector<Member4> members4;

    // 执行入党审核 
    int numMembers4;
    std::cout << "请输入需要确定入党的人数:";
    std::cin >> numMembers4;

    for (int i = 0; i < numMembers4; i++) {
        Member4 member4;
        std::cout << "请输需审核批准成员的姓名:";
        std::cin >> member4.name;
        std::cout << "请输入该成员的信息:";
        std::cout << "成为入党积极分子后是否经过一年以上的培养考察,并且成为了预备党员(yes/no):";
        cin >> answer;
        if (answer == "yes") {
            std::cout << "该成员成为预备党员后是否间隔了一年并提出的转正申请(yes/no):";
            cin >> answer;
            if (answer == "yes") {
                std::cout << "请输入该成员的得票分数(100分为满分):";
                std::cin >> member4.score2;

            }
            else { cout << "审核不通过\n" << std::endl; }
        }
        else { cout << "审核不通过\n" << std::endl; }
        members4.push_back(member4);
    }

    std::sort(members4.begin(), members4.end(), compareByScore1);

    // 输出投票结果
    std::cout << "投票结果:" << std::endl;
    for (const auto& member4 : members4) {
        std::cout << "姓名:" << member4.name << ",分数:" << member4.score2;
        if (member4.score2 >= 50) {
            std::cout << "(投票成功,该成员确定为党员)";
        }
        else {
            std::cout << "(得票未达半数或者审核未通过)";
        }
        std::cout << std::endl;
    }


}



void function4() {

    vector<Member5> members5;
    string filename = "members.txt";

    loadMembers(members5, filename);

    while (true) {
        cout << "请选择操作:\n1. 添加入党成员\n2. 查看入党成员\n" << endl;
        int choice5;
        cin >> choice5;
        switch (choice5) {
        case 1:
            addMember(members5);
            saveMembers(members5, filename);
            break;
        case 2:
            printMembers(members5);
            break;
        default:
            cout << "无效的选择!" << endl;
            break;
        }
    }

}


void PartyBranch()
{
    while (true) {
        cout << "***************欢迎来到党支部界面***************" << endl << endl;
        cout << "---------------请输入您的选择---------------" << endl;
        cout << "|                                            |" << endl;
        cout << "|              1. 审核推优人员               |" << endl;
        cout << "|                                            |" << endl;
        cout << "|              2. 召开会议确定入党积极分子   |" << endl;
        cout << "|                                            |" << endl;
        cout << "|              3. 入党批准                   |" << endl;
        cout << "|                                            |" << endl;
        cout << "|              4. 记录成功入党成员           |" << endl;
        cout << "|                                            |" << endl;
        cout << "----------------------------------------------" << endl;

        int choice;
        cin >> choice;

        switch (choice) {
        case 1:
            function1();
            break;
        case 2:
            function2();
            break;
        case 3:
            function3();
            break;
        case 4:
            function4();
            break;
        default:
            cout << "您输入的选择有误,请重新输入。" << endl;
            // 执行重新输入的代码逻辑
            break;
        }
    }
}


int main()
{
    string username, password;

    do {
        cout << endl;
        cout << "*********************************************" << endl;
        cout << "**            *党员发展管理系统*           **" << endl;
        cout << "**             1、    学    生             **" << endl;
        cout << "**             2、 团   支   部            **" << endl;
        cout << "**             3、 党   支   部            **" << endl;
        cout << "*********************************************" << endl;
        cout << endl;

        cout << "请选择要登陆的用户(选择数字1,2,3):";
        cin >> username;

        // 进行登录验证  
        if (username == "1") {
            cout << "登录成功,欢迎学生用户!" << endl;
            PartyMember member1("张三");

            while (true) {
                std::cout << "请选择功能:\n";
                std::cout << "1入党申请\n";
                std::cout << "2进行培训\n";
                std::cout << "3转正申请\n";
                std::cout << "4申请转接关系\n";

                int choice1;
                std::cin >> choice1;

                switch (choice1) {
                case 1:
                    member1.applyForTraining();
                    break;
                case 2:
                    member1.attendTraining();
                    break;
                case 3:
                    member1.applyForConfirmation();
                    break;
                case 4:
                    std::cout << "申请提交成功,耐心等待相关人员进行转接手续";
                    break;
                default:
                    std::cout << "输入错误,请重新选择\n";
                    break;
                }
            }


        }
        else if (username == "2") {
            cout << "登录成功,欢迎团支部用户!" << endl;

            while (true) {
                std::cout << "请选择功能:\n";
                std::cout << "1 进行团员推优\n";
                std::cout << "2 团员荣誉\n";
                std::cout << "3 团员记录\n";

                int choice2;
                std::cin >> choice2;

                switch (choice2) {
                case 1:
                    tuiyou();
                    break;
                case 2:
                    Honor();
                    break;
                case 3:
                    Record();
                    break;
                default:
                    std::cout << "*************输入错误,请重新选择*************\n";
                    break;
                }
            }

        }
        else if (username == "3") {
            cout << "登录成功,欢迎党支部用户!" << endl;
            PartyBranch();
            //主函数加这里 
        }
        else {
            cout << "登录失败,请检查用户名是否正确。" << endl;
        }

        // 退出循环的条件是用户输入错误的用户名和密码  
    } while (username != "学生" && username != "团支部" && username != "党支部");

    return 0;
}


请注意,在下面代码中,我将两个模块的代码整合在一起,并进行了一些必要的修正和修改。


#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;

//学生模块
class PartyMember {
private:
    std::string name;
    int count;

public:
    PartyMember(const std::string& name) : name(name), count(0) {
        std::cout << "*****团员 " << name << " 加入党组织*****" << std::endl;
    }

    void applyForTraining() {
        std::cout << "*****团员 " << name << " 提交入党申请*****" << std::endl;
        count++;
    }

    void attendTraining() {
        if (count < 1) {
            std::cout << "*****团员 " << name << " 还未提交申请,请提交申请后再进行培训*****" << std::endl;
        } else {
            std::cout << "*****团员 " << name << " 进行培训*****" << std::endl;
            count++;
        }
    }

    void applyForConfirmation() {
        if (count < 4) {
            std::cout << "*****团员 " << name << " 培训次数未达到3次,无法申请转正*****" << std::endl;
        } else {
            std::cout << "*****团员 " << name << " 提交转正申请*****" << std::endl;
        }
    }

    const std::string& getName() const {
        return name;
    }

    int getCount() const {
        return count;
    }
};

//团支书模块
struct Member3 {
    std::string name;
    int score;
};

bool compareByScore(const Member3& a, const Member3& b) {
    return a.score > b.score;
}

void tuiyou() {
    std::vector<Member3> members3;
    // 输入团员信息
    int numMembers;
    std::cout << "请输入团员人数:";
    std::cin >> numMembers;

    for (int i = 0; i < numMembers; i++) {
        Member3 member3;
        std::cout << "请输入团员姓名:";
        std::cin >> member3.name;
        std::cout << "请输入团员分数:";
        std::cin >> member3.score;
        members3.push_back(member3);
    }

    // 根据分数排序
    std::sort(members3.begin(), members3.end(), compareByScore);

    // 输出推优结果
    std::cout << "推优结果:" << std::endl;
    for (const auto& member3 : members3) {
        std::cout << "姓名:" << member3.name << ",分数:" << member3.score;
        if (member3.score > 80) {
            std::cout << "(推优成功)";
        }
        std::cout << std::endl;
    }
}

//查看团员荣誉函数
struct Award {
    std::string name;
    std::string description;
};

void displayAwards(const std::vector<Award>& awards) {
    std::cout << "奖项列表:" << std::endl;
    for (const auto& award : awards) {
        std::cout << "奖项名称:" << award.name << std::endl;
        std::cout << "奖项描述:" << award.description << std::endl;
        std::cout << "------------------------" << std::endl;
    }
}

//保存奖项函数
void saveAwards(const std::vector<Award>& awards, const std::string& filename) {
    std::ofstream outputFile(filename);
    if (outputFile.is_open()) {
        for (const auto& award : awards) {
            outputFile << award.name << "," << award.description << std::endl;
        }
        std::cout << "奖项已成功保存到文件:" << filename << std::endl;
    } else {
        std::cout << "保存奖项失败,无法打开文件:" << filename << std::endl;
    }
    outputFile.close();
}

int main() {
    std::vector<PartyMember> partyMembers;
    std::vector<Award> awards;
    std::string filename = "awards.txt";

    // 团员模块
    PartyMember member1("张三");
    member1.applyForTraining();
    member1.attendTraining();
    member1.attendTraining();
    member1.attendTraining();
    member1.applyForConfirmation();
    partyMembers.push_back(member1);

    PartyMember member2("李四");
    member2.applyForTraining();
    member2.attendTraining();
    member2.attendTraining();
    member2.applyForConfirmation();
    partyMembers.push_back(member2);

    // 团支书模块
    tuiyou();

    // 查看团员荣誉
    displayAwards(awards);

    // 保存奖项
    saveAwards(awards, filename);

    return 0;
}

合并两段代码需要注意语法兼容性、标识符冲突以及代码正确性。通过仔细检查和测试,你应该能够成功将两段代码合并成一个功能完整的代码

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7749954
  • 这篇博客你也可以参考下:5分钟带你了解什么是顺序表,并用它写一个简单的增删查改(画图讲解,详细代码)
  • 除此之外, 这篇博客: 操作系统实验报告(五)磁盘管理实验中的 七、实验数据及源代码(学生必须提交自己设计的程序源代码,并有注释,源代码电子版也一并提交),包括思考题的程序。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 程序源代码:

    #include <bits/stdc++.h>
    using namespace std;
    //所选磁道个数
    int N;
    //磁头的开始位置
    int start;
    //请求服务序列
    int sequence[1024];
    //记录数组,用于在SSTF和SCAN算法中记录序列中的磁道与当前磁道的距离,然后从中挑选最小的进行下一次访问
    int record[1024];
    //tag数组,用于记录序列中的磁道是否已经被访问过
    bool tag[1024];
    
    //先来先服务算法(FCFS)
    void FCFS(){
        int cnt,i;
        cnt = 0;
        printf("磁道移动顺序如下:\n");
        printf("%d->%d",start,sequence[0]);
        cnt += abs(sequence[0] - start); //记录移动的磁道数
        for(i = 1;i < N;++i){
            printf("->%d",sequence[i]);
            cnt += abs(sequence[i] - sequence[i-1]);
        }
        printf("\nFCFS算法:一共移动了 %d 个磁道!平均寻道长度为 %lf\n", cnt, cnt * 1.0 / N);
    }
    
    //最短寻道时间优先算法(SSTF)
    void SSTF(){
        int cnt,i,j,mv,mi,place;
        cnt = 0; //磁道移动距离
        //初始化record数组
        memset(record,1025,sizeof(record));
        //初始化tag
        memset(tag,0,sizeof(tag));
        place = start; //磁道位置
        printf("磁道移动顺序如下:\n");
        printf("%d",start);
        for(i = 0; i<N;++i){
            //写record数组,记录序列中的磁道与当前磁道的距离
            for(j = 0;j < N;++j){
                record[j] = abs(sequence[j] - place);
            }
            //从record中挑选出最小的
            mv = 1025; //记录当前最小值
            mi = -1;   //记录取最小值时的位置
            for(j = 0;j<N;++j){
                //当前位置没被访问过
                if(!tag[j] && mv > record[j]){
                    mv = record[j];
                    mi = j;
                }
            }
            if(mi == -1){
                printf("error");
            }
            //访问到sequence[mi]这个位置
            printf("->%d",sequence[mi]);
            cnt += abs(sequence[mi] - place);  //记录移动距离
            place= sequence[mi];  //更新当前磁道位置
            tag[mi] = 1;    //标识当前位置已访问
        }
        printf("\nSSTF算法:一共移动了 %d 个磁道!平均寻道长度为 %lf\n", cnt, cnt * 1.0 / N);
    }
    
    
    //扫描算法(SCAN)
    void SCAN(){
        int cnt,i,j,mv,mi,place,direction;
        cnt = 0; //磁道移动距离
        direction = rand() % 2; //随机方向,0为向下,1为向上
        //初始化record数组
        memset(record,1025,sizeof(record));
        //初始化tag
        memset(tag,0,sizeof(tag));
        place = start; //磁道位置
        printf("磁道移动顺序如下:\n");
        printf("%d",start);
        for(i = 0; i<N;++i){
            //写record数组,记录序列中的磁道与当前磁道的距离
            for(j = 0;j < N;++j){
                record[j] = abs(sequence[j] - place);
            }
            //从record中挑选出最小的
            mv = 1025; //记录当前最小值
            mi = -1;   //记录取最小值时的位置
            for(j = 0;j<N;++j){
                //当前位置没被访问过,并且如果direction为1就往大了找,为0就往小了找
                if(!tag[j] && mv > record[j] && ((direction == 1 && sequence[j] >= place) || (direction == 0 && sequence[j] <= place))){
                    mv = record[j];
                    mi = j;
                }
            }
            if(mi == -1){
                //找不到了,需要调换方向
                direction = !direction;
                --i;
                continue;
            }
            //访问到sequence[mi]这个位置
            printf("->%d",sequence[mi]);
            cnt += abs(sequence[mi] - place);  //记录移动距离
            place= sequence[mi];  //更新当前磁道位置
            tag[mi] = 1;    //标识当前位置已访问
        }
        printf("\nSCAN算法:一共移动了 %d 个磁道!平均寻道长度为 %lf\n", cnt, cnt * 1.0 / N);
    
    }
    
    void init(){
        int i;
        srand((unsigned long)time(0));
        N = rand() % 1001;     //随机磁道个数
        start = rand() % 1001; //随机磁头位置
        //随机初始化序列
        for(i = 0;i <N;++i){
            sequence[i] = rand() % 1001;
        }
        printf("初始化磁道的个数为%d,序列如下:\n",N);
        for(i = 0;i < N;++i){
            printf("%d ",sequence[i]);
        }
        printf("\n当前磁头的位置位于%d\n", start);
    }
    
    int main(){
        init(); //初始化数据
        printf("\n================= FCFS =================\n");
        FCFS();
        printf("\n================= SSTF =================\n");
        SSTF();
        printf("\n================= SCAN =================\n");
        SCAN();
        return 0;
    }
    
  • 您还可以看一下 张云波老师的以太坊智能合约项目实战课程中的 代币发行和转账测试小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的参考资料,主要是无头单项非循环链表的实现,下面是党支部的代码片段:

    // 党支部代码片段
    typedef struct {
        char name[50];
        int age;
        char gender[10];
    } PartyMember;
    
    typedef struct PartyBranchNode {
        PartyMember member;
        struct PartyBranchNode* next;
    } PartyBranchNode;
    
    PartyBranchNode* head = NULL;
    
    // 添加党员
    void addPartyMember(char name[], int age, char gender[]) {
        PartyBranchNode* newNode = (PartyBranchNode*)malloc(sizeof(PartyBranchNode));
        strncpy(newNode->member.name, name, sizeof(newNode->member.name));
        newNode->member.age = age;
        strncpy(newNode->member.gender, gender, sizeof(newNode->member.gender));
        newNode->next = NULL;
    
        if (head == NULL) {
            head = newNode;
        } else {
            PartyBranchNode* cur = head;
            while (cur->next != NULL) {
                cur = cur->next;
            }
            cur->next = newNode;
        }
    }
    
    // 删除党员
    void removePartyMember(char name[]) {
        if (head == NULL) {
            return;
        } else if (strcmp(head->member.name, name) == 0) {
            PartyBranchNode* temp = head;
            head = head->next;
            free(temp);
        } else {
            PartyBranchNode* prev = NULL;
            PartyBranchNode* cur = head;
            while (cur != NULL && strcmp(cur->member.name, name) != 0) {
                prev = cur;
                cur = cur->next;
            }
            if (cur != NULL) {
                prev->next = cur->next;
                free(cur);
            }
        }
    }
    
    // 查找党员
    PartyBranchNode* findPartyMember(char name[]) {
        PartyBranchNode* cur = head;
        while (cur != NULL && strcmp(cur->member.name, name) != 0) {
            cur = cur->next;
        }
        return cur;
    }
    
    // 显示所有党员
    void displayPartyMembers() {
        PartyBranchNode* cur = head;
        while (cur != NULL) {
            printf("姓名:%s  年龄:%d  性别:%s\n", cur->member.name, cur->member.age, cur->member.gender);
            cur = cur->next;
        }
    }
    

    已合并的代码在这里未给出,现在我们将党支部的代码与已合并的代码结合起来,假设已合并的代码中存在一个名为managePartyMembers的函数用来管理党员。我们只需要在managePartyMembers函数中调用党支部的函数即可。

    // 已合并的代码,假设存在一个函数 managePartyMembers
    
    void managePartyMembers() {
        // 这里是已合并的代码逻辑
    
        // 调用党支部功能
        addPartyMember("张三", 30, "男");
        addPartyMember("李四", 28, "女");
        removePartyMember("王五");
        PartyBranchNode* member = findPartyMember("赵六");
        if (member != NULL) {
            printf("找到党员:%s\n", member->member.name);
        } else {
            printf("未找到该党员\n");
        }
        displayPartyMembers();
    
        // 继续已合并的代码逻辑
    }
    

    managePartyMembers函数内部,我们调用了党支部的函数,例如addPartyMember函数用来添加党员,removePartyMember函数用来删除党员,findPartyMember函数用来查找党员,displayPartyMembers函数用来显示所有党员。

    这样,我们就将党支部的代码与已合并的代码功能完整地合并在一起了。