C语言学生成绩管理系统(综合项目)

article/2025/10/27 10:16:38

1. 这个代码主要实现以下功能:

2. 用到的主要参数有:

    1.整型变量int n;用于储存学生人数和之后的循环判断。
    2.字符串char name[][];用于储存姓名。
    3.浮点型变量float score[];用于储存成绩。
    4.长整型变量long ID[Max];用于储存学号。

3.用到的子函数有:

int  Menu(void);                       系统菜单
void Readscore;                      录入每个学生的学号、姓名和考试成绩
void Aaverage;                        计算课程的总分和平均分
void Scoreuprand;                  按成绩由高到低排出名次表
void Scoredownrand;             按成绩由低到高排出名次表
void IDrand;                             按学号由小到大排出成绩表
void Zdrand;                            按姓名的字典顺序排出成绩表
void IDFind;                             按学号查询学生排名及其考试成绩
void NameFind;                       按姓名查询学生排名及其考试成绩
void Verious;                           按成绩分为5类统计每个类别的人数以及所占百分比
void ScoreList;                        输出每个学生的学号、考试成绩
void Mingzi;                             姓名交换函数
void Xuehao;                           学号交换函数
void Fenshu;                           交换函数
void Chengjidan;                    打印成绩单

4.下面呈现的是C语言学生成绩管理系统(综合项目)的全部代码。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Max 30int  Menu(void);                                                       //系统菜单
void Readscore(float score[],long ID[],int n,char name[][21]);         //录入每个学生的学号、姓名和考试成绩
void Aaverage(float score[],int n);                                    //计算课程的总分和平均分
void Scoreuprand(float score[],long ID[],char name[][21],int n);       //按成绩由高到低排出名次表
void Scoredownrand(float score[],long ID[],char name[][21],int n);     //按成绩由低到高排出名次表
void IDrand(float score[],long ID[],char name[][21],int n);            //按学号由小到大排出成绩表
void Zdrand(float score[],long ID[],char name[][21],int n);            //按姓名的字典顺序排出成绩表
void IDFind(float score[],long ID[],char name[][21],int n);            //按学号查询学生排名及其考试成绩
void NameFind(float score[],long ID[],char name[][21],int n);          //按姓名查询学生排名及其考试成绩
void Verious(float score[],int n);                                     //按成绩分为5类统计每个类别的人数以及所占百分比
void ScoreList(float score[],long ID[],int n);                         //输出每个学生的学号、考试成绩
void Mingzi(char name[],char m[]);                                     //姓名交换函数
void Xuehao(long *px,long *py);                                        //学号交换函数
void Fenshu(float *px,float *py);                                      //分数交换函数
void Chengjidan(float score[],long ID[],char name[][21],int n);        //打印成绩单
int  main()
{int x;int n;char name[Max][21];float score[Max];long ID[Max];printf("--------------------欢迎使用学生成绩管理系统--------------------\n");printf("请输入班级人数:");scanf("%d",&n);getchar();while(1){x=Menu();switch(x){case 1:  Readscore(score,ID,n,name);        break;case 2:  Aaverage(score,n);                 break;case 3:  Scoreuprand(score,ID,name,n);      break;case 4:  Scoredownrand(score,ID,name,n);    break;case 5:  IDrand(score,ID,name,n);           break;case 6:  Zdrand(score,ID,name,n);           break;case 7:  IDFind(score,ID,name,n);           break;case 8:  NameFind(score,ID,name,n);         break;case 9:  Verious(score,n);                  break;case 10: Chengjidan(score,ID,name,n);       break;case 0:  return 0;                          break;default:printf("输入错误!");}}
}//函数功能:显示菜单并选择子程序
//入口参数:无
//返回值:x
int Menu(void)     //---------菜单函数
{int x;system("cls");printf("--------------欢迎使用学生成绩管理系统--------------\n");printf("-----------------------菜单栏-----------------------\n");printf("1.成绩录入\n");printf("2.总分和平均分计算\n");printf("3.成绩降序排列\n");printf("4.成绩升序排列\n");printf("5.学号升序排列\n");printf("6.姓名在字典中顺序排序\n");printf("7.按学号查询成绩\n");printf("8.按姓名查询成绩\n");printf("9.成绩分析\n");printf("10.成绩单输出\n");printf("0.退出\n");printf("请输入你的选择:");scanf("%d",&x);return x;
}//函数功能:录入每个学生的学号和考试成绩
//入口参数:score,ID,n,name
//返回值:无
void Readscore(float score[],long ID[],int n,char name[][21])     //---------录入函数
{system("cls");printf("--------------------成绩录入--------------------\n");int i;printf("输入学号、姓名和成绩:\n");for (i=0;i<n;i++){//gets(name[i]);scanf("%ld %s %f",&ID[i],name+i,&score[i]);}system("pause");
}//函数功能:计算课程的总分和平均分
//入口参数:score,n
//返回值:无
void Aaverage(float score[],int n)     //---------输出成绩总分和平均成绩函数
{system("cls");printf("--------------------成绩的总分和平均分--------------------\n\n");int i,sum=0;for(i=0;i<n;i++){sum+=score[i];}printf("********成绩总和:%d   成绩平均分数:%.2f********\n",sum,sum/(float)n);system("pause");
}//函数功能:按成绩由高到低排出名次表
//入口参数:score,ID,n,name
//返回值:无
void Scoreuprand(float score[],long ID[],char name[][21],int n)       //---------成绩升序排名函数
{system("cls");printf("--------------------成绩升序名次表--------------------\n");int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(score[i]>score[j]){Fenshu(&score[i],&score[j]);Mingzi(name[i],name[j]);Xuehao(&ID[i],&ID[j]);}}}Chengjidan(score,ID,name,n);system("pause");
}//函数功能:按成绩由低到高排出名次表
//入口参数:score,ID,n,name
//返回值:无
void Scoredownrand(float score[],long ID[],char name[][21],int n)     //---------成绩降序排名函数
{system("cls");printf("--------------------成绩降序名次表--------------------\n");int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(score[i]<score[j]){Fenshu(&score[i],&score[j]);Mingzi(name[i],name[j]);Xuehao(&ID[i],&ID[j]);}}}Chengjidan(score,ID,name,n);system("pause");
}//函数功能:按学号由小到大排出成绩表
//入口参数:score,ID,n,name
//返回值:无
void IDrand(float score[],long ID[],char name[][21],int n)     //---------学号排名函数
{system("cls");printf("--------------------学号降序成绩单--------------------\n");int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(ID[i]<ID[j]){Xuehao(&ID[i],&ID[j]);Fenshu(&score[i],&score[j]);Mingzi(name[i],name[j]);}}}Chengjidan(score,ID,name,n);system("pause");
}//函数功能:按名字在字典位置排出成绩表
//入口参数:score,ID,n,name
//返回值:无
void Zdrand(float score[],long ID[],char name[][21],int n)     //---------字典排名函数
{system("cls");int i,j,k;if(n==0){printf("请先录入成绩!");return 0;}for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(strcmp(name[i],name[j])>0){Mingzi(name[i],name[j]);Xuehao(&ID[i],&ID[j]);Fenshu(&score[i],&score[j]);}}}printf("--------------------名字按照字典的顺序排序--------------------\n\n");Chengjidan(score,ID,name,n);system("pause");
}//函数功能:按学号查询学生排名及其考试成绩
//入口参数:score,ID,n,name
//返回值:无
void IDFind(float score[],long ID[],char name[][21],int n)     //---------学号查找函数
{system("cls");printf("--------------------学号查询系统--------------------\n");long i=0;int low=0,high=n-1,mid,ret,j,k;printf("请输入学号:\n");ret=scanf("%ld",&k);while(ret!=1){while(getchar()!='\n');printf("请重新输入正确的学号:\n");scanf("%ld",&k);}for(i=0;i<n;i++){if(k==ID[i]){printf("查寻结果如下:\n");printf("\n学号:%ld  ",ID[i]);printf("姓名:%s  ",name[i]);printf("成绩:%f\n",score[i]);break;}if(k==(n-1)&&k!=ID[i]){printf("未找到该名同学,请重新输入学号\n");}}system("pause");}//函数功能:按姓名查询学生排名及其考试成绩
//入口参数:score,ID,n,name
//返回值:无
void NameFind(float score[],long ID[],char name[][21],int n)     //---------姓名查找函数
{system("cls");printf("--------------------姓名查询系统--------------------\n");long i=0;int a,j;char cha[11];char chu[11]="0";while(1){printf("请输入姓名进行查询(输入“0”结束查询):\n");scanf("%s",cha);if(strcmp(cha,chu)==0){printf("即将返回主菜单\n\n");return (0);}for(i=0;i<n;i++){if(strcmp(cha,name[i])==0){printf("姓名:%s  ",name[i]);printf("学号:%ld  ",ID[i]);printf("成绩:%f\n",score[i]);break;}if(i==(n-1)&&strcmp(cha,name[i])!=0){printf("未找到该名同学,请重新输入姓名\n");}}system("pause");}
}//函数功能:按成绩分为5类统计每个类别的人数以及所占百分比
//入口参数:score,n
//返回值:无
void Verious(float score[],int n)     //---------按成绩分类函数
{system("cls");printf("--------------------成绩分类表--------------------\n");int i;float x1=0,x2=0,x3=0,x4=0,x5=0;for(i=0;i<n;i++){if(score[i]>=90&&score[i]<=100){x1++;}else if(score[i]>=80&&score[i]<90){x2++;}else if(score[i]>=70&&score[i]<80){x3++;}else if(score[i]>=60&&score[i]<70){x4++;}else{x5++;}}printf("优秀人数为:  %.f   占总人数的:%.2f%%\n",x1,(x1/n)*100);printf("良好人数为:  %.f   占总人数的:%.2f%%\n",x2,(x2/n)*100);printf("中等人数为:  %.f   占总人数的:%.2f%%\n",x3,(x3/n)*100);printf("及格人数为:  %.f   占总人数的:%.2f%%\n",x4,(x4/n)*100);printf("不及格人数为:%.f   占总人数的:%.2f%%\n",x5,(x5/n)*100);system("pause");
}//函数功能:交换姓名
//入口参数:n,name
//返回值:无
void Mingzi(char name[],char m[])    //---------姓名交换函数
{char s[21];                    //---------中间储存字符串strcpy(s,name);strcpy(name,m);strcpy(m,s);
}//函数功能:交换学号
//入口参数:n,ID
//返回值:无
void Xuehao(long *px,long *py)       //---------学号交换函数
{int x;x=*px;*px=*py;*py=x;
}//函数功能:交换分数
//入口参数:score,n
//返回值:无
void Fenshu(float *px,float *py)     //---------分数交换函数
{int x;x=*px;*px=*py;*py=x;
}//函数功能:打印成绩单
//入口参数:score,n,ID,name
//返回值:无
void Chengjidan(float score[],long ID[],char name[][21],int n)      //------------------------------成绩单函数
{int i;if(n==0){printf("还没有录入成绩!");}printf("      姓名       学号        分数\n");for(i=0;i<n;i++){printf(" %-2d   %-8s   %-8ld    %-2f\n",i+1,name[i],ID[i],score[i]);}system("pause");
}

