鱼C论坛

 找回密码
 立即注册
查看: 3177|回复: 4

急急急!哪位大侠能帮我把程序完善!万分感谢!

[复制链接]
发表于 2012-3-14 23:10:58 | 显示全部楼层 |阅读模式
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");
  }
  
}*/
}

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-3-15 18:26:25 | 显示全部楼层
你这个要完善什么。。。。没说清楚
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-18 11:44:28 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-26 08:01:38 | 显示全部楼层
呵呵   给力  这么长啊   是要优化优化
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-26 10:46:25 | 显示全部楼层
一定是南邮的苦逼孩子 哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-12 02:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表