C++上机实验报告 实验四

合集下载

C语言程序设计上机实验报告

C语言程序设计上机实验报告

本科实习报告实习名称: C 语言程序设计实习性质:08060101实习时间:2011.09—2012.01实习地点:学生姓名:学号:学院:信息科学技术学院学系:数学系专业:信息与计算科学指导教师:教师单位:数学系2011年9月1日C语言程序设计课程实验项目目录学生姓名:学号:第 1 页暨南大学本科实验报告专用纸实验一熟悉WinTC/VC的上机过程:一、实验目的:1.熟悉Win TC或者VC++ 6.0的软件环境,掌握使用其进行编辑、编译、连接和运行的方法。

2.通过运行简单的C程序,掌握C源程序的特点。

二、实验内容:(由学生选择WinTC或者VC之一完成相关实验)1.运行WinTC程序,进入C程序设计环境。

2.建立工程文件3.编辑源文件4.编译、连接(1)单文件源程序的编译、连接源程序先经过编译,生成目标文件(.obj文件),然后将目标文件进行连接,生成可执行文件(.exe)。

如果编译、连接中发生错误,在Message窗口中显示出错信息,修改错误后,可重新编译、连接。

(2)多文件源程序的编译、连接可以用长的源程序分割成几个文件,分别编译然后生成可执行文件。

此时使用Project菜单。

步骤:第一步:有三个文件f1.c、f2.c、f3.c组成一个完整的C程序,分别建立三个文件,将f1.c、f2.c、f3.c三个文件保存到同一个文件夹中(如d:\tc\project\)。

f1.c:#include "stdio.h"extern a,b;extern max(int x,int y);main(){int e=1,f=2;printf("%d\n",max(a,b));printf("%d\n",max(e,f));}f2.c:int a=3,b=4;f3.c:int max(int x,int y ){return x>y?x:y;}第 2 页C语言程序设计第二步:构造Project文件,在编辑状态下,编辑一个扩展名为.prj的文件,文件的内容为:f1f2f3第三步:构造EXE文件,按F9键即将三个文件编译、连接成一个EXE文件,文件名为wang.exe。

实验报告二厦门理工学院C语言选修课上机实验实验4循环结构

实验报告二厦门理工学院C语言选修课上机实验实验4循环结构

《高级语言程序设计》实验报告实验序号:2 实验项目:数据类型、运算符和表达式09机制2 学号232 姓名叶志伟专业、班级实验地点1-511 指导教师胡亮实验时间 3.15一、实验目的及要求1.掌握C基本数据类型的基本概念、基本属性。

2.学会如何书写一个整型、字符型、实型常量。

3.掌握C算术运算符的基本概念、基本属性、运算规则。

二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。

三、实验内容与步骤1.输入下列源程序,进行修改、编译、连接和运行。

程序:main ( ){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);}运行结果是:两行结果的不同是由什么引起的:程序定义了输出的类型,第一个输出字符型,另一个输出整型。

2.输入并运行下面的程序:#include<stdio.h>void main(){char c1,c2,c3;c1=getchar();c3=getchar();putchar(c1);putchar(c2);putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因。

(↙表示回车)(1)123↙(2)12↙(3)1↙2↙运行结果是:分析运行结果:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.3.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因。

C++上机实验报告 实验四

C++上机实验报告 实验四

C++上机实验报告实验四C++上机实验报告实验四一、实验目的本次实验旨在通过实际编程操作,进一步加深对 C++语言中类与对象、继承与多态等重要概念的理解和运用,提高编程能力和问题解决能力。

二、实验环境操作系统:Windows 10编程软件:Visual Studio 2019三、实验内容本次实验主要包括以下几个部分:1、类与对象的定义和使用创建一个名为`Student` 的类,用于表示学生的信息,包括姓名、学号、年龄和成绩等属性,并实现相应的成员函数用于设置和获取这些属性的值。

2、继承的实现从`Student` 类派生出一个名为`GraduateStudent` 的子类,增加研究方向和导师等属性,并重新定义一些成员函数以适应子类的特殊需求。

3、多态性的应用定义一个基类`Shape` ,以及派生类`Circle`(圆形)和`Rectangle`(矩形),通过虚函数实现不同形状的面积计算方法。

四、实验步骤及代码实现1、`Student` 类的定义与实现```cppinclude <iostream>include <string>class Student {private:std::string name;int id;int age;double score;public://设置属性值的函数void setName(std::string n) { name = n; }void setId(int i) { id = i; }void setAge(int a) { age = a; }void setScore(double s) { score = s; }//获取属性值的函数std::string getName(){ return name; }int getId(){ return id; }int getAge(){ return age; }double getScore(){ return score; }//打印学生信息的函数void printInfo(){std::cout <<"姓名: "<< name <<",学号: "<< id <<",年龄: "<< age <<",成绩: "<< score << std::endl;}};int main(){Student s;ssetName("张三");ssetId(1001);ssetAge(20);ssetScore(855);sprintInfo();return 0;}```2、`GraduateStudent` 类的定义与实现```cppinclude <iostream>include <string>class GraduateStudent : public Student {private:std::string researchDirection;std::string supervisor;public://设置子类特有属性值的函数void setResearchDirection(std::string rd) { researchDirection = rd; }void setSupervisor(std::string sv) { supervisor = sv; }//获取子类特有属性值的函数std::string getResearchDirection(){ return researchDirection; }std::string getSupervisor(){ return supervisor; }//打印研究生信息的函数void printInfo(){Student::printInfo();std::cout <<"研究方向: "<< researchDirection <<",导师: "<< supervisor << std::endl;}};int main(){GraduateStudent gs;gssetName("李四");gssetId(1002);gssetAge(22);gssetScore(900);gssetResearchDirection("计算机视觉");gssetSupervisor("王五教授");gsprintInfo();return 0;}```3、多态性的实现```cppinclude <iostream>class Shape {public:virtual double area()= 0;};class Circle : public Shape {private:double radius;public:Circle(double r) : radius(r) {}double area(){return 314159 radius radius;}};class Rectangle : public Shape {private:double length;double width;public:Rectangle(double l, double w) : length(l), width(w) {}double area(){return length width;}};int main(){Shape shapes2;shapes0 = new Circle(50);shapes1 = new Rectangle(40, 60);for (int i = 0; i < 2; i++){std::cout <<"面积: "<< shapesi>area()<< std::endl;delete shapesi;}return 0;}```五、实验结果与分析1、在`Student` 类的实验中,成功定义了学生的属性,并通过成员函数进行了设置和获取,打印出了正确的学生信息。

C上机实验报告 实验四

C上机实验报告 实验四

精品文档实验四数组、指针与字符串1.实验目的1.学习使用数组2.学习字符串数据的组织和处理3.学习标准C++库的使用4.掌握指针的使用方法5.练习通过Debug观察指针的内容及其所指的对象的内容6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用7.分别使用字符数组和标准C++库练习处理字符串的方法2.实验要求1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。

2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。

3.编程实现两字符串的连接。

要求使用字符数组保存字符串,不要使用系统函数。

4.使用string类定义字符串对象,重新实现上一小题。

5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。

Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。

实现并测试这个类。

6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。

7. (选做)修改实验4中的选做实验中的people(人员)类。

具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。

其中“出生日期”定义为一个“日期”类内嵌对象。

用成员函数实现对人员信息的录入和显示。

要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。

在测试程序中定义people类的对象数组,录入数据并显示。

3.实验内容及实验步骤1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。

程序名:lab6_1.cpp。

2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。

C程序设计实验四实验报告

C程序设计实验四实验报告

实验报告工学院土木工程专业09级2011 至2012 学年度第 1 学期实验目的:1、了解C语言表示逻辑量的方法(以0代表“假”, 以非0代表“真”);2.学会正确使用逻辑运算符和逻辑表达式;3.熟练掌握if语句的使用(包括if语句的嵌套);4.熟练掌握多分支选择语句——switch语句;5.结合程序掌握一些简单的算法;6.进一步学习调试程序的方法。

实验内容(1)本实验要求事先编好解决下面问题的程序, 然后上机输入程序并调试运行程序。

有一函数: x (x<1)y=﹛2x-1 (1<=x<10)3x-11 (x>=10)①写程序, 输入x的值, 输出y相应的值。

用scanf函数输入x的值, 求y值。

输入程序如下:#include<stdio.h>int main(){int x,y;printf("Please input x:");scanf("%d",&x);if (x<1){y=x;printf("x=%d y=%d",x,y);}else if (x<10){y=2*x-1;printf("x=%d y=%d",x,y);}else{y=3*x-11;printf("x=%d y=%d",x,y);}return 0;}运行结果如下: (分别输入-6,5,15)①从键盘输入一个小于1000的正数, 要求输出它的平方根(如果平方根不是正数,则输出其整数部分)。

