1, 建一个学生类,有四个字段,分别表示学生名,英语,计和数的成绩。
2, 建一个输出类,即含有方法 public static void main(String[] args),并在这个方法里用 while循环接游仿收输入参数,直到你定义一个参数表示退出即可打印。
另外在这个输出类里,加一个属性 List list = new ArrayList()表示所有学生。
3, 运行窗口,使用输出类并输入参数即可。
最后,这个问题主要是考你的逻辑能力,初学者可能要想一两天才能想出来。
public class Student {
private String name//姓名
private int english//唯搏英语成绩
private int computer//计算机成绩
private int database//数据库成绩
//..getter/setter略
}
public class Printer {
private static List<Student>students = new ArrayList<Student>()
public static void main(String[] args) {
while (true) {
Scanner in = new Scanner(System.in)
System.out.println("请输入:学生名 英语 计算机 数据库")
String line = in.nextLine()
if(line == null || line.length() == 0) {
break// 用户未输入,默认表示退出
}
if(line == "exit") {
break// 用户输入exit,表示退出
}
String[] values = line.split(" ")
if(values.length != 4) {
break//参数不对,退出!可以自己优化
}
Student s = new Student()
s.setName(values[0])
s.setEnglish(Integer.valueOf(values[1]))
s.setComputer(Integer.valueOf(values[2]))
s.setDatabase(Integer.valueOf(values[3]))
students.add(s)
}
for (Student student : students) {
System.out.println("学生名:" + student.getName() + "英语成绩:"
+ student.getEnglish() + "...计,数成绩略,类推!")
}
}
}
真是沤心沥血啊,应该不会再要怎么编译,用啥工具吧?
#include <iostream>#include <string>
using namespace std
class St
{
double yuwen,shuxue,yingyu
string name
public:
static int num
static double yuwenmax //最高分数
static double shuxuemax
static double yingyumax
static double yuwenz //总分
static double shuxuez
static double yingyuz
static string yuwenname //最高分名字
static string shuxuename
static string yingyuname
void bijiao()
{
num ++
yuwenname = (yuwen >yuwenmax ? name : (yuwen ==yuwenmax?yuwenname + name: yuwenname) )
shuxuename = (shuxue >shuxuemax ? name : (shuxue ==shuxuemax?shuxuename + name: shuxuename) )
yingyuname = (yingyu >yingyumax ? name : (yingyu ==yingyumax?yingyuname + name: yingyuname) )
yuwenmax = (yuwen >yuwenmax ? yuwen : yuwenmax)
shuxuemax = (shuxue >shuxuemax ?shuxue :yuwenmax)
yingyumax = (yingyu >yingyumax ? yingyu : yingyumax)
yuwenz += yuwen
shuxuez += shuxue
yingyuz += yingyu
}
static void print()
{
cout<<"语文平均分:"<<yuwenz/num<<" 最高分"<<yuwenmax<<"分:"<<yuwenname<<endl
cout<<"数学平均分:"<<shuxuez/num<<" 最高分"<<shuxuemax<<"分:"<<shuxuename<扒燃<endl
cout<<"英语平均分:"<<yingyuz/num<<" 最高分"<<yingyumax<<高辩"分:"<<yingyuname<<endl
}
void shuru()
{
cout<<"请输入语文成绩:"
cin>>yuwen
cout<<"请输入数学成绩:"
cin>>shuxue
cout<<"请输入英春念虚语成绩:"
cin>>yingyu
cout<<"请输入姓名:"
cin>>name
}
}
int St::num = 0
double St::yuwenmax = 0
double St::shuxuemax = 0
double St::yingyumax = 0
double St::yuwenz = 0
double St::shuxuez = 0
double St::yingyuz = 0
string St::yuwenname = "无"
string St::shuxuename = "无"
string St::yingyuname = "无"
int main()
{
char flag = 'n'
do
{
St student
student.shuru()
student.bijiao()
cout<<"请输入继续/终止(y/n),已输入人数"<<St::num<<endl
cin>>flag
}
while(flag == 'y')
St::print()
return 0
}
//面向对象的设计,复杂度最低,空间占用最小。但注释较少,不懂的可以问我。
//但是这个没有保存数据,如需保存再加入链表,让我加也可以,不过自己练练手也不错。
#include "stdio.h"#define N 16
int main(int argv,char *argc[]){
int s[N],i,d[5],sum
printf("Please enter %d students' score(int, Separated by ' ')...\n",N)
for(sum=d[0]=d[1]=d[2]=d[3]=d[4]=i=0i<Ni++){
while(scanf("%d",s+i)!=1 樱神|| s[i]<0 || s[i]>100){
printf("Input error, redo: ")
fflush(stdin)
}
s[i]>89 ? d[4]++ : s[i]<60 ? d[0]++ : d[s[i]/10-5]++
sum+=s[i]
}
printf("\nThe AVERAGE 册或are %g.\n",sum/(N+0.0))
printf("GRADE\tNUMBER\tPERCENTAGE\n")
printf("==========================\n"脊姿亏)
for(i=4i>=0i--)
printf(" %c\t %d\t %6.2f%%\n",'E'-i,d[i],d[i]*100.0/N)
return 0
}
运行结果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)