java编程题 关于考试成绩排名

java编程题 关于考试成绩排名,第1张

package dayexercise_7_6;
import javautilArrayList;
import javautilCollections;
import javautilComparator;
import javautilList;
import javautilScanner;
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(Systemin);
List<Student> students = new ArrayList<Student>();
Systemoutprintln("请输入考试成绩");
//录入10个学生的考试成绩和姓名
for(int i=0;i<3;i++) {
Systemoutprint("姓名:");
String name = scnextLine();
Systemoutprint("分数:");
int score = IntegerparseInt(scnextLine());
Student student = new Student(name,score);
studentsadd(student);
}
//对考试成绩进行降序排列
Collectionssort(students,new Comparator<Student>() {
public int compare(Student o1, Student o2) {
// TODO Auto-generated method stub
return o2getScore()-o1getScore();
}
});
//遍历输出学生的姓名及成绩
int i = 1;
for(Student s : students) {
Systemoutprintln("第"+i++ +"名是"+sgetName()+": "+sgetScore());
}
}
}
//学生类。
class Student {
private int score;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;

}
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name,int score) {
super();
thisscore = score;
thisname = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
thisscore = score;
}

}

讲一个思路:
1)建立一个类Student,里面创建String name和int score,构造,get()set(),重写toString;
2)建立另一个类Top3,里面主方法中List<Student> l=new ArrayList<Student>,建立IO流,BufferedReader br=new BufferedReader();用brreadline();进行txt文件读取。
3)进行排序,对导入完成的ArrayList进行for循环遍历排序,导出控制台或者GUI界面。
想做程序员不能太懒哦。

/// <summary>
/// 模型层附加数据基类
/// </summary>
[Serializable]
public class ModelBase
{
private Dictionary<string, object> _exData = new Dictionary<string, object>();
public Dictionary<string, object> ExData
{
get { return _exData; }
set { _exData = value; }
}

java实现的简单猜数字游戏代码,通过随机数与逻辑判断来实现游戏功能
代码如下:
import javautilInputMismatchException;
import javautilScanner;
public class Main {
public static void main(String[] args) {
// 产生一个随机数
int number = (int) (Mathrandom() 100) + 1;
// 加入count
int count = 0;
// 在这里加入最大值,和最小值
int max = 100;
int min = 1;
while (true) {
// 键盘录入数据
Scanner sc = new Scanner(Systemin);
Systemoutprintln("请输入你要猜的数据:(" + min + "~" + max + ")");
try {
count++;
int guessNumber = scnextInt();
// 判断
if (guessNumber > number) {
max = guessNumber;
Systemoutprintln("你猜大了");
} else if (guessNumber < number) {
min = guessNumber;
Systemoutprintln("你猜小了");
} else {
Systemoutprintln("恭喜你,花了" + count + "次就猜中了");
// 问是否继续
Systemoutprintln("请问还要继续吗?(yes)");
sc = new Scanner(Systemin);
String str = scnextLine();
if ("yes"equals(str)) {
// 重写赋值随机数
number = (int) (Mathrandom() 100) + 1;
count = 0;
max = 100;
min = 1;
} else {
break;
}
}
} catch (InputMismatchException e) {
Systemoutprintln("你输入的数据有误");
}
}
}
}

1

设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。

2

所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。

3

定义我们的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张所示。所以,我们需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。

4

食物的位置信息是二维的,所以我简单定义了一个类用来保存二维信息。

5

接着就是实现游戏的功能了。开始,暂停,停止按钮添加事件控制游戏开始。等级按钮定义游戏难度等。

6

开始游戏后,我们定义一个定时器。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了。

在蛇身移动时进一步做吃掉食物、撞墙、撞到自己的处理。这是游戏的主要逻辑。

7

最后,游戏结束我们d出一个对话框提示是否保存游戏得分。我们制作了排行榜信息,只保留前10名的游戏得分。首先定义了一个实现Comparable接口的游戏得分类,按得分高,时间最早来排序。

8

游戏结束时保存得分信息,看是否进入到排行榜中。而之前在初始化排行榜组件时就会加载游戏排行榜信息。

通过保存和读取排行榜信息,我们也熟悉一下文件读取 *** 作,还有集合、排序算法的功能。

9

最后编译运行,结果良好。经验也只能写一个大概的设计,贪吃蛇游戏功能实际是比较简单的,主要就是界面的布局,swing编程等。如果有任何疑问,欢迎大家留言。

总之,没有一技之长或者经过训练,还是不要有这个想法了,不切合实际。

并且,游戏做好之后,还需要经过一系列的游戏认证,审核。

在小范围内可以传播,但如果没有通过的话,就不可以在大范围内传播。

如果我的回答对你有帮助,点个赞再走呗~


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13378627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存