C语言课程设计_学生成绩管理系统_奖学金评定
更新时间:2023-04-21 01:38:01 阅读量: 实用文档 文档下载
C语言课程设计,可以进行奖学金的评定
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define CH 20 // 最大字符
#define N 100 // 学生的最大个数
typedef struct student
//学生的结构体
{
char name[CH]; // 姓名
char no[CH]; //学号
float Signal_System; //信号
float iEn; //英语
float Digit_circuit; //数字电路
float C_language; //C语言
float fAvage; //平均分数
float S_all; //总分数
}student;
student s[N]; //学生数组
int num; //学生个数
/*程序辅助函数*/
/* 欢迎界面 */
void welcome()
{
printf("\n\n\n\n\n");
printf("\t\t ╭═══════┤成绩管理系统├═══════╮\n");
printf("\t\t║ \t║\n");
printf("\t\t║ \t║\n");
printf("\t\t║ 欢迎使用该成绩管理系统 \t║\n");
printf("\t\t║ \t║\n");
printf("\t\t║ 作者:某某 \t║\n");
printf("\t\t║ \t║\n");
printf("\t\t║ 按任意键继续…… \t║\n");
printf("\t\t║ \t║\n");
printf("\t\t║ \t║\n");
printf("\t\t╰═══════════════════════╯\n");
getchar();
}
/* 菜单 */
void meun()
{
system("cls"); //屏幕清空
printf("\n\n\n\n\n");
printf("\t\t ╭═══════┤成绩管理系统├═══════╮\n"); /*菜单选择*/
printf("\t\t║ …………某某制作 \t║\n");
printf("\t\t║ 学 生 成 绩 管 理 系 统 \t║\n");
printf("\t\t║ 主菜单 \t║\n");
printf("\t\t║ 1. 录入学生数据 \t║\n");
printf("\t\t║ 2. 删除学生数据 \t║\n");
printf("\t\t║ 3. 修改学生数据 \t║\n");
printf("\t\t║ 4. 显示学生数据 \t║\n");
printf("\t\t║ 5. 排序输出 \t║\n");
printf("\t\t║ 6. 显示符合奖学金的学生 \t║\n");
printf("\t\t║ 7. 成绩排序 \t║\n");
printf("\t\t║ 8. 退出成绩管理系统 \t║\n");
printf("\t\t║ \t║\n");
printf("\t\t╰═══════════════════════╯\n");
printf("\t\t \1选择菜单选项(1-8):");
}
void read_from_file()
//从文件中读取学
C语言课程设计,可以进行奖学金的评定
生的信息
{
FILE *fp;
int i=0;
fp=fopen("data.db","rb");
if(!fp)
{
printf("打开文件data.db失败!\n");
return ;
}
fread(&num,1,sizeof(num),fp); //先读取学生的个数
for(i=0;i<num;i++)
fread(&s[i],1,sizeof(student),fp); //读取每个学生的信息存放到结构体
fclose(fp);//关闭文件
}
void write_to_file()
//从文件中读取学生的信息
{
FILE *fp;
int i=0;
fp=fopen("data.db","wb+");
if(!fp)
{
printf("打开文件data.db失败!\n");
return ;
}
fwrite(&num,1,sizeof(num),fp); //先写入学生的个数
for(i=0;i<num;i++)
fwrite(&s[i],1,sizeof(student),fp); //写入每个学生的信息
fclose(fp);//关闭文件
}
void Add()//添加学生信息
{
int i=num;
printf("请输入姓名:");
scanf("%s",s[i].name);
printf("请输入学号:");
scanf("%s",s[i].no);
printf("请输入信号:");
scanf("%f",&s[i].Signal_System);
printf("请输入英语:");
scanf("%f",&s[i].iEn);
printf("请输入数字电路:");
scanf("%f",&s[i].Digit_circuit);
printf("请输入C语言 :");
scanf("%f",&s[i].C_language);
s[i].S_all=s[i].Signal_System+s[i].iEn+s[i].Digit_circuit+s[i].C_language;
//计算出总分数
s[i].fAvage=s[i].S_all/4;
//计算出平均分
num++;
}
void Delete()//删除学生信息
{
int i=0,j=0;
char no[CH]; //学号
printf("请输入你要删除的学生学号:");
scanf("%s",no);
for(i=0;i<num;i++)//先找到该学号对应的序号
if(strcmp(s[i].no,no)==0)
{
for(j=i;j<num-1;j++)
s[j]=s[j+1];
num--; //数量减少 1
return;
}
printf("没有这个学号!");
}
void Delete_infor()//修改学生信息
{
int i=0;
char no[CH]; //学号
printf("请输入你要修改的学生学号:");
scanf("%s",no);
for(i=0;i<num;i++)//先找到该学号对应的序号
if(strcmp(s[i].no,no)==0)
{
printf("请输入姓名:");
scanf("%s",s[i].name);
printf("请输入学号:");
scanf("%s",s[i].no);
printf("请输入信号:");
scanf("%f",&s[i].Signal_System);
printf("请输入英语:");
scanf("%f",&s[i].iEn);
printf("请输入数字电路:");
scanf("%f",&s[i].Digit_circuit);
printf("请输入C语言:");
scanf("%f",&s[i].C_language);
s[i].S_all=s[i].Signal_System+s[i].iEn+s[i].Digit_circuit+s[i].C_language;
//计算出总分数
s[i].fAvage=s[i].S_all/4;
//计算出平均分
return;
}
printf("没有这个学号!");
}
void Show_s()
{
int i=0;
printf("姓名 学号 信号 英语 数字电路 C语言 总分数 平均分\n");
for(i=0;i<
num;i++)
printf("%10s%12s%10.2f%9.2f%9.2f%9.2f%9.2f%9.2f\n",s[i].name,s[i].no,s[i].Signal_System,s[i].iEn,s[i].Digit_circuit,s[i].C_l
C语言课程设计,可以进行奖学金的评定
anguage,s[i].S_all,s[i].fAvage);
}
void Sort_s()
{
int i=0,j=0;
student t;//用于排序交换的临时变量
student s1[N]; //学生数组,用来排序的临时数组
for(i=0;i<num;i++)
s1[i]=s[i];
for(i=0;i<num;i++)
for(j=i+1;j<num;j++)
if(s1[i].fAvage<s1[j].fAvage)
{
t=s1[i];
s1[i]=s1[j];
s1[j]=t;
}
printf("姓名 学号 信号 英语 数字电路 C语言 总分数 平均分\n");
for(i=0;i<num;i++)
printf("%10s%12s%10.2f%9.2f%9.2f%9.2f%9.2f%9.2f\n",s1[i].name,s1[i].no,s1[i].Signal_System,s1[i].iEn,s1[i].Digit_circuit,s1[i].C_language,s1[i].S_all,s1[i].fAvage);
}
int is_scholarship(student *stu)
//判断是否符合讲学金,0表示不符合,1表示符合
{
if(stu->Signal_System<60||stu->iEn<60||stu->Digit_circuit<60||stu->C_language<60)
return 0;
if(stu->fAvage<80)
return 0;
return 1;
}
void Scholarship()//显示符合奖学金学生
//符合奖学金的学生的条件如下
//1)各个科目都及格,2)平均分大于 80分 3)平均分排序输出,一等为1个名额,二等为2个名额,三等为3个名额
{
student s1[N]; //学生数组,用来存放符合奖学金条件的学生
int num1=0; //符合奖学金学生的数目
int i=0,j=0;
student t;//用于排序交换的临时变量
for(i=0;i<num;i++)
if(is_scholarship(&s[i])==1)
{
s1[num1]=s[i];
num1++;
}
//对符合讲学金的同学进行排序
for(i=0;i<num1;i++)
for(j=i+1;j<num1;j++)
if(s1[i].fAvage<s1[j].fAvage)
{
t=s1[i];
s1[i]=s1[j];
s1[j]=t;
}
if(num1==0)
{
printf("没有符合奖学金的学生!\n");
return;
}
printf(" 姓名 等级\n");
for(i=0;i<num1;i++)
{
printf("%10s ",s1[i].name);
if(i==0)
printf("一等\n");
else if(i>=1&&i<=2)
printf("二等\n");
else if(i>=3&&i<=5)
printf("三等\n");
else
break;
}
}
void Search()//查询学生成绩
{
int i=0;
char no[CH]; //学号
printf("请输入你要查询的学生学号:");
scanf("%s",no);
for(i=0;i<num;i++)//先找到该学号对应的序号
if(strcmp(s[i].no,no)==0)
{
printf("姓名 学号 信号 英语 数字电路 C语言 总分数 平均分\n");
printf("%10s%12s%10.2f%9.2f%9.2f%9.2f%9.2f%9.2f\n",s[i].name,s[i].no,s[i].Signal_System,s[i].iEn,s[i].Digit_circuit,s[i].C_language,s[i].S_all,s[i].fAvage);
return;
}
printf("没有这个学号!");
}
void main()
{
int choose=0;
num=0;//初始化学生个数为0
//read_from_file(); //读取文件
welcome();
meun();
scanf("%d"
;,&choose);
printf("\n");
while(choose>0&&choose<8)
{
switch(choose)
{
case 1:Add();system("pause"
C语言课程设计,可以进行奖学金的评定
);break;
case 2:Delete();system("pause");break;
case 3:Delete_infor();system("pause");break;
case 4:Show_s();system("pause");break;
case 5:Sort_s();system("pause");break;
case 6:Scholarship();system("pause");break;
case 7:Search();system("pause");break;
}
printf("\n");
meun();
scanf(&q
uot;%d",&choose);
printf("\n");
}
write_to_file();//写入文件
printf("谢谢使用学生成绩评定系统!再见!\n");
getchar();
}
正在阅读:
乡村的早晨作文300字06-27
《我们愿意加班》 管理学的案例分析04-20
游戏成语趣味练习题一01-28
人类迈入电气时代教案 - 图文06-02
就业力训练慕课答案07-18
高考语文敬谦辞误用专题练习10-15
益西彭措堪布- 愿海同归(下)第七课05-31
1 构成建筑的基本要素是建筑功03-17
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 奖学金
- 评定
- 管理系统
- 成绩
- 语言
- 课程
- 学生
- 设计
- 新航标职业英语·综合英语预备级·学生用书Unit7
- 马克思主义06第五章试题
- 某太阳能电池企业生产废水治理工程实例
- 某立式组合机床的动力滑台液压传动系统
- 备战2012中考:中考语文修改病句精华试题汇编
- 考研备考西方经济学重难点全解:模拟训练题三(上)
- 浅谈高考驱动下高中生物复习课教学的模式构建
- 素菜菜谱家常菜做法
- 主题班会:学会积极的自我暗示ppt
- 医生与养生师的区别
- 基于部件的计算机设备信息管理系统的功能设计与应用
- 2010年专题复习Microsoft Word 文档
- 部编版三年级上学期语文第七单元第23课《带刺的朋友》同步课时测
- 快速配置本地Yum源及ftp源
- 2013年度安全生产目标责任书办公室
- 嵌入式系统原理及运用
- 小学四年级上册班务工作计划
- 环境方针、目标管理方案控制程序doc
- 一汽大众一级助理技师教案2013-2-17
- 《鸿门宴》教学详案 教案教学设计(人教版高一上册)