| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:[求助]我想这个问题应该好解决
只看楼主 加入收藏
xiaosan669
Rank: 1
来 自:西北工业大学
等 级:新手上路
帖 子:78
专家分:0
注 册:2007-3-9
收藏
 问题点数:0 回复次数:6 
[求助]我想这个问题应该好解决
#include "stdio.h"
#define N 4 /*定义符号常量N等于4*/
#define M 5 /*定义符号常量M等于5*/
main()
{
int select;
int score[N][M],i,j,aver,num;
while (1) /*菜单循环显示和功能循环处理*/
{ printf(" 欢迎使用学生查询系统!\n\n");/*菜单显示*/
printf("* * * * * * * * * * * * * * * * * * * * * *\n");
printf("* 请选择查询对象: *\n");
printf("* 1.据学生学号查询学生成绩及平均成绩 *\n");
printf("* 2.据课程代号查询学生课程成绩及平均成绩 *\n");
printf("* 3.据学生学号和课程代号查询学生成绩 *\n");
printf("* 4.学生原始数据的依次输入 *\n");
printf("* 5.谢谢使用,退出本系统! *\n");
INPUT:
printf("* * * * * * * * * * * * * * * * * * * * * *\n");
printf(" 请选择功能号1—5: ");
scanf("%d",&select);
if(select==5) /*退出系统*/
break;
if(select>=6||select<=0) /*输入功能号有误处理*/
{ printf("* * * 输入有误,请重新功能号1-5:* * *\n");
goto INPUT;
}
aver=0;
switch(select)
{
case 1: /*按学号查询功能*/
printf("请输入查询学生的学号\n");
scanf("%d",&num);
for(i=0;i<N;i++)
if(num==score[i][0])
for(j=1;j<M;j++)
{ printf("%d号课程成绩是%d\n",j,score[i][j]);
aver+=score[i][j];
}
printf("%d号学生的平均成绩为%d\n",num,aver/(M-1));
break;
case 2: /*按课程查询功能*/
printf("请输入查询课程的代号(1-%d):\n",M-1);
scanf("%d",&j);
for(i=0;i<N;i++)
{ printf("%d号学生的成绩为%d\n",i+1,score[i][j]);
aver+=score[i][j];
}
printf("%d号课程的平均成绩为%d\n",j,aver/N);
break;
case 3: /*按学号和课程查询功能*/
printf("请输入查询的学生学号和课程代号:\n");
scanf("%d%d",&num,&j);
for(i=0;i<N;i++)
if(num==score[i][0])
printf("%d号学生%d号课程成绩为%d\n",num,j,score[i][j]);
break;
case 4: /*输入学生原始数据*/
printf("请依次输入%d个学生的%d门成绩(学号、各门成绩)\n",N,M-1);
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&score[i][j]);
break;
default:break;
}
}
}




看着眼睛都受不了了      大家说说这里面那部分可以优化,简化一些?


谢谢!
2007-08-18 21:19
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
这种东西不该让别人代劳。。。

偶学编程,也许本身就是一个错。。。
2007-08-18 21:21
xiaosan669
Rank: 1
来 自:西北工业大学
等 级:新手上路
帖 子:78
专家分:0
注 册:2007-3-9
收藏
得分:0 

如果我想把这个程序修改成  



当输入成绩时   人数和成绩的科目数是自己定义 ,那么这个程序应该怎么修改?


========== 我的世界,我说了算! ==========
2007-08-18 21:32
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
收藏
得分:0 
用do-while取代菜单选择

惟有学习不断的学习!
2007-08-18 21:44
rocketabc
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-7-6
收藏
得分:0 
case 4: /*输入学生原始数据*/
printf("请依次输入学生的个数和成绩科目数用逗号格开");
scanf("%d,%d",&N,&M);
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&score[i][j]);

兴趣和爱好是我追求的方向
2007-08-18 23:10
Maltase
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2007-8-7
收藏
得分:0 
我简单的说下,希望有所帮助
菜单可以用do-while实现,每次while为真,直到用户输入5、退出为止,然后用switch case来判断用户输入的菜单选项,然后调用函数来执行

读书....努力读书.....
2007-08-19 11:54
lijy520
Rank: 2
等 级:论坛游民
帖 子:119
专家分:42
注 册:2007-8-8
收藏
得分:0 
分成函数
用调用
看着舒服,调试方便
还有就是楼上的方法

2007-08-19 12:56
快速回复:[求助]我想这个问题应该好解决
数据加载中...
 
   



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

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