c语言成绩管理系统简

菜鸟小欧
• 阅读 1367

#include<stdio.h> #include<stdlib.h> #define N 50 #include<string.h> #include<conio.h> int max,min; float ave; struct student { int sx,yw,total; char name[10],xh[12]; };//定义基本信息 struct student stu[N]; //定义结构体个数

void mune() { printf("\t\t|-----------------------------|\n"); printf("\t\t| 学生成绩管理系统 |\n"); printf("\t\t| 1.输入学生成绩 |\n");//\t水平制表符 printf("\t\t| 2.显示学生成绩 |\n"); printf("\t\t| 3.查询学生成绩 |\n"); printf("\t\t| 4.增加学生成绩 |\n"); printf("\t\t| 5.删除学生成绩 |\n"); printf("\t\t| 6.修改学生成绩 |\n"); printf("\t\t| 7.总分和平均分 |\n"); printf("\t\t| 8.最高分和最低分 |\n"); printf("\t\t| 9.输出各分数段人数 |\n"); printf("\t\t| 10.成绩排序 |\n"); printf("\t\t| 0.退出 |\n"); printf("\t\t|-----------------------------|\n"); }

int luru(int sum)//输入成绩函数 { int i; printf("请输入录入个数:\n"); scanf("%d",&sum); for(i=0;i<sum;i++) { printf("请输入第%d个同学姓名:\n",i+1); scanf("%s",stu[i].name); printf("请输入第%d个同学学号:\n",i+1); scanf("%s",stu[i].xh); printf("请输入数学成绩\n"); scanf("%d",&stu[i].sx); printf("请输入语文成绩\n"); scanf("%d",&stu[i].yw); } return sum; }

void display(int sum)//显示成绩函数 { int i; printf("__\n"); printf("姓名*学号数学语文*****\n"); printf(" | | | | | | | | \n"); for(i=0;i<sum;i++) { printf("%8s %8s %8d %8d\n",stu[i].name,stu[i].xh,stu[i].sx,stu[i].yw); } } void query(int sum)//查询函数 按照学号进行查询 { int i,k,falg=0; char xh[12]; printf("请输入你要查询的学号:\n"); scanf("%s",&xh); for(i=0;i<sum;i++) { if(strcmp(xh,stu[i].xh)==0)//strcmp为比较字符串大小,如前面的大于后面则返回值为1反之为负一 { printf("该学生的信息为:\n"); printf("姓名:%s 学号:%s\n数学:%d 语文:%d\n",stu[i].name,stu[i].xh,stu[i].sx,stu[i].yw); falg++; } } if(falg==0) printf("输入学号错误\n"); }

int add(int sum)//添加学生信息函数 { int i,j; printf("请输入增加个数\n"); scanf("%d",&j); for(i=sum;i<sum+j;i++)//循环输入j个数 { printf("请输入第%d位同学姓名\n",i+1); scanf("%s",stu[i].name); printf("请输入第%d位同学学号\n",i+1); scanf("%s",stu[i].xh); printf("请输入数学成绩\n"); scanf("%d",&stu[i].sx); printf("请输入语文成绩\n"); scanf("%d",&stu[i].yw); } return sum+j; } int del(int sum)//使用学号进行删除学生信息函数 { int i,temp,flag=0;//flag进行记录 ,以免输入错误学号时,导致返回值减少,输入正确返回值则会减少一个 char xh[12]; printf("请输入要删除学生的学号:\n"); scanf("%s",xh); for(i=0;i<sum;i++) { if(strcmp(xh,stu[i].xh)==0) { flag++; temp=sum--; for(i=temp;i<sum;i++) { stu[i]=stu[i+1]; } } } if(flag!=0) printf("删除成功!\n"); if(flag==0) printf("输入错误\n"); return sum; }

int change(int sum)//通过查询学号进行修改成绩函数 { int i,temp,falg=0,choose,sx,yw; char xh[12]; printf("请输入想修改学生成绩的学号\n"); scanf("%s",xh); for(i=0;i<sum;i++) { if(strcmp(xh,stu[i].xh)==0) { temp=i; falg++; printf("请选择想修改的科目\n"); printf("1.语文\n"); printf("2.数学\n"); scanf("%d",&choose); switch(choose) { case 1: printf("请输入修改的分数:\n"); scanf("%d",&yw); stu[temp].yw=yw; break; case 2: printf("请输入修改的分数:\n"); scanf("%d",&sx); stu[temp].sx=sx;//赋值 break; } } if(falg==0) { printf("输入学号不存在\n"); } } return sum; } int tj1(int sum)//统计总分和平均分的函数 { int i,total; for(i=0;i<sum;i++) { total=total+stu[i].sx+stu[i].yw; } for(i=0;i<sum;i++) { stu[i].total=stu[i].sx+stu[i].yw; } ave=(float)total/sum; printf("__\n"); printf("姓名*学号*****总分\n"); for(i=0;i<sum;i++) { printf("%8s %8s %8d\n",stu[i].name,stu[i].xh,stu[i].total);

}
    printf("全班平均分:%.2f\n",ave);