http://chatgpt.dhexx.cn/article/0hslrpN1.shtml

相关文章

【高级语言程序设计】c语言-学生成绩管理系统

c语言期末作业 声明&#xff1a;未经允许&#xff0c;请勿转载 学生成绩管理系统 本系统能够对学生成绩管理功能&#xff0c;包括&#xff1a; 1.对多个学生成绩进行管理&#xff0c;至少10个学生。 2.每个学生至少3门课程。 3.对每个学生大学期间的成绩进行记录。 4.修改学生…

班级成绩管理系统(C语言)

文章目录 一、设计任务与目标二、实现功能三、程序源码四、效果展示 一、设计任务与目标 对一个有N个学生的班级&#xff0c;每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。 二、实现功能 &#xff08;1&#xff09;本系统采用一个结…

C语言:学生成绩管理系统

目录 一&#xff1a;功能概述&#xff1a; 二&#xff1a;实现&#xff1a; 1.主源文件 1.打印菜单&#xff01; 2.构建管理系统的框架&#xff1a; 二&#xff1a;辅源文件 1.使用结构体&#xff0c;方便后面的编写 2.输入学生信息 3.输出学生基本信息 3.按姓名查询 3.…

C语言课程设计|学生成绩管理系统(含完整代码)

目录 前言 简介 学生信息录入功能 学生单个信息查询 查询全部学生信息 修改学生信息 删除学生信息 退出 完整代码 前言 在临近期末之际&#xff0c;相信好多初学C语言的同学都开始为写C语言课程设计这件事开始焦虑了吧&#xff1f;或许会不知所措&#xff0c;或许会…

