程序设计综合训练
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.编写程序,定义学生信息管理类StudentManager,在该类中包含对一组学生
信息(定义一个一维数组,数组元素类型为前面定义的Student)进行管理,要求:
a)在该类中包含输入学生信息的方法——input(Student[] students),要
求在该方法中,依次输入各位学生的学号、姓名、专业、年级,将其存
入到数组students中。
b)在该类中包含输出学生信息的方法——output(Student[] students),
要求在该方法中,依次输出students数组中各位学生的学号、姓名、专
业、年级信息。
c)在该类中包含对学生数组按姓名升序排序的方法——sort(Student[]
students), 要求在该方法中,对students数组中的元素按姓名升序排
列(字典顺序)。
d)定义main方法:定义Student一维数组,调用input方法输入数据,然
后调用output方法输出初始数组数据,调用sort方法对数组中元素排
序,最后调用output方法输出排序后的结果。
1)源程序
import java.util.Scanner;
class StudentManger{
Student[] students=new Student[2];
publicvoid input(){
for(int i=0;i System.out.println("请输入姓名,年级,学号,专业"); Scanner input=new Scanner(System.in); String a=input.next(); String b=input.next(); int c=input.nextInt(); String d=input.next(); students[i]=new Student(a,b,c,d); } } public String output(){ String s=""; for(int i=0;i s+="这个学生姓名为"+students[i].name+",年级为 "+students[i].grade+",学号为"+students[i].number+"专业为 "+students[i].getSpecialty(); return s; } publicvoid sort(){ String y=""; for(int i=students.length-1;i>0;i--){ for(int j=0;j if(students[j+1]pareTo(students[j].name)>0){ y=students[j].name; students[j].name=students[j+1].name; students[j+1].name=y; } } } for(int i=0;i System.out.println(students[i].name); } } publicstaticvoid main(String[] args){ StudentManger x=new StudentManger(); x.input(); System.out.println(x.output()); x.sort(); } } 2.题目:编写程序,定义成绩类Grade,要求: a)域:课程名称cname(String)、平时成绩ps(0—30)、大作业dzy(0-20)、期末 考试qmks(0-50)、总评成绩zp(优、良、中、及格、不及格)。 b)输出Grade对象详细信息方法——showInfo(),输出课程的成绩明细和总评成绩。 c)StringgradeTrans(double)方法:将百分制转换为五级制:优、良、中、及格、不 及格。 注:此题要求画流程图 d)void computeZp():计算总评成绩zp的方法。要求在该方法中,将平时成绩(范围:0 —30)、大作业(范围:0-20)、期末考试成绩(范围:0-50)加起来计算总评成绩,并 调用方法StringgradeTrans(double)将计算所得的百分制转换为五级制。 e)方法void inputGrade(String,double,double,double):设置成绩科目,平时成 绩,大作业和期末考试的成绩,并调用computeZp计算总成绩。 f)定义main方法:定义一维数组grades,其元素类型为Grade,依次对grades中每 个元素进行成绩输入,调用computeZp方法,计算学生总成绩,并调用showInfo 方法输出结果。 1)源程序 package student; import java.util.Scanner; publicclass Grade { double qmks; static String zp; String cname; double ps; double dzy; public Grade(double qmks,Stringzp,Stringcname,double ps,double dzy){ this. qmks=qmks; this. zp=zp; this. cname=cname; this. ps=ps; this. dzy=dzy; } public Grade(String s, double s1, double s2, double s3) { // TODO Auto-generated constructor stub } publicvoid showInfo(){ System.out.println("平时成绩:"+ps+"\n大作业:"+dzy+"\n期末考试:"+qmks+"\n总评成绩:"+zp); } public String gradeTrans(double a){ int z=(int)a/10; switch(z){ case 10: System.out.println("优"); break; case 9: System.out.println("良"); break; case 8:System.out.println("中"); break; case 7:System.out.println("及格"); break; case 6:System.out.println("不及格"); break;