《ASP.NET 程序设计实验》教学大纲
Experiments of C# Programming
课程代码:XF076002 学时:32 学分:1
适用专业:空间课程性质:选修
撰稿人:张艳 审定人:
一、实验课的性质与任务
C#程序设计是一门发展迅速的课程,现在社会上有不少Windows窗体程序的开发或者游戏开发是基本C#或java的。相比较于java来说,C#容易上手,学生在掌握C、C++这些前驱课程之后就可以进行C#窗体程序编码。本实验课程紧紧围绕C#理论课程的讲解,以vs2012为开发平台,完成基于.NET的数据系统的开发与设计,加深学生对window窗体界面的编程能力,为后续的学生从事windows窗体程序开发打下坚实的基础。
二、实验目的与要求
1、实验目的
通过本课程的学习,培养学生熟练运用C#编程语言编程的能力,为后续学生自己做windows窗体程序开发做铺垫。
2、实验要求
1) 学生应该具有C/C++的基础,有数据结构的相应知识。
2) 上机前应准备好实验的程序设计算法描述与关键分析内容。
3) 准备好程序测试数据和设备操作步骤,上机调试、运行。
4) 上交所有程序(源代码)。
三、实验项目设置情况
序号 | 实验项目名称 | 学时 | 开出要求 | 实验项目类型 |
必做 | 选做 | 基础型 | 综合设计 | 研究创新 |
演示 | 验证 |
1 | C#概述 | 2 | 必做 | | 演示 | | | |
2 | C#基础语法(一) | 6 | 必做 | | | 验证 | |
|
3 | C#基础语法(二) | 6 | 必做 | | | 验证 | | |
4 | 类和对象 | 6 | 必做 | | | 验证 | | |
5 | 继承和多态 | 6 | 必做 | | | 验证 | | |
6 | 字符、字符串和集合 | 6 | 必做 | | | 验证 | | |
四、各实验项目教学内容
实验项目一:C#概述2学时
(一)实验目的要求
(二)实验材料和仪器设备
微型计算机、vs2012开发环境。
(三)实验内容
实验项目二:C#概述6学时
(一)实验目的要求
掌握常量和变量的使用
掌握C#基本数据类型及C#数据类型分类
掌握枚举类型、结构类型、数组
掌握常见的类型转换方法
(二)实验材料和仪器设备
微型计算机、vs2012开发环境。
(三)实验内容
创建3个结构体:MyCircle,MyCylinder,MyCone:程序功能要求,创建三个结构体,MyCircle,MyCylinder,MyCone分别表示圆形、圆柱体和圆锥体,MyCircle包含一个int类型的成员r表示半径,MyCylinder和MyCone各自包含一个MyCircel类型的成员表示圆柱体和圆锥体的底面,成员h和volumn(都为整型)分别表示圆柱体和圆锥体的高和体积。写出结构体和程序的主方法求圆柱体和圆锥体的体积。
实现结构体Fraction。实现一个结构体Fraction,它包含两个int类型私有数据成员numerator和demominator。让Fraction包含以下元素:一个带两个参数的构造函数来初始化numerator和demominator;用于存取numerator和demominator的属性;一个名叫value的属性,返回一个分数值,分数由(numerator/demominator)计算而得;覆盖ToString方法,返回下面的字符串“Fraction value:xxx”,其中的xxx是以字符串表示的分数值;编写适当的代码来测试此Fraction结构。
二维数组的使用ElevatorRequestTracker。一个电梯需求跟踪的类能根据一周内每天每时的随即电梯需求进行统计跟踪。具体实现:随机产生一周7天内每小时的随机数,当8时至18时之间时电梯随机请求数在1-10楼之间,除此以外的时间在20-99之间产生;以列表形式打印出每天每个小时产生的需求数;打印出每天请求的总数;打印出一周内每小时的平均请求数;
编写表达式语句、复合语句的程序Variables。建立包含表达式语句程序,要求定义两个double型数据,从控制台输入你的名字和两个double数据,计算这两个数据的加和、差、乘、除。
编写一个声明c#不同数据类型变量的程序DataType。
数组和循环语句的应用。创建帐户数组accountBanlances,结合for循环实现允许用户输入5个帐户结算,将利息加到每个帐户结算上,打印5个结算的最后结果。
实验项目三:C#基础语法(二)6学时
(一)实验目的要求
掌握C#常见运算符的使用
掌握C#选择结构if语句和switch语句的使用
掌握C#循环结构的使用
掌握C#中的时间处理
(二)实验材料和仪器设备
微型计算机、vs2012开发环境。
(三)实验内容
实现两个数的加、减、乘、除、取余。
根据参观月份输出故宫实施的票价。故宫的门票实行的是淡季票价和旺季票价,淡季从11月1日——3月31日,票价为40元,学生票20元。旺季从4月1日——10月31日,票价为60元,学生票20元。输入你打算去故宫参观的月份,输出实行的是旺季还是淡季的价格。使用if…else结构实现。
输出到故宫参观的实际门票价格。故宫为一些特殊人群提供了门票优惠政策:1.2米以下的儿童免票;大中小学生门票20元;离休人员免票;老年人享受半价优惠。根据参观月份和参观者的类型,输出实际的门票价格。使用嵌套if和switch结构实现。
枚举和switch case:编写一个Engineers的枚举,然后引用这个枚举。
首先定义一组不同类型的工程师,可通过以下方式创建枚举:
enum Engineers
{
// 枚举成员
Software,
Mechanical,
Electronics
}
输出每日特价菜:
某餐馆从周一到周日每天都有一个特价菜,具体如下:
星期一:干煸四季豆6元
星期二:蒜蓉油麦菜4元
星期三:白水鸡8元
星期四:清炒笋丝6元
星期五:西红柿炖牛腩15元
星期六:水煮鱼18元
星期日:酸菜鱼18元
编写一个程序,输入今天是星期几(1-7),输出今天的特价菜是什么?
店庆优惠输出:
某电器商城正在举办十周年店庆活动,优惠信息如下:
凡购买单个电器:
1666元以下可以参加幸运抽奖
满1666元送电饭煲1个;
满2666元送电磁炉1个;
满3666元送电压力锅1个
编写程序,输入你购买电器的价格,输出你可以享受的优惠。
购书打折:
席殊书屋购书可以打折,具体办法如下:
普通顾客购书满100元,可以打9.5折
会员购书可以打9折
会员购书满200元,可以打8.8折。
编写程序,输入你购书的金额,是否有会员卡,输出可以享受的折扣和实际付款金额。
实验项目四:类和对象6学时
(一)实验目的要求
掌握类的定义及类中的各个成员的使用。
掌握属性和索引器的使用。
掌握构造函数和析构函数的使用。
掌握方法重载和运算符重载。
(二)实验材料和仪器设备
微型计算机、vs2012开发环境。
(三)实验内容
编写students类。编写一个students类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:使用成员函数实现对数据的输出;使用构造函数实现对数据的输入。
编写Date类。定义日期类型Date。要求有以下面成员:年、月、日变量,重载的构造方法,一个实现年、月、日单独的输入,一个实现从系统时间里读出年月日,并实现打印方法成员,该方法要按照“XXXX年XX月XX日”格式输出日期。
编写BankAccount类。编写帐户类,对每一账号赋值帐户并设置初始化存款为0.00元,设计一变量统计账号生成的数目。
计算职员工资。编写一个程序,用于计算3个职员的工资,第一个职员默认的基本工资为1000元。第二位职员除具有基本工资外,还具有住房津贴(HRAS),接受用户输入的基本工资和住房津贴。第三位职员可能是经理也可能不是,如果是,则有奖金收入,应接受输入的奖金值。奖金应加到基本工资内。
模拟银行账户基本操作。编写一个程序,用于模拟银行账户的基本操作,如为初始余额赋值、存取现金操作以及在使用任意方式修改余额后都可以随时查看账户余额。请使用重载的带参数的构造函数。
属性:旅行社程序。为某旅行社编写一个程序,用于接收用户输入的旅游地点。接下来验证旅行社是否能满足用户对地点的请求,验证之后显示相应消息,给出该旅游套餐的费用。请使用属性。
索引器:计算GPA平均值。编写一个程序,用于接受四年制大学生每年的GPA(Grade Point Average,年级平均成绩),计算GPA平均值,并显示该值。
实验项目五:继承和多态6学时
(一)实验目的要求
(二)实验材料和仪器设备
微型计算机、vs2012开发环境。
(三)实验内容
单一继承:Employee和Programme:用C#编写一个程序,使用Employee和Programmer两个实体来说明一个公司的继承。Employee具有姓名和学历等属性,需要提供方法实现以接收和显示这些属性的值。Programmer实体具有代表其技能集的属性,这些属性表明程序员在编程语言、操作系统和数据库方面的专业知识。同样地,需要提供方法实现以接收和显示这些属性的值。
使用构造函数初始化值。修改实验1的程序,以从Programmer类派生出名为DotNetProgrammer的新类,该新类的各个成员变量的值通过相应的构造函数来接收。调用相应的方法来显示这些信息。
类的多态性练习:基类shape类是一个表示形状的抽象类,area( )为求图形面积的函数。请从shape类派生三角形类(triangle)、圆类(circles)、并给出具体的求面积函数,并在主函数中多态地实现调用。类继承:计算球、圆柱和圆锥的表面积和体积。编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求:定义一个基类圆,至少含有一个数据成员半径;定义基类的派生类球、圆柱、圆锥,都含有求体积函数,可以都在构造函数中实现,也可以将求体积和输出写在一个函数中,或者写在两个函数中,请比较使用。定义主函数,求球、圆柱、圆锥的和体积。
虚方法:多态处理雇员工资算法。雇员系统,定义雇员基类,共同的属性,姓名、地址和出生日期,子类:程序员,秘书,高层管理,清洁工具有不同工资算法,以多态的方式处理程序。
多态程序:抽象方法。创建控制台程序,录入两个整数,分别实现相加、相减、相乘的操作,并将计算结果输出,运行结果如图所示:
实验项目六:字符、字符串和集合6学时
(一)实验目的要求
(二)实验材料和仪器设备
微型计算机、vs2012开发环境。
(三)实验内容
字符串加解密程序。用户输入字符串text和加密字符key,key可以为int型,将密钥字符与字符串中的每个字符进行异或运算来实现加密。例如:字符“a”(ASCII码为97)和“1”(ASCII码为49)异或的结果为字符“P”(ASCII码为80)。
复杂字符串应用练习。编写一个程序能够输入一行文本,并分析出其含有的元音个数、辅音个数、字母的个数、数字的个数、单词的个数和平均字长,在控制台打印出来。
创建ArrayList类型的employee。创建一个ArrayList类型的employee对象,实现增加元素、移除元素、输出元素、排序、反转等各项操作。运行界面如下图所示:
Hashtable类型的成绩管理程序。设计一个Hashtable,存放学生姓名和C#考试成绩。将学生姓名作为索引键(key)而C#考试成绩作为值(Value),并且通过foreach循环取出Hashtable元素内容并显示索引键和值。将考试成绩赋值到数组score中,并显示出来。运行界面如下图所示:
查看你的电脑的IP地址,编写程序,提取出IP地址的各个组成部分,如输入IP地址为”172.0.0.1”,输出”172 0 0 1”。
字符串逆序输出。请设计出一个字符串逆序程序,当你输入“dog”时,则会输出“god”,并且显示原字符串和逆序后的字符串。
数字格式化和日期格式化输出。
使用Hashtable存储Car对象。编写C#应用程序,输入汽车的型号的名称,程序应根据用户输入的型号来显示相应的汽车名称。保存的数据项分别是:1991型号的宝马,1992型号的夏利、2002型号的雪弗莱、1998型号的金杯。要求使用Hashtable对象存储汽车信息,并且按照型号排列输出,最后可以输入一个型号数,程序再检查判断集合中是否存在该型号的车,如果存在则显示车名。
五、实验报告要求
本课程以最终集成软件代替实验报告,学生最终把所有程序集成到一个具有友好交互界面(充分利用菜单、对话框以及对话框内的控件等手段实行人机交互)的演示程序中(一个工程),工程的名字为学生姓名,工程需要上交所有原始工程文件(源代码)以及可执行程序。
六、课程考核方式及成绩评定
(一)考核方式
平时成绩:ð课堂提问//√学习态度//ð课外资料收集整理//ð预习报告//ð实验报告//√其他;
结课后考试:ð笔试//√操作(软件)。
(二)课程成绩评定办法
成绩构成:考勤10%//平时30%//考试60%
七、实验应配套的主要仪器设备及台(套)数(以一个实验教学班为标准)
主要仪器:微型电子计算机(安装vs2010开发环境)60台
附:教学参考资料
1、选用的教材:
郑阿奇,《C#实用教程第2版》,电子工业出版社,2013年7月,第2版。
2、主要参考书:
[1]传智播客高教产品研发部,《C#程序设计基础入门教程》,人民邮电出版社,2014年9月,第1版。