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


付出终将有回报!Ibelieve!
2010-09-24 13:09
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 10楼 ppfly
还是不行啊,只能输入一行,剩下的就不行了。回车后就这样了!
图片附件: 游客没有浏览图片的权限,请 登录注册

付出终将有回报!Ibelieve!
2010-09-24 13:27
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

可以的,结贴吧~

********多贴代码,少说空话*******
2010-09-24 13:38
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 13楼 ppfly
大侠用的是什么编译器啊?

付出终将有回报!Ibelieve!
2010-09-24 13:55
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
不是编译器的问题,我在10楼说了,你的scanf里面是逗号,所以你输入的时候也要输逗号,比如你照这样原样输入:12345,ppfly,M回车,输入score的时候不必打逗号,用空格或回车都行,输完再回车一下,就可以继续输入信息,你对照上一楼的截图。

PS:其实你要是把scanf里面的逗号去掉,也是有问题的,因为你的sex是char型,所以name输入完以后的回车符自动就赋给了sex,那么再输入一个字符回车的话又会出现你12楼的情况,解决办法是要么不去逗号,要么把scanf换成其他的函数,要么把sex换成字符串等其他类型,当然你可以想想其他更好的方法,自己改进

********多贴代码,少说空话*******
2010-09-24 14:12
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 15楼 ppfly
谢谢大侠的帮助,我弄好了!

付出终将有回报!Ibelieve!
2010-09-24 14:34
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
好了还不结贴?给10楼加20分~

********多贴代码,少说空话*******
2010-09-24 14:37
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
最后在贴出代码来吧,不是好代码!!欢迎大家指点!
程序代码:
            #include <stdio.h>

            #define N  4

            #include <conio.h>

            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;



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

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

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

                    printf("input 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 14:37
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:0 
回复 17楼 ppfly
马上,行!!呵呵!!

付出终将有回报!Ibelieve!
2010-09-24 14:39
快速回复:自己第一次编写的程序!想编一个学生管理系统,有错,求助!
数据加载中...
 
   



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

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