用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; }
在输出排序前的学生名单之后,你可以添加具体的排序算法和查找代码,这里不再赘述。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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腾讯文档收集表