(1)[设计型] 有5个小学生姓名卡片图片,每个小学生姓名卡片图片有3门课的成绩,从键盘输入小学生姓名卡片图片号、姓名、三门课成绩(使用结构

* 3、 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,
* 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),
* 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。
* 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息
import java.io.*;
import java.util.*;
public class Test3 {
public static void main(String[] args)throws Exception{
//传入学生人数
Student(5);
//键盘录入学生,保存到stu.txt的方法
public static void Student(int number)throws Exception{
//创建Scanner对象 接受从控制台输入
Scanner in=new Scanner(System.in);
//因为可能会出现姓名和总分都一样的学生,为了保证学生不丢失,建立List容器
List&Student& list=new ArrayList&&();
//循环录入学生到集合,排好顺序
System.out.println("输入格式为: 姓名,语文,数学,英语(,号是小写状态)");
for(int x=1;x&=x++){
System.out.println("请输入第"+x+"个学生的信息");
String[] s=in.nextLine().split(",");
int a=Integer.parseInt(s[1]);
int b=Integer.parseInt(s[2]);
int c=Integer.parseInt(s[3]);
Student stu=new Student(s[0],a,b,c);
list.add(stu);
//用比较器进行总分从高到低的排序
Collections.sort(list,new StuCompare());
//定义输出流输出到stu.txt
BufferedWriter bufw=new BufferedWriter(new FileWriter("stu.txt"));
for(Student stu:list){
bufw.write(stu.getStu());
bufw.newLine();
bufw.flush();
//关闭资源
in.close();
bufw.close();
//学生对象
class Student{
private int a, b, c,
//学生对象建立需要传入姓名和3门课的成绩
Student(String name, int a, int b, int c){
this.name=
sum=a+b+c;
public int getsum(){
//输出一个符合格式的字符串
public String getStu(){
return name+"
数学:"+a+"
语文:"+b+"
英语:"+c+"
//定义比较器,按总分排序
class StuCompare implements Comparator&Student&{
public int compare(Student s1,Student s2){
int a=new Integer(s2.getsum()).compareTo(s1.getsum());
阅读(...) 评论()有10个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生学号,姓名,三门课成绩),设计如下函数:输出有不及格的学生的学号,姓名,不及格的课程名及成绩信息(用结构数据类型数组)。-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
有10个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生学号,姓名,三门课成绩),设计如下函数:输出有不及格的学生的学号,姓名,不及格的课程名及成绩信息(用结构数据类型数组)。
来源:互联网 发表时间: 16:51:02 责任编辑:李志喜字体:
为了帮助网友解决“有10个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生学号,姓名,三门课成绩),设计如下函数:输出有不及格的学生的学号,姓名,不及格的课程名及成绩信息(用结构数据类型数组)。”相关的问题,中国学网通过互联网对“有10个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生学号,姓名,三门课成绩),设计如下函数:输出有不及格的学生的学号,姓名,不及格的课程名及成绩信息(用结构数据类型数组)。”相关的解决方案进行了整理,用户详细问题包括:<,具体解决方案如下:解决方案1: #include &stdio.h&void main(){int i,j,max,maxi=0,maxj=0,a[10][10];for(i=0;i&5;i++)for(j=0;j&4;j++){printf(&a[%d][%d]=&,i,j);scanf(&%d&,&a[i][j]);}max=a[0][0];for(i=0;i&5;i++){for(j=0;j&4;j++)if(a[i][j]&max){max=a[i][j];maxi=i;maxj=j;}}printf(&值最大的元素是:%d\n&,max);printf(&在第%d行;第%d列&,maxi+1,maxj+1);}
1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
<a href="/cse/search?q=<inputclass="s-btn"type="submit"text="<inputclass="s-btn"type="submit"text="<buttonhidefocusclass="s-btnjs-ask-btn"text="我要提问
<a href="/cse/search?q=}

我要回帖

更多关于 小学生自制姓名卡片 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信