开发者

使用C++实现工资管理中的随机教师信息生成功能

开发者 https://www.devze.com 2023-05-10 10:57 出处:网络 作者: Luyoungs
目录教师的基本信息生成姓名生成地址生成电话号码代码总览数据生成效果教师的基本信息
目录
  • 教师的基本信息
  • 生成姓名
  • 生成地址
  • 生成电话号码
  • 代码总览
  • 数据生成效果

教师的基本信息

typedef struct teacher {
    int teaNo;           // 教工号
    char* teaName;       // 教师名字
    char* teaSex;        // 教师性别
    char* workUnitName;  // 工作单位
    char* address;       // 家庭住址
    char* telNo;         // 电话号码
    double basicWage;    // 基本工资
    double allowance;    // 津贴
    double tax;          // 所得税
} Teacher;

生成姓名

char* nameGen() {
    // 产生姓名
    // 21个姓
    char LastName[21][8] = {"赵", "钱", "孙", "李", "周", "吴", "郑",
                            "王", "黄", "路", "蔡", "司", "张", "高",
                            "刘", "胡", "侯", "花", "柳", "韩", "常"};
    // 16 个名
    char FirstName[16][8] = {"长", "广", "亮", "乐", "璐", "泉", "雨", "楠",
                             "同", "曈", "火", "淼", "旺", "富", "健", "康"};
    int ran_LastName = rand() % 21;
    int ran_FirstName1 = rand() % 16;
    int ran_FirstName2 = rand() % 16;
    char* fullName = (char*)malloc(sizeof(char) * 16);
    strcpy(&fullName[0], LastName[ran_LastName]);
    int len1 = strlen(fullName);
    strcpy(&fullName[len1], FirstName[ran_FirstName1]);
    int len2 = strlen(fullName);
    strcpy(&fullName[len2], FirstName[ran_FirstName2]);
    int len3 = strlen(fullName);
    fullName[len3] = '\0';
    return fullName;
}

生成地址

char* addrGen() {
    // 产生 10 个地址
    int rand0 = rand() % 5;
    int rand1 = rand() % 52;
    char City[5][40] = {"西安市雁塔区春林四路", "西安市莲湖区西北一路",
                        "西安市碑林区长安北路", "西安市经济技术尚苑路",
                        "西安市高新区高新一路"};
    char* addr = (char*)malloc(sizeof(char) * 1024);
    char *temp = City[rand0];
    int len = strlen(temp);
    strcpy(&addr[0], temp);
    char No[3] = {0};
    pythonstrcpy(&No[0],transfer(rand1));
    strcpy(&addr[len], No);
    int len1 = strlen(addr);
    strcpy(&addr[len1], "号");
    int len3 = strlen(addr);
    addr[len3] = '\0';
    return addr;
}

生成电话号码

char* TelGen() {
    // 随机产生电话号码
    // 号码头
    char num[10][4] = {"135", "136", "137", "139", "151",
                       "158", "155", "159", "173", "177"};
    // 号码尾 1
    char numbody1[10][4] = {"123", "666", "345", "176", "124",
                            "342", "342", "453", "333", "888"};
    // 号码尾 2
    char numbody2[10][6] = {"33345", "54555", "34545", "66456", "77777",
                            "11781", "08704", "57855", "37842", "56798"};
    int ran1 = rand() % 10;
    int ran2 = rand() % 10;
    int ran3 = rand() % 10;
    char* Tell = (char*)malloc(sizeof(char) * 12);
    strcpy(&Tell[0], num[ran1]);
    strcpy(&Tell[3], numbody1[ran2]);
    strcpy(&Tell[6], numbody2[ran3]);
    return Tell;
}