matlab importdata不能读取全部数据问题

最近使用importdata函数不能读取全部数据&#xff0c;数据集315行&#xff0c;但是读取了197行&#xff0c;那就是197-198之间有问题&#xff0c;百度之后有了思路。由于没有找到具体的证据&#xff0c;所以这里说一下解决思路。 import可以导入很多文件类型&#xff0c;.dat文…

ImportError: cannot import name 'datasets'

初次使用python scikit-learn库时出现找不到模块的问题 from sklearn import datasets ImportError: cannot import name datasets类似问题链接&#xff1a; https://stackoverflow.com/questions/39280466/cant-import-datasets-with-scikit-learn 参考答案&#xff1a; 原因…

MATLAB输入、导入方式(手动输入,TXT文件,Excel导入)

目录 手动输入 input函数 自动输入 TXT导入数组 dir函数 importdata函数 Excel导入数组 手动输入 input函数 请求用户输入 语法 x input(number) %数值型str input(charnumber,s) %字符型&#xff0c;s不能改变 数值型进行演示 Pzeros(5,1); %建立零51矩阵进行储存…

1.数据的导入与导出

数据的导入与导出 更多MATLAB数据分析视频请点击&#xff0c;或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId1003615016 在用MATLAB进行编程时&#xff0c;不可避免的要涉及到数据的导入与导出&#xff0c;如果数据…

