标题:新手求助,期末试题。
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-372139-1-1.html




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

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