代码总览

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 文件路径宏
#define TEADIR "/Users/****/CProjects/****/Data/teacherinfo.txt"
#define MANDIR "/Users/****/CProjects/****/Data/maninfo.txt"
#define TEAPW "/Users/****/CProjects/****/Password/pw_tea.txt"
#define MANPW "/Users/****/CProjects/****/Password/pw_man.txt"
// 教师申诉缓冲池 以及 管理员待办缓冲池 的路径宏
#define FROMTEA "/Users/****/CProjects/****/Message/from_tea.txt"
#define TOMAN "/Users/*****/CProjects/****/Message/to_man.txt"
// 其它函数声明
char* transfer(int num);
typedef struct teacher {
    int teaNo;           // 教工号
    char* teaName;       // 教师名字
    char* teaSex;        // 教师性别
    char* workUnitName;  // 工作单位
    char* address;       // 家庭住址
    char* telNo;         // 电话号码
    double basicWage;    // 基本工资
    double allowance;    // 津贴
    double tax;          // 所得税
} Teacher;
char* nameGen() {
    // 产生姓名
    // 21个姓
    char LastName[21][8] = {"赵", "钱", "孙", "李", "周", "吴", "郑",
                            "王", "黄", "路", "蔡", "司", "张", "高",
                            "刘", "胡", "侯", "花", "柳", "韩", "常"};
    // 16 个名
    char FirstName[16][8] = {"长", "广", "亮", "乐", "璐", "泉", "雨", "楠",
                             "同", "曈", "火", "淼", "旺", "富", "健", "康"};
    int ran_LastName = rand() % 21;
    int ran_FirstName1 = rand() % 16;
    int ran_FirstNawqwtieLsDvme2 = rand() % 16;
    char* fullName = (char*)malloc(sizeof(char) * 16);
    strcpy(&fullName[0], LastName[ran_LastName]);
    int len1 = strlen(fullName);
    strcpy(&fullName[len1], FirstName[ran_FirstName1]);
    int len2 = strlen(fullName);
    strcpy(&fullName[len2], FirstName[ran_FirstName2]);
    int len3 = strhttp://www.devze.comlen(fullName);
    fullName[len3] = '\0';
    return fullName;
}
char* sexGen() {
    // 产生性别
    char* sex = (char*)malloc(sizeof(char) * 3);
    int ran = rand() % 2;
    if (ran == 1) {
        strcpy(&sex[0], "男");
    } else {
        strcpy(&sex[0], "女");
    }
    sex[3] = '\0';
    return sex;
}
char* addrGen() {
    // 产生 10 个地址
    int rand0 = rand() % 5;
    int rand1 = rand() % 52;
    char City[5][40] = {"西安市雁塔区春林四路", "西安市莲湖区西北一路",
                        "西安市碑林区长安北路", "西安市经济技术尚苑路",
                        "西安市高新区高新一路"};
    char* addr = (char*)malloc(sizeof(char) * 1024);
    char *temp = City[rand0];
    int len = strlen(temp);
    strcpy(&addr[0], temp);
    char No[3] = {0};
    strcpy(&No[0],transfer(rand1));
    strcpy(&addr[len], No);
    int len1 = strlen(addr);
    strcpy(&addr[len1], "号");
    int len3 = strlen(addr);
    addr[len3] = '\0';
    return addr;
}
char* transfer(int num){
    int a = num%10;
    int b = num/10;
    char *str = (char*)malloc(sizeof(char)*2);
    str[0] = a+'0';
    str[1] = b+'0';
    str[2] = '\0';
    return str;
}
char* TelGen() {
    // 随机产生电话号码
    // 号码头
    char num[10][4] = {"135", "136", "137", "139", "151",
                       "158", "155", "159", "173", "177"};
    // 号码尾 1
    char numbody1[10][4] = {"123", "666", "345", "176", "124",
                            "342", "342", "453", "333", "888"};
    // 号码尾 2
    char numbody2[10][6] = {"33345", "54555", "34545", "66456", "77777",
                            "11781", "08704", "57855", "37842", "56798"};
    int ran1 = rand() % 10;
    int ran2 = rand() % 10;
    int ran3 = rand() % 10;
    char* Tell = (char*)malloc(sizeof(char) * 12);
    strcpy(&Tell[0], num[ran1]);
    strcpy(&Tell[3], numbody1[ran2]);
    strcpy(&Tell[6], numbody2[ran3]);
    return Tell;
}
double basicWageGen() {
    // 随机产生基本工资
    int wage1 = (rand() % 3) * 1000 + 3000;
    double wage2 = (rand() % 30) * 1.87 + 600;
    double wageTotal = wage1 + wage2;
    return wageTotal;
}
double alloGen() {
    double allo = (rand() % 20) * 1.87 + 456;
    return allo;
}
double taxGen(int totalWage) {
    // 经过计算,税前收入最高为 5654.23 元
    // 税收将会按照 3%进行征收,且征收起点为 5000 元
    double tax = 0;
    if (totalWage <= 5000) {
        tax = 0;
    } else {
        tax = totalWage * 0.03;
    }
    return tax;
}
int main() {
    for (int i = 10000; i < 10300; i++) {
        Teacher teacher;
        teacher.teaNo = i;
        teacher.teaName = nameGen();
        teacher.teaSex = sexGen();
        teacher.workUnitName = "航天城第四小学";
        teacher.address = addrGen();
        teacher.telNo = TelGen();
        teacher.basicWage = basicWageGen();
        teacher.allowance = alloGen();
        teacher.tax = taxGen(teacher.basicWage + teacher.allowance);
        // 打开文件,进行读写
        FILE* fp = fopen(TEADIR, "a");
        if (fp == NULL) {
            printf("打开文件失败,请重新确认路径!\n");
        }
        fprintf(fp, "%d %s %s %s %s %s %.2f元 %.2f元 %.2f元\n", teacher.teaNo,
                teacher.teaName, teacher.teaSex, teacher.workUnitName,
                teacher.address, teacher.telNo, teacher.basicWage,
                teacher.allowance, teacher.tax);
    }
    return 0;
}

