C++上机实验报告 实验五
c语言上机报告

c语言上机报告C语言上机报告(C Programming Report)一、背景介绍我们学校的C语言课程要求我们每个学期都要完成一些上机实验。
本次上机实验主要是让我们巩固和应用所学的C语言知识,加深对C语言的理解和掌握。
二、实验内容本次实验主要是编写一个简单的学生信息管理系统。
要求实现以下功能:1. 添加学生信息:输入学生的姓名、年龄、性别和学号,并将其添加到学生信息库中。
2. 删除学生信息:通过输入学生的学号,从学生信息库中删除该学生的信息。
3. 修改学生信息:通过输入学生的学号,修改该学生的姓名、年龄、性别等信息。
4. 查询学生信息:通过输入学生的学号,查询该学生的姓名、年龄、性别等信息。
5. 显示所有学生信息:将学生信息库中的所有学生信息按照一定格式进行展示。
三、实现过程1. 首先,我们定义一个结构体来存储学生的信息。
结构体包含姓名、年龄、性别和学号等成员变量。
2. 然后,我们定义一个数组来作为学生信息库,每个元素都是一个学生信息的结构体。
3. 编写函数实现不同的功能。
例如,添加学生信息的函数会从用户那里获取学生的姓名、年龄、性别和学号,并将其添加到学生信息库中。
4. 在主函数中,通过循环实现菜单的显示和用户输入的获取。
根据用户的选择,调用相应的函数来执行对应的功能。
5. 最后,编译和运行程序,测试各个功能是否正常。
四、遇到的问题及解决方法在实现过程中,我们遇到了一些问题。
例如,如何实现添加学生信息的功能,如何从用户那里获取输入等。
针对这些问题,我们通过查阅相关的资料和向老师请教,找到了解决方法。
五、实验结果经过测试,我们的学生信息管理系统能够正常运行,各个功能也能够按要求实现。
用户可以通过菜单选择不同的功能,对学生信息进行添加、删除、修改、查询和展示。
六、实验总结通过本次实验,我们巩固了C语言的知识,提高了对C语言的理解和掌握。
同时,我们锻炼了编程的能力和解决问题的能力。
通过与同学们的交流和讨论,我们也学到了其他人的思路和方法。
C程序设计上机实验报告完整版

C语言程序设计上机实验报告学院:机械工程学院班级:机自161213姓名:刘昊学号:20162181310实验时间:2017年3月6号任课老师:张锐C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:运行结果1:程序分析1:该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。
代码2:运行结果2:程序分析2:简单的使用printf()和scanf()函数进行简单的数据运算。
代码3:运行结果3:程序分析3:使用if语句进行判断。
五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:运行结果1:程序分析1:所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,所以只需要对所输入的字符进行减法运算就可以转换为与之对应的大写字母。
代码2:运行结果2:程序分析2:简单的数据运算和格式字符的输出。
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语言》课内实验报告5

一、实验题目:实验五函数的应用二、实验目的:1.进一步掌握函数的定义方法、调用方法,实参与形参的对应关系,以及调用函数的执行过程。
2.掌握函数的嵌套调用、递归调用、数组作为函数参数的设计方法。
3.进一步理解变量的作用域和生存期。
三、实验内容:1.定义一个求阶乘的递归调用函数double fac(int n),在主函数中调用3次该函数分别求出8!、10!、18!的准确值(结果:8!=40320,10!=3628800,18!=6402373705728000)。
编写源程序,给出注释及运行结果。
(提示,请参阅教材上174页例8.7的程序)。
#include<stdio.h> /*包含头文件*/ void main() /*空类型主函数*/ {double fac(int n); /*声明函数fac(int n)*/int a,b,c; /*定义整型变量a,b,c*/double x,y,z; /*定义double型变量x,y,z*/a=8; /*将8赋给a*/b=10; /*将10赋给b*/c=18; /*将18赋给c*/x=fac(a); /*将fac(a)赋给x*/y=fac(b); /*将fac(b)赋给y*/z=fac(c); /*将fac(c)赋给z*/printf("%d!=%.0lf\n%d!=%.0lf\n%d!=%.0lf\n",a,x,b,y,c,z);/*标准输出函数输出a,x,b,y,c,z的值*/}double fac(int n) /*定义函数fac(int n)*/{double f; /*定义double型变量f*/if(n==0||n==1) /*如果n等于0或n等于1*/ f=1; /*将1赋给f*/ else/*否则*/f=fac(n-1)*n; /*将函数值赋给f*/return(f); /*返回f的值*/}2.编写一个将n个整数用选择法按由小到大的顺序排序的函数void sort(int array[], int n),在主函数中调用两次该函数,对任给出个数分别是10和15的两组整数进行排序。
C语言实验报告(精选9篇)

