联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2018-05-20 08:42


本次作业需要大家综合目前学到的所有 C 有关的知识完成(也可以自行学习并结合一

些其他的数据结构相关内容),本次作业由于具有一定的量度,会根据大家的最后程序实现

运行结果正确性(2/3)以及程序运行时间(相比于所给的样例程序加速效果,最后依据大家

的整体完成情况评定)(1/3)给大家不同的分数,本次分数会占期末总分的 30%(第一次作

业占 10%,平时表现占 10%,期末大作业占 50%)。

作业说明:

1. 本次作业给出了一个名字是“dictionary.txt“的文件,该文件给出了所有正确拼写的单词

共 143091 个,其长度最短为 1 个字符,最长为 45 个字符,组成单词的字符包括了 a-z

的 24 个小写字母和单引号“’”。字典中的所有单词均按照字典顺序排序,因此无需再

次对输入进行排序。

2. 本次给出的一些供大家自行测试的样例,他们被放在 test 文件夹下面,而相应的结果文

件被放在了 key 文件夹下面,他们被用来给大家 debug,但是并不会用来进行最终的正

确性和时间测试。

3. 本次作业基本要求便是,按顺序输出所有不存在于字典中英文单词(其中由连续的字符

组成,这些字符只能是“’”以及大小写的 24 个字母,并且起始字符不能是单引号),

并将错误拼写的单词数目输出,格式如 5 所示。

4. 注意:在检查时大小写是等效的,比如:字典中包含“abandon’s”,如果测试文件中存

在“AbanDon’s”,我们认为是正确的。

5. 下面给出一个样例说明,下面是原文:

[111th Congress Public Law 148]

[From the U.S. Government Printing Office]

[[Page 124 STAT. 119]]

Public Law 111-148

111th Congress

实际传入的输入是:

a

aaa

aaas

aachen

aalborg

[…dictionary.txt 的其他内容…]

zygotes

zymurgy

[111th Congress Public Law 148]

[From the U.S. Government Printing Office]

[[Page 124 STAT. 119]]

Public Law 111-148

111th Congress

以所给的 dictionary 为例,输出应该是(这里必须和原文一样,不进行大小写变换):

U

S

STAT

Words Misspelled: 3

其中非字母和单引号的字符都可以被忽略(等效于空格),并转换大小写后,原文可以

转化为:

th congress public law

from the u s government printing office

page stat

public law

th congress

而输出的单词都不存在于字典中。

6. 输入数据的方式,为了简化本次作业,测试内容不需要大家从文件读取,测试将会从标

准输入传入(和一般的 scanf 的输入方式相同),输入内容首先是 dictionary.txt,然后是

所有的测试样例,输出大家按照标准输出即可(即 printf)。字典的输入会以一个“zymurgy”

的单词作为结尾,而测试内容以 EOF 结尾(使用 scanf 的返回值判断,返回非 EOF 表

示正常输入,返回 EOF 表示输入结束)。

7. Ubuntu 中请不要使用 cs50.h 头文件,大家可以根据自己的需要添加头文件(你可能需

要 stdio.h、string.h、ctype.h、string 等头文件)。大家可以使用 C++的 string 类型或者 C

的 char 数组进行处理(你也可以按照自己需要快速查找定义自己的数据结构)。

8. 本次作业可以在 cs50 的环境下完成,也可以在 Ubuntu 虚拟机上面完成,或者在

windows/mac 上面不同 C 编程 IDE 上面进行。但是测试必须在 cs50 环境中或者虚拟机

中完成。但是 cs50 环境下并不支持自动提交,你需要将在本地测试正确的程序源代码

发送到助教邮箱(lsk_mprc@pku.edu.cn)

cs50 环境下的测试方法:

⚫ 在教学网上下载了 homework2 的压缩包,并上传到 cs50 的 workspcae 中,解压即可

⚫ 请在解压后的 homework2 文件夹里新建 cpp 或 c 源文件来进行测试

⚫ 如果你想按照自己的方法测试,请同学们自行处理

⚫ 如果你想用 run.sh 进行测试,请看末尾的测试说明

ubuntu 虚拟机环境下的测试和提交方法:

⚫ 无需下载任何文件,更新 submit50 以后会自动将相关内容下载到虚拟机中,其中

homework2 的文件夹会默认放在桌面(你可以移动该文件夹)。

⚫ 提交方法和第一次 scratch 作业提交方法相同,只是此次需要拖入的文件是你的源代码

文件,并注意提示选择第几次作业时选择正确(第二次)。提交后会自动检测你程序的

正确性并给出其执行时间,请尽量优化你的程序来更快的完成测试吧!如果你对结果满

意,你可以选择打包文件并提交上传即可完成本次作业。

测试说明:

⚫ 首先你需要执行 chmod +x [run.sh 文件路径] 指令来添加可执行权限(ubuntu 环境下不

需要这一步操作)

⚫ 拖入 run.sh 文件,加上你的源代码文件名(不要加后缀名)

例如我的源代码文件是 test2.cpp,那么我应该使用命令:

/home/lee/Desktop/homework2/run.sh test2

来完成测试。

需要注意的是,ubuntu16.04 以及更新的版本 gcc/g++编译器版本太高(高于 5.0),会出现

错误,同学们可以通过指令“gcc/g++ -v”来进行版本查询,如果高于 5.0,请运行 homework2

文件夹里面的 vchange.sh 来降低版本(拖到终端回车运行即可)。


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp