精华内容
下载资源
问答
  •  题目:有一批学生,每个学生有3门课程,从键盘上输入以下数(姓名,三门成绩)输入格式:如zhangsan,30,40,60计算出总成绩。并把学生的信息和计算出的总分数高低顺序存放到磁盘文件中。  思路:  1、创建一个...

    ------- android培训java培训、期待与您交流!-------

      题目:有一批学生,每个学生有3门课程,从键盘上输入以下数(姓名,三门成绩)输入格式:如zhangsan,30,40,60计算出总成绩。并把学生的信息和计算出的总分数高低顺序存放到磁盘文件中。

      思路:

      1、创建一个描述学生信息的类:Student类,包含如下属性:姓名(name)、三门成绩(A、B、C) 和总成绩(sum);

      2、建立学生工具类:StudentTool 。其中的方法主要是从键盘上录入学生信息studentInfo() 和 将学生信息写入到磁盘文件中的方法writeToFile() 。

      3、因为学生数量较多,而且还要把学生的信息按分数的高低排序,则选择Set集合中的TreeSet集合。 

      通过理清思路,可以得到如下代码:

      学生类:

      思路:1、定义学生属性:姓名、三门成绩、总成绩。

         2、因为用TreeSet集合存储,则要实现Comparable接口来完成自然排序以及保证元素的唯一性(详情见:黑马程序员-JAVA基础-Java 集合之Set 接口

    )。   3、重写compareTo方法、hashCode方法、equals方法,以及为了方便输出重写toString() 方法。

     1 public class Student implements Comparable{
     2     private String name ; 
     3     private int a , b , c ; 
     4     private int sum ;
     5     public Student(String name , int a , int b ,int c) {
     6         this.name = name ; 
     7         this.a = a ;
     8         this.b = b ; 
     9         this.c = c ;
    10     }
    11 //    get和set方法。
    12     public String getName() {
    13         return name;
    14     }
    15     public void setName(String name) {
    16         this.name = name;
    17     }
    18     public int getA() {
    19         return a;
    20     }
    21     public void setA(int a) {
    22         this.a = a;
    23     }
    24     public int getB() {
    25         return b;
    26     }
    27     public void setB(int b) {
    28         this.b = b;
    29     }
    30     public int getC() {
    31         return c;
    32     }
    33     public void setC(int c) {
    34         this.c = c;
    35     } 
    36     public int getSum() {
    37         return sum;
    38     }
    39     public void setSum(int sum) {
    40         this.sum = sum;
    41     }
    42 //   覆写compareTo方法
    43     public int compareTo(Object o) { 
    44         if ( !(o instanceof Student))
    45             throw new RuntimeException("匹配错误") ;
    46         Student stu = (Student) o ; 
    47 //        按照学生的名字排序
    48         return this.name.compareTo(stu.getName());
    49     }
    50 //    重写hashCode方法
    51     public int hashCode() {
    52         return this.name.hashCode() * 87 + sum ; 
    53     }
    54 //    重写equals方法
    55     public boolean equals(Object o) {
    56         if ( !(o instanceof Student))
    57             throw new RuntimeException("匹配错误") ;
    58         Student stu = (Student) o ; 
    59         if(this.name.equals(stu.getName())&&this.a == stu.getA()&&this.c == stu.getC())
    60             if (this.sum == this.getSum())
    61                 return true ;
    62         return false ;
    63     }
    64     public String toString() {
    65         return "Stuent["+this.name+","+this.a+","+this.b+","+this.c+"]" ;
    66     }
    67 }

      学生工具类:

      思路:1、建立学生录入方法和学生信息存入磁盘的方法。

         2、学生录入方法:通过重载,一个实现自定义比较器,一个则按自然排序。 

     1 public class StudentTool {
     2 //    建立一个学生读入方法,按自然顺序排序。
     3     public Set<Student> studentInfo() throws IOException {
     4         return studentInfo(null);
     5     }
     6 //    建立一个学生读入方法,支持自定义比较器
     7     public Set<Student> studentInfo(Comparator comp) throws IOException {
     8         
     9 //        判断比较器是否为空。
    10         TreeSet<Student> StudentSet = null ;
    11         if ( comp == null)   
    12             StudentSet = new TreeSet<Student>( ) ;
    13         else
    14             StudentSet = new TreeSet<Student>(comp) ;
    15 //        建立键盘录入方法
    16         BufferedReader br = 
    17              new BufferedReader(new InputStreamReader(System.in)) ; 
    18         
    19         String line = null ; 
    20         while ((line = br.readLine()) != null) {
    21 //            判断是否停止录入
    22             if ("over".equals(line))
    23                 break;
    24             String[] info = line.split(",") ;  
    25 //            创建学生对象
    26             Student stu = new Student(info[0] , new Integer(info[1]).intValue()
    27                     ,new Integer(info[2]).intValue(),new Integer(info[3]).intValue());
    28             stu.setSum(stu.getA()+stu.getB() +stu.getC()) ;
    29 //            加入TreeSet集合。
    30             StudentSet.add(stu) ; 
    31         }
    32         br.close() ;
    33         return StudentSet ; 
    34     }
    35 //    将学生信息写入文件:
    36     public void writeToFile(Set<Student> studentSet)throws IOException {
    37         BufferedWriter bufw = 
    38             new BufferedWriter(new FileWriter("D:\\StudentInfo.txt")) ;
    39         for(Student stu : studentSet) {
    40             bufw.write(stu.toString()+"\t") ;
    41             bufw.write(stu.getSum() + "") ;
    42             bufw.newLine(); 
    43         }
    44         bufw.close() ;
    45     }
    46 }

      主函数:

     1 public class StudentDemo {
     2     public static void main(String[] args) throws IOException {
     3 //        创建一个集合对象,用于装学生类。
     4         Set<Student> stuSet = new TreeSet() ; 
     5 //        创建学生工具类对象。
     6         StudentTool stuTool = new StudentTool() ; 
     7 //        录入学生,按成绩的高低排序。
     8 //        stuSet = stuTool.studentInfo(new Comparator() { 
     9 //            public int compare(Object o1, Object o2) { 
    10 //                Student stu1 = (Student) o1 ; 
    11 //                Student stu2 = (Student) o2 ; 
    12 //                if (stu1.getSum() == stu2.getSum())
    13 //                    return stu1.getName().compareTo(stu2.getName());
    14 //                return stu2.getSum() - stu1.getSum() ;
    15 //                
    16 //            }
    17 //        }) ; 
    18         stuSet = stuTool.studentInfo() ;
    19 //        将学生信息写入文档。
    20         stuTool.writeToFile(stuSet) ; 
    21     }
    22 }

      

      

     

     

     

     

     

     

     

    展开全文
  • 实例049 只允许输入数字TextBox控件 52 实例050 限制用户名称长度及设置密码文本 54 实例051 自动删除非法字符 55 实例052 为TextBox控件添加列表选择框 57 2.2 Button控件应用 58 实例053 在Button...
  • 1. 设计完成一个函数综合程序,该程序包含以下...2. 从键盘上输入一批学生数据,然后存储到磁盘文件a1.txt中。学生信息包括:姓名,学号,年龄,数学、英语、计算机三门课的成绩。 3. 将磁盘文件a1.txt的内容读出来...

    1. 设计完成一个函数综合程序,该程序包含以下几个函数:

    (1)用随机函数生成20个[10,90]的随机整数放入数组a;

    (2)对生成的随机数按照从小到大的次序进行排序;

    (3)求出其中的素数放入数组b及素数的个数;

    2. 从键盘上输入一批学生数据,然后存储到磁盘文件a1.txt中。学生信息包括:姓名,学号,年龄,数学、英语、计算机三门课的成绩。

    3. 将磁盘文件a1.txt的内容读出来显示在屏幕上。

    展开全文
  • JAVA百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     数字证书:文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取个处理X.509证书证书工厂…… Java+ajax写登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  个Java+ajax写...
  • 例:若程序执行时,输入字符串为:Shanghai Dianji University,从键盘上输入字符:s,则输出后变为:Shanghai Dianji Univerity,如果输入字符串不存在,则字符串照原样输出。 (9)编写个函数void fun(char a...
  • 数字证书:文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取个处理X.509证书证书工厂…… Java+ajax写登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 个Java+ajax写...
  • excel使用

    2012-11-25 17:06:01
    输入完毕之后,再次按下键盘上的Ctrl键,然后使用鼠标左键单击所选择多个工作表,解除这些工作表联系,否则在一张表单中输入的数据会接着出现在选中其它工作表内。(6) 不连续单元格填充同一数据选中个...
  • 实例269 利用区域图分析不同学生的成绩变化 实例270 利用时序图分析股票价格走势 实例271 利用时序图分析2009年国际原油价格走势 实例272 利用组合图表分析学生零用钱收支情况 第10章 基于Cewolf组件的图表编程 10.1...
  •  本书适合Visual Basic初学者,如高校学生、求职人员作为练习、速查、学习使用,也适合Visual Basic程序员参考、查阅。 目 录 第1篇 编程基础篇 第1章 初识Visual Basic 1.1 Visual Basic 6.0环境配置 ...
  • Java开发实战1200例.第2卷.part3

    热门讨论 2013-05-08 22:46:34
    实例269 利用区域图分析不同学生的成绩变化 433 实例270 利用时序图分析股票价格走势 434 实例271 利用时序图分析2009年国际原油价格 走势 436 实例272 利用组合图表分析学生零用钱收支 情况 437 第10章 基于Cewolf...
  • Java开发实战1200例.第2卷.part2

    热门讨论 2013-05-08 22:45:35
    实例269 利用区域图分析不同学生的成绩变化 433 实例270 利用时序图分析股票价格走势 434 实例271 利用时序图分析2009年国际原油价格 走势 436 实例272 利用组合图表分析学生零用钱收支 情况 437 第10章 基于Cewolf...
  • Java开发实战1200例.第2卷.part1

    热门讨论 2013-05-08 22:44:13
    实例269 利用区域图分析不同学生的成绩变化 433 实例270 利用时序图分析股票价格走势 434 实例271 利用时序图分析2009年国际原油价格 走势 436 实例272 利用组合图表分析学生零用钱收支 情况 437 第10章 基于Cewolf...
  •  《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用实例,是目前市场实例最全面开发类图书;书中实例来源于多位工程师多年积累,具有很强实用性。 本书是第II卷,以开发...
  •  《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用实例,是目前市场实例最全面开发类图书;书中实例来源于多位工程师多年积累,具有很强实用性。 本书是第II卷,以开发...
  • 本书适合Java初学者,如高校学生、求职人员作为练习、速查、学习使用,也适合Java程序员参考、查阅。 目录 第1篇 Java语法与面向对象技术 第1章 开发环境应用 1.1 Java环境 实例001 下载JDK开发工具包 ...
  • 本书适合Java初学者,如高校学生、求职人员作为练习、速查、学习使用,也适合Java程序员参考、查阅。 目录 第1篇 Java语法与面向对象技术 第1章 开发环境应用 1.1 Java环境 实例001 下载JDK开发工具包 ...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    2、 请用C++编写一个算法,完成以下功能: a. 从键盘输入一段文字,以$作结束符号; b. 统计文字中文本行数,字母,数字以及其他符号数量,并在屏幕显示; 3、 请用C++编写一个算法,完成矢量...
  • 实例206 学生成绩不及格设置单元格突出显示为红色 326 实例207 根据多个字段内容设置不同数据行背景色 327 实例208 自定义分页并结合下拉列表实现页次切换 328 实例209 结合分页模板PagerTemplate实现自定义分页 ...
  • 实例206 学生成绩不及格设置单元格突出显示为红色 326 实例207 根据多个字段内容设置不同数据行背景色 327 实例208 自定义分页并结合下拉列表实现页次切换 328 实例209 结合分页模板PagerTemplate实现自定义分页 ...
  • 实例206 学生成绩不及格设置单元格突出显示为红色 326 实例207 根据多个字段内容设置不同数据行背景色 327 实例208 自定义分页并结合下拉列表实现页次切换 328 实例209 结合分页模板PagerTemplate实现自定义分页 ...
  •  本书非常适合ASP.NET网站项目开发人员、ASP.NET初学者及编程爱好者使用,同时也可作为培训机构、大中专院校老师和学生的实践参考用书。 目 录 第1篇 ASP.NET网站高效开发篇 第1章 ASP.NET网站开发常备技术 1.1...
  • 部久享盛誉程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    部久享盛誉程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    部久享盛誉程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • 部久享盛誉程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • 部久享盛誉程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • 程序开发范例宝典>>

    2012-10-24 10:41:28
    实例053 屏蔽TextBox控件默认右键菜单 62 2.2 ComboBox控件应用 63 实例054 美化ComboBox控件下拉列表 63 实例055 用ComboBox控件制作浏览器网址输入框 64 2.3 RichTextBox控件应用 65 实例056 ...
  • 实例053 屏蔽TextBox控件默认右键菜单 62 2.2 ComboBox控件应用 63 实例054 美化ComboBox控件下拉列表 63 实例055 用ComboBox控件制作浏览器网址输入框 64 2.3 RichTextBox控件应用 65 实例056 在...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

从键盘上输入一批学生的成绩