java题求助!谢谢 50

我想在运行时手动输入学号,平时成绩,期中成绩期末上机,期末笔试数据,输入数据之后在执行求平均成绩的计算,不知道程序该改哪里,题目如下:已知某班学生Java程序设计课程各阶... 我想在运行时手动输入学号,平时成绩,期中成绩期末上机,期末笔试数据,输入数据之后在执行求平均成绩的计算,不知道程序该改哪里,题目如下:

已知某班学生Java程序设计课程各阶段的成绩如下:
学号 平时成绩 期中成绩 期末上机 期末笔试
101 90 88 87 84
102 78 60 70 75
103 90 86 91 93
104 50 44 36 60
105 88 87 90 92
106 64 72 70 80
107 60 61 55 55
108 81 84 83 87
请按以下要求编写程序:
(1) 定义类及成员方法完成学生总评成绩的计算,计算方法是:平时成绩占10%,期中考试占25%,期末考试的上机部分占15%,期末笔试部分占50%。
(2) 输出这八个学生Java程序设计的最后成绩单,要求有学号、各阶段成绩及最后的总评成绩。
(3) 统计并输出得分超过80分(含80分)的学生学号及总评成绩。
(4) 统计并输出得分低于60分(不含60分)的学生学号及总评成绩。
(5) 按总评成绩从高到低输出成绩单。
(6) 计算并输出全班的平均分。
提示:数值变量可以先定义成字符串型,然后再转换成数值进行运算和输出。
程序如下:

public class student {
public static void main(String[] args) {
int[] no={101,102,103,104,105,106,107,108};
int[] usua={90,78,90,50,88,64,60,81};
int[] mid={88,60,86,44,87,72,61,84};
int[] endo={87,70,91,36,90,70,55,83};
int[] end={84,75,93,60,92,80,55,87};
double[] comment=new double[8];
double avg;

for(int i=0;i<no.length;i++)
{
comment[i]=end[i]*0.5+endo[i]*0.15+mid[i]*0.25+usua[i]*0.1;
}

System.out.println("---------------学生成绩表---------------");
System.out.println("学号\t平时成绩\t期中成绩\t期末上机\t期末笔试\t成绩总评");
for(int i=0;i<no.length;i++)
{
System.out.println(no[i]+"\t"+usua[i]+"\t"+mid[i]+"\t"+endo[i]+"\t"+end[i]+"\t"+comment[i]);
}
System.out.println("\n总评成绩超过80分(包括80分)同学的学号分别为:");
for(int i=0;i<comment.length;i++)
{
if(comment[i]>=80)
{
System.out.print(no[i]+"\t");
}
}
System.out.println();
System.out.println("\n总评成绩低于60分的同学学号分别为:");
{
for(int i=0;i<comment.length;i++)
{
if(comment[i]<60)
{
System.out.print(no[i]+"\t");
}
}
}
int total=0;
for(int i=0;i<no.length;i++)
{
total+=comment[i];
}
System.out.println("\n\n---------------学生名次单-----------------");
System.out.println("学号\t平时成绩\t期中成绩\t期末上机\t期末笔试\t成绩总评");
int index=0;

do{
double max=comment[0];
int l=0;
for(int i=1;i<no.length;i++)
{
if(comment[i]>max)
{
max=comment[i];
l=i;
}

}
System.out.println(no[l]+"\t"+usua[l]+"\t"+mid[l]+"\t"+endo[l]+"\t"+end[l]+"\t"+comment[l]);
comment[l]=0;
index++;
}while(index<8);
avg=total/no.length;
System.out.println("平均成绩为:"+avg);
}
}
展开
 我来答
gdsfggdf
2008-12-16 · TA获得超过840个赞
知道小有建树答主
回答量:219
采纳率:100%
帮助的人:197万
展开全部
//人数异常的帮助你捕获了下。其他的成绩数值异常我没帮你捕获了,你自己改改吧。应该符合你的要求了。。

import javax.swing.JOptionPane;

