《.NET程序设计与系统开发》课程实验指导书(信息管理与信息系统及相关专业使用)合肥工业大学管理学院二O一五年七月目录实验一、C#语法基础实验实验二、C#语法高级实验前言该课程实验是为了配合课程《.NET程序设计》的学习,帮助学生更好地掌握课程的教学内容。
与教学内容对应,课程实验分为2个部分:C#语法基础实验和C#语法高级实验。
C#语法基础实验,为综合性实验,用于熟悉和掌握C#基本语法。
C#语法高级实验,为综合性实验,希望藉此掌握和综合应用C#语法知识,开发控制台或windows窗体或 web应用程序。
实验一C#语法基础实验一、目的配合课程教学,通过实际上机练习,熟练掌握和运用C#基本语法,能运用它进行控制台应用程序设计;熟悉VISUAL 开发平台;熟悉控制台应用程序的调试经验和技巧。
二、基本要求实现实验内容提要中规定的各项需求;独立(或合作或在别人协助下或老师指导下)创造性地完成实验,严禁抄袭;实验结束,提交实验报告。
基于VISUAL 平台开展实验,学会如何建立控制台应用的项目工程。
掌握以下语法知识:(1)数据类型;(2)运算符、表达式、语句;(3)数组、字符串、迭代器;(4)异常处理与预处理指令;(5)类与接口;(6)事件与委托。
三、实验内容任务1 判断每个输入的数是否可被3,5和7整除,并将整除状态输出。
要求:(1)掌握VISUAL C#.NET的基本调试技巧。
演示调试情况,会跟踪变量的值,会设置和取消断点,会跟踪如何进入函数内部(2)对每个输入数,分别输出对3,5和7的整除状态;(3)能实现多次输入输出,最好能有一些输入提示;(4)亦可同时输入和处理多个数,并输出多个数的整除状态。
(5)考虑使用switch 或if。
任务2 练习使用for 、while 、do while 、foreach in 等循环语句。
要求:(1) 上述循环语句至少使用1次; (2) 至少有1题采用了string 类实现; (3) 至少有1题采用了集合类实现;任务3 绘图输出y=a*sin(c*x + b) 要求:(1) 系数a, b 和c 是可以变化的,可考虑是从键盘输入的,或通过Main 方法输出字符三角形A AAA AAAAA AAAAAAA AAAAAAAAAB BBB BBBBB 输出字符菱形A AAA AAAAA AAAAAAA AAAAAAAAA AAAAAAA AAAAA AAA AB BBB BBBBB BBB B输出背靠背字符三角形W W WW WW WWW WWW WWWW WWWW B B BB BB BBB BBB输出交替字符倒三角形STSTS STS SSTSTSTSTSTSTSTSTSTS STSTSTSTSTSTSTSTS STSTSTSTSTSTSTS STSTSTSTSTSTS STSTSTSTSTS STSTSTSTS STSTSTS STSTS STS S参数传递的;(2)x的取值范围在0~4π之间,x,y值采用四舍五入;提示:根据输入参数,先生成一组数据(x, y),可考虑循环生成,四舍五入;在相应位置输出*或#。
* * ** ** ** * ** ** ** * *## ## # ## ##任务4 练习使用文件操作(选做)要求:(1)采用程序生成杨辉三角,在屏幕上显示;(2)创建目录,并将文件存入硬盘;(3)读取文件并在屏幕上显示;(4)复制文件、获取文件属性和其所在驱动器信息,并在屏幕上显示;(5)创建目录列表,并在屏幕上显示;提示:(1)使用.NET框架中的相关操作类。
四、实验方法与实验步骤实验方法:在VISUAL 平台编程完成相应任务,并测试通过。
实验步骤:1、组长确定组员任务分工;2、分别熟悉实验任务,熟悉实验环境;3、各组员开发和测试各自的任务;4、各组员撰写各自任务的实验报告,形成自己的实验报告;5、组长将组员的报告合并,包括整体工作,形成本组报告,封面写上所有组员名字,内部在相应部分标示组员工作。
五、设备或工具使用说明硬件平台:计算机、服务器、集线器、交换机、数码相机;系统平台:Windows开发语言:C#开发平台:VISUAL 六、注意事项注重实现及实战演练,不要求进行系统分析与设计;注重C#语法的应用,非功能本身;注意将各组各人使用的数据分开,防止相互影响。
七、思考题1、如果添加和移除文件的访问控制列表?2、控制台应用程序的主菜单实现?实验二C#语法高级实验一、目的进一步熟悉和掌握C#语言,增强程序调试经验和技巧;锻炼综合运用所学知识能力,能设计和解决适当问题。
二、基本要求实现实验内容提要中规定的各项需求;独立(或合作或在别人协助下或老师指导下)创造性地完成实验,严禁抄袭;实验结束,提交实验报告。
所建工程类型可以为:控制台应用、windows窗体应用、 web应用。
三、实验内容任务1实验结果分析。
遗传算法(genetic algorithm)是模仿生物进化的智能算法,广泛用于组合优化等各类优化问题。
其过程包括编码(coding)、初始化(initialization)、选择selection/reproduction、交叉(crossover)、变异(mutation)、解码(decoding)、评估(evaluation)等过程,其中交叉算子、选择方式和适应度值的定标处理对算法的性能有很大影响。
通常,针对不同问题选择不同组合,才能更好地解决问题。
常用的交叉算子、选择方式和定标处理方法如表1-3所示。
下面文件(scheme48.dat)是为了测试某一组合优化问题的最佳参数组合得到,参数组合的个数为4*6*5=120,每个组合运行10次,得到该文件,示例如下:50612.9(最小值)OnePointCrossover,GARouletteWheelSelector,GANoScaling(参数组合)run no. gen value(第几次运行最佳个体首次出现代适应度值)0 757 50626.91 537 50612.92 720 50612.93 615 50626.94 722 50612.95 738 50626.96 672 50626.97 770 50612.98 505 50612.99 704 50626.9OnePointCrossover,GARouletteWheelSelector,GALinearScalingrun no. gen value0 746 50612.91 636 50612.9…试进行以下分析:●统计每个组合的10次运行中,达到最小值的次数;●每个组合的10次运行中,最佳个体首次出现代的最大、最小、平均值及方差;要求:(6)掌握VISUAL C#.NET的基本调试技巧。
演示调试情况,会跟踪变量的值,会设置和取消断点,会跟踪如何进入函数内部(7)为简化输出,根据表1-3中的简写,简写每个参数组合,如:OnePointCrossover,GARouletteWheelSelector,GANoScaling的简写是cO,rW,sN(8)输出格式要求如下:The minimal is 50612.9.num min max mean fdevcO,rW,sN: 5 505 770 650 120.704cO,rW,sL: 7 570 800 697 81.8199cO,rW,sP: 9 475 792 658 108.15cO,rW,sT: 7 419 749 557 130.321cO,rW,sS: 6 445 780 625 119.749cO,rT,sN: 8 451 764 640 125.493cO,rT,sL: 8 290 800 610 191.336cO,rT,sP: 8 174 795 481 277.053cO,rT,sT: 10 63 784 425 228.205cO,rT,sS: 7 293 700 509 172.407数字为右对齐num min max mean fdev分别表示10次运行中达最小值的次数、最小代、最大代、达最小值代的平均值以及方差。
(9)将结果存入文件,输入和输出文件名均采用键盘输入方式,即使用main 函数的参数实现;(10)程序要通用,可处理类似问题。
提示:(1)需采用循环读入方式,如for;(2)每读完12行做1次处理,第一次是读13行,可通过增加1循环状态变量实现;(3)使用System.IO.File类/StreamWriter/ StreamReader进行文件操作(4)采用集合类,如List, ArrayList等;(5)使用字符串函数IndexOf、LastIndexOf、StartsWith、EndsWith、substr;(6)使用数学函数:幂函数Pow(x,y)、平方根Sqrt(x);(7)输出方式控制WriteLine,(8)集合类中的Equals和CompareTo方法实现比较和排序(9)标准方差和均值的计算公式如下:表1交叉算子一览表交叉算子英文简称单点OnePointCrossover cO两点TwoPointCrossover cT均匀UniformCrossover cU奇偶EvenOddCrossover cE表2选择方式一览表选择方式英文简称赌轮GARouletteWheelSelector rW联赛GATournamentSelector rT排序GARankSelector rR均匀GAUniformSelector rU确定性采样GADSSelector, deterministic sampling selector rD随机余数采样GASRSSelector, stochastic remainder sampling selector rS 表3适应度值定标处理方法一览表定标处理方法英文简称无定标GANoScaling sN线性GALinearScaling sL幂函数GAPowerLawScaling sPσ截断GASigmaTruncationScaling sT适应值共享GASharing fitness sharing sS任务2 日期处理类的设计、实现与测试基本描述有许多日期处理的工作需要做。
1)统计天数旅游公司要统计每个人出差在外的总天数,手头上有每个人出差在外的起始和回来的考勤时间,给定一堆日期区间,将其所有的天数统计出来。
2)推排日期旅游公司要估计某个导游何时可以接受下一次任务,并开列了一张当前导游们还需要几天才能将手头工作做完的清单,请按接受任务的早晚列出导游名字和可以接受任务的日期。
3)确定天数某月某日是个重要的旅游旺日,为了准备迎接这个日子,须知道该日子离现在还有几天,以便倒计时。