C语言实验报告C语言实验报告(精选9篇)在经济发展迅速的今天,我们都不可避免地要接触到报告,通常情况下,报告的内容含量大、篇幅较长。
写起报告来就毫无头绪?下面是小编帮大家整理的C语言实验报告,欢迎阅读与收藏。
C语言实验报告1在这个星期里,我们在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c 语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
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.掌握数组名作为参数的编程方式。
c语言上机实验报告

c语言上机实验报告C语言上机实验报告引言:C语言是一门广泛应用于计算机编程领域的高级编程语言。
通过学习C语言,我们可以了解计算机程序的基本原理和实现方法。
在本次实验中,我们将进行一系列的C语言上机实验,旨在提高我们的编程能力和解决问题的能力。
实验一:基本语法和数据类型在这个实验中,我们首先学习了C语言的基本语法和数据类型。
我们了解了变量的定义和使用,以及常用的数据类型,如整数、浮点数和字符。
通过编写简单的程序,我们掌握了C语言的基本语法和运算符的使用方法。
实验二:流程控制和循环结构在这个实验中,我们学习了C语言的流程控制和循环结构。
我们了解了条件语句(if-else语句)和循环语句(for循环和while循环)的使用方法。
通过编写程序,我们掌握了如何根据不同的条件执行不同的代码块,以及如何使用循环结构重复执行一段代码。
实验三:数组和字符串在这个实验中,我们学习了C语言中数组和字符串的使用方法。
我们了解了如何定义和初始化数组,以及如何使用下标访问数组元素。
我们还学习了字符串的定义和常用的字符串处理函数。
通过编写程序,我们掌握了如何使用数组和字符串解决实际问题。
实验四:函数和指针在这个实验中,我们学习了C语言中函数和指针的使用方法。
我们了解了如何定义和调用函数,以及如何传递参数和返回值。
我们还学习了指针的概念和使用方法,包括指针的定义、指针的运算和指针的传递。
通过编写程序,我们掌握了如何使用函数和指针提高程序的模块化和灵活性。
实验五:文件操作在这个实验中,我们学习了C语言中文件操作的使用方法。
我们了解了如何打开和关闭文件,以及如何读取和写入文件。
我们还学习了文件指针和文件位置指示器的概念和使用方法。
通过编写程序,我们掌握了如何读取和处理文件中的数据,以及如何将数据写入文件。
总结:通过这一系列的C语言上机实验,我们深入学习了C语言的基本知识和编程技巧。
我们掌握了C语言的基本语法和数据类型,了解了流程控制和循环结构的使用方法,掌握了数组和字符串的操作技巧,学会了函数和指针的使用方法,以及文件操作的基本知识。
C程序设计实验五实验报告