matlab读取数据文件

data1.txt: 0 3886.162 2200.938 141.240 1 3721.139 2208.475 141.152 2 3866.200 2198.936 141.126 3 3678.048 2199.191 141.250 4 3685.453 2203.726 141.241 分别采用load、importdata、textread、fscanf、textscan和fread函数读取文本数据文件。 dat1load(data1.t…

Python中库导入from . import 和from .. import 的使用方法

Python中库导入from . import 和from .. import 的使用方法 程序目录结构如下 from . import XX 和 from .. import XX 只能使用在子包中&#xff0c;例如上面的例子中&#xff0c;程序最外层是主程序app.py,程序有一个子包pack1&#xff0c;pack1下有a.py 和b.py两个文件&…

matlab inport data 作图,MATLAB使用importdata读取字符数据文件并绘图 值得收藏

本文首先使用importdata( )读取(导入)含有字符和数据的文本格式数据文件&#xff0c;然后介绍通过“.”数据名的方式读取结构数组中的数据&#xff0c;最后使用plot( )绘制折线图。 工具/材料 MATLAB struct 操作方法 01 第一&#xff0c;首先准备数据&#xff0c;下图txt数据文…

【MATLAB统计分析与应用100】案例001:matlab使用Importdata函数导入文本txt数据

配套实验数据包下载链接&#xff1a;订阅专栏后&#xff0c;从私信查收链接。 文章目录 1. 调用importdata函数读取文件中的数据2. 调用importdata函数读取文件数据&#xff0c;返回结构体变量x3. 调用importdata函数读取文件中的数据&#xff0c;用;作分隔符&#xff0c;返回字…

ImportError: No module named data

问题 明明在IDE&#xff08;如Pycharm&#xff09;中运行 check_file.py 正常。到了xshell使用python check_file.py方式运行时&#xff0c;就报ImportError: No module named data。 # check_file.py from data import scannet_util产生这个问题的原因是python的搜索路径导致…

MATLAB数据导入(importdata函数)

编写程序时&#xff0c;有时需要从外部读入数据&#xff0c;这里介绍用importdata函数把数据导入MATLAB的方法。 1.加载和显示图像文件 在MATLAB中建立一个脚本文件&#xff0c;内容如下&#xff1a; filename ming.png; A importdata(filename); image(A);运行该文件&…

Matlab学习笔记(7)——importdata和load函数

importdata和load函数 引言importdata函数 Demo1Demo2Demo3Demo4Demo5Demo6 load函数 Demo importdata和load函数 引言 在使用matlab将数据导入到工作空间的时候,经常会使用到两个函数&#xff0c;一个是importdata函数&#xff0c;另一个是load函数&#xff0c;它们的使用…

Matlab中importdata函数的使用

目录 语法 说明 示例 导入并显示图像 导入文本文件并指定分隔符和列标题 导入文本文件并返回检测到的分隔符 从剪贴板导入数据 importdata函数的功能是从文件加载数据。 语法 A importdata(filename) A importdata(-pastespecial) A importdata(___,delimiterIn) A…

2021-02-23 Matlab数据导入--importdata和load函数

Matlab数据导入--importdata和load函数 importdata和load函数 1.引言 在使用matlab将数据导入到工作空间的时候,经常会使用到两个函数&#xff0c;一个是importdata函数&#xff0c;另一个是load函数&#xff0c;它们的使用方法和使用场景是太相同的&#xff0c;如果不太注意就…

curl命令的使用

curl命令是一个模拟浏览器请求的命令&#xff0c;当你去curl一个网址的时候&#xff0c;会返回给你网站的html代码&#xff0c;因此可以代替浏览器去发送请求&#xff0c;适用于那些纯命令行界面的linux&#xff0c;给您更爽的体验&#xff0c;话不多说&#xff0c;来看看curl命…

curl命令的常用操作

curl是非常实用的命令行工具&#xff0c;用来与服务器之间传输数据。它的命令行参数多达几十种。 在Linux环境中使用curl命令可以进行接口测试。利用curl对http协议发送Get/Post/Delete/Put请求,同时还可以携带header来满足接口的特定需求。 curl命令的语法 curl[options] [U…