资源描述
《.NET程序设计实验课程》教学大纲
学时:8 学分:0.5 开课学期:第5学期
一、课程目的与任务(黑体小四、下同)
本课程为信息管理与信息系统专业的专业选修课程。本课程与培养目标的关系是:为学生应用.NET平台和VISUAL C#.NET进行WEB应用程序开发打下语言基础,本课程可以实现培养要求中的信息系统开发方面的知识和能力要求。课程主要讲述的内容为:C#语法基础实验包括标准输入/输出测试、循环语句使用、正弦函数输出;C#语法高级试验包括日期处理和实验数据处理。
二、课程目标与要求
知识目标:(1)数据类型;(2)运算符、表达式、语句;(3)数组、字符串、迭代器;(4)异常处理与预处理指令;(5)类与接口;(6)事件与委托。
能力目标:熟练运用VISUAL STUDIO.NET开发平台,进行单项和综合的控制台应用程序开发,并熟悉控制台应用程序的调试经验和技巧。
素质目标:进一步理解面向对象程序设计思想,增强软件工程素养。
三、与其它课程的联系和分工
本课程为《.NET程序设计》的组成部分,《.NET程序设计》的任务是C#语法教学。本门课的任务是:巩固课堂的学习内容,熟练掌握和运用VISUAL C#.NET语言语法;培养学生的动手能力和创新能力,使学生能熟练运用VISUAL STUDIO.NET平台进行单项和综合控制台应用程序开发。
四、实验主要内容与学时分配
序号
实验项目名称
实验学时
实验类别
必做
选做
实验内容简述
1
C#语法基础实验
计算器应用程序
4
综合
Ö
标准输入/输出测试、循环语句使用、正弦函数输出
2
C#语法高级试验
Windows窗体+ADO或ASP.NET +ADO
4
设计
Ö
日期处理类设计、实现与测试;试验数据分析
实验的考核
采用考查形式考核学生学习情况。指导教师要检查每个学生的程序运行情况,并且在实验结束后,学生要提交完整的实验报告。成绩结合平时出勤表现、现场检查及试验报告给出。
指导书要求
.NET程序设计课程试验指导书,自编
注:实验类别分:演示、验证、综合、设计性、其它五种;必做与选做栏以“√”表示。
五、实验项目与内容提要
序
号
实 验
名 称
内 容
提 要
每组
人数
实验
学时
实验
要求
实验
类别
实验地点
1
C#语法基础实验
标准输入/输出测试、循环语句使用、正弦函数输出
3-5
4
必开
综合
机房
2
C#语法高级试验
日期处理类设计、实现与测试;试验数据分析
3-5
4
必开
设计
机房
六、实验的主要仪器设备
本实验课程主要使用的仪器设备有:计算机、服务器、集线器、交换机、投影仪、集成开发工具等。
七、实验指导书相关要求
见《.NET程序设计》课程实验指导书。
八、关于实验报告的要求
见《.NET程序设计》课程实验指导书。
《.NET程序设计》课程实验
指 导 书
(信管及相关专业使用)
合肥工业大学管理学院
二O一二年六月
目 录
试验一、C#语法基础实验
试验二、C#语法高级试验
前 言
该课程试验是为了配合课程《.NET程序设计》的学习,帮助学生更好地掌握课程的教学内容。与教学内容对应,课程试验分为2个部分:C#语法基础实验和C#语法高级试验。
C#语法基础实验,为综合性试验,用于熟悉和掌握C#基本语法。
C#语法高级试验,为综合性试验,希望藉此掌握和综合应用C#语法知识,开发相对复杂的控制台应用程序。
实验一 C#语法基础实验
一、目的
配合课程教学,通过实际上机练习,熟练掌握和运用C#基本语法,能运用它进行控制台应用程序设计;熟悉VISUAL STUDIO.NET开发平台;熟悉控制台应用程序的调试经验和技巧。
二、基本要求
实现试验内容提要中规定的各项需求;独立(或合作或在别人协助下或老师指导下)创造性地完成试验,严禁抄袭;试验结束,提交试验报告。
基于VISUAL STUDIO.NET平台开展试验,学会如何建立控制台应用的项目工程。
掌握以下语法知识:
(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等循环语句。
输出背靠背字符三角形
W W
WW WW
WWW WWW
WWWW WWWW
B B
BB BB
BBB BBB
输出字符三角形
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
B
BBB
BBBBB
输出交替字符倒三角形
STSTS
STS
S
STSTSTSTSTSTSTSTSTS
STSTSTSTSTSTSTSTS
STSTSTSTSTSTSTS
STSTSTSTSTSTS
STSTSTSTSTS
STSTSTSTS
STSTSTS
STSTS
STS
S
输出字符菱形
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
AAAAAAA
AAAAA
AAA
A
B
BBB
BBBBB
BBB
B
要求:
(1) 上述循环语句至少使用1次;
(2) 至少有1题采用了string类实现;
(3) 至少有1题采用了集合类实现;
任务3 绘图输出y=a*sin(c*x + b)
要求:
(1) 系数a, b和c是可以变化的,可考虑是从键盘输入的,或通过Main方法参数传递的;
(2) x的取值范围在0~4π之间,x,y值采用四舍五入;
提示:根据输入参数,先生成一组数据(x, y),可考虑循环生成,四舍五入;在相应位置输出*或#。
* * *
* *
* *
* * *
* *
* *
* * *
#
# #
# # #
# #
#
任务4 练习使用文件操作(选做)
要求:
(1)采用程序生成杨辉三角,在屏幕上显示;
(2)创建目录,并将文件存入硬盘;
(3)读取文件并在屏幕上显示;
(4)复制文件、获取文件属性和其所在驱动器信息,并在屏幕上显示;
(5)创建目录列表,并在屏幕上显示;
提示:
(1) 使用.NET框架中的相关操作类。
四、实验方法与实验步骤
试验方法:在VISUAL STUDIO.NET平台编程完成相应任务,并测试通过。
试验步骤:
1、组长确定组员任务分工;
2、分别熟悉试验任务,熟悉试验环境;
3、各组员开发和测试各自的任务;
4、各组员撰写各自任务的试验报告,形成自己的试验报告;
5、组长将组员的报告合并,包括整体工作,形成本组报告,封面写上所有组员名字,内部在相应部分标示组员工作。
五、设备或工具使用说明
硬件平台:计算机、服务器、集线器、交换机、数码相机;
系统平台:Windows
开发语言:C#
开发平台:VISUAL STUDIO.NET
六、注意事项
注重实现及实战演练,不要求进行系统分析与设计;注重C#语法的应用,非功能本身;注意将各组各人使用的数据分开,防止相互影响。
七、思考题
1、如果添加和移除文件的访问控制列表?
2、控制台应用程序的主菜单实现?
实验二 C#语法高级试验
一、目的
进一步熟悉和掌握C#语言,增强程序调试经验和技巧;锻炼综合运用所学知识能力,能设计解决适当问题。
二、基本要求
实现试验内容提要中规定的各项需求;独立(或合作或在别人协助下或老师指导下)创造性地完成试验,严禁抄袭;试验结束,提交试验报告。
三、实验内容
任务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.9
1 537 50612.9
2 720 50612.9
3 615 50626.9
4 722 50612.9
5 738 50626.9
6 672 50626.9
7 770 50612.9
8 505 50612.9
9 704 50626.9
OnePointCrossover,GARouletteWheelSelector,GALinearScaling
run no. gen value
0 746 50612.9
1 636 50612.9
…
试进行以下分析:
l 统计每个组合的10次运行中,达到最小值的次数;
l 每个组合的10次运行中,最佳个体首次出现代的最大、最小、平均值及方差;
要求:
(6) 掌握VISUAL C#.NET的基本调试技巧。演示调试情况,会跟踪变量的值,会设置和取消断点,会跟踪如何进入函数内部
(7) 为简化输出,根据表1-3中的简写,简写每个参数组合,如:
OnePointCrossover,GARouletteWheelSelector,GANoScaling的简写是cO,rW,sN
(8) 输出格式要求如下:
The minimal is 50612.9.
num min max mean fdev
cO,rW,sN: 5 505 770 650 120.704
cO,rW,sL: 7 570 800 697 81.8199
cO,rW,sP: 9 475 792 658 108.15
cO,rW,sT: 7 419 749 557 130.321
cO,rW,sS: 6 445 780 625 119.749
cO,rT,sN: 8 451 764 640 125.493
cO,rT,sL: 8 290 800 610 191.336
cO,rT,sP: 8 174 795 481 277.053
cO,rT,sT: 10 63 784 425 228.205
cO,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)确定天数
某月某日是个重要的旅游旺日,为了准备迎接这个日子,须知道该日子离现在还有几天,以便倒计时。
4)星期几
某个日子是星期几,这是首先应该知道的,甚至是几年以后的某一天也不例外。
5)安排会议
会议议程横跨某个时间区间,但是已经有一些日子安排了其他工作,需要在没有被安排的时间段中,找出最适合开会的时间。
为了使开会时间最大程度地避开其他占用的时间,会议安排应选择尽可能长的未安排时间区段,并且从中间划出开会区段。如果最长的未安排区段有多个,则应尽量早安排会议,所以如果两边间隔不对称,则也应取靠前安排。这就是所谓的最适合开会的时间。
请编程将这几个功能串在一起,用一个菜单驱动。
输入描述:
1)统计天数
输入中含有若干组数据,每组数据包括名字、日期和出去(out)的回来(back)的标记。名字长度在[1,10]之间,日期为合法的yyyy-mm-dd格式的日期。对于某个人来说,出去与回来的日期成对出现,先出去后回来,出去与回来的日期区间也不交叉。
示例:days.txt
Zhangsan 2005-10-23 out
Lisi 2005-08-09 out
Zhangsan 2005-12-01 back
Lisi 2005-08-15 back
2)推排日期
第一行是当前日期(yyyy-mm-dd),以后是每个导游的名字(名字长度在[1,10]之间)以及完成当前工作的所需要的天数n(0≤n≤1000)。
示例:date.txt
2006-10-22
Zhangsan 12
Lisi 3
3)确定天数
第一行是当前日期(yyyy-mm-dd),后面是若干行日期,分别表示各个节日名称(没有空格隔开的字串)和日期(yyyy-mm-dd)。
示例:future.txt
2006-12-22
LabourDay 2008-05-01
NewYear 2008-01-01
NationalDay 2008-10-01
BeijingOlympiad 2008-08-08
4)星期几
输入有若干个日期,日期之间以空格或回车隔开。
示例:week.txt
2008-02-22
2006-11-20
2008-03-08
5)安排会议
第一行是两个日期和一个整数,表示会议只能是这个日期区段中的某个子集,整数表示会议需要的天数。
接着若干行中每行用2个日期表示时间区段,那是已经有了其他安排的日期,如果每行中只有一个日期,说明该时间区段只包含1天。
示例:meeting.txt
2006-10-23 2006-12-24 5
2006-10-27 2006-11-02
2006-11-06 2006-11-07
2006-11-14 2006-11-19
2006-11-21
2006-11-29 2006-12-09
2006-12-14 2006-12-20
输出描述
1)统计天数
按名字的字母顺序输出,输出其名字和合计天数,每个人的数据占一行。名字按10位的宽度并且左对齐,而合计天数按5位宽度并且右对齐。在开始输出前,首先输出一行“统计天数:”。输出至文件days.out或屏幕
2)推排日期
按完成工作的先后顺序排列,如果完成工作日期相同,则按名字字母顺序排列。每人信息占一行,名字将按宽度11个字符左对齐。开始输出前,输出一行“推排日期:”。输出至文件date.out或屏幕
3)确定天数
按节日离当前日期的远近排列,近者靠前。若2个日期一样,则按字母顺序排列。每个节日名称与天数列一行,节日名称与天数之间空一行。开始输出前,首先输出一行“确定天数:”。输出至文件future.out或屏幕
4)星期几
输出每个日期所对应的星期几,星期几以三位英文缩写字母表示,每个日期占一行。开始输出前。输出“星期几:”。输出至文件week.out或屏幕
5)安排会议
要从未被安排的日期区段中寻找最适合开会的时间,输出该日期。在开始输出前,输出“安排会议:”。输出至文件meeting.out或屏幕
要求:
(1) 考虑自定义拷贝构造函数、构造函数默认参数、字符串参数、c-串参数、整数参数;
(2) 使用抽象类做基类,考虑使用虚函数;
(3) 数据成员为私有;
(4) 考虑内联函数;体现成员函数重载;
(5) 考虑异常处理;
(6) 考虑使用委托;
(7) 能检查日期的合法性,不合法给出提示;
(8) 有日期输出功能;日期输出时注意格式的设定,可根据枚举型值决定输出格式;
(9) 可更改日期值;
(10) 可直接进行日期对象赋值操作;
(11) 可根据日期判定是否闰年;
(12) 能实现绝对天数与年月日间的相互转换;
(13) 借助new可创建类对象;
(14) 体现操作符重载,如+,++, <<,>>,--,==,+=,!=,<,-,-=;
(15) 实现菜单操作。
提示:
(1) 需使用using system,用于清屏和获取屏幕输入ReadKey(),ReaLline();
(2) 将每个功能作为一个函数,它们是同类型的,为了调用方便,可将它们做成函数指针数组,调用起来比较方便。
(3) 老师可先讲解主程序结构,即菜单实现,可指导学生一块一块实现;
(4) 可考虑采用日期的天数版
四、实验方法与实验步骤
试验方法:在VISUAL STUDIO.NET平台编程完成相应任务,并测试通过。
试验步骤:
1、组长确定组员任务分工;
2、分别熟悉试验任务,熟悉试验环境;
3、各组员开发和测试各自的任务;
4、各组员撰写各自任务的试验报告,形成自己的试验报告;
5、组长将组员的报告合并,包括整体工作,形成本组报告,封面写上所有组员名字,内部在相应部分标示组员工作。
五、设备或工具使用说明
硬件平台:计算机、服务器、集线器、交换机;
系统平台:Windows
开发语言: Visual C#.NET
开发平台:VISUAL STUDIO.NET
六、注意事项
注重实现及实战演练,不要求进行系统分析与设计;注重C#语法的综合应用,非功能本身;注意将各组各人使用的数据分开,防止相互影响。
七、思考题
1、如何实现数据的比较和排序?
2、如何事件与委托模式?
实验报告要求
《.NET程序设计》课程实验报告
时间: 年 月 日 地点:
一、实验目的
结合试验指导书写。
二、实验要求
结合试验指导书写。
三、实验内容
可结合具体每个人的不同情况,来自己具体承担的任务。
四、实验步骤
写具体步骤,详写环境搭建、每一步的具体实现,以及各项功能的实现。
五、实验结果
系统的运行及测试情况。
六、实验体会及思考题讨论
梳理和总结自己的收获,积累经验;对有关思考题的讨论。
七、附件
实验报告应包含以下附件:
1、程序流程图
2、关键核心代码
3、运行与试验结果
正文用5号宋体,字数15000-25000之间。
展开阅读全文