问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么用C语言作学生成绩管理系统

发布网友 发布时间:2022-05-01 06:03

我来回答

3个回答

热心网友 时间:2022-06-25 08:19

可以实现定义输入N个人M门科目的成绩输入,有查找、排序功能

#include <stdio.h>
#include <string.h>
#define NUM 100
struct student
{

int number; //学号
char name[12]; //姓名
int score[20]; //成绩
int total; //总分
double average; //平均分

};
struct student stu[NUM];
int c=0; //c是结构体数组的下标 在此为全局变量
int d=0; //d是结构体数组的下标 在此为全局变量
void menu(); //定义menu菜单
void input(); //插入数据函数
void sort(); //排序
void find(); //查找(按学号或姓名查找
void error(); //错误提示
void print(); //输出具体信息

void main()
{
menu();
}

void menu()//主菜单
{
int select; //选择(1--5间)
system("cls");
printf(" ☆ ★*☆ ★*☆ ★*☆★*☆ ★*☆★ \n");
printf(" ★*☆★ ◢█◣  ★*☆★*☆  \n");
printf(" ★*☆★*★  ◢███◣ ★*☆★*★☆    \n");
printf(" ★*☆ ★*☆ ★ .█████.★*☆ ★*☆ ★ \n");
printf(" ★*☆ ★*☆*★★.█田█田█.★*☆ ★*☆ ★★ \n");
printf(" ★*☆ ★*☆*★★.█田█田█.★*☆ ★*☆ ★★ \n");
printf(" ★*☆ ★*☆*★★.█田█田█.★*☆ ★*☆ ★★ \n");
printf(" ★*☆ ★*☆*★★.█田█田█.★*☆ ★*☆ ★★ \n");
printf(" ★*☆ ★*☆*★★.█田█田█.★*☆ ★*☆ ★★ \n");
printf(" ★*☆ ★*☆*★★.█田█田█.★*☆ ★*☆*★★ \n");
printf(" ★*☆ ★*☆*★★.█田█田█.★*☆ ★*☆ ★★ \n");
printf(" ★*☆ ★*☆*★★.█████.★*☆ ★*☆*★★ \n");
printf(" ★*☆ ★*☆*★★.█████.★*☆ ★*☆ ★★ \n");
printf(" ~~~~~*^_^* ◢██□██◣.*^_^* ~~~~~ \n\n");

printf(" 学生成绩管理系统\n");
printf(" ***************\n");
printf(" * *\n");
printf(" *[1]输入数据 *\n");
printf(" *[2]查找数据 *\n");
printf(" *[3]打印输出 *\n");
printf(" *[4]数据排序 *\n");
printf(" *[5]退出 *\n");
printf(" * *\n");
printf(" ***************\n");
printf("请输入你的选项(1--5):");
scanf("%d",&select);//输入要选择的项目
switch(select) //判断选择
{
case 1:input();break;
case 2:find();break;
case 3:print();break;
case 4:sort();break;
case 5:exit(0);break;
default:error();break;
}
}

void input() //输入入数据
{

int m,n,i;//m,n,i,j为循环变量
printf("请输入要统计的人数 M= ");
scanf("%d",&c);

printf("请输入要统计的科目数量N= ");
scanf("%d",&d);
printf("\n");
for(m=0;m<c;m++)
{
printf("请输入第%d个学生的学号 \t\t",m+1);
scanf("%d",&stu[m].number);
for (i=0;i<m;i++)
{
if (stu[m].number==stu[i].number)
{
printf("输入的学号重复请重新输入 \t\t");
scanf("%d",&stu[m].number);

}
}

printf("请输入第%d个学生的姓名 \t\t",m+1);
scanf("%s",&stu[m].name);
for (n=0;n<d;n++)
{
printf("请输入第个%d学生的第%d门科目的成绩\t",m+1,n+1);
scanf("%d",&stu[m].score[n]);

stu[m].total+=stu[m].score[n];
}
printf("总分:%d\t",stu[m].total);
stu[m].average=stu[m].total/(d+0.0);
printf("平均分%4.2f\n",stu[m].average);
}

printf("\n按回车键返回主菜单……\n");
getchar();
getchar();
menu();

}

void sort()//排序
{
int i,j;
printf("正在排序中.......\n");
for(i=0;i<c;i++)
{
for(j=i+1;j<=c;j++)
{
if(stu[i].total<stu[j].total)
{
stu[100]=stu[i];
stu[i]=stu[j];
stu[j]=stu[100];
}

}
}
printf("已排好序,请按回车键返回主菜单……\n");
getchar();
getchar();
menu();
}

