您好,欢迎访问三七文档
-1-攀枝花学院实验报告实验课程:VisualC#.NET程序设计教程实验项目:上机实验5实验日期:2015.05.05系:数计学院成绩:一、实验目的1、区分静态类与非静态类,掌握静态字段、静态方法和静态构造函数的定义方法。2、理解类的继承性与多态性,掌握其应用方法。3、理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。4、理解分部类和命名空间的概念,掌握分部类和命名空间的使用方法。二、实验要求1.熟悉VisualStudio.Net2010的基本操作方法。2.认真阅读本章相关内容,尤其是案例。3.实验前进行程序设计,完成源程序的编写任务。4.反复操作,直到不需要参考教材、能熟练操作为止。三、实验步骤1、设计一个Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生等派生类,当输入相关数据,单击不同的按钮(小学生、中学生、大学生)将分别创建不同的学生对象,并输入当前的学生总人数、该学生的姓名、学生类型和平均成绩。具体要求如下:(1)每个学生都有的字段为:姓名、年龄。(2)小学生的字段还有语文、数学,用来表示这两科的成绩。(3)中学生在此基础上多了英语成绩。(4)大学生只有必修课和选修课两项成绩。(5)学生类具有方法来统计自己的总成绩,并输出。(6)通过静态成员自动记录学生总人数。(7)成员初始化能通过构造函数完成。源程序如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceTest3_1{publicpartialclassForm1:Form{-2-publicForm1(){InitializeComponent();}publicabstractclassStudent{protectedstringname;protectedintage;protectedstaticintnumber;publicStudent(stringname,intage){this.name=name;this.age=age;number++;}publicstringName{get{returnname;}}publicvirtualstringtype{get{return学生;}}publicabstractdoubletotal();publicabstractdoubleAverage();publicstringgetInto(){stringresult=string.Format(总人数:{0},姓名:{1},{2},{3}岁,number,Name,type,age);if(type==小学生)result+=string.Format(,平均成绩为{0:N2}:\n,total()/2);elseif(type==中学生)result+=string.Format(,平均成绩为{0:N2}:\n,total()/3);elseresult+=string.Format(,总学分为{0:N2}:\n,total());returnresult;}}publicclassPupil:Student{protecteddoublechinese;protecteddoublemath;publicPupil(stringname,intage,doublechinese,doublemath):base(name,age){this.chinese=chinese;this.math=math;-3-}publicoverridestringtype{get{return小学生;}}publicoverridedoubletotal(){returnchinese+math;}}publicclassMiddle:Student{protecteddoublechinese;protecteddoublemath;protecteddoubleenglish;publicMiddle(stringname,intage,doublechinese,doublemath,doubleenglish):base(name,age){this.chinese=chinese;this.math=math;this.english=english;}publicoverridestringtype{get{return中学生;}}publicoverridedoubletotal(){returnchinese+math+english;}}publicclassUniversity:Student{protecteddoublemajors;protecteddoubleelective;publicUniversity(stringname,intage,doublemajors,doubleelective):base(name,age){-4-this.majors=majors;this.elective=elective;}publicoverridestringtype{get{return大学生;}}publicoverridedoubletotal(){returnmajors+elective;}}privatevoidbtpupil_Click(objectsender,EventArgse){intage=Convert.ToInt32(txtage.Text);doublechinese=Convert.ToDouble(txtChinese.Text);doublemath=Convert.ToDouble(txtMath.Text);Pupilp=newPupil(txtname.Text,age,chinese,math);txtshow.Text+=p.getInto();}privatevoidbtMiddle_Click(objectsender,EventArgse){intage=Convert.ToInt32(txtage.Text);doublechinese=Convert.ToDouble(txtChinese.Text);doublemath=Convert.ToDouble(txtMath.Text);doubleenglish=Convert.ToDouble(txtEnglish.Text);Middlep=newMiddle(txtname.Text,age,chinese,math,english);txtshow.Text+=p.getInto();}privatevoidbtUniversity_Click(objectsender,EventArgse){intage=Convert.ToInt32(txtAge.Text);doublechinese=Convert.ToDouble(txtChinese.Text);doublemath=Convert.ToDouble(txtMath.Text);Universityu=newUniversity(txtName.Text,age,chinese,math);lblshow.Text+=u.getInto();}}}-5-运行结果如图所示:2、完善上机实验4-3设计的银行帐户管理系统,增加一个VIP账户的管理。程序功能如下:(1)当单击“创建VIP账户”按钮时,其中卡号为随机生成的一个在500000到999999之间的值,初始余额为10000元。(2)在“取款”文本框中输入取款金额后,单击“取款”按钮,如果余额不足,VIP用户可以透支1000元,如取款800,,而余额是400,如透支超过1000元,如取款1600,而余额是400。(3)其中操作同上机实验4-3。(4)要求:在上机实验4-3的基础上,通过继承和多态实现上述操作。源程序如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceTest3_2{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}publicclassAccount-6-{protectedintcardNo;protecteddecimalbalance;publicAccount(){Randomr=newRandom();cardNo=r.Next(100000,500000);balance=100;}publicdecimalBalance{get{returnthis.balance;}}publicintCardNo{get{returnthis.cardNo;}}publicvirtualboolGetMoney(decimalmoney,outstringmessage){if(money0){message=操作失败!\n输入金额不正确!;returnfalse;}elseif(balance=money){balance-=money;message=操作成功!\n取款+money+元;returntrue;}else{message=操作失败!\n余额不足!;returnfalse;}}publicboolSaveMoney(decimalmoney,outstringmessage){if(money0){message=操作失败!\n输入金额不正确!;returnfalse;}else-7-{balance+=money;message=操作成功!\n存款+money+元;returntrue;}}}publicclassVIPAccount:Account{publicVIPAccount(){Randomr=newRandom();cardNo=r.Next(500000,1000000);balance=10000;}publicoverrideboolGetMoney(decimalmoney,outstringmessage){if(money0){message=操作失败!\n输入金额不正确!;returnfalse;}elseif(balance=money){balance-=money;message=操作成功!\n取款+money+元;returntrue;}elseif(balance+1000=money){balance-=money;message=操作成功!\n取款+money+元,透支+(-balance)+元;returntrue;}else{message=操作失败!?\n余额不足!;returnfalse;}}}Accountaccount;privatevoidbtVIPAccount_Click(objectsender,EventArgse)-8-{account=newVIPAccount();intaccountNo=account.CardNo;stringmessage=string.Format(创建VIP账户成功,用户卡号为:{0},accountNo);lblShow.Text=\n+message+\n;}privatevoidbtAccount_Click(objectsender,EventArgse){account=newVIPAccoun
本文标题:实验报告三
链接地址:https://www.777doc.com/doc-4268151 .html