| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 928 人关注过本帖
标题:自己第一次编写的程序!想编一个学生管理系统,有错,求助!
只看楼主 加入收藏
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
结帖率:89.66%
收藏
已结贴  问题点数:20 回复次数:18 
自己第一次编写的程序!想编一个学生管理系统,有错,求助!
程序代码:
        #include <stdio.h>

        # define N  1000

        struct student

         {   long num;

             char name[20];

             char sex;

             float score[5];

          }stu[N];  /*定义一个结构体数组*/

        int main(void)

        {
           void  sum(struct student);  /*求学生总成绩的函数*/

           void  average(struct student);/*求各科平均分的函数*/

           void  search(struct student ); /*求出有不及格的学生成绩*/

           int i=0,j=0;

           printf("please input the data:\n");

           for(i=0;i<N;i++)

           {  printf("please input ----num----name----sex----score----\n");

              scanf("%ld,%c,%c",&stu[i].num,&stu[i].name,&stu[i].sex); /*输入学生数据*/

              for(j=0;j<5;j++)

              scanf("%3f%3f%3f%3f%3f",stu[i].score[j]);

              printf("\n");

            }

           for(i=0;i<N;i++)

            {  printf("please output----num----name----sex----score----\n");

               printf("%ld,%c,%c",stu[i].num,stu[i].name,stu[i].sex); /*输出学生数据*/

               for(j=0;j<5;j++)

               printf("%3f%3f%3f%3f%3f",stu[i].score[j]);

               printf("\n");

            }

           sum( stu );

           average( stu);  /*函数调用*/

           search(stu);

           getch();

          }

          void  sum(  stu[])  /*定义求总分的函数*/

          {  float sum=0.0,saverage=0.0; /*saverage为每个学生的平均分*/

             int i,j;

             for(i=0;i<N;i++)

                {  printf("No %d",stu[i].num);

                   for(j=0;j<5;j++)

                   sum+=stu[i].score[j];

                   saverage=sum/5;

                   printf("%5f,%5f\n",sum,saverage);

                   printf("\n");

                }

           }

           void  average( stu[] ) /*定义求各科成绩平均分的函数*/

           {  float sum=0.0,average=0.0;

              int i,j;

              for(j=0;j<5;j++)

              {  printf("the average of %d score:"j+1);

                 for(i=0;i<N;i++)

                 sum+=stu[i].score[j];

                 average=sum/N;

                 printf("%f\n",average);

              }

           }

            void search( stu[]) /*定义求出不及格学生的成绩的函数*/

           {   int m=0;

               int i,j;

               for(i=0;i<N;i++)

                {   for(j=0;j<5;j++)

                    if(stu[i].score[j]<60)

                    m++;

                    if(m)

                    printf("%ld,%c,%c",stu[i].num,stu[i].name,stu[i].sex);

                    printf("%3f%3f%3f%3f%3f\n",stu[i].score[j]);   /*输出不及格学生的成绩*/

                    printf("\n");

                }

             }
这是第一次独立编写程序,想实现学生管理系统的部分功能,其实我还不太会,可能这根本就不算是学生管理系统,但是还是希望各位高手帮忙解答!谢谢了,提些意见!
搜索更多相关主题的帖子: 系统 学生 编写 
2010-09-23 12:59
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
你这错误也太多了吧
1:scanf里面,stu[i].name是一个字符串,所以对应的格式符应该是%s,printf里面也是;
2:int main()要有返回值,丢掉了return 0;
3:自定义的函数参数不对,既然是一个结构体,stu是一个结构体类型,但你的代码里编译器默认为字符串,所以要加上struct student;
4: 你到处都用for(i=0;i<N;i++)的形式来循环,可是你define N 1000,难道你调试的时候一定要输入1000组数吗?你没有结束条件的判断,这很不明智
5: average( stu[] )函数和void  sum(  stu[]) 函数有什么差别?
6: void search( stu[]) 函数你的代码不行,在某些地方丢失大括号。我按你的意思改动一下,贴给你看,就是for循环里面:
程序代码:
for(i=0;i<N;i++)
{  
    m=0;
    for(j=0;j<5;j++)
    {
        if(stu[i].score[j]<60)
        m++;
    }
    if(m)
    {
        printf("%ld,%s,%c",stu[i].num,stu[i].name,stu[i].sex);
        printf("%3f%3f%3f%3f%3f\n",stu[i].score[j]);   /*输出不及格学生的成绩*/
    }
    printf("\n");
}
其他的问题你自己去找一找,期待你把改动过后的代码贴上来,多思考,多动手


********多贴代码,少说空话*******
2010-09-23 13:28
gongyaping
Rank: 4
来 自:广东肇庆怀集
等 级:业余侠客
帖 子:174
专家分:257
注 册:2010-8-1
收藏
得分:0 
向楼主学习!
2010-09-23 18:44
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 2楼 ppfly
谢谢你的帮忙,我试着改了一下代码,但是还是有错误,我把代码再贴出来。望大侠再帮忙看看。
程序代码:
        #include <stdio.h>

        # define N  10

        struct student

         {   long num;

             char name[20];

             char sex;

             float score[5];

          }stu[N];  /*定义一个结构体数组*/

        int main(void)

        {
           void  sum(struct student);  /*求学生总成绩的函数*/

           void  average(struct student);/*求各科平均分的函数*/

           void  search(struct student ); /*求出有不及格的学生成绩*/

           int i=0,j=0;

           printf("please input the data:\n");

           for(i=0;i<N;i++)

           {  printf("please input ----num----name----sex----score----\n");

              scanf("%ld,%s,%c",&stu[i].num,&stu[i].name,&stu[i].sex); /*输入学生数据*/

              for(j=0;j<5;j++)

              scanf("%3f%3f%3f%3f%3f",stu[i].score[j]);

              printf("\n");

            }

           for(i=0;i<N;i++)

            {  printf("please output----num----name----sex----score----\n");

               printf("%ld,%c,%c",stu[i].num,stu[i].name,stu[i].sex); /*输出学生数据*/

               for(j=0;j<5;j++)

               printf("%3f%3f%3f%3f%3f",stu[i].score[j]);

               printf("\n");

            }

           sum( struct student stu[] );

           average(struct student stu[]);  /*函数调用*/

           search(struct student stu[]);

           return 0;

           getch();

          }

          void  sum( struct student  stu[])  /*定义求总分的函数*/

          {  float sum=0.0,saverage=0.0; /*saverage为每个学生的平均分*/

             int i,j;

             for(i=0;i<N;i++)

                {  printf("No %d",stu[i].num);

                   for(j=0;j<5;j++)

                   sum+=stu[i].score[j];

                   saverage=sum/5;

                   printf("%5f,%5f\n",sum,saverage);

                   printf("\n");

                }

           }

           void  average(struct student  stu[ ]) /*定义求各科成绩平均分的函数*/

           {  float sum=0.0,average=0.0;

              int i,j;

              for(j=0;j<5;j++)

              {  printf("the average of %d score:"j+1);

                 for(i=0;i<N;i++)

                 sum+=stu[i].score[j];

                 average=sum/N;

                 printf("%f\n",average);

              }

           }

            void search(struct student  stu[]) /*定义求出不及格学生的成绩的函数*/

           {   int m=0;

               int i,j;

               for(i=0;i<N;i++)

               {       m=0;

                      for(j=0;j<5;j++)

                   {  if(stu[i].score[j]<60)

                     m++;

                   }

                    if(m)

                   {   printf("%ld,%c,%c",stu[i].num,stu[i].name,stu[i].sex);

                       printf("%3f%3f%3f%3f%3f\n",stu[i].score[j]);   /*输出不及格学生的成绩*/

                    }

                    printf("\n");

                }

             }
主要错误:错误 xueshe~1.c 58: 表达式语法错在 main 函数中
错误 xueshe~1.c 60: 表达式语法错在 main 函数中
错误 xueshe~1.c 62: 表达式语法错在 main 函数中
警告 xueshe~1.c 66: 不能到达的代码在 main 函数中
错误 xueshe~1.c 72: 与'sum'声明中的类型不匹配
错误 xueshe~1.c 96: 与'average'声明中的类型不匹配
错误 xueshe~1.c 102: 函数调用缺少 ')'在 average 函数中
错误 xueshe~1.c 118: 与'search'声明中的类型不匹配
我也不会改了。希望大家帮帮忙!

付出终将有回报!Ibelieve!
2010-09-23 18:50
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 3楼 gongyaping
谢谢你的夸奖,这还是我学习C语言来第一次受到别人的夸奖!!呵呵,大哥帮帮忙行吗?呵呵。我实在没找出来错误了!

付出终将有回报!Ibelieve!
2010-09-23 18:53
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
程序代码:
#include <stdio.h>

        # define N  10

        struct student

         {   long num;

             char name[20];

             char sex;

             float score[5];

          }stu[N];  /*定义一个结构体数组*/

        int main(void)

        {
           void  sum(struct student);  /*求学生总成绩的函数*/

           void  average(struct student);/*求各科平均分的函数*/

           void  search(struct student ); /*求出有不及格的学生成绩*/

           int i=0,j=0;

           printf("please input the data:\n");

           for(i=0;i<N;i++)

           {  printf("please input ----num----name----sex----score----\n");

              scanf("%ld,%s,%c",&stu[i].num,stu[i].name,&stu[i].sex); /*输入学生数据*

              for(j=0;j<5;j++)

              scanf("%3f%3f%3f%3f%3f",&stu[i].score[j]);

              printf("\n");

            }

           for(i=0;i<N;i++)

            {  printf("please output----num----name----sex----score----\n");

               printf("%ld,%s,%c",stu[i].num,stu[i].name,stu[i].sex); /*输出学生数据*/

               for(j=0;j<5;j++)

               printf("%3f%3f%3f%3f%3f",stu[i].score[j]);

               printf("\n");

            }

           sum( struct student stu[] );

           average(struct student stu[]);  /*函数调用*/

           search(struct student stu[]);

           return 0;

           getch();

          }

          void  sum( struct student  stu[])  /*定义求总分的函数*/

          {  float sum=0.0,saverage=0.0; /*saverage为每个学生的平均分*/

             int i,j;

             for(i=0;i<N;i++)

                {  printf("No %d",stu[i].num);

                   for(j=0;j<5;j++)

                   sum+=stu[i].score[j];

                   saverage=sum/5;

                   printf("%5f,%5f\n",sum,saverage);

                   printf("\n");

                }

           }

           void  average(struct student  stu[ ]) /*定义求各科成绩平均分的函数*/

           {  float sum=0.0,average=0.0;

              int i,j;

              for(j=0;j<5;j++)

              {  printf("the average of %d score:"j+1);

                 for(i=0;i<N;i++)

                 sum+=stu[i].score[j];

                 average=sum/N;

                 printf("%f\n",average);

              }

           }

            void search(struct student  stu[]) /*定义求出不及格学生的成绩的函数*/

           {   int m=0;

               int i,j;

               for(i=0;i<N;i++)

               {       m=0;

                      for(j=0;j<5;j++)

                   {  if(stu[i].score[j]<60)

                     m++;

                   }

                    if(m)

                   {   printf("%ld,%c,%c",stu[i].num,stu[i].name,stu[i].sex);

                       printf("%3f%3f%3f%3f%3f\n",stu[i].score[j]);   /*输出不及格学生的成绩*/

                    }

                    printf("\n");

                }

             }
错误太多了,现在改了5个地方的致命错误。

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-09-23 19:11
tfblc
Rank: 2
等 级:论坛游民
帖 子:34
专家分:25
注 册:2010-9-18
收藏
得分:0 
对照英文的错误提示,一步步的早撒,试着去解释你自己的程序,同时注意一下语法
2010-09-23 19:28
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 6楼 sunyh1999
谢谢版主的帮忙了!!

付出终将有回报!Ibelieve!
2010-09-23 22:29
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
      
程序代码:
            #include <stdio.h>

            #define N  4

            struct student

             {   long num;

                 char name[20];

                 char sex;

                 float score[5];

             }stu[N];  /*定义一个结构体数组*/

           void  sum(struct student []);  /*求学生总成绩的函数*/

           void  average(struct student []);/*求各科平均分的函数*/

           void  search(struct student [] ); /*求出有不及格的学生成绩*/

           int main(void)
          {
                 int i=0,j=0;

                 float f;

                 f = 0.0;

                 printf("input ----num----name----sex");

                 for(i=0;i<N;i++)

               {
                    scanf("%ld,%s,%c",&stu[i].num,stu[i].name,&stu[i].sex); /*输入学生数据*/

                    printf("\ninput score1----score2----score3----score4----score5\n");

                    for(j=0;j<5;j++)

                       {    scanf("%3f", &f);

                            stu[i].score[j] = f;

                        }

                }

                  printf("output----num----name----sex");

                 for(i=0;i<N;i++)

              {
                     printf("%ld,%s,%c",stu[i].num,stu[i].name,stu[i].sex); /*输出学生数据*/

                     printf("output score1----score2----score3----score4----score5\n");

                     for(j=0;j<5;j++)

                     printf("%10f ",stu[i].score[j]);

                     printf("\n");
              }

                 sum( stu );

                 average( stu );  /*函数调用*/

                 search( stu );

                 getch();

                 return 0;

            }

             void  sum( struct student  stu[])  /*定义求总分的函数*/
       {
             float sum=0.0,saverage=0.0; /*saverage为每个学生的平均分*/

             int i,j;

             for(i=0;i<N;i++)
            {
                  printf("No %d ",stu[i].num);

                  sum = 0.0;

                  for(j=0;j<5;j++)

                  sum+=stu[i].score[j];

                  saverage=sum/5;

                  printf("%5f,%5f\n",sum,saverage);

                  printf("\n");
            }

       }

            void  average(struct student  stu[ ]) /*定义求各科成绩平均分的函数*/

       {
               float sum=0.0,average=0.0;

               int i,j;

               for(j=0;j<5;j++)
            {
                  printf("the average of %d score:", j+1);

                  sum = 0.0;

                  for(i=0;i<N;i++)

                  sum+=stu[i].score[j];

                  average=sum/N;

                  printf("%f\n",average);
             }

       }

           void search(struct student  stu[]) /*定义求出不及格学生的成绩的函数*/

      {
              int m=0;

              int i,j;

              for(i=0;i<N;i++)
           {
                m=0;

                for(j=0;j<5;j++)

                   {  if(stu[i].score[j]<60)

                          m++;

                   }

              if(m)
                   {
                      printf("%ld,%s,%c",stu[i].num,stu[i].name,stu[i].sex);

                      for(j=0;j<5;j++)

                      printf("%3f ",stu[i].score[j]);   /*输出不及格学生的成绩*/
                   }

               printf("\n");

          }

       }
经过大量朋友的帮助,这个程序现在可以运行,但是还是有点小错误,不能输入成绩,还请各位大侠帮忙看看!!

付出终将有回报!Ibelieve!
2010-09-24 09:26
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:20 
回复 9楼 whbc
可以输入数据,只不过你的scanf里面格式符之间是逗号,
scanf("%ld,%s,%c",&stu[i].num,stu[i].name,&stu[i].sex);
所以输入时也要输入逗号!(建议把逗号去掉)

另外,程序要加上头文件#include <conio.h>,因为code里面有getch()。

建议LZ调整交互界面,要不然运行起来太难看

********多贴代码,少说空话*******
2010-09-24 11:32
快速回复:自己第一次编写的程序!想编一个学生管理系统,有错,求助!
数据加载中...
 
   



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

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