用C语言编写程序:从键盘上任给一个郑州大学学生的学号输出该学号相关的信息。例如:输入202201011150输出:2022级机械与动力工程学院11班50号上载拍照图片、视频:0分。 要求: 1有输入对输入的学号判断不是12位的数字符号重新输入学号当输入0结束程序运行如果是12位数字符号分别输出:级学院班级班内序号 2通过提示信息是否继续输入学生的学号yn回答y继续输入;回答n结束程序运行。
#include <stdio.h>
#include <string.h>
int main() {
char stu_id[13]; // 学号
char academy[30]; // 学院
int grade; // 年级
int class_num; // 班级
int num_in_class; // 班内序号
// 学院代码表
char academy_code[60][3] = {"01", "机械与动力工程学院", "02", "电气工程学院", "03", "化工学院", "04", "土木工程学院",
"05", "水利科学与工程学院", "06", "力学与安全工程学院", "07", "管理工程学院", "08", "材料科学与工程学院", "09", "建筑学院",
"63", "口腔医学院", "10", "地球科学与技术学院", "11", "生态与环境学院", "21", "数学与统计学院", "22", "物理学院",
"23", "化学学院", "24", "信息工程学院", "31", "商学院", "32", "旅游管理学院", "33", "政治与公共管理学院", "34", "信息管理学院",
"35", "法学院", "36", "文学院", "37", "外国语与国际关系学院", "38", "历史学院", "39", "马克思主义学院", "40", "新闻与传播学院",
"41", "教育学院", "45", "书法学院", "46", "美术学院", "47", "生命科学学院", "48", "音乐学院", "49", "体育学院(校本部)",
"51", "基础医学院", "52", "公共卫生学院", "53", "药学院", "54", "护理与健康学院", "84", "国际学院", "90", "交换生"};
while (1) {
printf("请输入12位学号(输入0退出程序):");
scanf("%s", stu_id);
if (strcmp(stu_id, "0") == 0) {
break;
}
if (strlen(stu_id) != 12) {
printf("学号格式错误,请重新输入!\n");
continue;
}
// 判断年级
char grade_str[5];
strncpy(grade_str, stu_id, 4);
grade_str[4] = '\0';
if (strcmp(grade_str, "2022") == 0) {
grade = 2022;
} else if (strcmp(grade_str, "2021") == 0) {
grade = 2021;
} else if (strcmp(grade_str, "2020") == 0) {
grade = 2020;
} else if (strcmp(grade_str, "2019") == 0) {
grade = 2019;
} else if (strcmp(grade_str, "2018") == 0) {
grade = 2018;
} else {
printf("学号年级错误,请重新输入!\n");
continue;
}
// 判断学院
char academy_code_str[3];
strncpy(academy_code_str, stu_id + 4, 2);
academy_code_str[2] = '\0';
int found = 0;
for (int i = 0; i < 60; i += 2) {
if (strcmp(academy_code_str, academy_code[i]) == 0) {
strcpy(academy, academy_code[i + 1]);
found = 1;
break;
}
}
if (!found) {
printf("学号学院错误,请重新输入!\n");
continue;
}
// 判断班级和班内序号
char class_num_str[3];
strncpy(class_num_str, stu_id + 6, 2);
class_num_str[2] = '\0';
char num_in_class_str[3];
strncpy(num_in_class_str, stu_id + 8, 2);
num_in_class_str[2] = '\0';
class_num = atoi(class_num_str);
num_in_class = atoi(num_in_class_str);
printf("%d级,%s,%d班,%d号\n", grade, academy, class_num, num_in_class);
char answer;
do {
printf("是否继续输入学生的学号(y/n):");
scanf(" %c", &answer);
} while (answer != 'y' && answer != 'n');
if (answer == 'n') {
break;
}
}
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/eOsn 著作权归作者所有。请勿转载和采集!