数据生成效果

10000 王广曈 女 航天城第四小学 西安市雁塔区春林四路42号 15133366456 4600.00元 465.35元 151.95元

10001 赵亮乐 男 航天城第四小学 西安市碑林区长安北路54号 13534566456 4616.83元 487.79元 153.12元

10002 钱泉淼 女 航天城第四小学 西安市莲湖区西北一路13号 15934234545 4637.40元 480.31元 153.51元

10003 王富乐 男 航天城第四小学 西安市碑林区长安北路61号 13934211781 5614.96元 476.57元 182.73元

10004 郑泉曈 男 航天城第四小学 西安市经济技术尚苑路02号 17312377777 5600.00元 461.61元 181.83元

10005 韩火泉 女 航天城第四小学 西安市莲湖区西北一路14号 15933337842 4652.36元 457.87元 153.30元

10006 韩富曈 女 航天城第四小学 西安市经济技术尚苑路42号 15888811781 4616.83元 457.87元 152.22元

10007 黄乐曈 女 航天城第四小学 西安市莲湖区西北一路01号 17317611781 4622.44元 467.22元 152.67元

10008 高广雨 女 航天城第四小学 西安市莲湖区西北一路71号 13633357855 5613.09元 487.79元 183.00元

10009 张长曈 男 航天城第四小学 西安市雁塔区春林四路74号 15833334545 4614.96元 478.44元 152.79元

10010 郑泉火 女 航天城第四小学 西安市雁塔区春林四路84号 13912308704 3641.14元 465.35元 0.00元

10011 蔡旺康 男 航天城第四小学 西安市雁塔区春林四路84号 13666633345 3614.96元 487.79元 0.00元

10012 蔡健同 男 航天城第四小学 西安市雁塔区春林四路24号 13733311781 3644.88元 461.61元 0.00元

10013 钱同曈 女 航天城第四小学 西安市经济技术尚苑路22号 13912337842 4600.00元 463.48元 151.89元

10014 钱雨火 女 航天城第四小学 西安市经济技术尚苑路41号 15112333345 3624.31元 469.09元 0.00元

