当前位置:文档之家› C上机实验报告

C上机实验报告

C上机实验报告
C上机实验报告

C上机实验报告 The document was prepared on January 2, 2021

C++程序实验报告

实验目的

1.掌握类的定义和使用

2.掌握类的定义和对象的声明

3.复习具有不同访问属性的成员的访问方式

4.观察构造函数和析构函数的执行过程

5.学习类的组合使用方法

6.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序

实验要求

1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)

等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。2.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram 为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。

3.(选做)设计一个用于人事管理的People(人员)类。考虑到通用性这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。

实验内容及实验步骤

1.首先定义枚举类型CPU_Rank,例如enum CPU_Rank{P1=1, P2, P3, P4, P5, P6, P7},再定义CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。

程序名:lab4_1.cpp。

源程序

#include

using namespace std;

enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};

class CPU

{

private:

CPU_Rank rank;

int frequency;

float voltage;

public:

CPU(CPU_Rank r, int f, float v);

~CPU();

CPU_Rank GetRank(){return rank;}

int GetFrequency(){return frequency;}

float GetVoltage(){return voltage;}

void SetRank(CPU_Rank r){rank=r;}

void SetFrequency(int f){frequency=f;}

void SetVoltage(float v){voltage=v;}

void Run(){cout<<"CPU开始运行!"<

CPU::CPU(CPU_Rank r, int f, float v) {

rank=r;

frequency=f;

voltage=v;

cout<<"构造了一个CPU!"<

}

CPU::~CPU()

{

cout<<"析构了一个CPU!"<

}

void main()

{

CPU a(P4, 200, 3.8);

a.Run();

a.Stop();

}

运行结果:

2.使用debug调试功能观察程序lab4_1.cpp的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。

3.调试操作步骤如下:

1)单击Build | Start Debug | Step Into命令,或按下快捷键F11,系统进入单步执行状态,程序开始运行,一个DOS窗口出现,此时Visual Studio 中光标停在main()函数的入口处;

2)从Debug菜单或Debug工具栏中单击Step Over,此时,光标下移,程序准备执行CPU对象的初始化;

3)单击Step Into,程序准备执行CPU类的构造函数;

4)连续单击Step Over,观察构造函数;

5)此时程序准备执行CPU对象的run()函数,单击Step Into,程序进入run()成员函数,连续单击Step Over,直到回到main()函数。

6)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数、析构函数、成员函数的执行顺序的认识。

7)再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。

运行结果:

4.首先定义CPU类(可使用第二题中的CPU类)、RAM类、CDROM类。再定义Computer类;定义私有数据成员cpu、ram、cdrom,定义公有成员函数run、stop,可在其中输出提示信息。在主程序中定义一个Computer的对象,调用其成员函数,观察类对象及其成员变量的构造与析构顺序,以及成员函数的调用。程序名:lab4_2.cpp.

源程序

#include

using namespace std;

enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};

class CPU

{

private:

CPU_Rank rank;

int frequency;//频率

float voltage;//电压

public:

CPU(CPU_Rank r, int f, float v);

~CPU();

CPU(){};

CPU_Rank GetRank(){return rank;}

int GetFrequency(){return frequency;}

float GetVoltage(){return voltage;}

void SetRank(CPU_Rank r){rank=r;}

void SetFrequency(int f){frequency=f;}

void SetVoltage(float v){voltage=v;}

void Run(){cout<<"CPU开始运行!"<

CPU::CPU(CPU_Rank r, int f, float v)

{

rank=r;

frequency=f;

voltage=v;

cout<<"构造了一个CPU!"<

}

CPU::~CPU()

{

cout<<"析构了一个CPU!"<

}

//

enum RAM_Rank {K1=1,K2,K3,K4,K5,K6,K7}; class RAM

{

private:

RAM_Rank rank;

int frequency;

float voltage;

int large;//大小

public:

RAM(RAM_Rank r, int f, float v,int c);

~RAM();

RAM(){}

RAM_Rank GetRank(){return rank;}

int GetFrequency(){return frequency;}

float GetVoltage(){return voltage;}

void SetRank(RAM_Rank r){rank=r;}

void SetFrequency(int f){frequency=f;}

void SetVoltage(float v){voltage=v;}

void Setlarge(int c){large=c;}

void Run(){cout<<"RAM开始运行!"<

RAM::RAM(RAM_Rank r, int f, float v,int c) {

rank=r;

frequency=f;

voltage=v;

large=c;

cout<<"构造了一个RAM!"<

}

RAM::~RAM()

{

cout<<"析构了一个RAM!"<

}

//

enum CDROM_Rank {J1=1,J2,J3,J4,J5,J6,J7}; class CDROM

{

private:

CDROM_Rank rank;

int frequency;

float voltage;

int large;//大小

float w;//转速

public:

CDROM(CDROM_Rank r, int f, float v,int c,float m);

~CDROM();

CDROM(){}

CDROM_Rank GetRank(){return rank;}

int GetFrequency(){return frequency;}

float GetVoltage(){return voltage;}

void SetRank(CDROM_Rank r){rank=r;}

void SetFrequency(int f){frequency=f;}

void SetVoltage(float v){voltage=v;}

void Setlarge(int c){large=c;}

void Setw(float m){w=m;}

void Run(){cout<<"CDROM开始运行!"<

void Stop(){cout<<"CDROM停止运行!"<

};

CDROM::CDROM(CDROM_Rank r, int f, float v,int c,float m) {

rank=r;

frequency=f;

large=c;

w=m;

voltage=v;

cout<<"构造了一个CDROM!"<

}

CDROM::~CDROM()

{

cout<<"析构了一个CDROM!"<

}

class COMPUTER

{

private:

CPU cpu;

RAM ram;

CDROM cdrom;

public:

void Run(){cout<<"computer RUN"<

void Stop(){cout<<"computer STOP"<

COMPUTER(){}

COMPUTER(CPU&cpu1,RAM& ram1,CDROM& cdrom1)

{

cpu=cpu1;

ram=ram1;

cdrom=cdrom1;

}

COMPUTER(COMPUTER&computer2)

{

cpu=computer2.cpu;

ram=computer2.ram;

cdrom=computer2.cdrom;

}

};

int main()

{

CPU cpu(P1,100,2);

RAM ram(K2, 100, 2, 12 );

CDROM cdrom(J3,100,23,233,23);

COMPUTER computer(cpu,ram,cdrom);

computer.Run();

computer.Stop();

return 0;

}

运行结果:

5.使用debug调试功能观察lab4_2.cpp程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序,特别注意观察成员变量的构造与析构顺序。运行结果:

思考题

1.如何定义一个类

数据,构造函数,析构函数,复制构造函数,方法。。。

2.如何定义类的构造函数和析构函数

构造函数通用于实例化象自内部数据员初始化设置初始值、配内存空间等

析构函数则用于删除象做收尾工作比释放申请空间等

3.类的各成员函数的执行顺序是怎样的

按调用顺序执行

4.类组合时对象的构造顺序是怎样的

C++构造函数中初始化成员__参数列表初始化成员(必须用原因:对象成员的初始化,const修饰的成员的初始化,引用成员的初始化,子类调用父类的构造函数初始化父类成员)__参数列表在构造函数执行之前执行,参数列表中执行的是初始化

(所有的成员,无论是否出现在参数列表中,都会有初始化),参数列表的执行顺序与类中成员的声明顺序,与类的继承顺序相一致__构造函数中执行的一般是赋值_多重继承,虚继承构造函数的参数初始化列表的区别

6.心得体会:学到了什么;遇到的问题及解决方法等(可结合思考题)

构造函数,成员函数,析构函数的调用顺序。

游戏C语言实验报告完整版

游戏C语言实验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录

一、实验目的和要求 (1)使用C语言编写2048这款游戏。 (2)能够正常运行,拥有游戏界面。 (3)能正常进行游戏从开始到结束。? (4)用户操作方便。 二、实验环境、内容和方法 实验内容:1、游戏开始时随机产生两个数值为2/4的方格,其中一个方格置于4个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于0。 2、每次按方向键(w,s,a,d)后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。 3、每合并一次格子,将其值累计到游戏总分中。 4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为70%,4出现的概率为30%。 实验方法: 通过上机操作完成各内容。 实验环境: 实验用PC机一台,使用操作系统为Windows 7/ Windows 8/ Windows10,安装 vc++或v2008等编译软件 三、程序设计 Y

四、源代码 #include<> #include<> #include<> #include<> #define M 2048 void up(); n"); printf(" 玩家可以选择上(w)下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.\n"); printf(" 若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.\n"); printf(" 合并所得的所有新生成数字想加即为该步的有效得分.\n"); printf(" 玩家选择的方向行或列前方有空格则出现位移.\n"); printf(" 每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4).\n"); printf(" 棋盘被数字填满,无法进行有效移动,判负,游戏结束.\n"); printf(" 棋盘上出现2048,判胜,游戏结束"); printf("\n\n\n"); printf(" \t\t\t按回车开始游戏.\n"); getchar(\n);

PPT操作练习 上机实验报告

PPT操作练习上机实验报告 一、实验目的 ①掌握演示文稿制作的基本过程②按时文稿播放的基本操作 . 实验步骤:一、准备工作 1、在自己文件夹里建一个课件文件夹→双击打开此文件夹→建一个名为“素材”的文件夹。 2、搜集素材:包括声音、图片、影像、文字等,都存在“素材”文件夹内。 二、建立演示文稿 1、启动PowerPoint:双击桌面上的PowerPoint图标→选择“空演示文稿”→确定→选一版式→确定→选空白页→确定 2、保存:点“文件”菜单→保存→单击“保存位置”后面的“▼”→打开自己建的课件文件夹→在“文件名称”后面的框中输入文件名(中国山水画的意境)→保存。 3、关闭:点“X”按钮。 三、修饰、制作演示文稿 1打开已保存的课件:找到自己制作的课件保存的位置,双击打开课件。 (1)输入文字:插入→文本框→水平→到空白片按住鼠标左键拖动鼠标,在适当位置处松开→在所形成的方框内输入“体味中国传统文化的魅力”→输完后到框外空白处单击左键即可。 (2)修改文字:用鼠标将文字选中→设置“宋体、36、黑色”等。 在此输入一行字“____领略中国山水画的意境”并自定义动画:选中图标→右键→自定义动画→在“效果”下面的“动画和声音”处单击“▼”,选择一种动画。 (3)然后在当前页面插入音乐:插入→影片和→声音文件中的声音→在“素材”文件夹选一声音→确定→自动播放(放映幻灯片时声音自动播放)在插入的声音图标上点右键→编辑声音对象→单击“循环播放,直到停止”前的“□”,则埋单循环播放,否则只播放一次。 (4)设置声音播到第“4”张幻灯片后停止:单击声音图标→在图标上点右键→自定义动画→在“按动画顺序播放”前的“□”单击→继续幻灯片的放映→在下面的框内输入“4”→确定 2、插入新幻灯片:插入→新幻灯片→空白版式→确定。 3、插入艺术字:插入→图片→艺术字→选择简单版式→确定→输入文字→宋体、24号→确定。

第5章上机实验报告

第5章上机实验报告 一、实验目的 (1)观察程序运行中变量的作用域74。 (2)学习类的静态成员的使用。 (3)学习多文件结构的C++程序中的使用。 二、实验任务 (1)运行下面的程序,观察变量x,y的值。 【代码lab5-1】 #include"iostream" usingnamespace std; void fun(); int x=1,y=2; int main() { cout<<"Begin..."<

C上机实验报告实验五

C上机实验报告实验五 This manuscript was revised by the office on December 22, 2012

实验五继承与派生 1.实验目的 1.学习定义和使用类的继承关系,定义派生类 2.熟悉不同继承方式下对基类成员的访问控制 3.学习利用虚基类解决二义性问题 2.实验要求 1.定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(intn)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。 2.定义一个基类BaseClass,有整型变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 3.定义一个车(vehicle)基类,具有Maxspeed、Weight等成员,Run、Stop 等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNun)等属性。从bicycle和motorcar派生出摩托车(motorbicycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程尝试。 3.实验内容及实验步骤 1.编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(intn)中直接对age赋值时,会出现类似以下的错误提示: errorC2248:‘age’:cannotaccessprivatememberdeclaredinclass‘Animal’errorC2248:‘age’:cannotaccessprivatememberdeclaredinclass‘Animal’把age改为公有成员变量后重新编译就可以了。程序名:lab7_1.cpp。 2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名:lab7_2.cpp。 3.用debug功能跟踪程序lab7_2的执行过程,观察基类和派生类的构造函数和析构函数的执行情况。 4.编写程序定义一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名:lab7_3.cpp。 编译成功后,把vehicle设置为非虚基类,再编译一次,此时系统报错,无法编译成功。这是因为若不把vehicle设置为虚基类,会出现二义性错误,程序不能成功编译。 4.思考题 1.如何在已有的类的基础上设计新的类?

C语言实验报告合集

《C语言程序设计》实验报告 专业:班级:学号:学生姓名:实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度c。 已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3.将字符串“China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母 替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

数据库上机实验7实验报告

上机实验七——视图的建立及操作 一、实习目的: 掌握创建、删除、和查询视图的方法,验证可更新视图和不可更新视图。 二、实习准备: 1.复习第三章3.6节视图 2. 完成习题三第16题中的各项操作的SQL语句。 3.了解可更新视图和不课更新视图 三、实习内容:验证习题三第16题中的各项操作的SQL语句。 ①建立01311班选修了1号课程的学生视图Stu_01311_1 CREATE VIEW Stu_01311_1 AS SELECT * FROM Grade WHERE Cno='1'AND Sno in( SELECT Sno FROM Student WHERE Clno='01311') WITH CHECK OPTION ②建立01311班选修了1号课程并且成绩不及格的学生视图Stu_01311_2 CREATE VIEW Stu_01311_2 AS SELECT * FROM Grade

WHERE Cno='1'AND Gmark<60 AND Sno in( SELECT Sno FROM Student WHERE Clno='01311') WITH CHECK OPTION ③建立视图Stu_year,由学生学号、姓名、出生年份组成 CREATE VIEW Stu_year AS SELECT Sno,Sname,year=2001-Sage FROM Student ④查询1990年以后出生的学生姓名 SELECT Sname FROM Student WHERE 2001-Sage<1990; ⑤查询01311班选修了1号课程并且成绩不及格的学生的学号、姓名、出生年份SELECT Sno,Sname,2014-Sage FROM Student WHERE Clno=01311 AND EXISTS(

计算机上机实验内容及实验报告要求(完整版)

报告编号:YT-FS-1915-76 计算机上机实验内容及实验报告要求(完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

计算机上机实验内容及实验报告要 求(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj 文件和.exe文件)。 3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用a4纸打印)

1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的: ③算法描述(可用文字描述,也可用流程图): ④源代码:(.c的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对c文件的要求: 程序应具有以下特点:a 可读性:有注释。 b 交互性:有输入提示。 c 结构化程序设计风格:分层缩进、隔行书写。 3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。 1.顺序表的删除。

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操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用cout显示

C语言实验报告

《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院

专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级)

二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n ");

printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i

《大学计算机基础》上机实验报告

《大学计算机基础》 上机实验报告 班级: 姓名: 学号: 授课教师: 日期:年月日

目录 一、Windows操作系统基本操作......................................................... - 1 - 二、Word文字处理基本操作 .............................................................. - 4 - 三、Excel电子表格基本操作 ............................................................ - 6 - 四、PowerPoint幻灯片基本操作....................................................... - 8 - 五、网页设计基本操作 ...................................................................... - 9 - 六、Access数据库基本操作 ............................................................ - 10 - 上机实验作业要求: ○1在实验报告纸上手写并粘贴实验结果; ○2每人将所有作业装订在一起(要包封面); ○3全部上机实验结束后全班统一上交; ○4作业内容不得重复、输入的数据需要有差别。

实验名称一、Windows操作系统基本操作 实验目的1、掌握Windows的基本操作方法。 2、学会使用“画图”和PrntScr快捷键。 3、学会使用“计算器”和Word基本操作。 实验内容1、日历标注 利用“画图”和Word软件,截取计算机上日历的图片并用文字、颜色、图框等标注出近期的节假日及其名称,并将结果显示保存在下面(参考下面样图)。 运行结果是: 主要操作步骤是: 2、科学计算 利用“计算器”和Word软件,计算下列题目,并将结果截图保存在下面(参考样图)。 ○1使用科学型计算器,求8!、sin(8)、90、74、20、67、39、400、50.23、ln(785)的平均值、和值,并用科学计数法显示。 运行结果是: ②将以下十、八、十六进制数转换为二进制数:(894.8125)10、(37.5)8、(2C.4B)16 运行结果是:(需要下载使用“唯美计算器”) ○3计算下列二进制数的加法与乘法:101.1+11.11;1101*1011 运行结果是:(参考样图) 写出主要操作步骤: 3、实验心得体会

C程序设计上机实验报告11

C程序设计实验报告 实验名称:指针与字符串学时安排:2课时 实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、实验目的 1. 掌握通过指针操作字符串的方法; 二、实验设备介绍 软件需求: Visual C++ 6.0或CFree3.5以上版本 硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU 处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。 三、实验内容 1.输入一个字符串t和一个正整数m,讲t中从第m个(m小于字符串长度)字符开始的全部字符复制的字符串s中,再输出字符串s。要求用字符指针定义并调用函数strmcpy(s, t, m),它的功能是将字符串t中从第m个字符开始的全部字符复制到字符串s中。示例如下:Input a string: happy new year! Input an integers: 7 Output is: new year! 2. 编写一个函数delchar(s, c),该函数将字符串s中出现的所有c字符删除。自己定义main 函数,并在其中调用delchar(s,c)函数。D此大锅饭 3. 改正程序error08_ 4.cpp中的错误。函数strc的作用是将字符串s连接到t的尾部。在

主函数中输入两个字符串s和t,调用strc完成字符串的连接。输入输出结果如下所示:World! Hello HelloWorld! 要求把正确的代码(按规范缩进)写入报告,并以注释的方式说明错误原因。 注释示例如下: int i; /*循环控制变量不能定义为double类型*/ 4. 编程判断输入的一串字符是否为“回文”,如果是输出“Yes”,否则输出“No”。所谓“回文”,是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 四、程序清单 第一题 #include void strmcpy(char str[],char t[],int m){ int i=0,n; char *s; s=str; for(s+=m-1;*s!=0;s++) { t[i]=*s; i++; } printf("Output is:"); for(n=0;n

C语言实验报告合集

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验一 熟悉VC++环境 二、实验目的 1. 熟悉C 程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C 程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C 程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h"int main(){int a,b,sum;a=2;b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum);return 0;} 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验二 顺序结构程序设计 二、实验目的 (1)掌握C 语言数据类型以及变量的声明。 (2)掌握C 语言的赋值运算符、赋值表达式、赋值语句。(3)掌握C 语言的整型和字符型的混合运算。(4)掌握C 语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f ,请编写程序把它转换为摄氏温度c 。已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3. 将字符串“China ”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码:运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

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

实验五继承与派生 1.实验目的 1.学习定义和使用类的继承关系,定义派生类 2.熟悉不同继承方式下对基类成员的访问控制 3.学习利用虚基类解决二义性问题 2.实验要求 1.定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge (int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。 2.定义一个基类BaseClass,有整型变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 3.定义一个车(vehicle)基类,具有Maxspeed、Weight等成员,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNun)等属性。从bicycle和motorcar派生出摩托车(motorbicycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle 设置为虚基类,会有什么问题?编程尝试。 3.实验容及实验步骤 1.编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(int n)中直接对age赋值时,会出现类似以下的错误提示: error C2248 : ‘age’ : cannot access private member declared in class ‘Animal’error C2248 : ‘age’ : cannot access private member declared in class ‘Animal’把age改为公有成员变量后重新编译就可以了。程序名:lab7_1.cpp。 2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名:lab7_2.cpp。 3.用debug功能跟踪程序lab7_2的执行过程,观察基类和派生类的构造函数和析构函数的执行情况。 4.编写程序定义一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名:lab7_3.cpp。 编译成功后,把vehicle设置为非虚基类,再编译一次,此时系统报错,无法编译成功。这是因为若不把vehicle设置为虚基类,会出现二义性错误,程序不能成功编译。 4.思考题 1.如何在已有的类的基础上设计新的类? 采用类的派生的方法,利用基类派生出子类,子类继承基类的属性,从而在已有基类的基础上设计新的派生类,模式如下: class 派生类名:继承方式基类名1,继承方式基类名2,…,继承方式基类名n { 派生类成员声明; }; 2.基类和派生类对象的构造顺序是怎样的? 先调用基类的构造函数,然后再调用嵌对象(派生类中的对象)的构造函数。基类构造函数的调用顺序是按照派生类定义时的顺序,而嵌对象的构造函数调用顺序是按照成员在类中声

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

c上机实验报告

实验五继承与派生 实验目的 1.学习定义和使用类的继承关系,定义派生类 2.熟悉不同继承方式下对基类成员的访问控制 3.学习利用虚基类解决二义性问题 实验要求 1?定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge (int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。 2?定义一个基类BaseClass有整型变量Number,构造其派生类 DerivedClass观察构造函数和析构函数的执行情况。 3.定义一个车(vehicle)基类,具有Maxspeed、Weight 等成员,Run、Stop 等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车 (bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数 (SeatNun)等属性。从bicycle和motorcar 派生出摩托车(motorbicycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程尝试。 实验内容及实验步骤 1?编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge (int n)中直接对age赋值时,会出现类似以下的错误提示: error C2248: ‘age':cannot access private member declared in class C2248: ‘ age' :cannot access privateer declared in class 把Agm改为公 有成员变量后重新编译就可以了。程序名:。 错误代码: #include using namespace std; class Animal

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

计算机组成原理上机实验报告

《计算机组成原理实验》课程实验报告 实验题目组成原理上机实验 班级 1237-小 姓名 学号 时间 2014年5月 成绩

实验一基本运算器实验 1.实验目的 (1)了解运算器的组成原理 (2)掌握运算器的工作原理 2.实验内容 输入数据,根据运算器逻辑功能表1-1进行逻辑、移位、算术运算,将运算结果填入表1-2。 表 1-1运算器逻辑功能表 表1-2运算结果表

3.实验原理 本实验的原理如图1-1所示。 运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器 A 和暂存器 B,三个部件同时接受来自 A 和 B 的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如 ARM),各部件对操作数进行何种运算由控制信号S3…S0和 CN 来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为 ALU 的输出。如果是影响进位的运算,还将置进位标志 FC,在运算结果输出前,置 ALU 零标志。ALU 中所有模块集成在一片 CPLD 中。 图 1-1 运算器原理图 逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-2所示。 图1-2中显示的是一个 4X4 的矩阵(系统中是一个 8X8 的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即: (1)对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接 0。 (2)对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在 4 位矩阵中使用‘右1’和‘左3’对角线来实现右循环 1 位。 (3)对于未连接的输出位,移位时使用符号扩展或是 0 填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。 运算器部件由一片 CPLD 实现。ALU 的输入和输出通过三态门 74LS245 连到 CPU 内总线上,另外还有指示灯标明进位标志 FC 和零标志 FZ。请注意:实验箱上凡丝印标注有马蹄形标记‘’,表示这两根排针之间是连通的。图中除 T4 和 CLR,其余信号均来自于 ALU 单元的排线座,实验箱中所有单元的 T1、T2、T3、T4 都连接至控制总线单元的 T1、T2、T3、T4,CLR 都连接至 CON 单元的 CLR 按钮。T4 由时序单元的 TS4 提供(时序单元的介绍见附录二),其余控制信号均由 CON 单元的二进制数据开关模拟给出。控制信号中除 T4 为脉冲信号外,其余均为电平信号,其中 ALU_B 为低有效,其余为高有效。 暂存器 A 和暂存器 B 的数据能在 LED 灯上实时显示,原理如图1-3 所示(以 A0 为例,其

C上机实验报告

实验一 顺序结构程序设计 【实验日期】 年 月 日 【实验目的】 1. 熟悉VC++6.0调试环境,掌握运行一个C 程序的基本步骤。 2. 掌握基本输入、输出函数的使用。 3. 能够编写简单的顺序结构程序,实现简单的数据处理。 4. 掌握C 程序的查错方法。 【实验内容】 调试示例 改正下列程序中的错误,求华氏温度1000F 对应的摄氏温度。计算公式如下,其中:c 表示摄氏温度,f 表示华氏温度。 源程序(有错误的程序) #include “stdoi.h ” void main() { int c;f; f=100; c=5*(f-32)/9; printf(“f=d,c=%d\n ”,f,c); } 运行结果(改正后程序的运行结果) f=100,c=37 调试过程: (1) 输入源程序。 (2) 使用菜单或工具栏来完成编译、连接和运行操作。 (3) 单击编译(Compile )按钮,编译时出现的第一条错误信息是: Cannot open include file:’stdoi.h ’:no such file or directory 通过拖动信息窗口右侧的滚动块或将信息窗口拉大可查看错误信息。双击该错误信息,箭头指向源程序的第一行,因为“stdio.h ”被误写为“stdoi.h ”。改正为“stdio.h ”后,重新编译,新产生的第一9)32(5-?=f c

条错误信息是:‘f’:undeclared identifier 双击该错误信息,箭头指向源程序的第四行,错误信息指出“f”变量没有被定义。仔细观察后,发现“f”前的分号应该为逗号。将“f”前的分号改为逗号后,重新编译,编译正确。 (4) 单击连接(Build)按钮,连接正确。 (5) 单击运行(Build Execute)按钮,运行结果为:f=d,c=100。 结果不符合题目的要求,仔细检查源程序,发现函数printf中“f=d”的“d”应为“%d”。改正后,重新编译、连接和运行,运行结果与题目要求的结果一致。 ●改错题 改正下列程序中的错误,计算x的平方y,并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。 源程序(有错误的程序) /********************found********************/ #include “stdoi.h” void main() { int y,x; printf(“Input x:”); scanf(“%d”,&x); y=x*x; /********************found**********************/ printf(“%d=%d*%d\n”,x); /********************found**********************/ printf(“%d*%d=%d\n”,y); } 运行结果1(改正后程序的运行结果)运行结果2 Input x:5 Input x:4 25=5*5 16=4*4 5*5=25 4*4=16 ●编程题 1、已知某位学生的数学、英语和计算机课程的成绩分别是82分、78分和91分,求该生3门课的平均成绩。 输出示例: Math=82,eng=78,comp=91,average=83

相关主题
文本预览
相关文档 最新文档