OC4_电子词典

//
//  MyDictionary.h
//  OC4_电子词典
//
//  Created by zhangxueming on 15/6/15.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

#define FilePath @"/Users/zhangxueming/Desktop/ios1509/Day16_类的复合设计/dict.txt"

@interface MyDictionary : NSObject
{
    NSMutableDictionary *_mulDict;
}

- (id)initWithFile:(NSString *)path;

+ (void)userInterface;

@end
//
//  MyDictionary.m
//  OC4_电子词典
//
//  Created by zhangxueming on 15/6/15.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "MyDictionary.h"

@interface MyDictionary ()

- (BOOL)parseFileContent:(NSString *)path;

@end

@implementation MyDictionary

- (id)initWithFile:(NSString *)path
{
    self = [super init];
    if (self) {
        _mulDict = [NSMutableDictionary dictionary];
        [self parseFileContent:path];
    }
    return self;
}

- (BOOL)parseFileContent:(NSString *)path
{
    //读取字典文件
    NSString *fileContent = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    //判断是否读取成功
    if(!fileContent)
    {
        return NO;
    }
    //解析
    NSArray *contentItems = [fileContent componentsSeparatedByString:@"\n"];
    NSInteger len = [contentItems count];
    for (NSInteger i=0; i<len; i+=2) {
        if ([[contentItems objectAtIndex:i] isEqualToString:@""]) {
            continue;
        }
        NSString *key = [[contentItems objectAtIndex:i] substringFromIndex:1];
        NSString *value = [[[contentItems objectAtIndex:i+1] substringFromIndex:6] stringByReplacingOccurrencesOfString:@"@" withString:@"\n"];
        [_mulDict setObject:value forKey:key];
    }
    return YES;
}

+ (void)userInterface
{
    MyDictionary *dict = [[MyDictionary alloc] initWithFile:FilePath];
    NSLog(@"欢迎使用电子词典");
    char str[50]={};
    while (YES) {
        NSLog(@"请输入要查找的单词:");
        scanf("%s", str);
        NSLog(@"翻译:%@",[dict->_mulDict objectForKey:[NSString stringWithUTF8String:str]]);
    }
}

@end
//
//  main.m
//  OC4_电子词典
//
//  Created by zhangxueming on 15/6/15.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "MyDictionary.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        [MyDictionary userInterface];
    }
    return 0;
}
时间: 2024-12-11 12:06:56

OC4_电子词典的相关文章

使用Android简单实现有道电子词典

前言: 毕业设计的内容,仅仅有Java基础.没学过Android. 本着用到什么学什么.花费了10多个晚上完毕毕业设计. 当然,仅仅是简单的实线了电子词典功能,自始至终没有考虑过性能等问题. 本电子词典的数据文件是不错的,有道的API是分析有道电子词典的日志文件得到的,离线的柯林斯词典是Mdict词典的MDX文件转换(https://bitbucket.org/xwang/mdict-analysis)来的.这个是本电子词典的唯一亮点吧.由于我一直认为数据比界面更重要. 文件布局: waterm

C++第15周(春)项目3 - OOP版电子词典(二)

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序须要的相关文件,请到http://pan.baidu.com/s/1qW59HTi下载.) 做一个简单的电子词典. 在文件dictionary.txt中.保存的是英汉对比的一个词典.词汇量近8000个,英文.中文释义与词性间用'\t'隔开. 编程序,由用户输入英文词,显示词性和中文释义. 提示1:假设要用OO

电子词典--两次扫描文件发/链表法

二次扫描文件法实现的电子词典 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> struct dict { char *key; char *content; }; int get_dict_size(FILE *pfile)//得到字典文件中词条总数 { if (pfile == NULL)

第十七周项目7 电子词典(还有疑问,求解答)

要求: 做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000 个,英文.中文释义与词性间用'\t'隔开. 编程序,由用户输入英文词,显示词性和中文释义. 提示1:定义一个Word结构体表示一个词条,其中的数据成员stringenglish; 表示英文单词,stringchinese;表示 对应中文意思,stringword_class;表示该词的词性:定义Wordwords[8000]存放所有词条成员,intwordsNum;表示词 典中的词条

第14周上机实践项目3——电子词典

做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文.中文释义与词性间用'\t'隔开. 代码 #include <iostream> #include <fstream> #include <cstdlib> using namespace std; class dictionary; class Word { public: Word(){} void set(string e,string c,string

第十四周 项目三 电子词典

/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:d.cpp *作 者:张旺华 *完成日期:2015年6月3日 *版 本 号:v1.0 */ /*项目3-OOP版电子词典] 做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个, 英文.中文释义与词性间用'\t'隔开. (1)编程序,由用户输入英文词,显示词性和中文释义. 提示1:如果要用OOP完成这个词典(当然也

第十四周项目3-OOP版电子词典

做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文.中文释义与词性间用'\t'隔开. (1)编程序,由用户输入英文词,显示词性和中文释义. 提示1:如果要用OOP完成这个词典(当然也可以用OO方法实现),可以定义一个Word类表示一个词条,其中的数据成员string english; 表示英文单词,string chinese;表示对应中文意思,string word_class;表示该词的词性:还可以定义一个Dictionary类,

第十四周(OOP版电子词典)

/* *copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:第十四周(OOP版电子词典) *作者:王忠 *完成日期:2015.6.10 *版本号:v1.0 * *问题描述:做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文.中文释义与词性间用'\t'隔开. (1)编程序,由用户输入英文词,显示词性和中文释义. 提示1:如果要用OOP完成这个词典(当然也可以用OO方法实现),可

第十四周项目3:OOP版电子词典

问题: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:project.cpp *作 者:陈文青 *完成日期:2015年6月17日 *版 本 号:v1.0 * *问题描述:做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文.中文释义与词性间用'\t'隔开. 编程序,由用户输入英文词,显示词性和中文释义. 提示1:如果要用OOP完成这个词典(当然也可以用O