




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验1.1 实验一 vs2005编程环境基础知识实验实验目的:熟悉vs2005编程环境,认识和使用主要的功能面板,掌握在vs2005中创建项目,编写、运行C语言程序。实验内容: 1、编写一个程序,能够从键盘上接收2个数字,计算这2个数字的积并输出。 2、计算S=1+(1+2)+(1+2+3)+(1+2+n),n由键盘输入。 3、利用结构变量存储5位学生的姓名和语文、英文成绩,然后分别计算这5位学生的平均成绩,按平均成绩排序输出。 4、在进行上述程序过程中,观察各个项目文件,观察vs2005界面组成。/ 1.cpp: 主项目文件。#include stdafx.h#usingusing namespace System;int main(array args)Stringx;int a,b,c;Console:WriteLine(输入第一个数);x=Console:ReadLine();a=Int32:Parse(x);Console:WriteLine(输入第二个数);x=Console:ReadLine();b=Int32:Parse(x);c=a*b;Console:WriteLine(c.ToString();while(1);实验1.2/ 2.cpp: 主项目文件。#include stdafx.h#usingusing namespace System;int main(array args) Stringx; int n,i,j,num=0,sum=0; Console:WriteLine(请输入数 n); x=Console:ReadLine(); n=Int32:Parse(x); for(i=1;i=n;i+) for(j=1;j=i;j+) num=num+j; sum=sum+num; Console:WriteLine(sum.ToString(); while(1);实验1.3/ 3.cpp: 主项目文件。#include stdafx.h#usingusing namespace System;ref struct personStringname;double Chinese;double English;double average;int main(array args)personstudent1;personstudent2;personstudent3;personstudent4;personstudent5;student1=gcnew person;student2=gcnew person;student3=gcnew person;student4=gcnew person;student5=gcnew person;Stringeng;Stringch;/Srtinghuanhang=/n;Console:WriteLine(输入姓名);student1-name=Console:ReadLine();Console:WriteLine(输入语文成绩); ch=Console:ReadLine();student1-Chinese=double:Parse(ch);Console:WriteLine(输入英语成绩); eng=Console:ReadLine();student1-English=double:Parse(eng);student1-average=(student1-Chinese)+(student1-English)/2;Console:WriteLine(输入姓名);student2-name=Console:ReadLine();Console:WriteLine(输入语文成绩); ch=Console:ReadLine();student2-Chinese=double:Parse(ch);Console:WriteLine(输入英语成绩); eng=Console:ReadLine();student2-English=double:Parse(eng);student2-average=(student2-Chinese)+(student2-English)/2;Console:WriteLine(输入姓名);student3-name=Console:ReadLine();Console:WriteLine(输入语文成绩); ch=Console:ReadLine();student3-Chinese=double:Parse(ch);Console:WriteLine(输入英语成绩); eng=Console:ReadLine();student3-English=double:Parse(eng);student3-average=(student3-Chinese)+(student3-English)/2;Console:WriteLine(输入姓名);student4-name=Console:ReadLine();Console:WriteLine(输入语文成绩); ch=Console:ReadLine();student4-Chinese=double:Parse(ch);Console:WriteLine(输入英语成绩); eng=Console:ReadLine();student4-English=double:Parse(eng);student4-average=(student4-Chinese)+(student4-English)/2;Console:WriteLine(输入姓名);student5-name=Console:ReadLine();Console:WriteLine(输入语文成绩); ch=Console:ReadLine();student5-Chinese=double:Parse(ch);Console:WriteLine(输入英语成绩); eng=Console:ReadLine();student5-English=double:Parse(eng);student5-average=(student5-Chinese)+(student5-English)/2;double arry =student1-average,student2-average,student3-average,student4-average,student5-average;int i,j;int k;double x;for(i=0;i4;i+)k=i;for(j=i+1;j5;j+)if(arrykarryj)k=j;if(k!=i)x=arryk;arryk=arryi;arryi=x;int a;for(a=0;aaverage)Console:WriteLine(student1-name);Console:WriteLine(student1-average).ToString();else if(arrya=student2-average)Console:WriteLine(student2-name);Console:WriteLine(student2-average).ToString(); else if(arrya=student3-average)Console:WriteLine(student3-name);Console:WriteLine(student3-average).ToString();else if(arrya=student4-average)Console:WriteLine(student4-name);Console:WriteLine(student4-average).ToString();else if(arrya=student5-average)Console:WriteLine(student5-name);Console:WriteLine(student5-average).ToString();while(1);实验二 类的定义及使用实验目的:掌握类及对象的语法规则,练习类成员变量、成员函数、构造函数的使用方法。实验内容: 1、设计名为CEllipse的椭圆类。其属性为外接矩形的左上角与右下角两个点的坐标,并能计算出椭圆的面积,并测试该类。 2、设计一个日期类,包含year、month、day数据成员。包含2个构造函数,一是能够传3个整数给3个数据成员;二是传一个日期格式的字符串(xxxx-xx-xx),函数分解字符串赋值给数据成员。包含2个获取日期的重载函数GetDate(),一是返回3个整数,二是返回一个日期格式的字符串。 提示:本题中会用到字符串运算,有关的内容如下: (1)系统字符串类为String (2)定义字符串对象String s; (3)在字符串对象中查找的函数IndexOf(查找的字符,查找开始位置),例 s-IndexOf(-,4);表示在s中查找字符-,从s中第4个字符开始查找。 (4)从字符串中截取一部分子串的函数s-Substring(开始位置,子串长度),例如从s中的第6个字符开始,取出2个字符: s-Substring(5,2); (5)String和int类型的转换方法Convert:ToInt32(String变量);int变量.ToString(); 3、找出下面程序的错误#include stdafx.husing namespace System;class Sampleprivate:int m_nX;public:Sample( int a = 0 ) m_nX= a;void fun( const Sample &p )Console:WriteLine(p.m_nX.ToString();int _tmain()Sample s( 10 );fun( s );return 0;实验2.1/ 9.cpp: 主项目文件。#include stdafx.h#using#include using namespace System;class CEllipsepublic:double fun1(double a,double b);double fun2(double c,double d);double area(double r1,double r2);double CEllipse:fun1(double a,double b)return (b-a)/2);double CEllipse:fun2(double c,double d)return (d-c)/2);double CEllipse:area(double r1,double r2)return (3.14159*r1*r2);int main(array args)CEllipse A;Stringx;Stringy;double x11,y11;double x22,y22;double r11,r22;double s; Console:WriteLine(L请输入左上角坐标);x=Console:ReadLine();x11=Double:Parse(x);y=Console:ReadLine();y11=Double:Parse(y);Console:WriteLine(您输入的坐标是:x=0 y=1,x11.ToString(),y11.ToString();Console:WriteLine(L请输入右下角坐标);x=Console:ReadLine();x22=Double:Parse(x);y=Console:ReadLine();y22=Double:Parse(y);Console:WriteLine(您输入的坐标是:x=0 y=1,x22.ToString(),y22.ToString(); r11=A.fun1(x11,x22);r22=A.fun2(y22,y11);s=A.area(r11,r22);Console:WriteLine(s.ToString();while(1);实验2.2/ shiyan2.2.cpp: 主项目文件。#include stdafx.h#using using namespace System;ref struct Dateint d;int e;int f;class datepublic:int year;int month;int day;date(int a,int b,int c)year=a;month=b;day=c;date(Strings)Stringdate1;date1=s;Stringyear1;Stringmonth1;Stringday1;int i,j;i=date1-IndexOf(-,1);j=date1-IndexOf(-,i+1);year1=date1-Substring(0,4);month1=date1-Substring(i+1,2);day1=date1-Substring(j+1,2);year=Int32:Parse(year1);month=Int32:Parse(month1);day=Int32:Parse(day1);DateGetDate(Strings);StringGetDate(int h,int k,int l);Date date:GetDate(Strings)Dateshuju;shuju=gcnew Date; Stringdate1;date1=s;Stringyear1;Stringmonth1;Stringday1;int i,j;i=date1-IndexOf(-,1);j=date1-IndexOf(-,i+1);year1=date1-Substring(0,4);month1=date1-Substring(i+1,2);day1=date1-Substring(j+1,2);shuju-d=Int32:Parse(year1);shuju-e=Int32:Parse(month1);shuju-f=Int32:Parse(day1);return shuju;String date:GetDate(int h,int k,int l)Stringhe;Stringha;Stringhei;he=h.ToString();ha=k.ToString();hei=l.ToString();Stringdate11;date11=he+-+ha+-+hei;return date11;int main(array args)Dateriqi;riqi=gcnew Date; Console:WriteLine(L输入日期,格式:xxxx-xx-xx);Strings;s=Console:ReadLine();Stringdate1;date1=s;Stringyear1;Stringmonth1;Stringday1;int i,j;i=date1-IndexOf(-,1);j=date1-IndexOf(-,i+1);year1=date1-Substring(0,4);month1=date1-Substring(i+1,2);day1=date1-Substring(j+1,2);int year2,month2,day2;year2=Int32:Parse(year1);month2=Int32:Parse(month1);day2=Int32:Parse(day1);date A(year2,month2,day2);/A.date(year2,month2,day2);/A.date(s);riqi=A.GetDate(s);Console:WriteLine(你输入的日期为:0-1-2,riqi-d.ToString(),riqi-e.ToString(),riqi-f.ToString();Stringhahaha;hahaha=A.GetDate(year2,month2,day2);Console:WriteLine(日期为:0,hahaha);while(1);实验2.3/ shiyan6.cpp: 主项目文件。#include stdafx.husing namespace System;class Sample/private:/int m_nX;public:int m_nX;Sample(int a)m_nX=a;void fun(const Sample &p)Console:WriteLine(p.m_nX.ToString();while(1);int main() Sample s(10); fun(s); return 0;实验3.1实验三 类的继承实验实验目的:掌握继承的概念,理解派生类与基类的关系实验内容: 1、分析以下程序,理解继承过程中构造函数的执行次序 2、定义一个大学生类CStudent,私有数据成员包括“姓名”、“学号”与“校名”,并为它定义带参数的构造函数,以及名为ToString()的成员函数,功能是将全部信息组合为一个字符串。令定义一个研究生类,增加私有数据成员“研究方向”、“导师”,同样定义名为ToString()的成员函数。在主函数中定义派生类对象进行测试。 3、声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形)。Shape类的数据成员包括图形基准点的坐标(对圆就是圆心,对正方形就是一个顶点),以及尺寸。派生类实现周长和面积的计算。进行测试输出。/ shiyansan1.cpp: 主项目文件。#include stdafx.husing namespace System;class Apublic:A()Console:WriteLine(Constructor 1_A);A(int m):x(m)Console:Write(Constructor 2_A);Console:WriteLine(x.ToString();A()Console:Write(Destructor_A);Console:WriteLine(x.ToString();private:int x;class B:public Apublic:B()Console:Write(Constructor1_B);Console:WriteLine(y.ToString();B(int m, int n, int l):A(m),a(n),y(l)Console:Write(Constructor2_B);Console:WriteLine(y.ToString();B()Console:Write(Destructor_B);Console:WriteLine(y.ToString();private:A a;int y;int main(array args)B b1,b2(5,6,7);/B b1,b2; Console:ReadLine(); return 0;实验3.2/ ff.cpp: 主项目文件。#include stdafx.husing namespace System;#using ref class cstudentprivate:Stringname;Stringnumber;Stringschoolname;public:StringToString(Stringname1,Stringnumber1,Stringschoolname1)/StringToString()Stringnews;name=name1;number=number1;schoolname=schoolname1;news=name+number+schoolname;return news;ref class Postgraduate:public cstudentStringdirection;Stringtutor;StringToString(Stringnews1,Stringdirection1,Stringtutor1)direction=direction1;tutor=tutor1;Stringnews;news=news1+direction+tutor;return news;int main(array args)cstudent b;Stringname1;Console:WriteLine(输入姓名);name1=Console:ReadLine();Stringnumber1;Console:WriteLine(输入学号);number1=Console:ReadLine();Stringschoolname1;Console:WriteLine(输入校名);schoolname1=Console:ReadLine();Stringnews1;news1=b.ToString(name1,number1,schoolname1);/news1=b.ToString();Console:WriteLine(news1);Stringdirection1;Console:WriteLine(研究方向);direction1=Console:ReadLine();Stringtutor1;Console:WriteLine(导师);tutor1=Console:ReadLine(); Postgraduate C;Stringnews2;news2=C.ToString(news1,direction1,tutor1);/news2=b.ToString();Console:WriteLine(news2); Console:ReadLine(); return 0;实验3.3/ 34.cpp: 主项目文件。#include stdafx.h#using using namespace System;class shapepublic:/int x,y;double r;class Circle:public shapepublic:double area(double r)double he;he=3.141592657*r*r;return he;double girth(double r)double ha;ha=2*3.141592657*r;return ha;class Square:public shapepublic:double area(double r)double he;he=r*r;return he;double girth(double r)double ha;ha=4*r;return ha;int main(array args) Console:WriteLine(L请输入圆的半径);Stringa;a=Console:ReadLine();double b;b=Double:Parse(a);Circle cc;double dd;dd=cc.area(b);Console:WriteLine(圆的面积是:0,dd.ToString();double dd1;dd1=cc.girth(b);Console:WriteLine(圆的周长:0,dd1.ToString();Console:WriteLine(L请输入正方形的边长);Stringa2;a2=Console:ReadLine();double b2;b2=Double:Parse(a2);Square cc2;double dd2;dd2=cc2.area(b2);Console:WriteLine(正方形的面积是:0,dd2.ToString();double dd21;dd21=cc2.girth(b2);Console:WriteLine(正方形的周长:0,dd21.ToString();while(1); return 0;实验4.1实验四 类的多态性编程实验实验目的:理解多态的概念,掌握虚函数使用方法。实验内容:1 分析下面程序,掌握抽象类、纯虚函数以及动态绑定。2、练习动态绑定。定义一个类Base,该类含有虚函数display,然后定义它的两个派生类FirstB和SceondB,这两个派生类均含有公有成员函数display,再主程序中定义指向基类Base的指针变量ptr,并分别定义Base、FirstB和SceondB的对象,让ptr分别指向这三个对象的地址,然后执行这些对象的display函数,观察结果。3、上机完成下面实验。声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求利用多态性的概念,分别以虚函数的形式完成对圆和正方形的周长及面积的计算。要求:Shape类的数据成员包括中心点的坐标,Circle类和Square类初始值分别给出:圆的圆心和半径;正方形的中心和一个顶点。/ 4.1.cpp: 主项目文件。#include stdafx.husing namespace System;class Shape public:virtual double Area() return 0.0; / 纯虚函数,在派生类中重载virtual void Print()= 0;class Point : public Shape/int x, y; /点的x和y坐标public:int x, y;Point( int = 0, int = 0 ); / 构造函数void SetPoint( int a, int b ); / 设置坐标int GetX()/ 取x坐标 return x; int GetY()/ 取y坐标 return y;virtual void Print();/输出点的坐标;Point:Point( int a, int b ) : x( a ), y( b )void Point:SetPoint( int a, int b )x = a;y = b;void Point:Print()Console:WriteLine(x=+x.ToString()+ y=+y.ToString();class Circle : public Pointdouble radius;public:Circle(int x = 0, int y = 0, double r = 0.0);void SetRadius( double r ); /设置半径double GetRadius(); /取半径virtual double Area(); /计算面积avirtual void Print(); /输出圆心坐标和半径;Circle:Circle(int a,int b,double r): Point(a,b), radius( r )void Circle:SetRadius( double r )radius = ( r = 0 ? r : 0 ); double Circle:GetRadius() return radius; double Circle:Area() return 3.14159 * radius * radius;void Circle:Print()Console:WriteLine(x=+x.ToString()+ y=+y.ToString()+ r=+radius.ToString();int main()Point point(30,50);Circle circle(120,80,10.0);point.Print();circle.Print();Shape * arrayOfShapes2;/Shape *arrayOfShapes = new point();/Shape *arrayOfShapes1= new circle();/arrayOfShapes.Print();/arrayOfShapes1.Print();/arrayOfShapes1 = new circle();for ( int i = 0; i 2; i+ ) /arrayOfShapesi.Print();Console:ReadLine(); return 0;实验4.2/ shiyan4.2.cpp: 主项目文件。#include stdafx.husing namespace System;class Basepublic:virtual void display()Console:WriteLine(Base里的小猪);class FirstB:public Basepublic:void display()Console:WriteLine(FiratB里的小猪);class SecondB:public Basepublic:void display()Console:WriteLine(SecondB里的小猪);int main(array args)Base * aBase = new Base();FirstB * aFirstB = new FirstB();SecondB * aSecondB = new SecondB();Base * ptr;ptr=aBase;ptr-display();ptr=aFirstB;ptr-display();ptr=aSecondB;ptr-display();while(1); return 0;实验4.3/ 1.cpp : main project file.#include stdafx.husing namespace System;class Shape public:virtual double Area() return 0.0; virtual double Perimeter() return 0.0; ;class Circle : public Shapeint x,y;double radius;public:Circle()x=0;y=0;radius=0;void Setxy( int a,int b ) /设置圆心x=a;y=b;void SetRadius( double r ) /设置半径radius = ( r = 0 ? r : 0 );virtual double Area() /计算面积a return 3.14159 * radius * radius;virtual double Perimeter() return 2*3.14159*radius; ;class Square : public Shapeint x1,y1,x2,y2;public:Square()x1=0;y1=0;x2=0;y2=0;void Setx1y1( int a,int b ) /设置正方形中心x1=a;y1=b;void Setx2y2( int a,int b ) /设置顶点x2=a;y2=b;virtual double Area() /计算面积a return Math:Abs(4*(x2-x1)*(y2-y1);virtual double Perimeter() return 4*(Math:Abs(x2-x1)+Math:Abs(y2-y1); ;int main(array args)Shape * ptr =new Shape();Circle * ac = new Circle();Square * as =new Square();String str;int a,b;double c;Console:WriteLine(请输入圆心x);str=Console:ReadLine();a=Convert:ToInt32(str);Console:WriteLine(请输入圆心y);str=Console:ReadLine();b=Convert:ToInt32(str);ac-Setxy(a,b);Console:WriteLine(请输入半径);str=Console:ReadLine();c=Convert:ToDouble(str);ac-SetRadius(c);Console:WriteLine(请输入正方形中心x);str=Console:ReadLine();a=Convert:ToInt32(str);Console:WriteLine(请输入正方形中心y);str=Console:ReadLine();b=Convert:ToInt32(str);as-Setx1y1(a,b);Console:WriteLine(请输入正方形顶点x);str=Console:ReadLine();a=Convert:ToInt3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业合同管理流程及风险防范方案
- 一、当心异物侵害教学设计小学综合实践活动沪科黔科版三年级下册-沪科黔科版
- 承包商培训考试试题含答案
- 第一节 人口增长模式说课稿高中地理湘教版必修Ⅱ-湘教版2004
- 浙江国企招聘2025温州行前农贸市场有限公司招聘2人笔试参考题库附带答案详解
- 2025年电工自动化测试题及答案
- 浙江国企招聘2025宁波慈溪市诚安燃气服务有限公司招聘10人(二)笔试参考题库附带答案详解
- 小学语文拼音识字教学材料
- 基于深度强化学习的健康保险claiming策略优化-洞察及研究
- 抚州高新区2025年公开招聘五级主办工作人员【11人】考试历年参考题附答案详解
- 2025合伙制合同协议书
- 福建省全国名校联盟2026届高三上学期联合开学摸底考试语文试题及参考答案
- 2025年广工建筑电气试卷及答案
- 2024年广西桂林理工大学南宁分校招聘真题
- 排污许可证管理条例课件
- 乡镇人大主席“干在实处、走在前列”学习讨论发言材料
- 2025年食品安全管理员考试题库及参考答案
- 用户反馈收集及问题分析表
- 心血管衰老的分子机制探索
- 无人机飞行操作规范手册
- 【里斯】年轻一代新能源汽车消费洞察与预测 -新物种 新理念 新趋势(2024-2025)
评论
0/150
提交评论