(注:不能用到结构体)C语言写一个成绩管理系统,模板在末尾张照片,一共有五个功能,具体内容请看照片
C语言写成绩系统(只用到指针以及之前的内容)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 语言-逆行者 2022-11-23 19:50关注
/** * @file dome34.c * @author your name (you@domain.com) * @brief * @version 0.1 * @date 2022-11-24 * * @copyright Copyright (c) 2022 * 简易版班级成绩管理系统 */ #include<stdio.h> #define Max 50//最大人数为50个人,如果想更大,就改变这个值 int number =4;//记录学生信息的人数; //显示学生成绩的函数 void show(long int *num,char (*name)[10],char (*class)[10],float (*score)[3]){ printf("\tNo.\t\tName"); int i=0; int j=0; for(i=0;i<3;i++){ if(i==2){printf("\t\t%s",class[i]);} else{printf("\t%s",class[i]);} } printf("\n"); for(i=0;i<number;i++){ if(num[i]==0) { continue; }//学号为0,相当于没有该学生信息 else{ printf("\t%ld",num[i]); printf("\t%s",name[i]); for(j=0;j<3;j++) { printf("\t%.1f\t",score[i][j]); } printf("\n"); } } } //搜索学生id是否存在,并返回下标 int find(long int id,long int *num){ int i,index; for(i=0;i<number;i++){ if(id==num[i]){ index=i;//记录下标位置 break; } else{continue;} } if(i==number) {return -1;} else {return index;} } //根据学生id搜索分数 void query(long int id,long int *num,char (*class)[10],float (*score)[3]){ int i,j,index; index=find(id,num); if(index==-1){printf("没有该学生信息!\n");} else//找到就输出学生信息 { printf("你的成绩如下:\n"); for(i=0;i<3;i++){ if(i==2){printf("\t\t%s\n",class[i]);} else{printf("\t%s",class[i]);} } for(j=0;j<3;j++) { printf("\t%.1f\t",score[index][j]); } printf("\n"); } } void update(long int id,long int *num,char (*name)[10],float (*score)[3]) { int i,j,index,a; index=find(id,num); if(index==-1){printf("没有该学生信息!\n");} else//找到就输出学生信息 { printf("---------------\n"); printf("1、修改ID号\n"); printf("2、修改姓名\n"); printf("3、修改成绩\n"); scanf("%d",&a); switch (a) { case 1: printf("请输入新的学号:"); scanf("%s",&num[index]); printf("修改成功!\n"); break; case 2: printf("请输入新的姓名:"); scanf("%s",&name[index]); printf("修改成功!\n"); break; case 3: printf("1、修改Computer\n"); printf("2、修改Math\n"); printf("3、修改English\n"); int b; scanf("%d",&b); switch (b) { case 1: printf("请输入新成绩:"); scanf("%f",&score[index][0]); printf("修改成功!\n"); break; case 2: printf("请输入新成绩:"); scanf("%f",&score[index][1]); printf("修改成功!\n"); break; case 3: printf("请输入新成绩:"); scanf("%f",&score[index][2]); printf("修改成功!\n"); break; default: break; } break; default: break; } } } //删除学生信息 void reMove(long int id,long int *num,char (*name)[10],float (*score)[3]){ int i,j,index; index=find(id,num); if(index==-1){printf("没有该学生信息!\n");} else//找到就删除 { num[index]=0; name[index][10]='\0'; for(i=0;i<3;i++){ score[index][j]=0.0; } printf("删除成功!\n"); } } //删除学生信息 void add(long int *num,char (*name)[10],float (*score)[3]){ printf("请输入学号:"); scanf("%ld",&num[number]); printf("请输入姓名:"); scanf("%s",&name[number]); printf("请输入Computer成绩:"); scanf("%f",&score[number][0]); printf("请输入Math成绩:"); scanf("%f",&score[number][1]); printf("请输入English成绩:"); scanf("%f",&score[number][2]); printf("添加成功!\n"); number++; } int main(){ long int num[Max]={20210101,20210102,20210103,20210104}; char name[Max][10]={"Stu_01","Stu_02","Stu_03","Stu_04"}; char class[3][10]={"Computer","Math","English"}; float score[Max][3]={{60.5,97.0,90.5},{88.5,67.5,88.1},{72.3,75.0,92.0},{66.8,86.0,45.5}}; int i; char ch; long int id; int TuiChu=1; printf("-------------------------------------\n"); printf("d、显示学生成绩信息\n"); printf("q、查找学生成绩信息\n"); printf("u、更新学生成绩信息\n"); printf("r、删除学生成绩信息\n"); printf("a、增加学生成绩信息\n"); printf("p、退出系统\n"); for(;;){ scanf("%c",&ch); switch(ch){ case 'd': show(num,name,class,score); break; case 'q': printf("请输入你的学号:"); scanf("%ld",&id); query(id,num,class,score); break; case 'u': printf("请输入你的学号:"); scanf("%ld",&id); update(id,num,name,score); break; case 'r': printf("请输入你的学号:"); scanf("%ld",&id); reMove(id,num,name,score); break; case 'a': add(num,name,score); break; case 'p': TuiChu=0; break; } if(TuiChu==0){break;} } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程