public class student {
public static void main(String[] args) {
int[] no;
int[] usua;
int[] mid;
int[] endo;
int[] end;
double[] comment;
double avg;
int jilu = 0;
int beifen = 0;
String x = "";
int bei = 0;
do {
try {
x = JOptionPane.showInputDialog("一共有多少学生?");
jilu = Integer.parseInt(x);
beifen = jilu;
bei = 1;
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "请检查你的是不是数字");
}
} while (bei != 1);
no = new int[jilu];
usua = new int[jilu];
mid = new int[jilu];
endo = new int[jilu];
end = new int[jilu];
comment = new double[jilu];
for (int i = 0; i < no.length; i++) {
x = JOptionPane.showInputDialog("输入第" + (i + 1) + "个学生的学号");
jilu = Integer.parseInt(x);
no[i] = jilu;
x = JOptionPane.showInputDialog("输入第" + (i + 1) + "个学生的平时成绩");
jilu = Integer.parseInt(x);
usua[i] = jilu;
x = JOptionPane.showInputDialog("输入第" + (i + 1) + "个学生的期中成绩");
jilu = Integer.parseInt(x);
mid[i] = jilu;
x = JOptionPane.showInputDialog("输入第" + (i + 1) + "个学生的期末上机");
jilu = Integer.parseInt(x);
endo[i] = jilu;
x = JOptionPane.showInputDialog("输入第" + (i + 1) + "个学生的期末笔试");
jilu = Integer.parseInt(x);
end[i] = jilu;
}
for (int i = 0; i < no.length; i++) {
comment[i] = end[i] * 0.5 + endo[i] * 0.15 + mid[i] * 0.25
+ usua[i] * 0.1;
}
for (int i = 0; i < no.length; i++) {
comment[i] = end[i] * 0.5 + endo[i] * 0.15 + mid[i] * 0.25
+ usua[i] * 0.1;
}
System.out.println("---------------学生成绩表---------------");
System.out.println("学号\t平时成绩\t期中成绩\t期末上机\t期末笔试\t成绩总评");
for (int i = 0; i < no.length; i++) {
System.out.println(no[i] + "\t" + usua[i] + "\t" + mid[i] + "\t"
+ endo[i] + "\t" + end[i] + "\t" + comment[i]);
}
System.out.println("\n总评成绩超过80分(包括80分)同学的学号分别为:");
for (int i = 0; i < comment.length; i++) {
if (comment[i] >= 80) {
System.out.print(no[i] + "\t");
}
}
System.out.println();
System.out.println("\n总评成绩低于60分的同学学号分别为:");
{
for (int i = 0; i < comment.length; i++) {
if (comment[i] < 60) {
System.out.print(no[i] + "\t");
}
}
}
int total = 0;
for (int i = 0; i < no.length; i++) {
total += comment[i];
}
System.out.println("\n\n---------------学生名次单-----------------");
System.out.println("学号\t平时成绩\t期中成绩\t期末上机\t期末笔试\t成绩总评");
int index = 0;

do {
double max = comment[0];
int l = 0;
for (int i = 1; i < no.length; i++) {
if (comment[i] > max) {
max = comment[i];
l = i;
}

}
System.out.println(no[l] + "\t" + usua[l] + "\t" + mid[l] + "\t"
+ endo[l] + "\t" + end[l] + "\t" + comment[l]);
comment[l] = 0;
index++;
} while (index < beifen);
avg = total / no.length;
System.out.println("平均成绩为:" + avg);
}
}
匿名用户
2012-04-14
展开全部
你说的这个问题,这上面就有很详细的解决方案哦,他们的java教程很全面,你可以去了解下
http://www.baidu.com/s?wd=%B1%B1%B7%E7%CD%F8&rsv_bp=0&rsv_spt=3&inputT=422
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云峰63
2008-12-16 · TA获得超过1415个赞
知道大有可为答主
回答量:1710
采纳率:0%
帮助的人:2042万
展开全部
我看全部都要改,因为你写的不象java程序,倒像c语言,完全是面向过程编写的,甚至没看到一个student实例。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式