10015 高广同 男 航天城第四小学 西安市碑林区长安北路33号 15534266456 4626.18元 470.96元 152.91元

10016 侯淼曈 女 航天城第四小学 西安市碑林区长安北路72号 17734577777 4614.96元 485.92元 153.00元

10017 柳楠康 男 航天城第四小学 西安市高新区高新一路94号 13945311781 5603.74元 476.57元 182.40元

10018 郑广曈 男 航天城第四小学 西安市雁塔区春林四路80号 15834257855 4607.48元 476.57元 152.52元

10019 李富同 女 航天城第四小学 西安市高新区高新一路00号 15888857855 3624.31元 472.83元 0.00元

10020 花康楠 女 航天城第四小学 西安市经济技术尚苑路43号 15533356798 3644.88元 489.66元 0.00元

10021 赵富淼 男 航天城第四小学 西安市经济技术尚苑路70号 13612456798 4654.23元 456.00元 153.30元

10022 高楠雨 女 航天城第四小学 西安市碑林区长安北路73号 15934233345 5626.18元 487.79元 183.39元

10023 胡同健 女 航天城第四小学 西安市莲湖区西北一路44号 15145377777 5652.36元 465.35元 183.51元

10024 黄乐广 男 航天城第四小学 西安市经济技术尚苑路30号 15945366456 5628.05元 485.92元 183.39元

10025 常同雨 女 航天城第四小学 西安市雁塔区春林四路82号 13534208704 5628.05元 480.31元 183.24元

10026 常长火 女 航天城第四小学 西安市碑林区长安北路13号 17312456798 3643.01元 476.57元 0.00元

10027 侯火曈 男 航天城第四小学 西安市莲湖区西北一路04号 17717657855 4633.66元 456.00元 152.67元

10028 高长乐 男 航天城第四小学 西安市雁塔区春林四路83号 15834257855 5600.00元 467.22元 182.01元

10029 韩曈曈 女 航天城第四小学 西安市经济技术尚苑路23号 15133357855 3616.83元 484.05元 0.00元

10030 常雨泉 男 航天城第四小学 西安市高新区高新一路30号 15988811781 3605.61元 461.61元 0.00元

10031 郑广火 男 航天城第四小学 西安市莲湖区西北一路05号 15134566456 4650.49元 456.00元 153.18元

10032 赵康长 男 航天城第四小学 西安市雁塔区春林四路63号 13933366456 5618.70元 482.18元 183.00元

10033 黄楠同 女 航天城第四小学 西安市高新区高新一路05号 17766633345 4624.31元 474.70元 152.97元

10034 胡乐亮 男 航天城第四小学 西安市高新区高新一路62号 15588833345 4648.62元 463.48元 153.36元

10035 郑健长 男 航天城第四小学 西安市高新区高新一路00号 17366633345 5639.27元 457.87元 182.91元

10036 常同亮 女 航天城第四小学 西安市高新区高新一路33号 13534234545 3652.36元 487.79元 0.00元

10037 蔡健旺 男 航天城第四小学 西安市碑林区长安北路34号 13534233345 5605.61元 465.35元 182.10元

10038 常雨淼 女 航天城第四小学 西安市碑林区长安北路54号 13512356798 3620.57元 469.09元 0.00元

10039 黄曈广 男 航天城第四小学 西安市经济技术尚苑路60号 15812411781 5637.40元 476.57元 183.39元

10040 孙健曈 男 航天城第四小学 西安市经济技术尚苑路50号 15534277777 5633.66元 478.44元 183.36元

10041 胡璐旺 男 航天城第四小学 西安市碑林区长安北路11号 17366654555 5620.57元 476.57元 182.91元

10042 王康富 男 航天城第四小学 西安市雁塔区春林四路04号 17317657855 4601.87元 461.61元 151.89元

10043 王富康 男 航天城第四小学 西安市雁塔区春林四路11号 13734208704 4644.88元 457.87元 153.06元

