11.此贴禁水,只限答题,违者禁言....
12.各个类要标注这个类是用来做什么的,别上来就一堆代码。
13.写清需求、思路,涉及到类、集合、数组、构造方法。
再次感谢孙百鑫和曹睿翔。
如果以上要求都看过了,请看下面的题目,题很复杂,但滔哥说最多给15分哦!
题目:(回复可见)
图书馆引进一套新的打卡系统,学生将凭借饭卡刷卡进出图书馆。
以下是一段时间的刷卡记录(显示内容: 姓名 学号)
( 顺序只是从右边移到下边了,没改变任何位置,记录顺序没有发生改变)
郑光宗 201306261
刘凯 201306268
王徐杰 201306265
伍哲沂 201306266
尹丽峰 201306267
刘凯 201306268
袁梦希 201306262
袁梦希 201306262
孙百鑫 201306263
巩建 201306264
王徐杰 201306265
伍哲沂 201306266
尹丽峰 201306267
刘凯 201306268
袁梦希 201306262
袁梦希 201306262
孙百鑫 201306263
巩建 201306264
王徐杰 201306265
伍哲沂 201306266
尹丽峰 201306267
刘凯 201306268
袁梦希 201306262
袁梦希 201306262
孙百鑫 201306263
巩建 201306264
王徐杰 201306265
伍哲沂 201306266
袁梦希 201306262
袁梦希 201306262
以上信息时随机复制的,对各位版主没有偏见...
{:soso__3669389859068460655_3:}
注意:
1.由控制台手动录入以上记录。
2. 对于2.3输出结果均用方法实现。意思就是你别通过看一题的输出结果,告诉我2.3题的答案。
3.因图书馆自习室资源紧张,对于这段时间内,尾号依次为2、3、6的不允许出入。
1)第一次是为2的不能进出,第二次就是为3的不能进出,按照此顺序循环。
2)不要说进去了不能出来,或者不知道什么时间能进图书馆,不合理的。题是这么要求的,不然15分不纯白送了)
4.对于能进出图书馆的同学,要有输出的提示信息。不能进出的要提示“不能进出”。
5. 不能进出图书馆的记录作废。
6.一个主函数,调用方法实现。分层次提示输出的是什么内容。
7.将记录信息全部输入后,再输出结果
对于题目还是不了解的,联系我496854761,但是我不可能为所有人解答一遍。
输出结果
1.姓名 学号 次数 (按进出次数最多的排列,相同次数的按学号由小到大排列。
示例: 张三 学号:111 次数:5
李四 学号:112 次数:5
王五 学号:113 次数:4
2.进出次数排名第三的版主为幸运者,请输出是谁?
示例: 次数排名第三的是“张三” 学号:111 次数为3次
3.第四和第六一共进出几次图书馆。
示例:“第四姓名 ”和 “ 第五姓名”共进去“N”次
4.输出多少次进出成功的记录。
一共有“N”次成功进出的记录
作者: 张云杰 时间: 2013-6-26 20:05
先看下再说了
作者: 李复安 时间: 2013-6-26 20:06
看一下神马题目
作者: 捌年 时间: 2013-6-26 20:07
先看看是啥题
作者: .netNo1 时间: 2013-6-26 20:09
1234567890
作者: 贾永长 时间: 2013-6-26 20:09
回复看题目
作者: 达尔文 时间: 2013-6-26 20:11
学习学习{:3_53:}
作者: 280270738 时间: 2013-6-26 20:12
我来了
作者: 花伟昌 时间: 2013-6-26 20:14
过来看看是什么题
作者: zms2100 时间: 2013-6-26 20:15
看看题,了解了解,O(∩_∩)O~
作者: 王楚鑫 时间: 2013-6-26 20:16
回复了才能看题吖
作者: 刘利民 时间: 2013-6-26 20:18
不错,来占个沙发思考思考
作者: 王靖远 时间: 2013-6-26 20:22
先看看题目 再出去散步。
作者: 姚飞 时间: 2013-6-26 20:25
给力啊,刚吃完锅贴回来。。。。。
作者: 张歆明 时间: 2013-6-26 20:29
谢谢楼主
作者: 王广亚 时间: 2013-6-26 20:31
来瞅瞅是什么题目
作者: 徐启坤 时间: 2013-6-26 20:33
一次性给15分?有点霸气了
作者: sunriselzz 时间: 2013-6-26 20:59
看看,学习学习:P
作者: tpsu88 时间: 2013-6-26 21:02
试一试!!!
作者: lou413 时间: 2013-6-26 21:03
看一下再说
作者: .netNo1 时间: 2013-6-26 21:08
1234567890
作者: 小冰块 时间: 2013-6-26 21:11
那么高的分值肯定很难啦……
作者: 刘_鑫 时间: 2013-6-26 21:13
终于找到题了
作者: ytblght55 时间: 2013-6-26 21:13
参与参与
!!!
作者: 陈新 时间: 2013-6-26 21:20
15分。。。。。。。。。
作者: 李九一 时间: 2013-6-26 21:27
我要做题
作者: Wen丶 时间: 2013-6-26 21:31
瞅瞅。。
作者: 花开花落总相似 时间: 2013-6-26 21:38
我来也来看一看
作者: 杨增坤 时间: 2013-6-26 21:59
......................
作者: 杨兴庭 时间: 2013-6-26 22:10
看下什么题目
作者: lipingan0520 时间: 2013-6-26 23:18
学习,学习
作者: 王瀛 时间: 2013-6-26 23:34
看看题目
作者: 焦文斌 时间: 2013-6-26 23:35
看题目
作者: 董延京 时间: 2013-6-27 00:21
太丰盛了吧。。。
作者: majunm 时间: 2013-6-27 00:39
活动就这样结束了么
作者: 梦想蓝色天空 时间: 2013-6-27 06:53
看看题目
作者: 狼王 时间: 2013-6-27 07:46
好像很难
作者: 郭伟杰 时间: 2013-6-27 08:41
题目????????????????????
作者: 刘晓 时间: 2013-6-27 09:14
看看。。。。。。。。。。。。。。。。
作者: mk7 时间: 2013-6-27 09:24
来看一看
作者: 里刀刀 时间: 2013-6-27 09:42
看下题目先
作者: 霜冰刃雪 时间: 2013-6-27 10:17
看看什么题目~~
作者: ︶ㄣ紫藤ㄜ︵ 时间: 2013-6-27 10:23
看题看看
作者: ヾMyHeartIsDead 时间: 2013-6-27 10:30
到底啥题?
作者: yhb401712942520 时间: 2013-6-27 11:40
看下什么题目先
作者: likairoudou 时间: 2013-6-27 11:49
回复下看看是啥题啊
作者: vicoooo 时间: 2013-6-27 11:59
看题了。。哈哈
作者: 秩宇 时间: 2013-6-27 13:00
手机看看
作者: 杨增坤 时间: 2013-6-27 13:15
public class Demo {
private static int l = 1;
private static String ll = "2";
public static void main(String[] args) {
Student[] stu = new Student[50];
shili(stu);//实例化
insert(stu);//插入信息
sort(stu);//排序
System.out.println("所有学生进出图书馆的信息");
show(stu);//输出排序信息
System.out.println("第三名信息:");
showFirdth(stu);//第三名
System.out.println("第四名和第六名:");
showFourSix(stu);
int count=getSumCount(stu);//成功进出次数
System.out.println("成功进出次数是:"+count);
}
/**
* 初始化
* @param stu
*/
public static void shili(Student[] stu) {
for (int i = 0; i < stu.length; i++) {
stu[i] = new Student();
}
}
/**
* 输入进出记录
* @param stu
*/
public static void insert(Student[] stu) {
int i = 0;
System.out.println("请输入图书馆进出记录");
System.out.println("姓名 学号");
Scanner input = new Scanner(System.in);
for (i = 0; i < stu.length; i++) {
String name = input.next();
String num = input.next();
if(name.equals(".")){
break;
}
if (isExit(num)) {
i = i - 1;
continue;
}
if (isHave(stu, i, num)) {
i = i - 1;
} else {
stu[i].setStuName(name);
stu[i].setStuNum(num);
int c = stu[i].getCount();
stu[i].setCount(c + 1);
}
}
}
/**
* 输出学生数组的信息
* @param stu
*/
public static void show(Student[] stu) {
int i = 0;
System.out.println("姓名\t学号\t次数");
for (i = 0; i < stu.length && stu[i].getStuNum() != null; i++) {
System.out.println(stu[i].getStuName() + "\t" + stu[i].getStuNum()
+ "\t" + stu[i].getCount());
}
}
/**
* 判断之前此学号是否有进出的记录
* @param stu
* @param f
* @param num
* @return
*/
public static boolean isHave(Student[] stu, int f, String num) {
for (int i = 0; i < f; i++) {
if (stu[i].getStuNum().equals(num)) {
int c = stu[i].getCount();
stu[i].setCount(c + 1);
return true;
}
}
return false;
}
/**
* 判断是否能够进入 按学号是 2 3 6的循环判断
* @param num
* @return
*/
public static boolean isExit(String num) {
String n = num.substring(num.length() - 1, num.length());
boolean f = false;
if (n.equals(ll)) {
l++;
f = true;
} else {
return false;
}
switch (l % 3) {
case 1:
ll = "2";
break;
case 2:
ll = "3";
break;
case 3:
ll = "6";
break;
}
return f;
}
/**
* 对信息进行排序
* @param stu
*/
public static void sort(Student[] stu) {
int i = 0, j = 0;
/*按次数排序*/
for (i = 0; i < stu.length - 1 && stu[i].getStuNum() != null; i++) {
for (j = 0; j < stu.length - 1 - i &&stu[j].getStuNum() != null; j++) {
if (stu[j].getCount() < stu[j + 1].getCount()) {
Student t = new Student();
t = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = t;
}
}
}
/*如果次数相同 按学号排序*/
for (i = 0; i < stu.length - 1 && stu[i].getStuNum() != null; i++) {
for (j = 0; j < stu.length - 1 - i &&stu[j].getStuNum() != null; j++) {
if (stu[j].getCount() == stu[j + 1].getCount()) {
if ((stu[j].getStuNum().compareTo(stu[j + 1].getStuNum())) == -1) {
Student t = new Student();
t = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = t;
}
}
}
}
}
/**
* 输出第三名的信息
* @param stu
*/
public static void showFirdth(Student[] stu){
if(stu.length>=3 && stu[2].getStuName()!=null){
String name=stu[2].getStuName();
String num=stu[2].getStuNum();
int count=stu[2].getCount();
System.out.println("\n次数排名为三的"+name+"的进出图书馆的\t次数:"+count+"\t学号:"+num);
}else{
System.out.println("\n进出图书馆的次数没有达到第三名");
}
}
/*
* 输出第四名和第六名的信息
*/
public static void showFourSix(Student[] stu){
if(stu.length>=4 && stu[3].getStuName()!=null){
String name=stu[3].getStuName();
int count=stu[3].getCount();
System.out.println("\n排名为四的"+name+"的进出图书馆的\t次数:"+count);
}else{
System.out.println("\n进出图书馆的次数没有达到第四名");
}
if(stu.length>=6 && stu[5].getStuName()!=null){
String name=stu[5].getStuName();
int count=stu[5].getCount();
System.out.println("\n排名为六的"+name+"的进出图书馆的\t次数:"+count);
}else{
System.out.println("\n进出图书馆的次数没有达到第六名");
}
}
/**
* 获取图书馆的成功次数
*/
public static int getSumCount(Student[] stu){
int sumCount=0;
int i = 0;
for (i = 0; i < stu.length && stu[i].getStuNum() != null; i++) {
sumCount+= stu[i].getCount();
}
return sumCount;
}
}
结果是:
-
1.png
(21.12 KB, 下载次数: 0)
-
2.png
(12.07 KB, 下载次数: 0)
-
3.png
(25.08 KB, 下载次数: 0)
作者: 薛淑凯 时间: 2013-6-27 13:16
看看什么题目
作者: 蚂蚁搬家 时间: 2013-6-27 13:23
先看下是么子题目
作者: 万琪 时间: 2013-6-27 13:26
没人做?,,,顶起来- -,,
作者: 张莹楠 时间: 2013-6-27 13:38
15分.....我表示不淡定了
作者: 梁海君 时间: 2013-6-27 14:10
看看 看看
作者: shang1jk 时间: 2013-6-27 14:19
试一下, 说不定就15分呢
作者: 王延龙 时间: 2013-6-27 15:06
回复看题
作者: KaiM 时间: 2013-6-27 15:37
看下题目
作者: 以防万一 时间: 2013-6-27 16:16
我是来支持楼楼的{:2_45:}
作者: yan5108652 时间: 2013-6-27 16:56
了解题目
作者: 金辉 时间: 2013-6-27 17:20
顶一贴,瞧一瞧
作者: 郭伟杰 时间: 2013-6-27 18:44
版主很强悍啊,随便出道题我写了6个小时。
一共两个类 一个主类 一个Student类
主类有三个函数分别实现了 获取键盘录入的函数,录入的结果的函数,获取第三的版主及第四和第六的函数。
至于尾号依次为2、3、6的不允许出入的功能没有实现,我在考虑一下。
以下是此程序图片和打印结果
郑光宗进去了
刘凯进去了
王徐杰进去了
伍哲沂进去了
尹丽峰进去了
刘凯进去了
袁梦希进去了
袁梦希进去了
孙百鑫进去了
巩建进去了
王徐杰进去了
伍哲沂进去了
尹丽峰进去了
刘凯进去了
袁梦希进去了
袁梦希进去了
孙百鑫进去了
巩建进去了
王徐杰进去了
伍哲沂进去了
尹丽峰进去了
刘凯进去了
袁梦希进去了
袁梦希进去了
孙百鑫进去了
巩建进去了
王徐杰进去了
伍哲沂进去了
袁梦希进去了
袁梦希进去了
郑光宗进去了1次
袁梦希进去了8次
孙百鑫进去了3次
巩建进去了3次
王徐杰进去了4次
伍哲沂进去了4次
尹丽峰进去了3次
刘凯进去了4次
郑光宗次数排名第四
孙百鑫次数排名第三
巩建次数排名第三
尹丽峰次数排名第三
-
获得幸运版主的函数.jpg
(188.64 KB, 下载次数: 0)
获取第三的版主及第四和第六的函数
-
获取键盘录入的函数.jpg
(126.86 KB, 下载次数: 0)
获取键盘录入的函数
-
显示输出结果的函数.jpg
(141.5 KB, 下载次数: 0)
录入的结果的函数
-
主函数及Student类.jpg
(233.29 KB, 下载次数: 0)
主类和Student类
作者: 郭伟杰 时间: 2013-6-27 18:47
- import java.io.*;
- import java.util.*;
- public class heimeTest {
- public static void main(String[] args) throws IOException {
- List<Student> list=inputStudent(); //调用获取键盘录入的函数
- TreeMap tm=outputStudent(list);//输出录入的结果的函数
- getluckSttudent(tm);//获取第三的版主及第四和第六的。
- }
- public static List inputStudent() throws IOException//获取键盘录入的函数
- {
- String line;
- Student stu=null;
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//读取键盘录入
- List<Student> list=new ArrayList<Student>();//创建ArrayList此处用了泛型
- while((line=br.readLine())!=null)//利用循环读取键盘录入
- {
- if("over".equals(line))//结束标记over
- break;
- String []s=line.split(" +");//切割字符串
- stu=new Student(s[0].trim(),s[1].trim());//去除字符串两端空格
- list.add(stu);//Student对象进入List表
- }
- return list;//返回List
- }
- public static TreeMap outputStudent(List list)//输出录入的结果的函数
- {
- final TreeMap<Student,Integer> tm=new TreeMap<Student,Integer>();//新建一个TreeMap集合此处用了泛型
- int len=list.size();
- for(int i=0;i<len;i++)//利用循环获取List中每个元素
- {
- Student s=(Student)list.remove(0);//弹出首元素
- System.out.println(s.name+"进去了");
- if(!(tm.containsKey(s)))//Student对象进入TreeMap
- tm.put(s,1);
- else
- {
- tm.put(s, tm.get(s)+1);
- }
- }
- for(Student s:tm.keySet())//高级For循环遍历TreeMap
- {
- System.out.println(s.name+"进去了"+tm.get(s)+"次");
- }
- return tm;
- }
- public static void getluckSttudent(TreeMap tm)//获取第三的版主及第四和第六的。
- {
- Set s=new TreeSet();
- Set<Student> set=tm.keySet();
- for(Student stu:set)
- {
- s.add((Integer)tm.get(stu));
- }
- Object[] arr=s.toArray();//获取TreeMap中的值的集合并转成数组
- Arrays.sort(arr);//对数组排序
- for(Student stu:set)
- {
- if(arr.length>=3)//如果数组长度大于3输出第3名
- {
- if((Integer)tm.get(stu)==arr[arr.length-3])
- System.out.println(stu.name+"次数排名第三");
- }
- if(arr.length>=4)//如果数组长度大于4输出第4名
- {
- if((Integer)tm.get(stu)==arr[arr.length-4])
- System.out.println(stu.name+"次数排名第四");
- }
- if(arr.length>=6)//如果数组长度大于6输出第6名
- {
- if((Integer)tm.get(stu)==arr[arr.length-6])
- System.out.println(stu.name+"次数排名第六");
- }
- }
- }
- }
- class Student implements Comparable//创建Student类并实现排序的接口
- {
- String name;
- String num;
- Student(String name,String num)//构造函数
- {
- this.name=name;this.num=num;
- }
- public int hashCode()//复写hashCode
- {
- return num.hashCode();
- }
- public boolean equals(Student p1)//复写equals
- {
- //Person1 p=(Person1)obj;
- return (this.name==p1.name)&&(this.num==p1.num);
- }
- public int compareTo(Object obj) {//复写compareTo
- Student stu=(Student)obj;
- return this.num.compareTo(stu.num);
- }
- }
复制代码
作者: liye20110 时间: 2013-6-27 18:55
来看看是什么题目。
作者: 郭伟杰 时间: 2013-6-27 18:58
今天忙了一天,就写这道程序了。发现学习和实际写代码就是不一样啊!学会一些知识很容易,但写代码的时候就是另一回事了!写代码要非常注意一些小细节,比如我在写代码是把name写成了nname,一个小错误硬是找了几十分钟!
作者: 崔龙飞 时间: 2013-6-27 19:12
多谢楼主
作者: 小冰块 时间: 2013-6-27 19:19
亲,你似乎发错地方了……专门有个答案贴,在这里发答案是木有分的哦~
作者: 朱玉祥 时间: 2013-6-27 19:45
先看下 瞅瞅
作者: x.love 时间: 2013-6-27 20:08
好的,让我来看看什么题型
作者: droid 时间: 2013-6-27 20:28
看看
{:3_46:}
作者: 燕国庆 时间: 2013-6-27 21:08
kan yi xia
作者: 黄少海 时间: 2013-6-27 21:19
看下题先:D
作者: 佟都 时间: 2013-6-27 21:36
先看题,再说
作者: 杨政 时间: 2013-6-27 21:45
什么时候截止?
作者: youngster 时间: 2013-6-27 22:03
看题哟哟哟哟
作者: 亲雨泽 时间: 2013-6-27 23:17
看下题目吧!
作者: 王磊 时间: 2013-6-28 00:07
看一下什么题
作者: 刘永贵 时间: 2013-6-28 01:13
我会认真完成的
作者: lkjghvcx@163.co 时间: 2013-6-28 06:10
看下题先
作者: 萧萧北 时间: 2013-6-28 07:15
貌似很难的样子哦
作者: majunm 时间: 2013-6-28 07:28
第一题还有点小毛病 我在看看
-
捕获111.JPG
(56.63 KB, 下载次数: 0)
作者: 郑锐 时间: 2013-6-28 09:12
来看看都是什么题目
作者: 小佛爷 时间: 2013-6-28 09:27
先看看题是神马样子滴
作者: 赵然 时间: 2013-6-28 10:06
看看题目
作者: 彭彪 时间: 2013-6-28 10:08
试试看看实力
作者: Just_Only 时间: 2013-6-28 10:25
这个必须支持的啊
作者: 杨晓燕 时间: 2013-6-28 11:35
终于找到你了
作者: mo﹎雲℡ 时间: 2013-6-28 12:08
看一下!~~
作者: 杨彬 时间: 2013-6-28 12:48
技术分呀
作者: 胡滨 时间: 2013-6-28 13:29
{:soso_e182:}看看题目
作者: ゞ傀儡鮭鮭ぃ 时间: 2013-6-28 13:39
看一下神马题目
作者: 李征 时间: 2013-6-28 14:34
发现的晚了。。。 我来也来看一看吧
作者: livelysrd 时间: 2013-6-28 14:36
看看呗虽然不懂
作者: 占琳 时间: 2013-6-28 15:00
啥问题这么贵啊
作者: 吴刚 时间: 2013-6-28 15:07
看看吧..哎
作者: 黑马-王双 时间: 2013-6-28 16:54
寻寻觅觅
作者: mulua 时间: 2013-6-28 17:50
看看啊
作者: 万琪 时间: 2013-6-28 19:20
还能买答案啊?- -哈哈,,,怎么买,找我买嘻嘻
作者: 280270738 时间: 2013-6-29 20:32
fdjl wjkep ujpjf
作者: 张智文 时间: 2013-8-7 12:12
看看题目
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |