C语言课程设计(1)-学生成绩管理系统
源码、经验交流QQ群:613879714,有问题QQ群提问,这里不能及时回复
1. 主要功能
- 输入学生数据
- 显示学生数据
- 计算成绩
- 成绩排序
- 成绩查找
- 成绩修改
- 添加学生数据
- 删除学生成绩
2.演示
B站演示视频链接
C语言-学生成绩管理系统
3.源码
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#include<string.h>
#define N 30
struct student{ long num;char name[10];unsigned int score[3];float sum;float ave;};
int n;
//进入系统界面
void in()
{printf("\t\t┌───────────────┐\n"); printf("\t\t│ │\n");printf("\t\t│ 学生成绩管理系统 │\n");printf("\t\t│ │\n"); printf("\t\t│ 欢迎使用 │\n");printf("\t\t│ │\n"); printf("\t\t│ 按任意键进入系统…… │\n"); printf("\t\t└───────────────┘\n");getch();
}
//1.这是输入函数
void input(struct student stu[]){ int i,j;system("cls"); //清屏函数printf("\t\t\t┌──────┐\n");printf("\t\t\t│输入学生数据│\n");printf("\t\t\t└──────┘\n");printf("请输入学生人数(1-30):\n");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入第%d个学生的学号:",i+1);scanf("%ld",&stu[i].num);printf("请输入第%d个学生的姓名:",i+1);scanf("%s",stu[i].name);printf("请输入第%d个学生的3门课程成绩(0-100):\n",i+1);for(j=0;j<3;j++)scanf("%d",&stu[i].score[j]);}printf("按任意键返回主菜单:\n");getch();
}// 2.这是显示函数
void display(struct student stu[N])
{ int i;system("cls");printf("\t\t\t┌──────┐\n");printf("\t\t\t│显示学生数据│\n");printf("\t\t\t└──────┘\n");printf("%d 个学生数据为:\n",n);printf("学号\t姓名\tC语言\t高数\t英语\n");for(i=0;i<n;i++)printf("%ld\t%s\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);printf("按任意键返回主菜单:\n");getch();
}
//3.这是计算成绩
void aver(struct student stu[N])
{ int i,j;system("cls"); //清屏函数printf("\t\t\t┌──────┐\n");printf("\t\t\t│ 计算成绩 │\n");printf("\t\t\t└──────┘\n");for(i=0;i<n;i++){stu[i].ave=0;stu[i].sum=0;for(j=0;j<3;j++)stu[i].sum+=stu[i].score[j];stu[i].ave=stu[i].sum/3;}printf("%d个学生的数据:\n",n);printf("学号\t姓名\tC语言\t高数\t英语\t总成绩\t平均成绩\n");for(i=0;i<n;i++)printf("%ld\t%s\t%d\t%d\t%d\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);printf("按任意键返回主菜单:\n");getch();
}
//4.这是排序函数
void sort(struct student stu[N])
{int i,k,j;system("cls"); //清屏函数struct student temp;printf("\t\t\t┌──────┐\n");printf("\t\t\t│ 成绩排序 │\n");printf("\t\t\t└──────┘\n");for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(stu[k].ave<stu[j].ave) k=j;if(k!=i) { temp=stu[i];stu[i]=stu[k];stu[k]=temp;}}printf("学生成绩按从高到低排序后:\n");printf("学号\t姓名\tC语言\t高数\t英语\t总成绩\t平均成绩\n");for(i=0;i<n;i++)printf("%ld\t%s\t%d\t%d\t%d\t%.2f\t%.2f\n\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);printf("按任意键返回主菜单:\n");getch();
}
//5(1).学号查找
void order(struct student stu[N])
{int i,m;system("cls"); //清屏函数printf("\t\t\t┌──────┐\n");printf("\t\t\t│ 按学号查找 │\n");printf("\t\t\t└──────┘\n");printf("请输入要查找的学号:");scanf("%d",&m);for(i=0;i<N;i++){if(m==stu[i].num){printf("学号\t姓名\tC语言\t高数\t英语\t总成绩\t平均成绩\n");printf("%ld\t%s\t%d\t%d\t%d\t%.2f\t%.2f\n\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);break;}}if(i>=N)printf("找不到该学号!\n");printf("按任意键返回上一级:\n");getch();
}
//5(2).姓名查找
void binary(struct student stu[N])
{ system("cls"); //清屏函数int i;char ch[10];printf("\t\t\t┌──────┐\n");printf("\t\t\t│ 按姓名查找 │\n");printf("\t\t\t└──────┘\n");printf("请输入要查找的姓名:");scanf("%s",ch);for(i=0;i<N;i++){if(strcmp(ch,stu[i].name)==0){printf("学号\t姓名\tC语言\t高数\t英语\t总成绩\t平均成绩\n");printf("%ld\t%s\t%d\t%d\t%d\t%.2f\t%.2f\n\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);break;}}if(i>=N)printf("找不到该姓名!\n");printf("按任意键返回上一级:\n");getch();
}
//5(3).这是求最高成绩
void highENDlow(struct student stu[])
{ int i;system("cls"); //清屏函数printf("\t\t\t┌─────────┐\n");printf("\t\t\t│最高成绩和最低成绩│\n");printf("\t\t\t└─────────┘\n");struct student max,min;max=stu[0];min=stu[0];for(i=1;i<n;i++){if(stu[i].ave>max.ave) max=stu[i];{printf("最高分的学生数据是:\n");printf("学号\t姓名\tC语言\t高数\t英语\t总成绩\t平均成绩\n");printf("%ld\t%s\t%d\t%d\t%d\t%.2f\t%.2f\n\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);printf("\n");}if(stu[i].ave<max.ave) max=stu[i];{printf("最低分的学生数据是:\n");printf("学号\t姓名\tC语言\t高数\t英语\t总成绩\t平均成绩\n");printf("%ld\t%s\t%d\t%d\t%d\t%.2f\t%.2f\n\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);printf("\n");}}printf("按任意键返回主菜单:\n");getch();
}
//5.查找
void find(struct student stu[])
{ struct student *p;p=stu;int n;while(1){ system("cls");printf("\t\t┌───────────────┐\n");printf("\t\t│ 成绩查找 │\n");printf("\t\t├───────────────┤\n");printf("\t\t│ 1. 按学号查找 │\n");printf("\t\t│ 2. 按姓名查找 │\n");printf("\t\t│ 3. 查找最高/低成绩 │\n");printf("\t\t│ 4. 返回主菜单 │\n");printf("\t\t└───────────────┘\n");printf("请选择(1-3):");scanf("%d",&n);switch(n){ case 1: order(p); break;case 2: binary(p);break;case 3: highENDlow(p);break;case 4: return; }}
}
//6.修改
void modi(struct student stu[])
{ system("cls"); //清屏函数int i,m,j,score;char ch,y='Y',n='N';printf("\t\t\t┌──────┐\n");printf("\t\t\t│ 修改成绩 │\n");printf("\t\t\t└──────┘\n");printf("请输入要修改学生的学号:");scanf("%d",&m);for(i=0;i<N;i++)if(m==stu[i].num){printf("找到要该学生,信息如下:\n");printf("学号\t姓名\tC语言\t高数\t英语\t总成绩\t平均成绩\n");printf("%ld\t%s\t%d\t%d\t%d\t%.2f\t%.2f\n\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);printf("修改C语言成绩输入0,高数输入1,英语输入2:");scanf("%d",&j);printf("要修改为:");scanf("%d",&score);printf("╔════════╗\n");printf("║确认是否修改?Y/N║\n");printf("╚════════╝\n");scanf("%s",&ch);if(ch==y)printf("修改成功!\n");if(ch==n){printf("否!");goto end;}switch(j){case 0: stu[i].score[0]=score;break;case 1: stu[i].score[1]=score;break;case 2: stu[i].score[2]=score;break;}printf("修改后该学生,信息如下:\n");printf("学号\t姓名\tC语言\t高数\t英语\n");printf("%ld\t%s\t%d\t%d\t%d\n\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]); break;}if(i>=N)printf("找不到该学生信息!\n");end:printf("按任意键返回主菜单:\n");getch();
}
//7.添加学生数据
void add(struct student stu[])
{int i,j,m;system("cls"); //清屏函数printf("\t\t\t┌──────┐\n");printf("\t\t\t│添加学生数据│\n");printf("\t\t\t└──────┘\n");printf("请输入添加学生人数(30以内):\n");scanf("%d",&m);for(i=0;i<m;i++){printf("请输入第%d个学生的学号:",n+i+1);scanf("%ld",&stu[n+i].num);printf("请输入第%d个学生的姓名:",n+i+1);scanf("%s",stu[n+i].name);printf("请输入第%d个学生的3门课程成绩:\n",n+i+1);for(j=0;j<3;j++)scanf("%d",&stu[n+i].score[j]);}printf("添加成功!\n");printf("按任意键返回主菜单:\n");n+=m;getch();
}
//8.删除学生数据
void del(struct student stu[])
{system("cls"); //清屏函数int i,a;int flag=0;printf("\t\t\t┌──────┐\n");printf("\t\t\t│删除学生数据│\n");printf("\t\t\t└──────┘\n");printf("请输入要删除学生数据的学号:");scanf("%d",&a);for(i=0;i<n;i++){if(a==stu[i].num){flag=1; printf("学号\t姓名\tC语言\t高数\t英语\t总成绩\t平均成绩\n");printf("%ld\t%s\t%d\t%d\t%d\t%.2f\t%.2f\n\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].ave);printf("╔════════╗\n");printf("║确认是否删除?Y/N║\n");printf("╚════════╝\n");if (getchar()=='N'){break;} if(getchar()=='Y'){for(i;i<n;i++){stu[i].num=stu[i+1].num;strcpy(stu[i].name,stu[i+1].name);stu[i].score[0]=stu[i+1].score[0];stu[i].score[1]=stu[i+1].score[1];stu[i].score[2]=stu[i+1].score[2];}n--;printf("删除成功!\n");}} if(flag==0) printf("找不到该学号!\n");}printf("按任意键返回主菜单:\n");getch();
}
//这是主函数
int main()
{int n;struct student *p,stu[N];p=stu;system("cls"); //清屏函数in();while(1){ system("cls"); printf("\t\t┌───────────────┐\n");printf("\t\t│ 学生成绩管理系统 │\n");printf("\t\t├───────────────┤\n");printf("\t\t│ 1. 输入学生数据 │\n");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│ 0. 退出 │\n");printf("\t\t└───────────────┘\n\n");printf("请选择(0-8):");scanf("%d",&n);switch(n){ case 1: input(p); break;case 2: display(p);break;case 3: aver(p); break;case 4: sort(p);break;case 5: find(p);break;case 6: modi(p);break;case 7: add(p);break;case 8: del(p);break;case 0:exit(1);}}return 0;
}
C语言课程设计(1)-学生成绩管理系统相关推荐
- c语言声明第一个学生的成绩,C语言课程设计报告--学生成绩管理系统
<C语言课程设计报告--学生成绩管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计报告--学生成绩管理系统(30页珍藏版)>请在人人文库网上搜索. 1.学生成绩管理系统 ...
- 大学生课程设计 ------ Java Web课程设计(学生成绩管理系统03)
大学生课程设计 ------ Java Web课程设计(学生成绩管理系统03) Java Web课程设计(代码+课程报告) ---------------------我是分割线------------ ...
- 大学生课程设计 ------ Java Web课程设计(学生成绩管理系统01)
大学生课程设计 ------ Java Web课程设计(学生成绩管理系统01) Java Web课程设计(代码+课程报告) 课程作业效果如下: 学生1:后台实现.数据库设计.前端后台整合 学生2:前端 ...
- 【Python课程设计】学生成绩管理系统
[Python课程设计]学生成绩管理系统 1.需求分析 2.功能设计与分析 1.使用数据库对数据进行存取 (1)使用PyMySQL模块操作数据库对数据进行存取 (2)创建数据库school,创建数据表 ...
- 学生成绩管理系统mysql课程设计_学生成绩管理系统数据库课程设计报告.doc
目 录 TOC \o "1-2" \h \z \u HYPERLINK \l "_Toc303696065" 1.开发背景 PAGEREF _Toc303696 ...
- 程序设计课程设计报告(学生成绩管理系统)
程序设计课程设计报告 课程设计题目及内容 题目:学生成绩管理系统 设计要求及提示如下: (1).设计一个学生类Student,包括数据成员:姓名.学号.二门课程(面向对象程序设计.高等数学)的成绩. ...
- Web课程设计之学生成绩管理系统
Web课设之学生成绩管理系统 一.实验题目 二.实验目的 三.总体设计 3.1 实验要求: 3.2 本系统所运用到的技术栈: 3.3 本系统所运用的编程工具 3.4 核心技术介绍 3.5 模块介绍 3 ...
- 课程设计:学生成绩管理系统
亲爱的小伙伴们~[学生成绩管理系统]上线啦!!! [Java毕设项目]手把手教你搭建学生成绩管理系统_操作简单_功能实用(SQL+文档+代码)https://www.bilibili.com/vide ...
- Python课程设计:学生成绩管理系统(附源代码)
版权声明:本文为CSDN博主「大格子嘞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接: https://blog.csdn.net/qq_43971504 ...
最新文章
- 微信小程序发红包功能实现,附效果图加讲解。
- 哈工大威海c语言实验报告 第八章 无法运行程序,哈工大(威海)c语言实验报告册答案...
- php删除session中的值,PHP中session变量的销毁
- Springboot整合Hikari数据库连接池,密码加密
- PHP+AJAX 投票器功能
- sublime text的dockerfile语法高亮插件
- kettle java 变量传递_kettle的jdk1.7环境变量配置
- C#字符串:转数组、数字
- python基于值的内存管理模式_为什么说python采用的是基于值的内存管理模式
- 95-38-035-Buffer-AbstractByteBuf
- python编码规范总结、python编码转换
- 机器视觉基础知识汇总
- 两变频调速电机系统的神经网络逆同步控制
- Android 救援模式(Rescue Mode)原理剖析
- 串口服务器调试助手使用教程,串口服务器如何配置及串口调试6大技巧
- python中随机函数import random作用_python学习之随机函数random
- 多元微积分_向量函数偏导
- 熵值法的python实现方法
- spark常用的linux命令,GitHub - Sparkinzy/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...
- 连共享打印机问题汇总