|
|
1鱼币
//可以统计各个同学的平均绩点,绩点的算法与学校相同
//按专业对平均绩点排序,将结果输出到文件
//统计每个同学的不及格科目,并输出到文件
#include<stdio.h> //包含标准输入输出头文件
#include<stdlib.h> //包含标准库文件
void calculate(); //绩点计算
void viewCalculate(); //平均绩点查看
void order(); //排序
void viewUnpass(); //不及格
void write_in(); //数据录入函数
void write_out(); //数据显示函数
float average_point[3]={0};
//定义一个学生类,包含学生基本信息
struct Student_Class
{
char stu_name[20]; //学生姓名
char stu_sex; //学生性别
char stu_profession[20]; //学生专业
int stu_class; //学生所在班级
} stuInfor[3],temp;
//定义一个成绩类
struct Score_Class
{
int English_score; //英语成绩
int Math_score; //数学成绩
int Chinese_score; //语文成绩
} scoreInfor[3];
//绩点
struct score
{
float English_score; //英语成绩
float Math_score; //数学成绩
float Chinese_score; //语文成绩
}point[3];
struct Subject_Class
{
int subjectNo; //课程编号
char subjectName[20]; //课程名称
int subjectTime; //课程学时
int subjectScore; //课程学分
} subjectInfor[3]={{111,"英语",36,5},{112,"数学",42,5},{113,"语文",32,4}};
void main()//主函数
{
int i;
printf("\t\t*******平均绩点计算器******\n\n");//打印表头
printf("\t请选择操作:\n\n\t"); //请选择操作
while(1)
{
printf("\t ->0.退出\n\n\t"); //退出
printf("\t ->1.数据录入\n\n\t"); //数据录入
printf("\t ->2.查看平均绩点\n\n\t"); //查看平均绩点
printf("\t ->3.按绩点高低进行排名\n\n\t"); //排名
printf("\t ->4.查看不及格科目\n\n\t"); //不及格科目
printf("请输入:");
scanf("%d",&i);
switch(i)
{
case 0:
exit(0); //退出
case 1:
system("cls"); //清屏
write_in(); //调用数据录入函数
write_out(); //调用数据输出函数
continue;
case 2:
system("cls"); //清屏
calculate(); //调用平均绩点计算函数
viewCalculate(); //调用平均绩点查看函数
break;
case 3:
system("cls"); //清屏
order(); //调用排序函数
break;
case 4:
system("cls"); //清屏
viewUnpass(); //调用查看不及格科目函数
break;
default:
system("cls"); //清屏
printf("输入错误!请重新输入:\n\n\n");
}
}
}
void write_in()//定义信息输入函数
{
int i;
printf("\n\n现在开始输入\n\n"); //提示输入
for(i=1;i<=3;i++) //for循环
{
printf("请输入第 %d 位同学姓名:",i);
scanf("%s",&stuInfor[i].stu_name);
printf("请输入性别(男:A/女:B):");
scanf("%s",&stuInfor[i].stu_sex);
printf("请输入专业:");
scanf("%s",&stuInfor[i].stu_profession);
printf("请输入班级:");
scanf("%d",&stuInfor[i].stu_class);
printf("请输入英语成绩:");
scanf("%d",&scoreInfor[i].English_score);
printf("请输入数学成绩:");
scanf("%d",&scoreInfor[i].Math_score);
printf("请输入语文成绩:");
scanf("%d",&scoreInfor[i].Chinese_score);
}
}
void write_out()//定义信息显示函数
{
system("cls");//清屏
int i;
printf("\n\n你输入的信息为:\n\n");
printf("姓名 性别 \t专业\t\t班级\t英语成绩\t数学成绩\t语文成绩\n");
for(i=1;i<=3;i++)
{
printf("%s",stuInfor[i].stu_name);
printf("\t");
printf("%c",stuInfor[i].stu_sex);
printf("\t");
printf("%s",stuInfor[i].stu_profession);
printf("\t");
printf("%ld",stuInfor[i].stu_class);
printf("\t");
printf("%d",scoreInfor[i].English_score);
printf("\t\t");
printf("%d",scoreInfor[i].Math_score);
printf("\t\t");
printf("%d",scoreInfor[i].Chinese_score);
printf("\n\n");
}
}
void calculate() //定义平均绩点计算函数
{
int i;
for(i=0;i<=3;i++)
{
if(scoreInfor[i].English_score<60)
{
point[i].English_score=0;
}
if(scoreInfor[i].Math_score<60)
{
point[i].Math_score=0;
}
if(scoreInfor[i].Chinese_score<60)
{
point[i].Chinese_score=0;
}
}
for(i=0;i<=3;i++)
{
point[i].English_score=(float)(scoreInfor[i].English_score-60)/10+1;
point[i].Math_score=(float)(scoreInfor[i].Math_score-60)/10+1;
point[i].Chinese_score=(float)(scoreInfor[i].Chinese_score-60)/10+1;
average_point[i]=(point[i].English_score*5+point[i].Math_score*5+point[i].Chinese_score*4)/14;
}
}
void viewCalculate() //定义平均绩点查看函数
{
int i;
for(i=1;i<=3;i++)
{
printf("姓名 性别 \t专业\t\t班级\t\t平均绩点\n");
printf("%s",stuInfor[i].stu_name);
printf("\t");
printf("%c",stuInfor[i].stu_sex);
printf("\t");
printf("%s",stuInfor[i].stu_profession);
printf("\t");
printf("%ld",stuInfor[i].stu_class);
printf("\t");
printf("%f",average_point[i]);
printf("\n\n");
}
}
void order() //定义排序函数
{
int i,j;
for(j=0;j<=3;j++)
{
for(i=0;i<=3-j;i++)
{
if(average_point[i]<average_point[i+1])
{
temp=stuInfor[i];
stuInfor[i]=stuInfor[i+1];
stuInfor[i+1]=temp;
}
}
}
for(i=1;i<=3;i++)
{
printf("姓名 性别 \t专业\t\t班级\t\t平均绩点\t\t名次\n");
printf("%s",stuInfor[i].stu_name);
printf("\t");
printf("%c",stuInfor[i].stu_sex);
printf("\t");
printf("%s",stuInfor[i].stu_profession);
printf("\t");
printf("%ld",stuInfor[i].stu_class);
printf("\t");
printf("%f",average_point[i]);
printf("\t");
printf("%d",i);
printf("\n");
}
}
void viewUnpass() //定义不及格科目查看函数
{
/* int i;
for(i=0;i<=2;i++)
{
if(scoreInfor[i].English_score || scoreInfor[i].Math_score || scoreInfor[i].Chinese_score < 60)
{
printf("姓名\t性别\t专业\t\t班级\n");
printf("%s",stuInfor[i].stu_name);
printf("\t");
printf("%c",stuInfor[i].stu_sex);
printf("\t");
printf("%s",stuInfor[i].stu_profession);
printf("\t");
printf("%ld",stuInfor[i].stu_class);
printf("\t");
printf("\n\n");
}
}*/
}
|
|