HM148 空工程两步搭
HM148 空工程两步搭
来源: 第 148 集 职工管理系统-创建项目
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
做一个可编译的工程只要两步:先创建**空项目**,再往项目里**添加文件**。空项目建好后,左侧会分出三个目录:头文件、源文件、资源文件。程序入口必须放在源文件目录下的 .cpp 里;源文件若没写后缀,默认补上 .cpp。项目名称可以自定,不强制用某一个固定字符串。
请模拟这套脚手架,按命令维护当前工程,不能只打印一句“创建成功”:
NEW name:创建名为name的空项目,三个目录都为空。若已经创建过项目,输出FAIL EXISTS。ADD kind file:把文件加入对应目录。kind为H(头文件)、S(源文件)、R(资源文件)。若尚未NEW,输出FAIL NO_PROJECT。对源文件:若文件名里不含.,先补后缀.cpp再加入。LIST:输出当前项目名,以及三个目录各自的文件个数与按字典序排好的文件名。若尚未NEW,输出FAIL NO_PROJECT。ENTRY:判断源文件目录里是否至少有一个以.cpp结尾的文件(这才算有程序入口)。有则ENTRY YES,否则ENTRY NO。尚未NEW时输出FAIL NO_PROJECT。
输入格式
第一行一个整数 \(q\)(\(1 \le q \le 200\)),表示命令条数。
接下来 \(q\) 行,每行一条命令,格式见上。name、file 由字母、数字、下划线、点或中文组成,不含空白,长度 \(1\sim 64\)。
输出格式
对每条命令输出若干行,行末换行:
NEW成功:CREATED、一个空格、项目名。ADD成功:ADDED、一个空格、种类字母、一个空格、实际加入的文件名(源文件可能已被补上.cpp)。LIST成功:第一行PROJECT、一个空格、项目名;随后三行依次为
H cnt name1 name2 ...
S cnt name1 name2 ...
R cnt name1 name2 ...
其中cnt为该目录文件数;cnt=0时该行只有字母和0,后面不再跟文件名。同一目录内文件名按字典序、以单个空格分隔。ENTRY与失败信息按题目描述原样输出。
样例
输入 #1
8
NEW PolyStaff
ADD S 职工管理系统.cpp
ADD H workerManager.h
ADD S workerManager
ADD R icon.ico
LIST
ENTRY
NEW Other
输出 #1
CREATED PolyStaff
ADDED S 职工管理系统.cpp
ADDED H workerManager.h
ADDED S workerManager.cpp
ADDED R icon.ico
PROJECT PolyStaff
H 1 workerManager.h
S 2 workerManager.cpp 职工管理系统.cpp
R 1 icon.ico
ENTRY YES
FAIL EXISTS
输入 #2
3
ADD S main.cpp
ENTRY
NEW EmptyApp
输出 #2
FAIL NO_PROJECT
FAIL NO_PROJECT
CREATED EmptyApp
说明
- 必须先空项目、后加文件;入口文件属于源文件目录,后缀是
.cpp。 ADD S helper会变成helper.cpp;已经写了.cpp的不再重复添加后缀。- 空项目的三个目录都可以暂时没有任何文件;此时
ENTRY为NO。
信息
- ID
- 1147
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者