/CSharpHomeWork

软件构造基础课程作业

Primary LanguageC#

CSharpHomeWork

软件构造基础课程作业 by 软工5班 张智敏 2018302110370

Week 1- Calculator

一、控制台版

按照课堂要求,满足了基本四则运算功能及以下要求:

1、非数字输入的处理

2、除0错的处理

3、小数计算

4、较大数据的处理

二、WinForm版

模仿win10计算器,制作了一款四则运算计算器,支持以下功能:

1、连续计算,如1+2+3

2、上轮计算结果作为下一轮数据使用,如1+2=3,(3)-7=-4

3、输入格式错误时提示

4、小数计算

5、退格(<-),清空当前数据(C),清空所有数据(CE)

Week 2-Prime

1.编写程序输出用户指定数据的所有素数因子。

2.编程求一个整数数组的最大值、最小值、平均值和所有数组元素的和。

3.用“埃氏筛法”求2~ 100以内的素数。2~ 100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,以此类推...最后剩下的就是素数。

Week 3-Shapes

  1. 编写面向对象程序实现长方形、正方形、三角形等形状的类。每个形状类都能计算面积、判断形状是否合法。 请尝试合理使用接口、属性来实现。

  2. 随机创建10个形状对象,计算这些对象的面积之和。 尝试使用简单工厂设计模式来创建对象。

Week 4-Clock

1、为示例中的泛型链表类添加类似于List类的ForEach(Action action)方法。通过调用这个方法打印链表元素,求最大值、最小值和求和(使用lambda表达式实现)。

2、使用事件机制,模拟实现一个闹钟功能。闹钟可以有嘀嗒(Tick)事件和响铃(Alarm)两个事件。在闹钟走时时或者响铃时,在控制台显示提示信息。

Week 5-OrderManagement1

写一个订单管理的控制台程序,能够实现添加订单、删除订单、修改订单、查询订单(按照订单号、商品名称、客户等字段进行查询)功能。

提示:主要的类有Order(订单)、OrderItem(订单明细项),OrderService(订单服务),订单数据可以保存在OrderService中一个List中。在Program里面可以调用OrderService的方法完成各种订单操作。

要求:

(1)使用LINQ语言实现各种查询功能,查询结果按照订单总金额排序返回。

(2)在订单删除、修改失败时,能够产生异常并显示给客户错误信息。

(3)作业的订单和订单明细类需要重写Equals方法,确保添加的订单不重复,每个订单的订单明细不重复。

(4)订单、订单明细、客户、货物等类添加ToString方法,用来显示订单信息。

(5)OrderService提供排序方法对保存的订单进行排序。默认按照订单号排序,也可以使用Lambda表达式进行自定义排序。

Week 6-OrderManagement2

1、在OrderService中添加一个Export方法,可以将所有的订单序列化为XML文件;添加一个Import方法可以从XML文件中载入订单。

2、对订单程序中OrderService的各个Public方法添加测试用例。

Week 7-CayleyTree

将课本中例5-31的Cayley树绘图代码进行修改。添加一组控件用以调节树的绘制参数。参数包括递归深度(n)、主干长度(leng)、右分支长度比(per1)、左分支长度比(per2)、右分支角度(th1)、左分支角度(th2)、画笔颜色(pen)。

Week 8-OrderManagement3

为订单管理的程序添加一个WinForm的界面。通过这个界面,调用OrderService的各个方法,实现创建订单、删除订单、修改订单、查询订单、导出订单、导入订单等功能。

要求:

(1)WinForm的界面部分单独写一个项目,依赖于原来的项目。

(2)可以使用两个窗口。主窗口实现查询展示功能,以及放置各种功能按钮。新建/修改订单功能使用弹出窗口。

(3)注意窗口的布局,在窗口尺寸变化时,不出现错位挤压等情况。

(4)尽量通过数据绑定来实现功能。订单和订单明细各使用一个bindingsource,通过DataMember来实现主从对象绑定。

Week 9-WebSpider

改进书上例子9-10的爬虫程序。

(1)优选爬取起始网站上的网页

(2)只有当爬取的是html文本时,才解析并爬取下一级URL。

(3)相对地址转成绝对地址进行爬取。

(4)尝试使用Winform来配置初始URL,启动爬虫,显示已经爬取的URL和错误的URL信息。

Week 10-WebSpider2

将上次作业的爬虫程序,使用并行处理进行优化,实现更快速的网页爬取。

Week 11-OrderManagement4

修改之前做的订单程序,基于EF框架,将订单保存到MySql数据库中,并实现订单的增删改查功能。

Week 12-Web API

对订单程序进行改造,发布Web API,实现对订单等增删改查操作。(不要求写前端代码,能够使用postman测试通过即可)