C#在ASP.NET4.5框架下的首次网页应用
运行效果预览:


先看实践应用要求:
1.编写一个函数,用于计算1!+2!+3!+4!+5!,在控制台或页面输出运行结果。
2.在控制台或页面输出九九乘法表。
3.输入10个以内的整数,输出该组整数的降序排列,要求采用数组实现。
4.计算两个数的商,在控制台或页面输出结果,要求包含异常处理。
5.定义一个汽车类,该类具有重量和速度属性;再定义一个跑车类,该类继承汽车类的属性,并拥有自己的颜色属性;然后声明一个汽车类的对象和一个跑车类的对象,并把它们的属性输出到控制台上。
6.假设某动物园管理员每天需要给他所负责饲养的狮子、猴子和鸽子喂食。请用一个程序来模拟他喂食的过程。
要求:
(1)饲养员喂食时,不同动物执行不同的吃的功能,例如狮子吃肉、猴子吃香蕉、鸽子吃大米等。
(2)饲养员喂动物时,不能使用判断语句判断动物类型。
(3)使用虚方法或抽象方法实现喂养不同动物的多态,不能使用方法重载。
提示:需要建一个动物类,动物类有一个虚的或抽象的吃方法,动物类下面有几个子类,不同的子类重写父类的吃方法。饲养员类提供喂食方法。然后,在Main方法中一一调用吃的方法。
前端practice.aspx源码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="practice.aspx.cs" Inherits="practice" enableEventValidation="false"%>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>实验二 C#程序设计练习</title>
<style type="text/css">
button{
width:120px;
height:30px;
background:#9933FA;
color:#fff;
}
button:hover{
background:#9A32CD;
}
div{
text-align:center;
}
h2{
text-align:center;
color:red;
}
span{
color:gray;
}
textarea{
width:900px;
height:400px;
font-size:20px;
}
</style>
</head>
<body id="mybody">
<form id="form1" runat="server">
<br /><br />
<div id="div_btn" runat="server">
<button id="Button1" onserverclick="factorial" runat="server">factorial</button>
<button id="Button2" onserverclick="multiplication" runat="server">multiplication</button>
<button id="Button3" onserverclick="bubbleSort" runat="server">bubbleSort</button>
<button id="Button4" onserverclick="division" runat="server">division</button>
<button id="Button5" onserverclick="car" runat="server">car</button>
<button id="Button6" onserverclick="zoo" runat="server">zoo</button>
</div>
<br />
<div id="div_bubble" runat="server" EnableViewState="false" visible="false" >
输入参数:<asp:TextBox id="TextNumber" runat="server" OnTextChanged="bubbleBtnClick" AutoPostBack ="true"></asp:TextBox> <asp:Label ID="eMesg_bubble" runat="server">10个以内整数,空格分隔,Enter/Tap键执行排序</asp:Label><br /><br />
</div>
<div id="div_division" runat ="server" EnableViewState="false" visible="false" >
输入被除数:<asp:TextBox id="textA" runat="server"></asp:TextBox>
输入除数:<asp:TextBox id="textB" runat="server" OnTextChanged="divisionBtnClick" AutoPostBack ="true"></asp:TextBox>
<asp:Label ID="eMesg_division" runat="server">Enter/Tap键执行计算</asp:Label><br /><br />
</div>
<div id="div_view" runat="server" EnableViewState="false">
</div>
<div>
<textarea id="displayArea" runat="server" rows="1" cols="1">输出结果将在此处显示.......</textarea>
</div>
</form>
</body>
</html>
后端practice.aspx.cs源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class practice : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<h2>单击按钮分别显示各个练习题代码运行结果</h2>");
div_division.Visible = false;
div_bubble.Visible = false;
}
protected void factorial(object sender, EventArgs e)
{
if (IsPostBack)
{
div_bubble.Visible = false;
div_division.Visible = false;
div_view.InnerHtml = "Follow will calculate the union of \"1!+2!+3!+4!+5!\":";
}
factorial calculate = new factorial();
displayArea.InnerHtml = "1!+2!+3!+4!+5!=" + calculate.add().ToString();
}
protected void multiplication(object sender, EventArgs e)
{
if (IsPostBack)
{
div_bubble.Visible = false; div_division.Visible = false;
}
int i, j;
displayArea.InnerHtml = ""; //擦除前一次对textarea的写入记录
for (i = 1; i < 10; i++)
{
for (j = 1; j <= i; j++)
{
displayArea.InnerHtml+=j+"*"+i+"="+(i * j)+"\t";
}
displayArea.InnerHtml += "\n";
}
}
protected void bubbleSort(object sender, EventArgs e)
{
if (IsPostBack)
{
div_bubble.Visible = false;
div_division.Visible = false;
}
div_bubble.Visible = true;
displayArea.InnerHtml = "bubbleSort";
}
protected void bubbleBtnClick(object sender, EventArgs e)
{
if (IsPostBack)
{
div_bubble.Visible = false;
div_division.Visible = false;
}
div_bubble.Visible = true;
String str=TextNumber.Text;
//String[] a=str.Split();//稍候再写,未完
/* int i = 0, j=1; int[] number = new int[12]; while (i < str.Length) { if (str[i].Equals(' ')) { i++; } else { number[j] = int.Parse (str[i].ToString ()); } } */
displayArea.InnerHtml = ""; //擦除前一次textarea输出记录
displayArea.InnerHtml =str;
}
protected void division(object sender, EventArgs e)
{
if (IsPostBack)
{
div_bubble.Visible = false;
div_division.Visible = false;
}
div_division.Visible = true;
displayArea.InnerHtml = "两数求商,输入被除数与除数后,按 Enter / Tap 键执行运算";
}
protected void divisionBtnClick(object sender,EventArgs e)
{
if (IsPostBack)
{
div_bubble.Visible = false;
div_division.Visible = false;
}
float a = float.Parse(textA.Text);
float b = float.Parse(textB.Text);
float result;
div_division.Visible = true;
try
{
if (b == 0)
throw new Exception("Error:DivideByZeroException[除数为零]");
result = a / b;
displayArea.InnerHtml = a + "/" + b + "=";
displayArea.InnerHtml += a / b;
}
catch (Exception error)
{
eMesg_division.Text = error.Message;
}
}
protected void car(object sender, EventArgs e)
{
if (IsPostBack)
{
div_bubble.Visible = false;
div_division.Visible = false;
}
car cardemo = new car();
supercar supercardemo = new supercar();
cardemo.set(2500, 180);
displayArea.InnerHtml = "汽车类的质量:" + cardemo.weight + "Kg,汽车类的速度:" + cardemo.speed + "Km/h\n";
supercardemo.color = "red";
cardemo.set(2500, 180);
supercardemo.set(2000, 250);
displayArea.InnerHtml +="超跑类的重量:"+supercardemo.weight+"Kg,超跑类的速度:"+supercardemo.speed+"Km/h,超跑的颜色:"+supercardemo.color; }
protected void zoo(object sender, EventArgs e)
{
if (IsPostBack)
{
div_bubble.Visible = false;
div_division.Visible = false;
}
feeder feederdemo = new feeder();
animals animalsdemo = new animals();
String food = "null";
String foodmeat,foodbanana,foodrice,meat,banana,rice;
food = "meat";
foodmeat=feederdemo.feed(food);
animalsdemo = new lion();
meat=animalsdemo.eat();
displayArea.InnerHtml = foodmeat + "\n" + meat + "\n";
food = "banana";
foodbanana=feederdemo.feed(food);
animalsdemo = new monkey();
banana=animalsdemo.eat();
displayArea.InnerHtml += foodbanana + "\n" + banana + "\n";
food = "rice";
foodrice=feederdemo.feed(food);
animalsdemo = new pigeon();
rice=animalsdemo.eat();
displayArea.InnerHtml += foodrice + "\n" + rice + "\n";
//displayArea.InnerHtml = foodmeat + "\n" + meat + "\n" + foodbanana + "\n" + banana + "\n" + foodrice + "\n" + rice;
}
}
//1!+2!+3!+4!+5!
class factorial {
public int add()
{
int i = 1, temp = 1, sum = 0;
for (; i < 6; i++)
{
temp = i * temp;
sum = sum + temp;
}
return sum;
}
}
//bubbleSort
/* class bubbleSort {
public void sort(int n)
{
int i, j;
for (i = 1; i < n; i++)
{
for (j = i; j < n; j++)
{
if (a[i] > a[j])
{
a[0] = a[i]; a[i] = a[j]; a[j] = a[0];
}
}
}
}
} */
//car class
class car
{
public float weight;
public float speed;
public void set(float weight, float speed)
{
this.weight = weight;
this.speed = speed;
}
}
class supercar : car {
public String color;
}
//zoo
class feeder
{
public String feed(String food)
{
return (food);
}
}
class animals
{
public virtual String eat()
{
return "feed animals with food!";
}
}
class lion : animals
{
public override String eat()
{
return "\'狮子\'吃的是 meat ......";
}
}
class monkey : animals
{
public override String eat()
{
return "啾~,俺老孙来也,\'猴子\'就爱吃 banana ......";
}
}
class pigeon : animals
{
public override String eat()
{
return "听~,是\'鸽子\'在啄食 rice ......";
}
}
网页初次打开运行效果如图:
单击按钮分别显示各个练习题代码运行结果
multiplication
bubbleSort
division
car
zoo
C#在ASP.NET4.5框架下的首次网页应用的更多相关文章
- 【转】ASP.NET MVC框架下使用MVVM模式-KnockOutJS+JQ模板例子
KnockOutJS学习系列----(一) 好几个月没去写博客了,最近也是因为项目紧张,不过这个不是借口,J. 很多时候可能是因为事情一多,然后没法静下来心来去写点东西,学点东西. 也很抱歉,突然看到 ...
- 【工作笔记二】ASP.NET MVC框架下使用MVVM模式
ASP.NET MVC框架下使用MVVM模式 原文:http://www.cnblogs.com/n-pei/archive/2011/07/21/2113022.html 对于asp.net mvc ...
- 写自己的ASP.NET MVC框架(下)
上篇博客[写自己的ASP.NET MVC框架(上)] 我给大家介绍我的MVC框架对于Ajax的支持与实现原理.今天的博客将介绍我的MVC框架对UI部分的支持. 注意:由于这篇博客是基于前篇博客的,因此 ...
- Asp.net WebPages框架运行原理浅析(转)
在Asp.net4和4.5中,新增了WebPages Framework,编写页面代码使用了新的Razor语法,代码更加的简洁和符合Web标准,编写方式更接近于PHP和以前的Asp,和使用 WebFo ...
- ASP.NET4 与 VS2010 Web 开发页面服务改进
转:http://blog.163.com/kele_lipeng/blog/static/81345278201132754729336/ 作者:朱先忠 本文将接着上一篇 ASP.NET4与VS20 ...
- Asp.net WebPages框架运行原理浅析
[来源] 达内 [编辑] 达内 [时间]2012-09-14 在Asp.net4和4.5中,新增了WebPages Framework,编写页面代码使用了新的Razor语法,代码更加的简洁和 ...
- 从零开始实现asp.net MVC4框架网站的用户登录以及权限验证模块 详细教程
从零开始实现asp.net MVC4框架网站的用户登录以及权限验证模块 详细教程 用户登录与权限验证是网站不可缺少的一部分功能,asp.net MVC4框架内置了用于实现该功能的类库,只需要简单搭 ...
- 探索ASP.NET MVC框架之路由系统
引言 对于ASP.NET MVC的路由系统相信大家肯定不陌生.今天我们就深入ASP.NET的框架内部来看一下路由系统到底是怎么通过我们给出的地址(例如:/Home/Index)解析出Controlle ...
- ASP.NET4.5Web API及非同步程序开发系列(2)
认识ASP.NET WEB API 他的前身为WCF WEB API用于协助WCF支持RestFul.现在集成进ASP.NET,正式更名为ASP.NET WEB API,ASP.NET Web API ...
随机推荐
- AngularJS track by $index引起的思考
今天写了一段程序,只是一个简答的table数据绑定,但是绑定select的数据之后,发现ng-change事件失去了效果,不知道什么原因. 主要用到的代码如下: <div id="ri ...
- PHP设计模式之:建造者模式
建造者模式: 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示的设计模式; 目的: 消除其他对象复杂的创建过程 结构图: 优点: 建造者模式可以很好的将一个对象的实现与相关的“业 ...
- JavaScript学习总结【10】、DOM 事件
DOM 事件是 JS 中比较重要的一部分知识,所谓事件,简单理解就是用户对浏览器进行的一个操作.事件在 Web 前端领域有很重要的地位,很多重要的知识点都与事件有关,所以学好 JS 事件可以让我们在J ...
- frameset标签代码实现网站跳转
js代码1: document.writeln("<frameset rows=\"0, *\">"); document.writeln(&quo ...
- python【第十四篇】HTML与CSS初遇
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- 不同优化选项对ARM下C语言编译的影响
我们知道在C语言编译时,有那么几个常用的优化编译选项,分别是-O0,-O1,-O2,-O3以及-Os.之前一直觉得既然是优化选项,顶多是优化一下逻辑,提高一些效率或者减少一下程序大小而已.很少会觉得它 ...
- iOS中默认样式修改-b
项目中有大量的UITableView都需要显示sectionHeader.iOS中默认sessionHeader上的textLabel样式跟设计图不符. 按照我们之前的解决方案,是在每个UITable ...
- Mongodb在Windows下安装及配置 【转】
1.下载mongodb的windows版本,有32位和64位版本,根据系统情况下载,下载地址:http://www.mongodb.org/downloads 2.解压缩至E:/mongodb即可 3 ...
- Contest 高数题 樹的點分治 樹形DP
高数题 HJA最近在刷高数题,他遇到了这样一道高数题.这道高数题里面有一棵N个点的树,树上每个点有点权,每条边有颜色.一条路径的权值是这条路径上所有点的点权和,一条合法的路径需要满足该路径上任意相邻的 ...
- 【HDU3247】 Resource Archiver(DP+AC自动机+最短路)
Resource Archiver Time Limit: 10000MS Memory Limit: 100000KB 64bit IO Format: %I64d & %I64u ...