| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 386 人关注过本帖
标题:求助,我写的学生成绩管理程序缺一段文件存储和读取功能,不知怎么写文件函 ...
只看楼主 加入收藏
a609897147
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-3-2
收藏
 问题点数:0 回复次数:0 
求助,我写的学生成绩管理程序缺一段文件存储和读取功能,不知怎么写文件函数
程序代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define N 20
int new_id=0;
struct student
{ long id;
  char name[20];
  float csheji;
  float gaoshu;
  float yingyu;
  float daishu;
  int    mingci;
  float average;
};
struct student stu[20];
void input();
void display();
void add();
void modify();
void del();
void find();
void average();
void sort();
void tongji();

void tongji()//分数段统计
{
  int i;float sum=0.00,float a1,a2,a3,a4;
  char m;
  do
  {
  for (i=0;i<new_id;i++)
  {
      sum+=stu[i].csheji;
      a1=sum/(i+1);
  }
  sum=0.00;
  for (i=0;i<new_id;i++)
  {
      sum+=stu[i].gaoshu;
      a2=sum/(i+1) ;

 
  }
  sum=0;
  for (i=0;i<new_id;i++)
  {
      sum+=stu[i].yingyu;
      a3=sum/(i+1);
  }
  sum=0;
  for (i=0;i<new_id;i++)
  {
      sum+=stu[i].daishu;
      a4=sum/(i+1);
  }
  int k,q=0,w=0,e=0,r=0,t=0;

 for(k=0;k<new_id;k++)

 {
     if(stu[k].csheji>=90)
                  q++;
       else if(stu[k].csheji>=80)
                  w++;
       else if(stu[k].csheji>=70)
                  e++;
       else if (stu[k].csheji>=60)
                  r++;
       else
                  t++;
         
       

 }
printf("C程序设计  100-90 %d人,89-80 %d人,79-70 %d人,69-60 %d人,60以下 %d人 平均分%.2f\n",q,w,e,r,t,a1);
  for(k=0,q=0,w=0,e=0,t=0,r=0;k<new_id;k++)
  {
     if(stu[k].gaoshu>=90)
                  q++;
       else if(stu[k].gaoshu>=80)
                  w++;
       else if(stu[k].gaoshu>=70)
                  e++;
       else if (stu[k].gaoshu>=60)
                  r++;
       else
                  t++;
         
      
  }

 printf(" 高等数学  100-90 %d人,89-80 %d人,79-70 %d人,69-60 %d人,60以下 %d人 平均分%.2f\n",q,w,e,r,t,a2);
  for(k=0,q=0,w=0,e=0,r=0,t=0;k<new_id;k++)
  {
    if(stu[k].yingyu>=90)
                  q++;
       else if(stu[k].yingyu>=80)
                  w++;
       else if(stu[k].yingyu>=70)
                  e++;
       else if (stu[k].yingyu>=60)
                  r++;
       else
                  t++;
         
       
  }
printf("     英语  100-90 %d人,89-80 %d人,79-70 %d人,69-60 %d人,60以下 %d人 平均分%.2f\n",q,w,e,r,t,a3);
  for(k=0,q=0,w=0,e=0,r=0,t=0;k<new_id;k++)
  {
   if(stu[k].daishu>=90)
                  q++;
       else if(stu[k].daishu>=80)
                  w++;
       else if(stu[k].daishu>=70)
                  e++;
       else if (stu[k].daishu>=60)
                  r++;
       else
                  t++;
         
       
   }

printf(" 线性代数  100-90 %d人,89-80 %d人,79-70 %d人,69-60 %d人,60以下 %d人 平均分%.2f\n",q,w,e,r,t,a4);
  
   scanf("%c",&m);

  }
while(!m);
}

void input()
{  int i=0;
   char ch;
   do
   { printf("\t\t\t\t\n输入第%d个学员的信息\n",i+1);
     printf("\n输入学生学号:");
     scanf("%d",&stu[i].id);
     printf("\n输入学员姓名:");
     scanf("%s",&stu[i].name);
     printf("\n输入c程序设计成绩:");


 {scanf("%f",&stu[i].csheji);}
if(stu[i].csheji<0||stu[i].csheji>100)


 {
         printf("\n输入错误,请重新输入\n");
         continue;
}
     printf("\n输入高数成绩:");
     scanf("%f",&stu[i].gaoshu);
if(stu[i].gaoshu<0||stu[i].gaoshu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;
}
     printf("\n输入英语成绩:");
     scanf("%f",&stu[i].yingyu);
if(stu[i].yingyu<0||stu[i].yingyu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;
}
     printf("\n输入线性代数成绩:");
     scanf("%f",&stu[i].daishu);
if(stu[i].daishu<0||stu[i].daishu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;
}
     printf("\n\n");
     i++;
     new_id=i;
     printf("是否继续输入?(Y/N)");
     printf("\n\n");
     ch=getch();
    }
     while(ch!='n'&&ch!='N');
}

void display()//显示
{

 int i;

 char k;

 average();

 sort();

 do

 {
  printf("\t\t\t班级学员信息列表\n");
  printf("学号     姓名    c程序设计    高数    英语     线性代数     平均值      名次\n");
  for(i=0;i<new_id&&stu[i].name[0];i++)
      printf("%d     %s      %.2f       %.2f     %.2f      %.2f      %.2f        %d\n",stu[i].id,stu[i].name,stu[i].csheji,stu[i].gaoshu,stu[i].yingyu,stu[i].daishu,stu[i].average,stu[i].mingci);
      printf("\n\n");

  scanf("%c",&k);

 }

 while(!k);

 
}





