| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 804 人关注过本帖, 1 人收藏
标题:请各位帮忙给个具体的思路,
只看楼主 加入收藏
薛少鹏
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-3-17
结帖率:75%
收藏(1)
已结贴  问题点数:10 回复次数:11 
请各位帮忙给个具体的思路,
设计一个结构体数组,用于存储N个学生的信息,每个学生信息包括学号(num)、姓名(name[20])、性别(sex)、年龄(age)、三门课成绩(score[3])要求程序具有如下功能:

程序运行时,首先显示一个菜单,菜单内容包括:

输入学生信息

检索学生信息

从学号、姓名、年龄和某门课程成绩中选择一项,进行学生信息排序

选择了某项功能,完成后,可以再返回菜单
搜索更多相关主题的帖子: 结构体 姓名 
2011-05-25 22:48
张义宇
Rank: 2
等 级:论坛游民
帖 子:40
专家分:37
注 册:2011-5-19
收藏
得分:1 
#include<stdio.h>
struct student
{
  int mumber[1];  //学号
  char name[10];  //名字
  double score[4];   //成绩
};
排序我不会  下面的再看看书  加油
2011-05-25 23:14
xiangqiu1986
Rank: 2
等 级:论坛游民
帖 子:79
专家分:95
注 册:2011-5-5
收藏
得分:1 
这个有点复杂了!

学无止境!
2011-05-25 23:25
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:1 
可以参考书本上的例子。
每个不同的功能定义成不同的函数来执行,
在主函数里面用switch case语句来选择操作,调用相应的函数来执行需要的功能。

Einmal ist keinmal
2011-05-26 09:13
薛少鹏
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-3-17
收藏
得分:0 
主函数我知道怎么写,就是那个排序的有点困难点,其他的基本上有头绪
2011-05-26 13:12
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:1 
就是很普通的排序啊,方法倒是有很多种.
2011-05-26 14:01
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
这个真的不能自己做吗?????????


                                         
===========深入<----------------->浅出============
2011-05-26 15:56
chenjin1st
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:26
专家分:44
注 册:2011-5-13
收藏
得分:1 
楼主你好。呵呵。前天帮论坛里面有位童鞋做了一个类似你要的程序 希望你改改,能用
废话不多说上图
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
程序代码:
#include<stdio.h>
#include<stdlib.h>
struct student
{
  int mumber[1];  //学号
  char name[10];  //名字
  double score[4];   //成绩
};
typedef struct student SS;
SS stud[10],*st=stud;
int i;
int input();
int output();
int count();
int main()
{
  i=4;
  while(i){
   printf("请输入您要执行任务前的数值\n");
   printf("1 输入学生信息\n");
   printf("2 输出学生信息\n");
   printf("3 退出\n");
   scanf("%d",&i);
   if(i==1)  input();
   if(i==2){
       output();
       count();
    }
    if(i==3) exit(0);
  }
  return 0;
}
int input()
{
  i=0;
  printf("请注意输入学生的成绩格式为 成绩1,成绩2,成绩3,\n");
  for(i;i<5;i++){
    printf("请输入第%d名同学的信息\n",i+1);
    printf("请输入学号\n");
    scanf("%d",&stud[i].mumber[0]);
    printf("请输入姓名\n");
    scanf("%s",stud[i].name);
    printf("请输入成绩\n");
    scanf("%lf,%lf,%lf",&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
    stud[i].score[3]=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3;
  }
  return 0;
} 

int output()
{
  i=0;
  printf("-------------------------------------------------\n");
  printf("| 学号");
  printf("|   姓名   ");
  printf("| 成绩1");
  printf("| 成绩2");
  printf("| 成绩3");
  printf("| 平均成绩|\n");
  for(i;i<5;i++){
      printf("| %4d",stud[i].mumber[0]);
      printf("| %9s",stud[i].name);
      printf("| %4.2lf",stud[i].score[0]);
      printf("| %4.2lf",stud[i].score[1]);
      printf("| %4.2lf",stud[i].score[2]);
      printf("| %4.2lf   |",stud[i].score[3]);
      printf("\n");
  }
   printf("-------------------------------------------------\n");

 return 0;
} 

int count()
{    

      int j,k;
      double max;
      i=0;
      printf("其中按照平均成绩排序为\n");
      printf("-------------------------------------------------\n");
      printf("| 学号");
      printf("|   姓名   ");
      printf("| 成绩1");
      printf("| 成绩2");
      printf("| 成绩3");
      printf("| 平均成绩|\n");
      max=0;
      for(i;i<5;i++){
          for(j=0;j<5;j++){
            if(stud[j].score[3]>=max){
               max=stud[j].score[3];
               k=j;
              }
            }
          printf("| %4d",stud[k].mumber[0]);
          printf("| %9s",stud[k].name);
          printf("| %4.2lf",stud[k].score[0]);
          printf("| %4.2lf",stud[k].score[1]);
          printf("| %4.2lf",stud[k].score[2]);
          printf("| %4.2lf   |",stud[k].score[3]);

          printf("\n");
          stud[k].score[3]=-1;
          max=0;
      }
      printf("-------------------------------------------------\n");
return 0;
}


共同进步,共同收获!!!!
2011-05-26 16:52
江南烟雨0590
Rank: 2
等 级:论坛游民
帖 子:21
专家分:42
注 册:2011-5-22
收藏
得分:1 
#include<stdio.h>
struct student
{
    char sno[20];
    char sname[20];
    float score;
};
void input(struct student *t,int count)
{
    int i;
    for(i=0;i<count;i++,t++)
    {
        printf("%d:",i);
        scanf("%s %s %f",t->sno,t->sname,&t->score);
    }
}
void output(struct student *t,int count)
{
    int i;
    for(i=0;i<count;i++,t++)
    {
        printf("%d:%s %s %.2f\n",i,t->sno,t->sname,t->score);
    }
}
struct student max(struct student *t,int count)
{
    int i,maxindex=0;
    struct student *q,result;
    q=t;
    for(i=1;i<count;i++,t++)
    {
        if(t->score>q->score)
        {
            q=t;
        }
    }
    strcpy(result.sno,q->sno);
    strcpy(result.sname,q->sname);
    result.score=q->score;
    return result;
}
main()
{
    struct student stu[5],*p,t;
    p=stu;//p=&stu[0];
    input(p,5);
    output(p,5);
    t=max(p,5);
    printf("max:%s %s %.2f",t.sno,t.sname,t.score);
    getch();
}我这个是把成绩进行排序!!看看吧
2011-05-26 20:55
薛少鹏
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-3-17
收藏
得分:0 
回复 8楼 chenjin1st
好的我看看,真谢谢
2011-05-26 22:43
快速回复:请各位帮忙给个具体的思路,
数据加载中...
 
   



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

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