10044 王泉康 女 航天城第四小学 西安市经济技术尚苑路42号 13634233345 4609.35元 480.31元 152.67元

10045 韩长楠 男 航天城第四小学 西安市雁塔区春林四路74号 1开发者_JS学习5533311781 4631.79元 472.83元 153.12元

10046 常健同 女 航天城第四小学 西安市碑林区长安北路82号 15166633345 5639.27元 463.48元 183.06元

10047 侯雨健 男 航天城第四小学 西安市碑林区长安北路31号 17312411781 3652.36元 472.83元 0.00元

10048 胡楠同 女 航天城第四小学 西安市雁塔区春林四路42号 15817637842 3601.87元 478.44元 0.00元

10049 柳璐泉 男 航天城第四小学 西安市雁塔区春林四路22号 15834533345 3631.79元 491.53元 0.00元

10050 胡乐富 男 航天城第四小学 西安市高新区高新一路44号 17766611781 5652.36元 480.31元 183.96元

10051 郑广雨 男 航天城第四小学 西安市莲湖区西北一路24号 13933308704 4654.23元 485.92元 154.20元

10052 常旺楠 男 航天城第四小学 西安市雁塔区春林四路74号 13712456798 5644.88元 469.09元 183.39元

10053 周楠泉 女 航天城第四小学 西安市莲湖区西北一路31号 17766666456 4652.36元 491.53元 154.29元

10054 吴康楠 男 航天城第四小学 西安市莲湖区西北一路13号 15134254555 4611.22元 474.70元 152.55元

10055 韩长同 男 航天城第四小学 西安市高新区高新一路92号 15912356798 4613.09元 459.74元 152.16元

10056 高泉旺 女 航天城第四小学 西安市碑林区长安北路73号 17733366456 5639.27元 478.44元 183.51元

10057 周富富 女 航天城第四小学 西安市雁塔区春林四路05号 15134254555 3624.31元 469.09元 0.00元

10058 黄璐楠 女 航天城第四小学 西安市碑林区长安北路00号 13517656798 5635.53元 467.22元 183.06元

10059 黄广淼 女 航天城第四小学 西安市莲湖区西北一路11号 13512366456 5646.75元 461.61元 183.24元

10060 常康同 女 航天城第四小学 西安市高新区高新一路34号 17712308704 5631.79元 480.31元 183.36元

10061 高广火 男 航天城第四小学 西安市莲湖区西北一路92号 13612454555 4611.22元 476.57元 152.61元

10062 李火璐 女 航天城第四小学 西安市高新区高新一路92号 13645356798 5631.79元 474.70元 183.18元

10063 孙泉泉 女 航天城第四小学 西安市碑林区长安北路04号 15188857855 3603.74元 474.70元 0.00元

10064 王雨广 男 航天城第四小学 西安市莲湖区西北一路61号 17734556798 5618.70元 478.44元 182.91元

10065 李雨璐 女 航天城第四小学 西安市雁塔区春林四路90号 15866654555 5628.05元 457.87元 182.55元

10066 张雨同 男 航天城第四小学 西安市经济技术尚苑路33号 17734266456 3609.35元 489.66元 0.00元

10067 柳曈雨 女 航天城第四小学 西安市经济技术尚苑路51号 17712311781 3626.18元 482.18元 0.00元

10068 赵健璐 女 航天城第四小学 西安市莲湖区西北一路20号 13512333345 3639.27元 469.09元 0.00元

10069 钱乐泉 女 航天城第四小学 西安市经济技术尚苑路30号 17334266456 3635.53元 480.31元 0.00元

10070 胡康璐 女 航天城第四小学 西安市高新区高新一路05号 13512366456 3633.66元 459.74元 0.00元

10071 王旺曈 男 航天城第四小学 西安市雁塔区春林四路02号 15545333345 4624.31元 480.31元 153.12元

10072 赵泉同 女 航天城第四小学 西安市雁塔区春林四路60号 15917637842 3646.75元 459.74元 0.00元

10073 常亮广 女 航天城第四小学 西安市雁塔区春林四路53号 13934211781 4628.05元 457.87元 152.55元

10074 钱火乐 男 航天城第四小学 西安市经济技术尚苑路05号 15988837842 5613.09元 465.35元 182.34元

10075 孙旺雨 男 航天城第四小学 西安市雁塔区春林四路91号 13545308704 4641.14元 461.61元 153.06元

10076 黄火康 女 航天城第四小学 西安市经济技术尚苑路50号 13512337842 3644.88元 469.09元 0.00元

10077 郑楠火 男 航天编程城第四小学 西安市高新区高新一路32号 15512434545 4626.18元 482.18元 153.24元

10078 侯璐康 女 航天城第四小学 西安市经济技术尚苑路74号 15117677777 4620.57元 478.44元 152.97元

10079 张乐楠 男 航天城第四小学 西安市高新区高新一路44号 13645366456 5652.36元 463.48元 183.45元

10080 胡亮淼 女 航天城第四小学 西安市莲湖区西北一路92号 15912456798 4639.27元 472.83元 153.36元

10081 钱淼健 男 航天城第四小学 西安市碑林区长安北路31号 13634208704 4628.05元 476.57元 153.12元

10082 司璐雨 女 航天城第四小学 西安市碑林区长安北路92号 17734233345 4641.14元 461.61元 153.06元

10083 侯泉康 女 航天城第四小学 西安市莲湖区西北一路10号 17312333345 3644.88元 478.44元 0.00元

10084 郑亮同 男 航天城第四小学 西安市碑林区长安北路53号 13734566456 4605.61元 459.74元 151.95元

10085 韩璐火 男 航天城第四小学 西安市雁塔区春林四路02号 13512456798 3607.48元 484.05元 0.00元

10086 蔡长楠 女 航天城第四小学 西安市经济技术尚苑路23号 13733333345 5637.40元 472.83元 183.30元

10087 路楠乐 男 航天城第四小学 西安市经济技术尚苑路53号 13634537842 3600.00元 457.87元 0.00元

10088 侯旺淼 女 航天城第四php小学 西安市高新区高新一路72号 17712334545 5646.75元 491.53元 184.14元

10089 郑楠淼 女 航天城第四小学 西安市高新区高新一路05号 15112334545 5644.88元 457.87元 183.06元

10090 侯璐火 男 航天城第四小学 西安市雁塔区春林四路03号 17712334545 3643.01元 470.96元 0.00元

10091 赵富健 女 航天城第四小学 西安市经济技术尚苑路81号 17745366456 4614.96元 485.92元 153.00元

10092 李泉淼 女 航天城第四小学 西安市高新区高新一路02号 13534534545 3613.09元 467.22元 0.00元

10093 胡长乐 男 航天城第四小学 西安市莲湖区西北一路50号 15917608704 3603.74元 465.35元 0.00元

10094 韩广广 男 航天城第四小学 西安市雁塔区春林四路34号 13633377777 3633.66元 472.83元 0.00元

10095 钱雨璐 男 航天城第四小学 西安市碑林区长安北路42号 15534266456 5626.18元 478.44元 183.12元

10096 柳亮长 男 航天城第四小学 西安市碑林区长安北路52号 15545334545 3637.40元 474.70元 0.00元

10097 吴旺曈 女 航天城第四小学 西安市雁塔区春林四路11号 13717666456 3601.87元 472.83元 0.00元

10098 周雨广 男 航天城第四小学 西安市莲湖区西北一路12号 17734208704 4626.18元 482.18元 153.24元

10099 孙楠曈 女 航天城第四小学 西安市碑林区长安北路71号 13534554555 4626.18元 461.61元 152.61元

可以看到,产生的数据完全符合预期。

到此这篇关于使用C++实现工资管理中的随机教师信息生成功能的文章就介绍到这了,更多相关C++随机教师信息生成内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号