void add()//添加
{ char ch;


 do

 {
  printf("\n\t\t输入新插入学员信息\n");
  printf("\n输入学生号:");
  scanf("%d",&stu[new_id].id);
  printf("\n输入学员姓名:");
  scanf("%s",&stu[new_id].name);
  printf("\n输入c语言成绩:");

  scanf("%f",&stu[new_id].csheji);
if(stu[new_id].csheji<0||stu[new_id].csheji>100)


 {
         printf("\n输入错误,请重新输入\n");
         continue;
}
  printf("\n输入高数成绩:");
  scanf("%f",&stu[new_id].gaoshu);
if(stu[new_id].gaoshu<0||stu[new_id].gaoshu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;
}
  printf("\n输入英语成绩:");
  scanf("%f",&stu[new_id].yingyu);
if(stu[new_id].yingyu<0||stu[new_id].yingyu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;
}
  printf("\n输入线性代数成绩:");
  scanf("%f",&stu[new_id].daishu);
if(stu[new_id].daishu<0||stu[new_id].daishu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;
}
  printf("\n\n");
  new_id=new_id+1;
  average();
  sort();
  printf("是否继续输入?(Y/N)");
  printf("\n\n");
  ch=getch();

 }

 while(ch!='n'&&ch!='N');

 }





void modify()//修改
{  int i;
   char str[20];
   printf("输入要修改的学生姓名:");
   scanf("%s",str);
   for(i=0;i<N;i++)
   if(!strcmp(stu[i].name,str))
   {  printf("\n       输入新插入学员的信息\n");
      printf("\n       输入学生学号:");
      scanf("%d",&stu[i].id);
      printf("\n       输入c语言成绩:");
      scanf("%f",&stu[i].csheji);
if(stu[i].csheji<0||stu[i].csheji>100)


 {
         printf("\n输入错误,请重新输入\n");
         continue;
}
      printf("\n       输入高数成绩:");
      scanf("%f",&stu[i].gaoshu);
if(stu[i].gaoshu<0||stu[i].gaoshu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;}
      printf("\n       输入英语成绩:");
      scanf("%f",&stu[i].yingyu);
if(stu[i].yingyu<0||stu[i].yingyu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;
}
      printf("\n       输入线性代数成绩:");
      scanf("%f",&stu[i].daishu);
if(stu[i].daishu<0||stu[i].daishu>100)
{
         printf("\n输入错误,请重新输入\n");
         continue;
}
      printf("\n\n");
      sort();
      break;
   }
}



void del()//删除
{  int iid,i;
   printf("输入要删除学员的学号:");
   scanf("%d",&iid);
   for(i=0;i<new_id;i++)
   {
    if(stu[i].id==iid)
    {
     if(i==new_id)
         new_id-=1;
     else
     {  stu[i]=stu[new_id-1];
        new_id-=1;
   }
   sort();
   break;
  }

 }
}
void find()//查询
{  int i;
   char str[20],k;

 do

 {  printf("输入要查询的学生姓名:");
    scanf("%s",str);
    for(i=0;i<N;i++)
      if(!strcmp(stu[i].name,str))
      {   average();
          sort();
         printf("学号     姓名    c程序设计    高数    英语     线性代数     平均值      名次\n");
         printf("%d     %s      %.1f         %.1f    %.1f      %.1f         %.1f          %d\n",stu[i].id,stu[i].name,stu[i].csheji,stu[i].gaoshu,stu[i].yingyu,stu[i].daishu,stu[i].average,stu[i].mingci);
      }
         k=getch();

 }

 while(!k);
}
void sort()//排名
{  struct student t;
   int i,j;
   float k;
   average();
   for(i=0;i<N-1;i++)
   {     k=1;
       for(j=1;j<N-i;j++)
          if(stu[j-1].average<stu[j].average)
            {  t=stu[j];
              stu[j]=stu[j-1];
              stu[j-1]=t;
           }
          for(j=0;j<N;j++)
          { stu[j].mingci=k;
             ++k;
          }
  }

}
void average()//平均分
{  int i;
   float t;
   for(i=0;i<N;i++)
   {   t=stu[i].csheji+stu[i].gaoshu+stu[i].yingyu+stu[i].daishu;
       stu[i].average=t/4;
   }
}
void main()
{  int k,t=1;
  first: printf("\n               欢迎使用学生成绩管理系统                  \n\n\n");        
   do
   {   printf("                  1.录入学生成绩                  \n");
       printf("                  2.显示学生成绩                  \n");
       printf("                  3.添加学生成绩                  \n");
       printf("                  4.修改学生成绩                  \n");
       printf("                  5.删除学生成绩                  \n");
       printf("                  6.查询学生成绩                  \n");
       printf("                  7.成绩分数段                    \n");
       printf("                  8.退出                          \n");
       printf("                  请选择:\n\n");


       printf("                 制作者:孟丹青         \n");
       scanf("%d",&k);
       if(k>8||k<1)
           printf("输入有误,请重新输入^_^\n\n");
       switch(k)
       {    case 1:system("cls");input();system("cls");break;
            case 2:system("cls");display();break;
            case 3:system("cls");add();system("cls");break;
            case 4:system("cls");modify();system("cls");break;
            case 5:system("cls");del();system("cls");break;
            case 6:system("cls");find();break;
            case 7:system("cls");tongji();break;
            case 8:system("exit");exit(0);
           
       }
      }while(t);
}
搜索更多相关主题的帖子: 管理程序 存储 
2012-03-02 08:40
快速回复:求助,我写的学生成绩管理程序缺一段文件存储和读取功能,不知怎么写文 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022528 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved