C程序设计实验报告.docx_第1页
C程序设计实验报告.docx_第2页
C程序设计实验报告.docx_第3页
C程序设计实验报告.docx_第4页
C程序设计实验报告.docx_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+程序设计实验报告一、 实验1 C+程序的运行环境和运行一个C+程序实验2 数据类型与表达式1.实验目的:(1) 了解所用的计算机系统的基本操作方法,学会独立使用该系统。(2) 了解在该系统上如何编辑、编译、连接和运行一个C程序。(3) 通过运行简单的C+程序,学习并掌握Visual C+ 6.0和GCC(RHIDE和DJGPP)的使用方法。(4) 掌握C+语言数据类型,熟悉如何定义变量,以及对他们赋值的方法。(5) 学会使用C+有关算数运算符,以及包含这些运算符的表达式。(6) 进一步熟悉C+程序的结构。(7) 进一步熟悉C+程序的编辑、编译、连接和运行的过程。(8) 掌握简单的C+程序的编写和调试方法。(9) 掌握C+程序中使用最多的语句赋值语句和输入输出语句的使用方法。(10)掌握结构化程序的3种基本结构(顺序结构、选择结构、循环结构)在C+中的实现。2.实验内容和步骤:要求输出一下图案。*结果如图:要求输出以下图案。 * * * * * *结果如下:3.小结:成功运行了示例程序和自己编写的程序。并且:(1) 了解了所用的计算机系统的基本操作方法,学会了独立使用该系统。(2) 了解了在该系统上如何编辑、编译、连接和运行一个C程序。(3) 通过运行简单的C+程序,学习并掌握了Visual C+ 6.0和GCC(RHIDE和DJGPP)的使用方法。(4) 掌握了C+语言数据类型,熟悉如何定义变量,以及对他们赋值的方法。(5) 学会了使用C+有关算数运算符,以及包含这些运算符的表达式。(6) 进一步熟悉了C+程序的结构。(7) 进一步熟悉了C+程序的编辑、编译、连接和运行的过程。(8) 掌握了简单的C+程序的编写和调试方法。(9) 掌握了C+程序中使用最多的语句赋值语句和输入输出语句的使用方法。(10)掌握了结构化程序的3种基本结构(顺序结构、选择结构、循环结构)在C+中的实现。二、实验3 C+程序设计初步1.实验目的:(1) 熟悉定义函数的方法、函数实参与形参的对应关系以及“值传递”的方式。(2) 熟悉函数的嵌套调用和地柜调用的方法。(3) 熟悉全局变量、局部变量概念和使用方法。(4) 熟悉编译预处理的应用。(5) 掌握多文件的程序的编译和运行的方法。2.实验内容和步骤:求a*b和am的值,其中b的值在程序中给出,a和m的值有键盘输入,写一个power函数求am的值,在主函数中秋a*b,并调用power函数得到am的值。要求将主函数和power函数分别写成两个文件file1.cpp和file2.cpp,用extern将外部变量的作用域扩展到其他文件。简历一个项目文件,对包含多文件的程序进行编译,连接盒运行。结果如下:输入一个字母字符,设置条件编译,使之能根据需要将小写字母改为大写字母输出,或将大写字母改为小写字母输出。结果如下:写一个判别素数的函数,在主函数输入一个整数,输出是否为素数的信息。结果如下:3.小结:(1) 成功运行了示例程序,并且编译了自己的程序。(2) 熟悉了定义函数的方法、函数实参与形参的对应关系以及“值传递”的方式。(3) 熟悉了函数的嵌套调用和地柜调用的方法。(4) 熟悉了全局变量、局部变量概念和使用方法。(5) 熟悉了编译预处理的应用。(6) 掌握了多文件的程序的编译和运行的方法。三、实验4 函数与预编译处理1.实验目的(1)掌握一维数和二维数组的定义、赋值和输入输出的方法。(2)掌握字符字符数组和字符串函数的使用。(3)掌握与数组有关的算法(特别是排序算法)。2.实验内容及步骤(1)用选择法对10个整数排序。10个整数用cin输入。结果如下:(2)有15个数由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋值的方法在程序中给出。要找的数用scanf函数输入。结果如下:(3)编一程序,将两个字符串连接起来,结果取代第一个字符串。用字符数组,不用strcat函数(即自己写一个具有strcat函数功能的函数。结果如下:用C标准库中的strcat函数。结果如下:用string方法定义字符串变量。结果如下:(4)输入10个学生的姓名、学号和成绩,将其中不及格的姓名、学号和成绩输出。结果如下:3.小结(1)掌握了一维数和二维数组的定义、赋值和输入输出的方法。(2)掌握了字符字符数组和字符串函数的使用。(3)掌握了与数组有关的算法(特别是排序算法)。四、实验5 数组实验6 指针1.实验目的(1)通过实验进一步掌握指针的概念,会定义和使用指针变量。(2)能正确使用数组的指针和只想数组的指针变量。(3)能正确使用引用型变量。2.实验内容(1)输入3个整数,按由小到大的顺序输出。编译一个函数,用指针变量作为参数。源代码:#includeusing namespace std;int main()int ran(int *i,int *j,int *k);coutabc;ran(x,y,z);cout*xendl*yendl*j)h=i;i=j;j=h;if(*i*k)h=i;i=k;k=h;if(*j*k)h=j;j=k;k=h;return 0;(2)在上题基础上将程序改为:输入3个字符串,按由大到小的顺序输出。源代码:#include#includeusing namespace std;int main()void r(string *b);string a10, *p;int i;for (i = 0; i ai;cout endl;p = a;r(p);for (i = 0; i 10; i+)cout ai endl;return 0;void r(string *b)int i, j;string t, *p;for (i = 0; i 9; i+, b+)for (j = 0, p = b + 1; j*p)t = *p;*p = *b;*b = t;(3)用引用变量作为形参,实现3个整数由小到大输出。源代码:#includeusing namespace std;int main()void r(int &i,int &j,int &k);int a,b,c;coutabc;r(a,b,c);coutaendlbendlj)h=i;i=j;j=h;if(ik)h=k;k=j;j=i;i=h;else if(ik)h=k;k=j;j=i;i=h;3.小结(1)熟悉锻炼了数组指针的使用。(2)熟练掌握了引用的使用方法。(3)掌握了字符串变量的使用方法。五、实验7 自定义数据类型1.实验目的(1)掌握结构体类型变量的定义和使用。(2)掌握结构体类型数组的概念和使用。(3)了解链表的概念,初步学会对简单链表进行操作。2.实验过程(1)定义一个结构体变量(包括年、月、日),编程序,要求输入年、月、日,程序能计算并输出改日在本年中是第几天。注意闰年问题。#includeusing namespace std;int main()struct datint year;int month;int day;date1;int t;cout请输入年月日;cout date1.yeardate1.monthdate1.day;if(date1.year%4=0&date1.year%100!=0)t=366;switch(date1.month)case 1: t-=31;case 2: t-=29;case 3: t-=31;case 4: t-=30;case 5: t-=31;case 6: t-=30;case 7: t-=31;case 8: t-=31;case 9: t-=30;case 10: t-=31;case 11: t-=30;case 12:t-=31;default:t+=date1.day;elset=365;switch(date1.month)case 1: t-=31;case 2: t-=28;case 3: t-=31;case 4: t-=30;case 5: t-=31;case 6: t-=30;case 7: t-=31;case 8: t-=31;case 9: t-=30;case 10: t-=31;case 11: t-=30;case 12:t-=31;default:t+=date1.day;cout这是第t天n;(2)编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据,每个学生的数据包括num,name,score3。用主函数输入这些数据,用print函数输出这些数据。源代码:#include#includeusing namespace std;struct studentlong num;string name;int score3;int main()int t;student stu5;void print(student stud);for (t = 0; t stut.num stut.score0 stut.score1 stut.score2;print(stu);return 0;void print(student stude)int j;for (j = 0; j 5; j+)cout studej.num endl endl studej.score0 endl studej.score1 endl studej.score2 endl;3.小结(1)掌握了结构体类型变量的定义和使用。(2)掌握了结构体类型数组的概念和使用。(3)了解了链表的概念,初步学会对简单链表进行操作。六、实验8 类和对象(一)1.实验目的(1)掌握生命类的方法,类和类的成员的概念以及定义对象的方法。(2)初步掌握用类和对象编制基于对象的程序。(3)学习检查和调试基于对象的程序。2.实验内容(1)源代码#includeusing namespace std;class Timeprivate:int hour;int minute;int sec;public:void input()cin hour minute sec;void print()cout hour: hour endl minute: minute endl secomd: sec endl;int main()Time t1;t1.input();t1.print();运行结果:(2)源代码#includeusing namespace std;class Studentprivate:int num;string name;string sex;public:void shuru();void display();#include#includestudent.husing namespace std;void Student:shuru()cin num name sex;void Student:display()cout num: num endl;cout name: name endl;cout sex: sex endl;#include#includestudent.husing namespace std;int main()Student stud;stud.shuru();stud.display();return 0;运行结果:(3)源代码#includeusing namespace std;class Vprivate:int length, width, height, v;public:void input()cout 请输入长、宽、高: length width height;void print()v = length*width*height;cout 长方体的体积为: v endl;int main()int i;V rec3;for (i = 0; i 3; i+)reci.input();for (i = 0; i 3; i+)reci.print();return 0;运行结果:3.小结(1)掌握了生命类的方法,类和类的成员的概念以及定义对象的方法。(2)初步掌握了用类和对象编制基于对象的程序。(3)学习了检查和调试基于对象的程序。七、实验9 类和对象(二)1.实验目的(1)进一步加深对类和对象的理解。(2)掌握类的构造函数和析构函数的概念 和使用方法。(3)掌握对象组、对象的指针及其使用方法。(4)掌握友元的概念和使用。(5)了解类模板的使用方法。2.实验内容(1)源代码#includeusing namespace std;class Studentpublic:Student(int n,float s):num(n),score(s)void change(int n,float s)num=n;score=s;void display()coutnum scoreendl;private:int num;float score;void main()void fun(Student &a);Student stud(101,78.5);fun(stud);void fun(Student &a)a.display();a.change(101,80.5);a.display();运行结果:(2)源代码#includeusing namespace std;class Timepublic:Time(int, int, int);friend void display(Time&);private:int hour;int minute;int sec;class Datepublic:Date(int, int, int);friend void display(Date&);private:int month;int day;int year;Time:Time(int h, int m, int s)hour = h;minute = m;sec = s;void display(Date &d)cout d.month / d.day / d.day endl;void display(Time &t)cout t.hour : t.minute : t.sec endl;Date:Date(int m,int d,int y)month = m;day = d;year = y;int main()Time t1(10, 13, 56);Date d1(12, 25, 2004);display(t1);display(d1);return 0;3.小结加深了对类和对象概念的理解,学会了使用类来处理一些事情。学会了构造函数和析构函数的使用。掌握了对象数组、对象指针的使用方法。使用友元的概念和类模板。八、实验10 运算符重载的方法1.实验目的(1)进一步了解运算符重载的概念和使用方法。(2)掌握几种常用的运算符重载的方法。(3)了解转换构造函数的使用方法。(4)了解在Visual C+6.0环境下进行运算符重载要注意的问题。2.实验内容(1)声明一个负数类Complex,重载运算符“+”,“-”,“*”,“/”,使之能用于复数的加、减、乘、除,运算符重载函数作为Complex类的成员函数。编程序,分别求两个复数之和、差、积、和商。#includeusing namespace std;class Complexpublic:Complex() real = 0; imag = 0; Complex(double r, double i) real = r; imag = i; Complex operator + (Complex &c2)Complex c;c.real = real + c2.real;c.imag = imag + c2.imag;return c;Complex operator - (Complex &c2)Complex c;c.real = real - c2.real;c.imag = imag - c2.imag;return c;Complex operator * (Complex &c2)Complex c;c.real = real*real - c2.imag*c2.imag;c.imag = imag*c2.real + c2.imag*real;return c;Complex operator / (Complex &c2)Complex c;c.real = real / (c2.real*c2.real + c2.imag*c2.imag);c.imag = imag / (c2.real*c2.real + c2.imag*c2.imag);return c;void display()if (imag 0)cout real + imag i endl;elsecout real imag i endl;private:double real; double imag;int main()Complex c1(3, 4), c2(5, -10), c3;c3 = c1 + c2;cout c1=; c1.display();cout c2=; c2.display();cout c1+c2=; c3.display();c3 = c1 - c2;cout c1-c2=; c3.display();c3 = c1*c2;cout c1*c2=; c3.display();c3 = c1 / c2;cout c1/c2=; c3.display();return 0;(2)声明一个复数类Complex,重载运算符“+”,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论