要求在输入数据后先对其进行检查是否小于1000。

若不是, 则要求重新输入。

输入数据如下:#include<stdio.h>#include<math.h>int main(){int x,y;printf("Please input x:");scanf("%d",&x);while (x>1000){printf("Please input x(<1000):");scanf("%d",&x);}y=sqrt(x);printf("x=%d y=%d",x,y);return 0;}②运行结果如下①给出一个百分制成绩, 要求输出成绩等级A,B,C,D,E。

C语言上机实验

C语言上机实验

实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。

2.熟悉编译环境。

3.初步熟悉C语言程序的语法规定。

4.了解简单函数的使用方法。

实验内容:1.编程且上机运行:求3个整数的和。

2.编程且上机运行:求2个数的和、差、积和商。

3.编程且上机运行:输入3个数,求最大值。

4.编程且上机运行:输入圆的半径,求圆的面积和周长。

5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。

实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。

实验过程:实验结果:参见各种类型的存储实现描述。

2.实验目的:了解混合类型计算中类型的转换规则。

实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。

注意unsigned int和int数据运算时类型转换的方向。

实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。

大一C语言上机实验实验报告

大一C语言上机实验实验报告
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{printf("%d",* p);p++;}
}
void sort(int x[],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k]) k=j;
从1一直加到100.
2.确定数学模型
3.算法
i=1
当i≤100
sum+=i
i=i+1
输出5050
4.程序编码
#include<stdio.h>
void main()
{
int i,sum=0;
for(i=1;i<=100;i++)sum+=i;
printf("%d\n",sum);
}
5.调试程序
经过上机调试,运行情况如下:
void main()
{
int year;
scanf("%d",&year);
if(year/4==0&&year/100!=0)
printf("%d is a leap year.\n",year);
else if(year/400==0)
printf("%d is a leap year.\n",year);
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t;}

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)第一篇:C语言程序设计上机实验报告黔南民族师范学院 C语言程序设计上机实验报告系部:计算机科学系年级:2013 级班级:姓名:学号:实验时间:实验成绩:2013年月日实验三顺序结构程序的设计一实验名称:顺序结构程序的设计二.实验环境:windows XP系统,VC++6.0软件三.实验目的:四.实验内容:五.算法描述流程图六.源程序七.测试数据及运行结果八.实验心得实验成绩评分要求1、原创性发现抄袭或雷同成绩为0分2、正确性程序正确60分3、可读性格式清楚,有注释,变量命名规范20分4、健壮性对特殊测试数据有考虑有测试10分5、效率程序运行效率高10分第二篇:《c语言程序设计》上机实验报告要求《c语言程序设计》上机实验报告要求1.实验环境:软件系统:使用的软件环境硬件系统:机型说明2.实验目的:掌握如何编辑、编译、链接调试运行c程序3.实验内容:(1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7(2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~(3)循环结构程序设计(while, dowhile,for语句的用法)。

(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。

(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。

(6)熟悉指针含义及其使用。

(7)熟悉结构体和共用体的使用。

(8)熟悉文件的使用。

4.实验要求:(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改之。

(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。

(3)运行程序,输入数据,分析结果。

5.实验结果:输出程序清单和运行结果。

(要求把原题内容,调试好的程序和其结果一并打印),6.实验体会分析运行结果,本次调试程序取得的经验(遇到的问题,解决的方法等)。

第三篇:C程序设计上机实验报告10C程序设计实验报告实验名称:指针与数组学时安排:2课时实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.理解指针、地址和数组间的关系;2.掌握通过指针操作数组元素的方法;3.掌握数组名作为参数的编程方式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return 0; }
5. Employee.h #ifndef Employee_H_INCLUDED #define Employee_H_INCLUDED
class Employee { private:
char name[15]; char address[25]; char city[10]; int postcode; public: Employee(); Employee(char n,char a,char c,int p); ~Employee(); void change_name(); void change_address(); void change_city(); void change_postcode(); void display(); };
c[k]=a[m]; } //将数组 b 中的字符串接着 a,拷贝到数组 c 中 for(;k<45,b[n]!='\0';k++,n++) {
c[k]=b[n]; } cout<<c;
return 0; }
4. lab6_4.cpp #include<iostream> #include<cstring> using namespace std; char a[20]={"/0"},b[20]={"/0"}; int main() {
int i,j; cout<<"The transposition matrix is:"<<endl; for(j=0;j<3;j++) {
for(i=0;i<3;i++) {
cout<<a[i][j]; cout<<" "; } cout<<endl; } } void input() { int i,j; cout<<"Please input your 3*3 matrix:"<<endl; for(i=0;i<3;i++) { for(j=0;j<3;j++) {
3. 实验内容及实验步骤 1.编写矩阵转置函数,输入参数为 3*3 整形数组,使用循环语句实现矩阵元素的行列对调, 注意在循环语句中究竟需要对哪些元素进行操作,编写 main()函数实现输入、输出。程 序名:lab6_1.cpp。
2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在 main()函数 中使用 new 操作符分配内存生成动态数组。通过 Debug 观察指针的内容及其所指的对象中 的内容。程序名:lab6_2.cpp。
5.在 employee.h 文件中定义 Employee 类。Employee 类具有姓名、街道地址、城市和邮编 等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用 cout
显示姓名、街道地址、城市和邮编等属性,change_name()改变类中表示姓名属性的数据成 员。在主程序中定义这个类的对象并对其进行操作。程序名:lab6_5.cpp。
int i,j,k; cout<<"Input the first string:"<<endl; cin.getline(a,20,'\n'); cout<<"Input the second string:"<<endl; cin.getline(b,20,'\n'); int m=0,n=0; //将数组 a 中的字符串拷贝到数组 c 中 for(k=0;k<45,a[m]!='\0';k++,m++) {
#endif // Employee_H_INCLUDED
Employee.cpp #include<iostream> #include"Employee.h" using namespace std; Employee::Employee(){} Employee::Employee(char n,char a,char c,int p) {
实验四数组、指针与字符串
1. 实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准 C++库的使用 4.掌握指针的使用方法 5.练习通过 Debug 观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准 C++库练习处理字符串的方法
cin>>a[i][j]; } } } int main() { input(); showTrans();
return 0; } b6_2.cpp #include<iostream> using namespace std; int* p[9]; void showTrans() {
int i,j; cout<<"The transposition matrix is:"<<endl; for(i=0;i<3;i++) {
2. 实验要求 1.编写并测试 3*3 矩阵转置函数,使用数组保存 3*3 矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用 string 类定义字符串对象,重新实现上一小题。 5.定义一个 Employee 类,其中包括姓名、街道地址、城市和邮编等属性,以及 change_name()和 display()等函数。Display()显示姓名、街道地址、城市和邮编等属性, change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含 5 个元素的对象数组,每个元素都是 Employee 类型的对象。 7. (选做)修改实验 4 中的选做实验中的 people(人员)类。具有的属性如下:姓名 char name[11]、编号 char number[7]、性别 char sex[3]、生日 birthday、身份证号 char id[16]。其 中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显 示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序 中定义 people 类的对象数组,录入数据并显示。
name[0]=n; name[1]='\0'; address[0]=a; address[1]='\0'; city[0]=c; city[1]='\0'; postcode=p; } Employee::~Employee(){} void Employee::change_name() { cout<<"Please input your changed name:"<<endl; cin.getline(name,15,'\n'); } void Employee::change_address() { cout<<"Please input your changed address:"<<endl; cin.getline(address,25,'\n'); } void Employee::change_city() { cout<<"Please input your changed city:"<<endl; cin.getline(city,10,'\n'); } void Employee::change_postcode() { cout<<"Please input your changed postcode:"<<endl; cin>>postcode; } void Employee::display() { cout<<"Your information shows as follow:"<<endl; cout<<"name:"<<name<<endl; cout<<"address:"<<address<<endl; cout<<"city:"<<city<<endl; cout<<"postcode:"<<postcode<<endl; } int main() { Employee person(1,1,1,1); person.display(); person.change_name(); person.change_address(); person.change_city();
} } int main() {
input(); showTrans();
int i; for(i=0;i<9;i++) {
delete p[i]; }
return 0; }
b6_3.cpp #include<iostream> //不使用系统自带函数 strcpy using namespace std; char a[20]={"/0"},b[20]={"/0"},c[45]={"/0"}; int main() {
cout<<"Input the first string:"<<endl; cin.getline(a,20,'\n'); cout<<"Input the second string:"<<endl; cin.getline(b,20,'\n'); string s1=a; string s2=b; string s3=s1+s2; cout<<s3;
相关文档
最新文档