| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1428 人关注过本帖
标题:新手求助,期末试题。
只看楼主 加入收藏
lyc199265
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:21 
新手求助,期末试题。
    已知有n名学生学号、姓名、课程成绩如下:
学号    姓名    数学    英语    计算机    哲学    总分    名次
10604222014    小明    65    70    90    80    305   
1060422223    小敏    78    84    60    70    292   
1060422236    小华    50    69    78    80    277   
1060422251    小丽    70    67    89    75    301   
1060422265    小梅    68    79    84    90    321   
设计一个菜单程序,完成功能如下:
    打印姓名,总分;
打印学号、姓名、成绩、总分、名次。

没弄懂题目的意思,打印学号 姓名成绩总分名次是怎么个意思,求解答
另外求解题思路,该用到哪些。
搜索更多相关主题的帖子: 姓名 打印 课程 哲学 
2012-06-24 12:52
lyc199265
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-24
收藏
得分:0 
不知道是要我手动输入那些内容保存还是在做程序的时候就保存好。
2012-06-24 12:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我看你是整个学期翘课的

授人以渔,不授人以鱼。
2012-06-24 12:55
lyc199265
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-24
收藏
得分:0 
T.T版主大哥我错了。。
2012-06-24 12:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用lyc199265在2012-6-24 12:54:59的发言:

不知道是要我手动输入那些内容保存还是在做程序的时候就保存好。

要你实现某个功能,你在子函数(或模块)就只需要接收需要的东西,不用管数据原来是怎么储存的,那是另外的函数或模块做的事,你设计好这个打印函数,在上层程序调用你的打印函数之前,它自己负责把数据转换为你需要的数据结构传给你,不需你的子函数理会。你是还没有分割模块的程序设计意识。

授人以渔,不授人以鱼。
2012-06-24 13:00
lyc199265
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-24
收藏
得分:0 
回复 5楼 TonyDeng
#include<stdio.h>
#include<conio.h>
struct student
main()
{ void add1 ();
  void add2 ();
int a,v;
system( "graftabl 936 ");
textbackground(2);
textcolor(12);
while(1)
 {clrscr();                     
 for(v=0;v<5;v++)
 printf("\n");
 printf("                      学生成绩           \n");
 printf("\n");
 printf("       ┌─────────────────────┐\n");
 printf("         1.学生姓名总分                         │\n");
 printf("       ├─────────────────────┤\n");
 printf("         2.学号、姓名、成绩、总分、名次         │\n");
 printf("       ├─────────────────────┤\n");
 scanf("%d",&a);
 switch(a)
 { case 1: add1 (); getch();continue;
   case 2: add2 (); getch();continue;
   case 3: break;}
   break;}}

void add1()
  { int c[5];int i,j,m,v;
    char n[5][18]={"小明","小敏","小华","小丽","小梅"};
    int b[5][4]={{65,70,90,65},
                 {78,84,60,70},
                 {50,69,78,80},
                 {70,67,89,75},
                 {68,79,84,90}};
    clrscr();
    for(i=0;i<5;i++)   
    { c[i]=0;
      for(j=0;j<4;j++)
      c[i]=c[i]+b[i][j];}  
    for(v=0;v<5;v++)
    printf("\n");
    printf("                   学生成绩表          \n");
    printf("\n");
    printf("         ┌──────┬──────┐\n");
    printf("             姓名       总分    │\n");
    for(i=0;i<5;i++)
    { printf("         ├──────┼──────┤\n");
      printf("             ");

      for(m=0;m<18;m++)
      printf("%c",n[i][m]);
      printf("\b\b\b\b\b\b\b\b\b\b│    %d     │",c[i]);
      printf("\n");}
      printf("         └──────┴──────┘\n");
   }
 void add2()
   {int c[5];int i,t,j,m,w,e,v;
    char str[12];
    char a[5][12]={"1060422214","1060422223","1060422236","1060422251","1060422265"};
    char n[5][18]={"小明","小敏","小华","小丽","小梅"};
    int b[5][4]={{65,70,90,65},
                 {78,84,60,70},     
                 {50,69,78,80},   
                 {70,67,89,75},
                 {68,79,84,90}};  
    clrscr();
    for(i=0;i<5;i++)
    { c[i]=0;
      for(j=0;j<4;j++)
      c[i]=c[i]+b[i][j];}
      for(i=0;i<4;i++)
      { for(j=i+1;j<5;j++)  
        if(c[i]<c[j])
        {t=c[i];c[i]=c[j];c[j]=t;
         strcpy(str,a[i]);strcpy(a[i],a[j]);strcpy(a[j],str);
        for(e=0;e<18;e++)
        {t=n[i][e];n[i][e]=n[j][e];n[j][e]=t;}
        for(w=0;w<4;w++)
        {t=b[i][w];b[i][w]=b[j][w];b[j][w]=t;}} }
    for(v=0;v<5;v++)
    printf("\n");
    printf("                              学生成绩表                             \n");
    printf("\n");
    printf("    ┌─——──┬───┬───┬───┬───┬───┬───┬───┐\n");
    printf("    │ 学号     │ 姓名 │ 数学 │ 英语 │计算机│ 哲学 │ 总分 │ 名次 │\n");
    for(i=0;i<5;i++)
    { printf("    ├─——──┼───┼───┼───┼───┼───┼───┼───┤\n");
      printf("    │%6s│",a[i]);
      for(m=0;m<18;m++)
      printf("%c",n[i][m]);
      printf("\b\b\b\b\b\b\b\b\b\b\b\b");
      for(t=0;t<4;t++)
      printf("│%5d ",b[i][t]);
      printf("│%5d │%5d │\n",c[i],i+1); }
      printf("    └─——──┴───┴───┴───┴───┴───┴───┴───┘\n");
      getch();
   }



