出了一个C#笔试题

上午给公司的几个新同事简单讲了讲C#语言的基础,经理让出些题目给大家练练手。从网上找了找,也没太合适的,就自己现编了一个,觉得难度还挺适中,也许以后出练习题、笔试题什么都用得着,遂记录如下:

写一个简单的图形打印程序,要求可以在dos窗口打印三角形,正方形和矩形。

初级要求:
支持的输入参数:图形类型,图形大小,空心/实体,用来拼接线段的字符
输出:指定大小、指定类型、使用指定字符表现的空心或实体图形
比如,如果要用a实现一个大小为5的空心正方形,则显示效果如下
aaaaa
a     a
a     a
a     a
aaaaa

中级要求:
可以在一行显示多个图形
说明:要求所有图形的顶点等高;每个图形的最左侧的点和前一个图形最右侧的点的竖直距离差一个英文字符
如:显示一个大小为5的用a拼接的空心正方形和一个大小为3的用@拼接的实体三角形:
aaaaa       @
a     a    @@@
a     a @@@@@
a     a
aaaaa

高级要求:
1.可以实现空心图形的嵌套
说明:这一个要求的实现要基于中级要求中的实现,也就是在支持一行显示多个图形的同时,在一个空心图形内部还可以嵌套其他图形
2.可以实现所有图形的“变大”和“缩小”
说明:程序运行起来后,控制台提示用户输入起始参数;然后显示相应图形;接下来,通过在控制台继续键入类似“enlarge”这样的指令来放大所有图形(放大尺寸也可以通过参数进行定义),同理可以进行缩小;放大
或缩小之后的图形可以重新显示,并等待进一步指令输入。


其他说明:
1.程序员自己设计程序的参数输入方式,越简单越好
2.程序的扩展性要尽可能强,要用尽量OO的方式来处理问题
3.要充分考虑输入参数的不合理输入区间(比如超过dos控制台的长度,比如内嵌图形的大小超过了外围图形的大小等),并给出相应处理
4.尽量多使用.net类库中的已有类型

原文地址:https://www.cnblogs.com/xingyukun/p/825535.html