# .NET Framework **Repository Path**: flyingdog666/.-net-framework ## Basic Information - **Project Name**: .NET Framework - **Description**: dotNET课程的作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-14 - **Last Updated**: 2024-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: Csharp ## README # .NET 课程作业 **** #### 介绍 dotNET课程的作业仓库 ## 作业内容 ***第一次作业*** (1)编写程序1a,以文本对齐方式输出下述数值类型(sbyte、byte、short、ushort、int、uint、long、ulong、float、double、decimal)使用的内存字节数以及它们可能具有的最小值和最大值。 (2)编写程序1b,实现自动出题并判分的功能。要求如下: 1)能使用Random类随机出加减法的题目。 2)能使用if…switch进行答案判断。 3)能使用事件处理,当用户答案填写正确/错误时,界面上有反馈(如提示语句,或者文本框背景颜色变化)。 4)能使用Timer控件,自动发出事件,如超时跳过此题,自动出题。 5)限定时间、题量,给出得分。 ***第二次作业*** 1.使用面向对象的思想,模拟现实世界中的银行、账号、ATM等对象,其中类里面应该包含字段、属性、方法、索引器等,并注意使用修饰符; 2.使用继承,继承账号(Account类)得到一个子类(如信用账号),增加字段(如信用额度)、属性、方法,覆盖(Override)一些方法; 3.使用事件和委托,实现一个事件BigMoneyFetched(取走大笔金额),即ATM机操作时如果用户取款数大于10000元,则可以激活该事件。事件的参数也是一个对象(可以定义类BigMoneyArgs),含有账号及当时的取款数。在程序中注册该事件,使之能在界面中显示告警信息。 4.程序中使用自定义异常,比如定义一个异常类BadCashException,表示有破损的钞票,在程序中适当的地方(比如使用Random模拟坏钞率为30%左右)抛出自定义的异常类,在ATM调用时捕获该异常。 5.在程序中适当使用接口、结构、枚举等语法成分。 ***第三次作业*** 质因数是最小质数的组合,例如4的质因数是2×2,30的质因数是5×3×2……。创建一个类库、一个单元测试项目以及使用这个单元测试项目的控制台程序,满足以下要求: 类库中包含PrimeFactors方法,当传递一个int正整数(最大取值为1000)作为参数时,该方法返回一个显示这个int整数的质因数的字符串; 使用调试工具并编写单元测试,确保方法在多个输入条件下都能正常工作并返回正确值。 ***第四次作业*** 使用事件机制,模拟实现一个闹钟。闹钟具有嘀嗒(Tick)和响铃(Alarm)两个事件。在闹钟走时或者响铃时,在用户界面(WinForm)上显示提示信息。 编写c#源文件的格式化与统计的WinForm程序: 1)用户点击按钮选择c#源文件(*.cs),可统计源文件的原始行数和单词数(不含空格、空行及标点符号); 2)程序删除源文件中的空行和注释(只考虑以//开头的注释),并重新统计源文件的原始行数和单词数; 3)统计格式化后的源文件中每个单词(不含空格、空行及标点符号)在文件中出现的次数,在用户界面中使用列表显示结果。 ***第五次作业*** 编写基于WinForm的学生管理系统,实现以下功能: 创建学校、班级、学生类,并确定三者之间的实体关系; 分别使用ADO.NET及EF实现对学校、班级、学生基本信息的增删改查操作; 学校、班级、学生的信息保存到数据库中(Sqlite); 创建log表,用户的所有操作记录到log表里面,支持对log表的查询和显示。 ***第六次作业*** 编写一个简单的日志系统记录某个应用的运行日志,要求如下: 支持多种日志记录方式(如控制台、文件、数据库等); 能灵活添加新的日志记录策略,无须修改现有代码; 开发中使用创建型、结构型和行为型三类设计模式。 提示:工厂方法模式、装饰器模式、观察者模式。