能帮我看下这个错在哪吗= =还是根本就不是这样。。。
2012-06-24 13:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你这个题目,明显有团队合作编程的成份。你所负责的,只是其中一个菜单的功能,那么,上面的数据如何储存,使用什么数据结构,是团队共同研究决定的,数据结构确定之后,大家都用那个结构进行编程。题目假定是这样,你也应这样假定,设计的菜单功能程序,不能假定数据是储存在什么地方的,但首先自己确定一种数据结构,假定调用处如此这般调用自己,然后把实现代码做好就是了。测试程序的时候,要自己写一个调用代码,把需要的数据传给自己的函数,提交之后,人家怎么调用你是人家的事,你只要把自己函数需要什么数据、如何调用的说明文档写好,就是了。

你完全可以假定那些数据是储存在某个外部文件上的,也应该作这种假定,至于是二进制数据还是文本数据,自己考虑。

授人以渔,不授人以鱼。
2012-06-24 13:08
lyc199265
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-24
收藏
得分:0 
回复 5楼 TonyDeng
#include<stdio.h>
#include<conio.h>
struct student
main()
{ void add1 ();
  void add2 ();
int a,v;
system( "graftabl 936 ");
textbackground(2);
textcolor(12);
while(1)
 {clrscr();                     
 for(v=0;v<5;v++)
 printf("\n");
 printf("                      学生成绩           \n");
 printf("\n");
 printf("       ┌─────────────────────┐\n");
 printf("         1.学生姓名总分                         │\n");
 printf("       ├─────────────────────┤\n");
 printf("         2.学号、姓名、成绩、总分、名次         │\n");
 printf("       ├─────────────────────┤\n");
 scanf("%d",&a);
 switch(a)
 { case 1: add1 (); getch();continue;
   case 2: add2 (); getch();continue;
   case 3: break;}
   break;}}

void add1()
  { int c[5];int i,j,m,v;
    char n[5][18]={"小明","小敏","小华","小丽","小梅"};
    int b[5][4]={{65,70,90,65},
                 {78,84,60,70},
                 {50,69,78,80},
                 {70,67,89,75},
                 {68,79,84,90}};
    clrscr();
    for(i=0;i<5;i++)   
    { c[i]=0;
      for(j=0;j<4;j++)
      c[i]=c[i]+b[i][j];}  
    for(v=0;v<5;v++)
    printf("\n");
    printf("                   学生成绩表          \n");
    printf("\n");
    printf("         ┌──────┬──────┐\n");
    printf("             姓名       总分    │\n");
    for(i=0;i<5;i++)
    { printf("         ├──────┼──────┤\n");
      printf("             ");

      for(m=0;m<18;m++)
      printf("%c",n[i][m]);
      printf("\b\b\b\b\b\b\b\b\b\b│    %d     │",c[i]);
      printf("\n");}
      printf("         └──────┴──────┘\n");
   }
 void add2()
   {int c[5];int i,t,j,m,w,e,v;
    char str[12];
    char a[5][12]={"1060422214","1060422223","1060422236","1060422251","1060422265"};
    char n[5][18]={"小明","小敏","小华","小丽","小梅"};
    int b[5][4]={{65,70,90,65},
                 {78,84,60,70},     
                 {50,69,78,80},   
                 {70,67,89,75},
                 {68,79,84,90}};  
    clrscr();
    for(i=0;i<5;i++)
    { c[i]=0;
      for(j=0;j<4;j++)
      c[i]=c[i]+b[i][j];}
      for(i=0;i<4;i++)
      { for(j=i+1;j<5;j++)  
        if(c[i]<c[j])
        {t=c[i];c[i]=c[j];c[j]=t;
         strcpy(str,a[i]);strcpy(a[i],a[j]);strcpy(a[j],str);
        for(e=0;e<18;e++)
        {t=n[i][e];n[i][e]=n[j][e];n[j][e]=t;}
        for(w=0;w<4;w++)
        {t=b[i][w];b[i][w]=b[j][w];b[j][w]=t;}} }
    for(v=0;v<5;v++)
    printf("\n");
    printf("                              学生成绩表                             \n");
    printf("\n");
    printf("    ┌─——──┬───┬───┬───┬───┬───┬───┬───┐\n");
    printf("    │ 学号     │ 姓名 │ 数学 │ 英语 │计算机│ 哲学 │ 总分 │ 名次 │\n");
    for(i=0;i<5;i++)
    { printf("    ├─——──┼───┼───┼───┼───┼───┼───┼───┤\n");
      printf("    │%6s│",a[i]);
      for(m=0;m<18;m++)
      printf("%c",n[i][m]);
      printf("\b\b\b\b\b\b\b\b\b\b\b\b");
      for(t=0;t<4;t++)
      printf("│%5d ",b[i][t]);
      printf("│%5d │%5d │\n",c[i],i+1); }
      printf("    └─——──┴───┴───┴───┴───┴───┴───┴───┘\n");
      getch();
   }



能帮我看下这个错在哪吗= =还是根本就不是这样。。。
2012-06-24 13:12
lyc199265
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-24
收藏
得分:0 
卡住了= =又发了一道出来。。。
2012-06-24 13:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我不知道你这程序所说的有错是什么意思,即你怎么知道有错的?但就这代码看,作为期末试题,这样交上去,即使能实现目的,但也是不能令人满意的,我肯定不收货。期末试题,你不能像平时做小练习那样写了。

授人以渔,不授人以鱼。
2012-06-24 13:17
快速回复:新手求助,期末试题。
数据加载中...
 
   



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

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