void find() //查找
{
int stuNO; //学号
char name[12]; //姓名
int flag; //选择标志
int i,j; //循环变量
system("cls"); //清屏
printf("按学号查找[1]:\n");
printf("按姓名查找[2]:\n");
printf("请选择:");
scanf("%d",&flag);
if(flag==1)
{
printf("请输入你要查找的学号:");
scanf("%d",&stuNO);
for(i=0;i<c;i++)
{
if(stu[i].number==stuNO)
{
printf("\n==**==**==** %s的成绩 **==**==**==**==**\n",stu[i].name);
printf("学号:%d\t \n",stu[i].number);
for (j=0;j<d;j++)
{
printf("成绩%d:%d\n",j+1,stu[i].score[j]);
}

printf("总分:%d\t平均分:%4.2f\n",stu[i].total,stu[i].average);

}
}
}
else if(flag==2)
{
printf("请输入你要查找的姓名:");
scanf("%s",name);
for(i=0;i<c;i++)
{
if(strcmp(stu[i].name,name)==0)
{
printf("\n==**==**==** %s的成绩 **==**==**==**==**\n",stu[i].name);
printf("学号:%d\t ",stu[i].number);
for (j=0;j<d;j++)
{
printf("成绩%d:%d\n",j+1,stu[i].score[j]);
}
printf("总分:%d\t平均分:%4.2f\n",stu[i].total,stu[i].average);

}
}
}
else
{
printf("选择的范围(1或2),请重新输入……");
find();
}
printf("\n按回车键返回主菜单……\n");
getchar();
getchar();
menu();
}

void error()
{
system("cls"); //清屏
printf("输入有误,选择的范围是1--7:\n");
printf("\n按回车键继续……\n");
getchar();
getchar();
system("cls"); //清屏
menu();
}

void print() //打印学生成绩信息
{
int i,j;
printf("学号\t姓名\t");
for(j=0;j<d;j++)
{
printf("成绩%d\t",j+1);
}
printf(" 总分\t平均分");
printf("\n");
for(i=0;i<c;i++)
{
printf("%d\t%s\t",stu[i].number,stu[i].name);

for(j=0;j<d;j++)
{
printf("%d\t ",stu[i].score[j]);
}
printf(" %d\t%4.2f\n",stu[i].total,stu[i].average);
}

getchar();
getchar();
menu();

}

热心网友 时间:2022-06-25 08:20

这个这个……
问万燕去吧。

热心网友 时间:2022-06-25 08:20

课程设计吗?哎 没人愿意写的 楼上说的对 有偿可能会有人愿意写 最好还是自己写
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样让孩子主动找老师补课? 表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 控件的可用或不可用,怎么获取Enabled状 C语言:学生成绩管理系统 不懂英语怎么记住vba常用代码 怎样才可以判断一个控件的可见与不可见 java 如何用C语言编一个学生成绩管理系统 JavaScript中让一个HTML控件变不可用或不可见的语句怎么表示 C语言编写一个简单的学生成绩管理系统 windows下oracle客户端连接linux下服务器,如何配置? 阴历十月初一是什么节,可以提前2天烧纸吗? 可否用不可见光混合成可见光 vb中如何使可用控件不可见? 看专家说“可用不可见”有望成数据保护新趋势,目前这一块有什么成熟的技术吗? 求问:同盾科技知识联邦如何实现“数据可用不可见”的 数据“可用不可见”是什么意思? 每年农历十月初一是寒衣节,是为什么而设立的节日? 农历十月初一是什么节日啊 十月初一是什么节 男生,173cm,18岁,大学还可能长高吗? Excel表格内容被隐藏了,还能不能函数调用? 怎样在同一部手机上用两个微信!怎么才能下载另一个! VB中框架的enabled和visible属性有什么区别?? 传唤之后会不会被拘留 C语言 学生成绩管理系统? Unity3d如何调整GameObject的可见性,有什么函数没有? 传唤之后可以直接拘留吗 外地人2020年在天津武清购房取消限购*了吗可以落户了吗? 请问天津市武清区的户籍属于天津市限购*中所谓的本市户籍居民吗,在城六区买房有什么*吗? 显示隐藏线宽 学生成绩管理系统c语言 你好,如果在武清落户,再其他区买房有没有限制? 传唤当天会不会拘留? 外地户口在天津可以购房吗? 传唤询问后多久不拘留就是不拘留了? 武清的户口能在市里买房吗? 传唤去没被拘留,是不是就不拘留了? 传唤询问后多久不拘留就是不拘留了?*让我回去等通知,好多天了也没电话。 异地户口在天津购房有什么要求? 取保候审后被公安局传唤会被拘留吗 天津市武清区的集体户口,可以在市内六区买房吗? 问在天津武清杨村买房和户口的问题,详细一点,最好是准确一点的信息。