【题目】
Given a set of files, of which the sizes will not exceed 10 Gigabytes, find out whether an input string appears or not.
Your program is judged based on correctness and searching time.
Your program is allowed some preparation time no longer than one hour.
【具体要求】
1、题目及示例:
给定几个目标字符串和一系列文件,判断每个字符串分别在哪些文件中出现过。
给定的文件格式如下:
target.txt:需要寻找的字符串
N (需要寻找的字符串个数)
目标字符串,每个字符串一行
filename.txt:需要搜索的文件的文件名
M (文件个数)
各个文件名,所有文件名都是“数字.txt”的格式,而且都是按1、2、3、4的顺序排列的
文件名.txt:需要被搜索的文件,每个里面都是一个很长的字符序列
字符序列
结果写入到output.txt中
分成N行写,N是需要寻找的字符串个数。
第k行写出第k个字符串所在的文件名,文件名按从小到大排列,不用写.txt,文件名之间用空格隔开
例如:
target.txt
2
abc
\5a
filename.txt
3
1.txt
2
2.txt
3.txt
1.txt:
Asdfg
hjkld
2.txt:
dfghjabc
3.txt
2f\5abc3
可以看出2.txt和3.txt中都包含有字符串abc,3.txt中包含字符串\5a,所以output.txt中的结果是
2 3
3
其中,被搜索的文件名都是以“数字.txt”的格式命名的。
被搜索的文件中,所有char型的字符都有可能出现。要搜索的目标字符串中的字符都在ASCII码表中32到126的范围内,即只包括可以正常显示的字符和空格。
搜索时必须完全一样才能认为字符串存在。
例如,要搜索abc,文件中出现ab c或者ab
c等等都不代表abc存在。
2、程序说明
可以写成两个程序来完成任务,即“预处理程序”和“主程序”。“预处理程序”不能读取target文件,“主程序”可以读取所有的文件。即“预处理程序”不知道要搜索的是哪些字符串,只能从要搜索的文件中提取可用信息。“预处理程序”可以把获得的有用信息写到一些临时文件中,之后“主程序”再从中读取并利用。最后由“主程序”的运行时间来给分,“预处理程序”的时间不能超过一个小时。“预处理程序”的运行时间到达1个小时的时候会被强行终止。“预处理程序”并不是必要的,可以不写“预处理程序”,只写“主程序”。
程序运行过程中对于给出的txt文件(filename.txt,target.txt,要搜索的文件)只许读,不允许写和更改,如果试图写入或更改这些txt文件,程序会崩掉。
程序运行过程中如果需要建立一些临时文件,请在文件名中加入学号,这样做是为了防止不同的同学用了同样的文件名导致冲突。在程序运行完毕后请删掉临时文件,只保留output.txt文件。
3、测试方法
附件中已上传测试程序,测试方法如下。
3
将“预处理程序”的exe文件命名为 “pre学号.exe”,将“主程序”的exe文件命名为 “学号.exe”。把两个exe文件,大作业测试.bat和所有要读取的txt文件放到一个文件夹下。双击大作业测试.bat即可。
例如,学号为2008011101,则两个exe文件分别为“pre2008011101.exe”,和“2008011101.exe”。双击大作业测试.bat后,屏幕上会显示运行时间的记录,同时会生成一个“时间记录.txt”的文档。里面内容如下:
当前运行:2008011101
预处理程序
start: 13:43:14.73
end: 13:43:14.77
主程序
start: 13:43:27.33
end: 13:43:27.35
程序结束后,程序产生的output.txt会被测试程序改成“学号output.txt”,即会出现2008011101output.txt这个文件。输出文件名一定要写成output.txt。
测试程序在运行“预处理程序”时会对target.txt文件做处理,如果“预处理程序”试图读取target.txt文件中的内容,程序会崩掉。在运行“主程序”时不会有这种问题。
在最后测试时会先用一组中小规模的数据进行测试,判断程序是否能正常运行,结果正确后才进行大规模数据测试。因此,程序应能够合理地判断和处理不同规模的数据。
最后测试的大数据大致有100到1000个文件,总大小为几个G,不会超过10G。
4、测试环境
大作业的程序会在系服务器上运行。系服务器上只有VS2010,大作业只能使用VS2010,只能使用C或C++。使用其它软件的同学可以在写好程序后借用其他同学的VS2010生成出工程,并将VS2010里的.exe文件按照要求复制出来。
程序中只能使用4G的内存,内存超出后程序会崩掉。
系服务器的处理器型号:Intel(R) Xeon(R) CPU E7- 8850 @ 2.00GHz
5、格式要求
大作业按如下格式提交:
文件夹
---说明文档
---pre学号.exe(预处理程序的.exe文件)
---学号.exe(主程序的.exe文件)
---preSRC(预处理程序的c、cpp和.h文件)
---SRC(主程序的c、cpp和.h文件)
4
例如:
工程文件不必提交。如果没有预处理程序,不用提交preSRC文件夹和 pre学号.exe。
说明文档要尽可能写的详细,包括具体的算法设计,程序中内存的使用情况等内容。没有说明文档或者说明文档过于简单都会扣分。
请严格按照格式要求提交,以免影响大作业成绩。
6、评分标准
大作业的评分标准暂定如下:对于结果正确的大作业程序,按“主程序”的运行时间排序,最快的得到120分,第2名118分,每往后1名减掉2分。结果错误或程序崩掉将得不到分数。
截止日期之后,迟交1天扣10%,程序有错误或无法运行会打回,之后还可以提交,但每提交一次扣15%
以下几种情况都会造成程序崩溃:
(1) 预处理程序读取了target.txt文件
(2) 程序试图写入或修改 target.txt、filename.txt、要搜索的文件。
(3) 程序的内存使用超过了4个G。
(4) 使用了VS2010以外的软件生成的.exe文件
请大家务必注意。
7、提示
1、debug和release
VS的程序有debug和release两种模式。通常默认是debug模式,这种情况可以对程序进行调试。release模式中无法调试程序,VS会对release模式的程序做优化,release模式会比debug模式要快。release模式对于程序的要求更严格,一些在debug模式中可以使用的程序可能在release程序中无法运行。提交release版本的exe文件可以达到更快的运行速度。
2、关于预处理程序
由于预处理程序达到1个小时后会被强行中断,然后开始运行主程序,因此不建议让主程序过分依赖预处理程序,建议在程序中加入一些判断机制,例如可以在文件中记录些数据表示预处理程序运行到了哪一步,主程序根据预处理程序是否运行完成、运行到了哪一步合理提取相关信息继续工作。
3、大数据的情况
建议各位同学在自己的电脑上试着生成几个G的大数据来测试自己的程序,很多程序在处理小数据时没有问题,数据量一旦增大程序很可能会无法运行。
4、确保程序运行完后能直接退出
不要在程序中加入system("pause")等语句,程序应该能够在不加入任何键盘操作的情况下正常运行并退出。
最后祝大家顺利完成大作业。
- 浏览: 1020115 次
-
文章分类
最新评论
-
18335864773:
很多公司项目 都在使用pageoffice 来操作word,e ...
用java生成word文档 -
Gozs_cs_dn:
请问下博主, 怎样将sitemesh3.xsd绑定 sitem ...
SiteMesh3配置 -
Rose_06:
springside4.0quick-start.bat报错原因 -
ilemma:
我也是刚参见工作啊,经理让自学这个,有些东西不太懂,能不能发个 ...
Apache Shiro在Web中的应用 -
shanbangyou:
你废了
程序员上班打酱油的方法
发表评论
-
递归归并排序
2016-02-11 20:26 355/* MergeSort.java CSC 225 - ... -
java冒泡排序对布尔类型进行排序
2015-12-11 23:06 649QQ 928900200 程序代写 java不能对 ... -
判断宏是否是“安全”的
2014-11-22 22:54 571给了一系列C++的宏定义,问你一个表达式是否是“安全”的。 ... -
C语言求平均值
2014-11-19 19:14 569木其工作室:QQ928900200 Computing I ... -
C语言连连看
2014-11-18 16:34 608(1)定义一个矩阵,随机产生字符布置地图,例如下面这个4x ... -
The Monty Hall Problem
2014-10-19 12:58 652GNG1106 Lab 3The Monty Hall Pro ... -
java类
2014-10-16 08:27 311木其工作室 qq 928900200 You are ... -
ECE/CPSC 3520
2014-10-13 09:49 554ECE/CPSC 3520Fall 2014Software ... -
计算机安全
2014-10-07 14:52 447CS461 MP 1: Due Wednesday 09/17 ... -
java星球机器人建模UML
2014-10-06 22:29 411Your task is to design and imp ... -
数据库sql
2014-10-06 22:25 626service QQ 928900200 ... -
C语言 cgi(3)
2014-08-04 09:17 3611cs3157 – Advanced ProgrammingS ... -
C语言 cgi(2)
2014-08-04 09:10 3131Columbia Universitycs3157 – Ad ... -
C语言cgi(1)
2014-08-04 09:08 3451Columbia Universitycs3157 – Ad ... -
c++ input,output
2014-08-04 08:37 485You should be comfortable w ... -
Array of Objects
2014-08-04 08:30 674You should be comfortable w ... -
bat脚本打开网页
2014-07-13 09:54 895start iexplore "http://ww ... -
java 汉诺塔实现自动演示
2014-07-10 11:53 5181、增加计时功能,显 ... -
代写java程序qq:928900200
2014-06-18 12:46 3学校为全面提升学校教学质量,提高管理水平,决定开发一套小型成 ... -
基于MVC的系统代写
2014-06-16 12:13 452人力资源管理系统 完成系统静态页面设计,页面数 ...
相关推荐
这是我从国外知名大学cs专业留学的同学那里收集来的作业资料(英文原版) 【留学生作业代写资料assignment英文原版】Python作业之Frequent Itemset Mining Using MapReduce
代写C程序 C++ Linux Unix 数据结构 操作系统
这是我从国外知名大学cs专业留学的同学那里收集来的作业资料(英文原版): 【留学生作业代写资料assignment英文原版】c++作业--TIME SERIES & BOND PRICING 您需要有一定的英文基础。
Java集合框架是Java编程语言中处理数据结构和算法的一个核心部分,它包括了List、Set、Map等接口以及具体的实现类,如ArrayList、HashSet和HashMap等。程序员可以使用这些数据结构来有效地存储和操作数据。 2. Java...
【留学生作业代写资料assignment英文原版】c++作业--GRPC练习part 2: Completing the Distributed File System (DFS) 这是我从国外知名大学cs专业留学的同学那里收集来的作业资料(英文原版)
作业资料中提及了必须独立完成作业,并且不能代写,这涉及到学术诚信和代码安全性问题。在完成作业的过程中,确保代码的安全,防止他人非法访问或复制代码是非常重要的。同时,也要避免使用容易破解的代码保护措施。...
标题《【留学生作业代写资料assignment英文原版】Python作业之CSCI 3151: Assignment 2》和描述表明,这是一份国外大学计算机科学专业的Python作业资料,其中包含关于线性代数和多变量函数的微分学的复习和扩展理解...
完成这份作业对于加深理解CPU缓存结构、缓存性能优化及影响缓存性能的因素有着重要的帮助,也是一次难得的实践和理论结合的实验。对于计算机科学专业的学生来说,了解和掌握缓存的工作原理和模拟方法是非常关键的,...
在这个特定的作业中,你需要根据提供的需求来设计一个UML图,而不是去实现它。以下是关于如何完成这个任务的一些关键知识点: 1. **分析需求**:首先,你需要仔细阅读并理解所有列出的需求。这涉及到识别哪些需求是...
操作系统原理——需求分页内存分配策略 在操作系统中,内存管理是至关重要的组成部分,而需求分页内存分配方案是现代操作系统中广泛采用的一种方法。它允许程序只在需要时加载到内存,从而有效地利用有限的内存资源...
这篇作业是针对CSC 413课程的一份Homework 1,主题是创建一个简单的REST服务器。这个项目旨在让学生实践和理解几种设计模式,包括工厂模式、建造者模式、数据访问对象(DAO)模式、单例模式、懒加载和数据传输对象...
这是我从国外知名大学cs专业留学的同学那里收集来的作业资料(英文原版)。 《c++作业--GRPC练习Part 1: Building the RPC protocol servic》 仔细阅读之后,发现跟国内大学cs专业的作业还真是不一样,指导性非常...
packettracer大作业,实现四个子网,并实现子网间设置防火墙,禁止被外部ip访问内网,只能访问边界服务器,手动设置路由表
代写个人述职报告.docx
在这个VB代码作业中,主要涉及了Visual Basic的基本操作和编程逻辑,适合初学者入门学习。以下是对这个作业的详细解析: 1. **新工程的创建**:创建一个“标准EXE”工程是VB应用程序的基础。这可以通过执行菜单命令...
1. **民事诉状的基本结构**:民事诉状是公民、法人或其他组织在合法权益受到侵害时,向人民法院提出诉讼请求的一种法律文书。它通常包括原告诉讼主体信息、被告诉讼主体信息、诉讼请求、事实与理由、证据列举、法律...
"律师代写遗嘱范本.docx" 本资源摘要信息中,我们将对律师代写遗嘱的概念、法律规定、格式和实践操作进行详细的解释和分析。 一、律师代写遗嘱的概念 律师代写遗嘱是一种特殊类型的遗嘱,它是由律师根据遗嘱人的...
除了学术内容,课程大作业还包括学习心得的撰写。这部分要求学生反思课程学习,分享自己的感悟,字数不少于200字,以此证明作业的独立完成性。此外,作业的具体要求中还规定了字数限制和行距标准,例如,选择一道...
首先,寻求代写服务的买家需要向卖家提供大量的工作信息和数据,这些内容可能包含公司的敏感信息和商业机密。即使代写服务商在事先承诺保密,但法律专家指出,这种行为在网络环境下容易导致泄密、欺诈等问题。根据...
松下FP-XHC60T中型程序框架:含触摸屏操作及轴定位功能,PLC通讯主从站设计,标准逻辑结构清晰,可代写PLC程序,松下FP-XHC60T 标准可带18轴中型程序,总共逻辑1万多步,含昆仑通态触摸屏程序(触摸屏附带配方功能,...