| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 482 人关注过本帖
标题:[求助]新手,求段程序
只看楼主 加入收藏
superzhaoxi
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-25
收藏
 问题点数:0 回复次数:7 
[求助]新手,求段程序
1. 用面向对象语言实现:
(1)类Dictionary:从文件dictionary.txt 中读入给定的英文单词并保存在其数据成员中;dictionary.txt 中每行有多个单词,用“;”加以分隔,每个单词最多16个字符;单词不跨行,因此每行的长度可能不一样,最多为n 个字符;该文件最多有m 行,实际行数可以不等于m;n 和m 均在产生Dictionary 的实例时由调用方给出;Dictionary 对外提供成员函数boolean search(String w),使得w 在这些单词中时返回true,否则返回false。
(2)一段测试程序:从命令行给出n 和m;产生Dictionary 的一个实例dic;从键盘读入单词word;输出dic.search(word) 的结果。(选做:改从指定文件中读入多个单词,分别输出相应的search 结果)

多谢啦
2006-10-27 10:23
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
这种题目楼主应该自己先思考一下
用简单的数据结构就能实现了

可惜不是你,陪我到最后
2006-10-27 10:34
superzhaoxi
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-25
收藏
得分:0 

实在惭愧,我学java不到一个月,现在连怎么读入一个.txt文件都不会......
周一就要交作业了,只能摆脱大家了

2006-10-28 01:05
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
不会吧,你们老师也太离谱了,一个星期不到,就让学生做这个东西

可惜不是你,陪我到最后
2006-10-28 11:08
superzhaoxi
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-25
收藏
得分:0 
老师交的课程不是java,是面向对象技术,那个,我是选的计算机院的课程,他们本科都学过C和C++,我就是个编程白板。。。。。
我导师要求学java,没办法哦
现在要交作业,只能先上论坛问问啦,千里版主,这次帮帮忙
2006-10-28 18:58
superzhaoxi
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-25
收藏
得分:0 

import java.util.HashMap;
import java.io.*;


class Dictionary
{
private HashMap words = new HashMap();

public void setDictionary(HashMap words)
{
this.words = words;
}
public static String word;
public boolean search() //(String word)
{
if(words.containsKey(word))
return true;
else
return false;
}
}

public class DictionaryTest {

public static void main(String[] args)
{

Dictionary dic = new Dictionary();
HashMap map = new HashMap();
File read = new File("D:\\Administrator文档和收藏夹\\java\\dictionary.txt");
try
{
BufferedReader br = new BufferedReader(new FileReader(read));

String line = null;

line = br.readLine();
while(line!=null)
{
String[] words = line.split(";");
for(int i = 0; i < words.length; i ++)
{
map.put(words[i],words[i]);
}
line = br.readLine();
}
br.close();
dic.setDictionary(map);

BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );
Dictionary.word = cin.readLine();
System.out.println("search words of search in dictionary, result is " + dic.search());
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
那.......我写了一大堆,只能实现查找,但m和n不太清楚什么意思,不知道要怎么实现,而且我觉得学的很乱,能帮我修改下么
还有,要一次查找多个,我想的是用BufferedReader的readLine,但貌似不行,能给我点思路么?

2006-10-28 19:22
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
首先你的程序就不符合要求,因为别人要求是传入一个String对象,你再判断有没有这个单词,而你却是把一个word做为一个public static的成员变量,这显然是不行的,传入参数去判断不是更好么?

你这里只能读入一行,因为你没有设置一个循环去永久地得到键盘的输入

可惜不是你,陪我到最后
2006-10-29 09:04
superzhaoxi
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-25
收藏
得分:0 
哦,我改了一下
public boolean search(String word)
System.out.println("search words of search in dictionary, result is " + dic.search(cin.readLine()));
这样就好了
还有个问题,就是m和n,要从命令行给出是什么意思,Dictionary.txt文件不是已经给定了么?
2006-10-29 18:51
快速回复:[求助]新手,求段程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016204 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved