Hsior 2023-09-26 22:48 采纳率: 100%
浏览 28
已结题

如何用c++实现随机生成名字

用c++实现随机生成100个中文名字和成绩,用来后续的排序和查找

  • 写回答

2条回答 默认 最新

  • lyh不会打代码 2023-10-01 09:28
    关注
    #include <iostream>
    #include <string>
    #include <cstdlib>
    #include <ctime>
    
    using namespace std;
    
    const int MAX_NUM = 100; // 最大生成人数
    
    // 结构体:记录一个学生的姓名和成绩
    struct Student {
        string name; // 姓名
        int score; // 成绩
    };
    
    // 随机生成一个汉字
    string randomChineseChar() {
        static const char* firstCharList[] = {
            "王", "李", "张", "刘", "陈", "杨", "赵", "黄", "周", "吴",
            "徐", "孙", "胡", "朱", "高", "林", "何", "郭", "马", "罗"
        };
        static const int firstCharNum = sizeof(firstCharList)/sizeof(char*);
        static const char* secondCharList[] = {
            "一", "二", "三", "四", "五", "六", "七", "八", "九", "十",
            "莉", "芳", "婷", "敏", "静", "娟", "丽", "华", "洁", "雯",
            "军", "勇", "华", "强", "明", "亮", "鹏", "志", "飞", "龙"
        };
        static const int secondCharNum = sizeof(secondCharList)/sizeof(char*);
    
        int firstIndex = rand() % firstCharNum;
        int secondIndex = rand() % secondCharNum;
        return string(firstCharList[firstIndex]) + string(secondCharList[secondIndex]);
    }
    
    // 随机生成一个名字
    string randomName() {
        string firstName = randomChineseChar();
        static const char* secondNameList[] = {
            "丽", "磊", "峰", "敏", "华", "强", "明", "红", "娟", "伟",
            "芳", "婷", "静", "洁", "雯", "龙", "志", "飞", "鹏", "欣"
        };
        static const int secondNameNum = sizeof(secondNameList)/sizeof(char*);
    
        int secondIndex = rand() % secondNameNum;
        return firstName + string(secondNameList[secondIndex]);
    }
    
    // 随机生成一个成绩
    int randomScore() {
        return rand() % 101; // 成绩在0到100之间
    }
    
    int main() {
        srand(time(nullptr));
    
        Student students[MAX_NUM];
        for (int i = 0; i < MAX_NUM; ++i) {
            students[i].name = randomName();
            students[i].score = randomScore();
        }
    
        // 输出排序前的学生名单
        cout << "排序前的学生名单:" << endl;
        for (int i = 0; i < MAX_NUM; ++i) {
            cout << "姓名:" << students[i].name << "\t成绩:" << students[i].score << endl;
        }
    
        // 这里可以加上对学生成绩进行排序和查找的代码
    
        return 0;
    }
    
    

    使用rand()函数来随机生成汉字、成绩等数据,具体实现方式可以参考randomChineseChar()、randomName()、randomScore()函数的实现。建立一个Student结构体用来存储每个学生的姓名和成绩,使用如下代码生成随机数据,并输出排序前的学生名单:

    // 随机生成学生信息
    for (int i = 0; i < MAX_NUM; ++i) {
        students[i].name = randomName();
        students[i].score = randomScore();
    }
    
    // 输出排序前的学生名单
    cout << "排序前的学生名单:" << endl;
    for (int i = 0; i < MAX_NUM; ++i) {
        cout << "姓名:" << students[i].name << "\t成绩:" << students[i].score << endl;
    }
    
    

    在输出排序前的学生名单之后,你可以添加具体的排序算法和查找代码,这里不再赘述。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 9月26日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表