| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 735 人关注过本帖
标题:急!一个关于学生作业完成情况管理系统的问题,小弟是新手,闹不明白啊
只看楼主 加入收藏
sunshinee
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-3-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
急!一个关于学生作业完成情况管理系统的问题,小弟是新手,闹不明白啊
小弟写一个编程作业,写完后好像问题很大,小弟是新手,闹不明白啊,所以想向大哥大姐们求助一下

题是这样的:
题目:假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。学期期末要根据每次作业的成绩计算出最终的平均成绩(满分100)。  
该程序应该具有下列功能:  
(1) 分数登记:  通过键盘输入某位学生某次作业的分数。  
(2) 查询分数:  给定学号,显示某位学生作业完成情况;  
(3) 修改分数:  给定某位学生的学号,修改该学生的作业完成信息;  
(4) 统计最终成绩: 计算并显示出每位学生的最终平时成绩;  
(5) 保存信息:  将输入的学生成绩和最终成绩保存在文件score.dat中  
(6) 退出

小弟是这样写的


#include"stdio.h"
struct score
{
char num[6];
int score[10];
}stu[50];
int con()
{  int i=0;char c;
  do{printf("是否继续(Y/N)?");
     flushall();
   c=getchar();}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');
   if(c=='N'||c=='n') i=1;
   return(i);}
int n;
void fun1()
{
int a,i;
clrscr();
printf("输入学生数:");
scanf("%d",&n);
for(a=0;a<n;a++)
{printf("学号:");scanf("%s",stu[a].num);
  printf("分数:");for(i=0;i<10;i++)
    scanf("%d",&stu[a].score);
} if(con()==1) return;
    else fun1();
}
void fun2()
{ int i,j;char num[6];
   clrscr();
  printf("请输入学号:");
  scanf("%s",num);
  for(i=0;i<n;i++)
  if(strcmp(num,stu.num)==0)
  {printf("学号:%s\n",stu.num);
   printf("成绩:");
  for(j=0;j<10;j++)
  printf("%d\t",stu.score[j]);
  } if(con()==1) return;
    else fun2();
}
void fun3()
{
int e,f;char num[6];
  clrscr();
printf("请输入要修改的学生学号:");scanf("%s",num);
for(e=0;e<n;e++)
if(strcmp(num,stu[e].num)==0)
{printf("请修改成绩: ");
  for(f=0;f<10;f++)
  {scanf("%d",&stu[e].score[f]);}
  } if(con()==1) return;
    else fun3();
}
void fun4()
{
  int b,c,ave,sum;
clrscr();
  for (b=0;b<n;b++)
  {sum=0;
  for(c=0;c<10;c++)
   sum+=stu.score[c];
  ave=sum/10;
  printf("平均成绩: %d\n",ave);}
getchar();
}
void fun5()
{ int b,d;
  FILE *fp;
  if((fp=fopen("score.dat","w"))==NULL)
{printf("无法打开文件.\n");
  return;
  }
  for(b=0;b<n;b++)
{ fprintf(fp,"学号:%s\n",stu.num);
   fprintf(fp,"成绩:");
   for(d=0;d<10;d++)
   {fprintf(fp,"%d\t",stu.score[d]);}
   fprintf(fp,"\n");
}
  fclose(fp);
}
main()
{char c; int i;
  do{ clrscr();
      printf("********************************welcome to**************************************\n\n");
      printf("\t\t\t>>> 学生作业完成情况管理系统<<<\n\n\n\n");
      printf("\t\t\t 1:分数登记\n");     printf("\t\t\t 2:查询分数\n");
      printf("\t\t\t 3:修改分数\n");     printf("\t\t\t 4:统计最终成绩\n");
      printf("\t\t\t 5:保存信息\n");     printf("\t\t\t 6:退出系统\n");
      printf("\t\t\t 请选择输入选项[1\\2\\3\\4\\5\\6]: \n");
    do{c=getchar();}while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&c!='6');
      getchar();
      switch&copy;
      { case'1':fun1();break;
case'2':fun2();break;
case'3':fun3();break;
case'4':fun4();break;
case'5':fun5();break;
case'6':exit(0);}
      printf("按任意键返回主菜单:\n");
      getchar();clrscr();
      }while(1);
}


和题目的要求不太一样。要求每次输入一次成绩,一共十次,可我编的是一下子输入十次成绩。不会改呀,求大哥大姐帮忙修正一下
搜索更多相关主题的帖子: 统计 大哥大 
2011-03-24 21:25
zanzan1986
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:140
注 册:2011-2-22
收藏
得分:5 
怎么不用链表啊,这样方便点啊!!!!!!你不加注释,谁会花那么多的时间看你的代码啊,一定注释每个函数它是起什么作用已级变量的用处,你代码啥都没注释,我连看都懒的看到111
2011-03-25 00:40
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:5 
很简单的
2011-03-25 14:36
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
呵呵  用什么无所谓  链表和数组的缺点和优点是互补的

                                         
===========深入<----------------->浅出============
2011-03-25 15:01
快速回复:急!一个关于学生作业完成情况管理系统的问题,小弟是新手,闹不明白啊 ...
数据加载中...
 
   



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

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