return total;

}

int tj2(int sum)//统计总分最高分和最低分的函数 { int i,j,k; for(i=0;i<sum;i++) { stu[i].total=stu[i].sx+stu[i].yw; } max=stu[0].total; min=stu[0].total; for(i=1;i<sum;i++) { if(max<stu[i].total) { max=stu[i].total; j=i; } if(min>stu[i].total) { min=stu[i].total; k=i; }

}
printf("最高总分为:%s %d分\n最低总分为:%s %d分\n",stu[j].name,max,stu[k].name,min);

} void tj3(int sum)//统计各分数段人数 { int fail=0,pass=0,good=0,excellent=0,i;//设定初使值方便计数 for(i=0;i<sum;i++) { if(stu[i].sx+stu[i].yw<120) fail++; if((stu[i].sx+stu[i].yw>=120)&&(stu[i].sx+stu[i].yw<160)) good++; if(stu[i].sx+stu[i].yw>=160) excellent++; } printf("0-120(不及格):%d人\n120-160(良好):%d人\n160-200(优秀):%d人\n",fail,good,excellent); } void sort(int sum)//总分排序 { int i,j,temp; for(i=0;i<sum;i++) { stu[i].total=stu[i].sx+stu[i].yw; } for(i=0;i<sum;i++)//外循环 { for(j=i+1;j<sum;j++) if(stu[i].total<stu[j].total)//满足则置换 { temp=stu[i].total; stu[i].total=stu[j].total; stu[j].total=temp; }
} printf("总分排名为:\n"); printf("**\n"); printf("姓名 * 学号 * 总分\n"); printf("**\n"); for(i=0;i<sum;i++) { printf(" %s %s %d\n",stu[i].name,stu[i].xh,stu[i].total); } } void exit()//退出函数 { exit(0); } main() { int choose,n,sum; while(1) { mune(); printf("请选择功能\n"); scanf("%d",&choose); switch(choose) { case 0:exit();break; case 1:n=luru(sum);break; case 2:display(n);break; case 3:query(n);break; case 4:n=add(n);break; case 5:n=del(n);break; case 6:n=change(n);break; case 7:tj1(n);break; case 8:tj2(n);break; case 9:tj3(n);break; case 10:sort(n);break; } printf("按任意键返回\n"); getch(); system("cls");
}
}

c语言成绩管理系统简

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Stella981 Stella981
3年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Stella981 Stella981
3年前
C# Aspose.Cells导出xlsx格式Excel,打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”
报错信息:最近打开下载的Excel,会报如下错误。(xls格式不受影响)!(https://oscimg.oschina.net/oscnet/2b6f0c8d7f97368d095d9f0c96bcb36d410.png)!(https://oscimg.oschina.net/oscnet/fe1a8000d00cec3c
Stella981 Stella981
3年前
Linux查看GPU信息和使用情况
1、Linux查看显卡信息:lspci|grepivga2、使用nvidiaGPU可以:lspci|grepinvidia!(https://oscimg.oschina.net/oscnet/36e7c7382fa9fe49068e7e5f8825bc67a17.png)前边的序号"00:0f.0"是显卡的代
Wesley13 Wesley13
3年前
C语言学生宿舍管理系统代码(可运行)
include<stdio.hinclude<stdlib.hinclude<conio.hinclude<string.hinclude<windows.hinclude<malloc.hinclude<dos.hdefinelensizeof(structdorminfo)
Wesley13 Wesley13
3年前
C语言使用信号量机制实例:
C语言使用信号量机制实例:include<signal.hinclude<unistd.hinclude<stdio.hinclude<sys/types.hvoidsigroutine(intsigno){switch(signo){
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
3年前
Github标星5300+,专门为程序员开发文档开源管理系统,我粉了
!(https://oscimg.oschina.net/oscnet/a11909a041dac65b1a36b2ae8b9bcc5c432.jpg)码农那点事儿关注我们,一起学习进步!(https://oscimg.oschina.net/oscnet/f4cce1b7389cb00baaab228e455da78d0
Stella981 Stella981
3年前
Nginx反向代理upstream模块介绍
!(https://oscimg.oschina.net/oscnet/1e67c46e359a4d6c8f36b590a372961f.gif)!(https://oscimg.oschina.net/oscnet/819eda5e7de54c23b54b04cfc00d3206.jpg)1.Nginx反
菜鸟小欧
菜鸟小欧
Lv1
夜闻归雁生乡思,病入新年感物华。
文章
5
粉丝
1
获赞
0