shuxue

博客围绕论文展开,重点提及了模型相关内容,虽未详细阐述,但表明核心聚焦于论文里的模型。

论文

模型

aγγ
#include <stdio.h> #include <string.h> #define MAX_STUDENTS 100//宏定义 #define ENGLISH_SCORES 1 // 新增英语成绩数组长度定义 void displayStudents();//显示学生所有信息函数调用声明 void deleteStudent(int nm);//删除函数调用声明 void caffeeStudent();//修改学生信息(按ID) //学生信息结构体 typedef struct Student { int id;//ID char name[50];//名字 float score;//语文成绩 float yingyu[ENGLISH_SCORES]; //数组 float yuwen;//数学成绩 float shuxue;//物理成绩 } Student; //初始值赋值 Student newStudent={0,"",0,0,0}; Student students[MAX_STUDENTS]; int miomi = 0;//计算当前储存人数 /* 添加学生信息结构体 */ void addStudent() { int i; Student newStudent; if (miomi >= MAX_STUDENTS) { printf("学生记录已满,无法继续添加。\n"); return ; } printf("请输入学生的ID: "); scanf("%d", &newStudent.id); getchar(); // 清除输入缓冲区中的换行符 printf("请输入学生的姓名: "); fgets(newStudent.name, sizeof(newStudent.name), stdin); newStudent.name[strcspn(newStudent.name, "\n")] = &#39;\0&#39;; // 去掉末尾的换行符 printf("请输入学生的语文成绩: "); scanf("%f", &newStudent.score); for(i=0; i<ENGLISH_SCORES; i++){ printf("请输入学生的英语成绩:"); scanf("%f", &newStudent.yingyu[i]); } printf("请输入学生的数学成绩: "); scanf("%f", &newStudent.yuwen); printf("请输入学生的物理成绩: "); scanf("%f", &newStudent.shuxue); students[miomi++] = newStudent; printf("学生信息添加功!\n"); return ; } //管理员界面结构体 void diplawStudents(){ int h,nm; printf("正在进入系统界面\n "); while (1) { printf("\n==== 管理员系统界面 ====\n"); printf("1. 删除学生信息(按ID)\n"); printf("2. 修改学生信息(按ID)\n"); printf("3. 显示所有学生信息\n"); printf("4. 返回学生界面\n"); printf("=========================\n"); printf("请选择操作序号: "); h=0; scanf("%d",&h); switch(h) { case 1: printf("请输入要删除学生的ID信息: "); nm=0; scanf("%d",&nm); deleteStudent(nm);//指向删除函数 break; case 2: caffeeStudent();//修改学生信息(按ID) break; case 3: displayStudents();//显示所有学生信息(按ID) break; case 4: printf("再见管理员,欢迎您下次进入\n");//退出程序 return ; break; default: printf("无效的选择呢,请您重新选择。\n"); } } } //显示所有学生信息结构体 void displayStudents() { int i,j; if (miomi == 0) { printf("目前没有学生信息。\n"); return; } printf("学生的总人数有%d\n",miomi); for (i = 0; i < miomi; i++) { printf("学号:%d\t姓名:%s\t", students[i].id, students[i].name); printf("英语成绩:"); for(j=0; j<ENGLISH_SCORES; j++){ printf("%.2f ", students[i].yingyu[j]); } printf("\t语文:%.2f\t数学:%.2f\t物理:%.2f\n", students[i].score, students[i].yuwen, students[i].shuxue); } } //搜索学生的信息结构体 void delkesStudent(){ int i,id,j; printf("请输入要搜索学生的ID信息: "); scanf("%d", &id); for(i=0;i<miomi;++i){ if(id==students[i].id){ printf("要搜索学生的ID信息为:\n"); printf("学号:%d\t名字:%s\t语文成绩:%.2f\t数学成绩:%.2f\t物理成绩:%.2f\t", students[i].id, students[i].name, students[i].score, students[i].yuwen, students[i].shuxue); printf("英语成绩:"); for(j=0; j<ENGLISH_SCORES; j++){ printf("%.2f ", students[i].yingyu[1]); } break; } } } //删除学生信息结构体 void deleteStudent(int id) { int index = -1; int i; for ( i= 0; i < miomi; ++i) { if (students[i].id == id) { index = i; break; } } if (index != -1) { int j; for (j = index; j < miomi - 1; ++j) students[j] = students[j + 1]; --miomi; printf("删除功。\n"); } else { printf("未找到指定的学生编号。\n"); } } //计算平均分结构体 void calculateAverageScore(){ float total=0 ; float totbl=0 ; float totcl=0 ; float totfl[ENGLISH_SCORES] = {0}; int i,j; if (miomi== 0) { printf("暂无数据计算平均分。\n"); return ; } for (i = 0; i < miomi; i++) { for(j=0; j<ENGLISH_SCORES; j++){ totfl[j] += students[i].yingyu[j]; } for ( i = 0; i < miomi; ++i){//语文 total += students[i].score;} for ( i = 0; i < miomi; ++i){//数学 totbl += students[i].shuxue;} for ( i = 0; i < miomi; ++i){//物理 totcl += students[i].yuwen;} printf("当前所有学生的语文平均分为:%.2f 分.\n",total/miomi ); printf("当前所有学生的英语平均分为:%.2f 分.\n",totfl[1]/miomi); printf("当前所有学生的数学平均分为:%.2f 分.\n",totbl/miomi ); printf("当前所有学生的物理平均分为:%.2f 分.\n",totcl/miomi ); return ; } } //修改学生信息结构体 void caffeeStudent(){ int i,id,j,f; printf("请输入要修改学生的ID信息: "); scanf("%d", &id); for(i=0;i<miomi;++i){ if(id==students[i].id){ while (1) { printf("\n==== 修改界面 ====\n"); printf("1. 修改学生ID \n"); printf("2. 修改学生姓名\n"); printf("3. 修改学生成绩\n"); printf("4. 返回上一个程序\n"); printf("=========================\n"); printf("请选择操作序号: "); j=0; scanf("%d",&j); if(j == 4) break; switch(j) { case 1: printf("请输入修改后学生的ID: "); scanf("%d", &students[i].id); getchar(); // 清除输入缓冲区中的换行符 break; case 2: printf("请输入修改后学生的姓名: "); fgets(students[i].name, sizeof(students[i].name), stdin); students[i].name[strcspn(students[i].name, "\n")] = &#39;\0&#39;; // 去掉末尾的换行符 break; case 3: printf("请输入修改后学生的语文成绩: "); scanf("%f", &students[i].score); printf("请输入修改后学生的英语成绩: "); scanf("%f", &students[i].yingyu[1]); printf("请输入修改后学生的数学成绩: "); scanf("%f", &students[i].shuxue); printf("请输入修改后学生的物理成绩: "); scanf("%f", &students[i].yuwen); break; default: printf("无效的选择呢,请您重新选择。\n"); } } printf("学生信息修改功!\n"); return ; } continue; } } //主函数结构体 int main() { int choice; int u_u=0; while (1) { printf("\n==== 学生信息管理系统 ====\n"); printf("1. 添加学生信息\n"); printf("2. 进入管理员面板\n"); printf("3. 计算平均分\n"); printf("4. 搜索学生的信息\n"); printf("5. 退出程序\n"); printf("=========================\n"); printf("请选择操作序号: "); scanf("%d", &choice); switch(choice) { case 1://添加学生信息 addStudent(); break; case 2://进入管理员面板 diplawStudents();//进入管理员界面结构体 break; case 3://计算平均分 calculateAverageScore();//进入计算平均分结构体 break; case 4://搜索学生的信息 delkesStudent(); break; case 5://退出程序 printf("再见宝贝,欢迎您下次使用系统\n"); return 0; break; default://无效的选择 printf("无效的选择呢,请您重新选择。\n"); } } }为该课设添加一个排序功能
05-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值