| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 474 人关注过本帖
标题:这个程序问题多的很,求教怎么改啊
只看楼主 加入收藏
安详
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-6-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
这个程序问题多的很,求教怎么改啊
题目是请设计一个学生作业成绩管理程序,以方便教师对学生作业成绩的管理假设某门课程一学期要留 10 次作业,每次老师要进行批改,批改后要给出每次作业学生的分数并登记(成绩最高为 100)。学期末要根据每次作业的成绩计算出最终的平均成绩。该程序应该具有以下功能
  (1)能从键盘输入某个学生的信息(不包含作业成绩)。
  (2)给定学号,显示该学生每次作业的分数。
  (3)给定班号,显示该班学生每次作业的分数以及平均成绩。
  (4)给定学号,修改该学生的作业成绩。
  (5)给定学号,删除该学生。

#include<stdio.h>
struct studentInfo
{   
    int num;
    int cls;
    char* name;
    int score[10];
}
struct stuType
{
    studentInfo stu[MUNMAX];
    int num;}
void DisplayMenu();   /
int choiceItem();
void Print_aInfo(struct stuType s,int index);
void PrintInfo(struct stuType s);   
void Input_aInfo(struct studentInfo* as);
void Input_allInfo(struct stuType* s,int num);
int Search(struct stuType stu);
void Modify(struct stuType* s,stuType stu);
void del(struct stuType* s);
void Search_cls(struct stuType* s);
void Pj(struct stuType* s);
do{
        choice=choiceItem();
        switch (choice)
        {
            case 0:printf("\nWelcome to");break;
            case 1:Input_allInfo(&student,MUNMAX);break;
            case 2:Input_allInfo(&student,1); break;
            case 3:PrintInfo(student);break;
            case 4:Init(&student);break;
            case 5:{if((index=Search(student))!=-1)
                       Print_aInfo(student,index);
                    else printf("\n No eixst the student.\n");} break;
            case 6:Modify(&student,student);break;
            case 7:del(&student);break;
            case 8:Search_cls(&student);break;
            case 9:Pj(&student);break;
        }
    }while(choice);
void Input_aInfo(struct studentInfo* as)
{
    printf("Please input num:");
    scanf("%d",&as->num);
    printf("Please input cls:");
    scanf("%d",&as->cls);
    as->name=(char*)malloc(30);
    printf("Please input name:");
    scanf("%s",as->name);
    printf("Please input 10 score:");
    for(int j=0;j<10;j++)
        scanf("%d",&as->score[j]);
}
void Input_allInfo(struct stuType* s,int num)
{
    printf("\nEnter %d infomations.\n",num);
    for (int i=0;i<num;i++)
    {
        if (s->num==MUNMAX)
        {
            printf("\nOverflow.");
            break;
        }
        Input_aInfo(&s->stu[s->num++]);
    }
}
void Print_aInfo(struct stuType s,int index)
{
    printf("\n%4d %-10s",s.stu[index].num,s.stu[index].name);
    printf("%4d\n",s.stu[index].cls);
    for(int i=0;i<=10;i++)
       printf("%4d\n",s.stu[index].score[i]);
}

void PrintInfo(struct stuType s)   
{
    if(s.num==0)
    {
        printf("\nNo student.");
        return;
    }
    for(int i=0;i<s.num;i++)
    {
        printf("\n%4d %-16s",s.stu[i].num,s.stu[i].name);
        printf("%4d%6.1d\n",s.stu[i].cls,s.stu[i].score[10]);
    }
}
int Search(struct stuType stu)
{
    int num;
    printf("\nEnter num:");
    scanf("%d",&num);
    for(int i=0;i<stu.num;i++)
       if(stu.stu[i].num==num)
          return i;
    return -1;
}
void Modify(struct stuType* s,stuType stu)
{
    int num;
    if (s->num==0)printf("\nNo student.");
    else printf("\nEnter num:");
    scanf("%d",&num);
    for (int i=0;i<=num;i++)
        if (stu.stu[i].num==num)
        {
            printf("Please input 10 score");
            for(int j=0;j<10;j++)
               scanf("%d",&s->stu[i].score[j]);
        }
}

void Del(struct stuType* s)
{
    int num,i;
    if (s->num==0) printf("\nNo student.");
    else printf("\nEnter num:");
    scanf("%d",&num);
    s->num--;
    for(i=0;i<10,s->stu[i].num==num;i++)
    {
        s->stu[i].cls=0;
        s->stu[i].num=0;
        s->stu[i].name=0;
    }

    for(int j=0;j<10;j++)
        s->stu[i].score[j]=0;
}
void Search_cls(struct stuType* s)
{
    int cls;
    printf("\nEnter cls:");
        scanf("%d",&cls);
    if(cls==0)
    {
        printf("\nNo class.");
    }
    else
    {
        for(int i=0;i<10,s->stu[i].cls==cls;i++)
        {
            Print_aInfo(*s,i);
        }
    }
}

void Pj(struct stuType* s
{
      int num;
      printf("Please input num:");
      scanf("%d",&num);
      for(int i=0;i<s->num;i++){
          if(s->stu[i].num==num){
              float pj,sum=0;
              for(int j=0;j<10;j++)
              sum=sum+s->stu[i].score[j];
              pj=sum/10;
              printf("Pj score is %f",pj);
          }
       }
}
搜索更多相关主题的帖子: 管理程序 include 键盘 教师 课程 
2014-06-24 10:35
安详
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-6-24
收藏
得分:0 
求大神帮忙啊
2014-06-24 10:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
逐个改

授人以渔,不授人以鱼。
2014-06-24 11:00
快速回复:这个程序问题多的很,求教怎么改啊
数据加载中...
 
   



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

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