同组者
离开实验室时间
实验项目名称
09:50
无
11:30
实验五循环结构程序设计
实验目的:
1、熟悉掌握用while语句、do…while语句和for语句实现循环的方法;
2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、地推等);
3、进一步学习调试程序。
实验内容
编程序并上机调试运行。
printf("The quantities of circulation is %f\n",i);
return 0;
}
2输出结果如下:
不同初值对迭代次数有影响。
实验总结:
老师批语:
return 0;
}
②运行结果如下:
在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。
1输入程序如下:
#include<stdio.h>
int main()
{
char c;
int bigletters=0,smallletters=0,space=0,digit=0,other=0;
①输入程序如下:
#include<stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
return 0;
}
②程序运行结果如下:
在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五继承与派生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、基类与派生类对象的构造顺序就是怎样的?先调用基类的构造函数,然后再调用内嵌对象(派生类中的对象)的构造函数。
基类构造函数的调用顺序就是按照派生类定义时的顺序,而内嵌对象的构造函数调用顺序就是按照成员在类中声明的顺序。
3、如何利用虚基类解决二义性问题?将共同基类设置为虚基类,语法为:class 派生类名:virtual 继承方式基类名5.源程序Lab7_1、cpp#include<iostream>using namespace std;class Animal//Animal类{/*private:int age;*/public:int age;Animal(){}~Animal(){}Animal(int );};class Dog:public Animal//Dog类,Animal的公有派生类{private:int number;public:Dog(){}~Dog(){}Dog(int,int);void setAge(int );void showNumber();void showAge();};Animal::Animal(int a)//Animal构造函数{age=a;}Dog::Dog(int n,int a)//Dog构造函数{number=n;age=a;}void Dog::setAge(int n)//Dog成员函数,setAge{age=n;}//数据输出函数void Dog::showNumber(){cout<<"Number:"<<number<<endl;}void Dog::showAge(){cout<<"Age:"<<age<<endl;}int main(){Dog dog1(12,0);dog1、setAge(7);dog1、showNumber();dog1、showAge();return 0;}Lab_2#include<iostream>using namespace std;class BaseClass{private:int grade;int population;public:BaseClass(int g,int p)//BaseClass的构造函数{grade=g;population=p;cout<<"constructing BaseClass"<<endl;}~BaseClass()//析构{cout<<"destructing BaseClass"<<endl;}};class DerivedClass:public BaseClass{private:char name;public:DerivedClass(int g,int p,char n):BaseClass(g,p)//DerivedClass的构造函数{name=n;cout<<"constructing DerivedClass"<<endl;}~DerivedClass(){cout<<"destructing DerivedClass"<<endl;}};int main(){DerivedClass a(7,55,'A');return 0;}Lab_3#include<iostream>using namespace std;class Vehicle{public:float maxspeed;float weight;Vehicle(){}Vehicle(float m,float w){maxspeed=m;weight=w;}~Vehicle(){}void run(){cout<<"Vehicle running"<<endl;}void stop(){cout<<"Vehicle stopping"<<endl;}};class Bicycle:virtual public Vehicle{public:float height;Bicycle(float m,float w,float h):Vehicle(m,w){height=h;}Bicycle(float h){height=h;}~Bicycle(){}};class Motorcar:virtual public Vehicle{public:int seatnum;Motorcar(float m,float w,int s):Vehicle(m,w){seatnum=s;}~Motorcar(){}Motorcar(float s){seatnum=s;}};class Motorbicycle:public Bicycle,public Motorcar{public:Motorbicycle(float m,float w,float h,int s):Vehicle(m,w),Bicycle(h),Motorcar(s){} void showInformation(){cout<<"The maxspeed of this motorbicycle is:"<<maxspeed<<endl;cout<<"The weight of this motorbicycle is:"<<weight<<endl;cout<<"The height of this motorbicycle is:"<<height<<endl;cout<<"The seatnumber of this motorbicycle is:"<<seatnum<<endl;}};int main(){Motorbicycle a(60,21、5,45、8,2);a、run();a、showInformation();a、stop();return 0;}6.运行结果Lab7_1age 为Animal的私有成员数据时:编译报错age 为Animal的公有成员数据时:正常运行Lab_2Lab_37.心得体会:熟悉并了解了如果利用基类进行派生,得到派生类,明白了public,protect,private三种派生类型的区别,能够较好的利用继承的方法,来创建新的子类。
并且学习了使用虚基类继承的方式,使基类中的成员对象仅被创建一次,收获颇多。