| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 775 人关注过本帖
标题:新手自制一个简单的学生管理系统求助
只看楼主 加入收藏
寒冰003
Rank: 1
等 级:新手上路
帖 子:9
专家分:8
注 册:2015-1-27
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:5 
新手自制一个简单的学生管理系统求助
程序代码:
import java.util.*;
public class guanlixitong1 {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("请输入学生人数:");
        int renshu=in.nextInt();//存储学生人数
        System.out.println("请输入课程数目:");
        int courseNum=in.nextInt();//存储课程数目
        String[] name=new String[renshu];//声明一个数组String用来存储学生的姓名
        String[] course=new String[courseNum];//声明一个String数组来存储课程的名字
        int[][] number=new int[renshu][courseNum];//声明一个int数组来存储各科成绩
        int[] sum=new int[renshu];//声明一个int数组来存储总分
        int[] avg=new int[renshu];//声明一个int数组来存储平均分
        String[] str=new String[renshu];
        for(int i=0;i<course.length;i++){
            System.out.println("请输入第"+(i+1)+"门课程的名字");
            course[i]=in.next();
        }
        for(int i=0;i<renshu;i++){
            int s=0;
            String str11="";
            System.out.println("请输入学生的姓名:");
            name[i]=in.next();//用来存储学生的姓名
            for(int j=0;j<courseNum;j++){
                System.out.println("请输入学生"+name[i]+course[j]+"成绩");
                number[i][j]=in.nextInt();//用来存储特定学生的特定成绩
                s+=number[i][j];//求总分
                str11+=number[i][j]+"\t";//把一个学生各科成绩整合为字一个字符串符串
            }
            sum[i]=s;
            avg[i]=s/courseNum;
            str[i]=name[i]+"\t"+str11+sum[i]+"\t"+avg[i];//把学生名字,各科成绩,总分,平均分整合为一个字符串
        }
        for(int i=0;i<str.length-1;i++){            //冒泡排序
            for(int j=0;j<str.length-1;j++){ 
                if(sum[j]<sum[j+i]){
                        
                    String t2=str[j];
                    str[j]=str[j+1];
                    str[j+1]=t2;
                }
            }
        }                                            //冒泡排序
        /*
         *输出效果
         */
        System.out.print("学生");
        for(int i=0;i<course.length;i++){
            System.out.print("\t"+course[i]);//循环输出每个科目的名称
        }
        System.out.print("\t总分\t平均分\t排行榜");
        System.out.println();
        for(int i=0;i<renshu;i++){
            System.out.println(str[i]+"\t第"+(i+1)+"名");
        }
    }
}
排序不正确,感觉是冒泡排序那里出了问题,可是不知道具体错哪了,求助
图片附件: 游客没有浏览图片的权限,请 登录注册
附张运行结果图,输入的数据和输出都正确,就是排序不对求大神赐教
搜索更多相关主题的帖子: 管理系统 
2015-08-04 17:25
寒冰003
Rank: 1
等 级:新手上路
帖 子:9
专家分:8
注 册:2015-1-27
收藏
得分:0 
补充一下,我的思路是把学生名字,各科成绩,总分,平均分整合为一个字符串,然后根据总分对比,然后用冒泡法把他们排序输出
2015-08-04 17:39
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:20 
程序代码:
for(int i=0;i<str.length-1;i++){            //冒泡排序
            for(int j=0;j<str.length-1;j++){ 
                if(sum[j]<sum[j+i]){  //这里有问题
                        
                    String t2=str[j];
                    str[j]=str[j+1];
                    str[j+1]=t2;
                }
            }
        }               

既然知道是排序的问题你就应该好好检查排序算法,这是排错的基本方法

一片落叶掉进了回忆的流年。
2015-08-06 21:57
sunsulei
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-8-7
收藏
得分:0 
回复 3楼 诸葛欧阳
应该是j+1吧。 刚开始学习java语言。
2015-08-07 02:47
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
学习一下

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-08-07 07:30
寒冰003
Rank: 1
等 级:新手上路
帖 子:9
专家分:8
注 册:2015-1-27
收藏
得分:0 
回复 3楼 诸葛欧阳
额额 谢了,我都没注意把i和1敲错了  太像了,看几遍没看出来
2015-08-09 17:03
快速回复:新手自制一个简单的学生管理系统求助
数据加载中...
 
   



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

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