Project 1 FAQ [最后更新:2022/3/28 22:00] #4
RicoloveFeng
started this conversation in
General
Replies: 2 comments 3 replies
-
|
Q: 为什么要把DELETE移除了? |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
当我们想要查看商品详细信息的时候输入的指令是SELECT....WHERE ID CONTAINS...,显示了一个换行的、显示了详细信息的界面 |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
本 FAQ 会持续更新。最新的条目会放在最前面。
Q:用VS跑得好好的,但是在Linux上就会core dump,我该怎么办?
A:不少同学遇到这样的问题都是出现这样的代码形式:
不要把函数内的临时数组变量直接返回上层使用。你应该用
char* str = new char[10];这样的写法。Q:商品描述里如果有逗号,会使SQL语句解析失败。
A:我们保证测试的时候,商品描述中不会出现逗号。如果你打算支持含逗号的商品描述,也没有问题。
Q:Visual Studio 老是让我使用
scanf_s,我不想用,怎么办?A:关闭 Visual Studio 的 SDL 检查。方法请自行搜索。
Q:我有一些编程相关的问题,直接在 Github 问似乎有些不妥,可以找助教吗?
A:你可以询问你的责任助教。在提问前,请查阅#6 中的《提问的艺术》,确保你的提问是有效率的。比如,记得带上你的代码(当然,是私聊下,不要随意公开你的代码),哪里报错了,报的错是什么,在搜索引擎搜了什么、但是也没能解决你的问题等等。
Q:可以用第三方库来完成 Project 吗?(例如 Boost)
A:默认不可以,但是可以用所有的标准库。标准库的手册:https://www.cplusplus.com/reference/
如果你确信使用第三方库能解决某个非常麻烦,但是对知识学习又非常trivial的问题,那么你可以向助教请示。详情请见#66。
注意,本限制仅针对于基础实现部分,扩展实现不限制使用第三方库。
Q:我没有很理解计算器算式的生成规则。
A:重点在于生成一个基础的算式,然后基于基础算式生成带括号的算式。如果拿不准怎么合并项目,可以自己决定,重点在于制作出带括号的算式,以考察你对算术表达式的解析能力。助教在测试的时候会准备算式直接测试你的计算器模块。
另外,计算器的具体要求如下:
s由数字、+、-、*、/、(、)、.和(空格) 组成。包含其它字符的表达式是无效的。1 + 2"与"1+2"等价。注意,小数点周围需要与数字相邻,"0. 2"并不能认为是"0.2"。同样,数字之间也需要紧凑在一起,"1 2 + 3"不认为是"12+3"s为有效表达式且有运算结果时,请你返回保留一位小数的运算结果(整数不带.0),用字符串表示。s可能存在包括但不限于「除零错误」或者「括号不匹配」等错误。如果表达式无效,请返回错误类型,也是用字符串表示。+不能用作一元运算(例如, "+1" 和 "+(2 + 3)" 无效)-可以用作一元运算(即 "-1" 和 "-(2 + 3)" 是有效的)4 / 2 (1 + 1)"应该视为无效表达式。-1*-1" 是无效的。.2,你可以报错,也能支持它的处理——尽量确保你的程序不会崩溃学有余力的同学可以把自己的算术表达式模块用 Leetcode 224 检查一下,但是我们的要求与 Leetcode 上的要求稍有区别。
Q:SQL语句返回的数据与示例中呈现的结果不同?
A:这一部分主要考察对SQL解析和文件IO的能力,所以你可以对 SELECT 返回的数据在代码层面进一步加工,然后再输出到控制台上。
Q:如果一个输入/算式/SQL语句的错误有多个,我应该都报告出来吗?
A:不需要,只报告一个即可。
Q:一个功能有C和C++的不同版本(例如
cout/printf,ostream/fprintf),我该用哪一个?A:没有要求,哪种方便用哪种。
但是作为基于C++的课程,当然更支持大家用C++的版本。但是有时候「同一功能的两种版本」并不完全等价。例如,对于参数较多的输出,printf 有格式字符串能用,若直接用 cout 相较起来更繁琐一些。而对于自定义类型,cout又能做到更方便的输出。
Q:中文字符怎么检测?一个中文字符算多长?
A:中文字符可以靠字符编码边界来确定,请在网上搜搜资料,选择你喜欢的方法来检测。一个中文字符我们约定长度为1,而不是2或者3。
如果你发现C++处理中文字符实在棘手,可以参考#66。
Q:两周时间不足以让我完成项目功能,请问我应该在 PPT 里面展示什么?
A:我们希望你在PPT里展示你将要用什么方法解决项目中的需求,你的数据结构包含什么变量,你设计了哪些函数,不同的类之间是怎么互相调用的。也就是说,我们希望看到你的设计,而并不马上要看到你的代码。此外,后续的开发中你也可以继续修改你的PPT,并不要求实现一定按照当时所展示的PPT。
Q:我担心助教的环境跑不起来我的代码。
A:验收是在cslabcms上当场下载代码并在你的机器上运行,因此只需要确保你上传的代码在你的机器上能运行即可。这也意味着你可以随意选择编译器以及语言标准。
Beta Was this translation helpful? Give feedback.
All reactions