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

C语言程序设计实验上机报告课程实验报告课程名称C语言程序设计专业班级信息安全1302 学号姓名指导教师报告日期2014年6月16日计算机科学与技术学院目录1 实验概述1 2 第一次实验2 2.1 实验目的3 2.2 实验内容3 2.3 实验小结19 3 第二次实验20 3.1 实验目的20 3.2 实验内容20 3.3 实验小结35 4 第三次实验36 4.1 实验目的36 4.2 实验内容36 4.3 实验小结49 5 第四次实验50 5.1 实验目的50 5.2 实验内容50 5.3 实验小结62 6 第五次实验63 6.1 实验目的63 6.2 实验内容63 6.3 实验小结69 7 第六次实验70 7.1 实验目的70 7.2 实验内容70 7.3 实验小结83 8 第七次实验84 8.1 实验目的84 8.2 实验内容84 8.3 实验小结105 9 实验总结106 参考文献107 1实验概述本实验采用C语言常用的上机开发环境Visual C6.0集成开发环境。
其关键是掌握程序的编辑、修改、编译、链接和执行的方法,以及如何调试程序,跟踪程序,通过断点控制程序,观察变量、表达式在程序运行过程中的取值,如何综合运用这些方法定位程序中的的错误和排除错误。
在实验中除了传统的编程设计题外,增加了源程序改错题,源程序完善、修改、替换题,程序的调试跟踪题等,培养学生跟踪程序、设置断点、调试程序的能力,排除程序中语法、逻辑方面错误与故障的能力,并养成细致、周密、严谨的编程作风。
实验中的源程序改错题,先给出一些含有经典、常见错误的源程序,让学生通过编译或运行发现错误,并加以改正,从而纠正初学者易犯的常见错误,实验中的源程序修改替换题,也是先给出源程序,然后要求学生按要求编写修改替换原来程序中的部分代码。
实验中的跟踪调试结果填空题,给出源程序,要求学生填写程序运行过程中的某些中间结果。
强迫学生用断点设置、单步跟踪等调试程序,观察并填写相应的中间结果。
上机实验报告(精选11篇)

上机实验报告篇1用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.c的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a可读性:有注释。
b交互性:有输入提示。
c结构化程序设计风格:分层缩进、隔行书写。
3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。
请注意:过时不候哟!四、实验报告内容0.顺序表的插入。
1.顺序表的删除。
2.带头结点的单链表的\'插入。
3.带头结点的单链表的删除。
注意:1.每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。
例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。
2.实验报告中的源代码应是通过编译链接即可运行的。
3.提交到个人空间中的内容应是上机实验中的全部内容。
上机实验报告篇2一、《软件技术基础》上机实验内容1.顺序表的建立、插入、删除。
2.带头结点的单链表的建立(用尾插法)、插入、删除。
二、提交到个人10m硬盘空间的内容及截止时间1.分别建立二个文件夹,取名为顺序表和单链表。
2.在这二个文件夹中,分别存放上述二个实验的相关文件。
每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。
3. 截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。
三、实验报告要求及上交时间(用a4纸打印)1.格式:《计算机软件技术基础》上机实验报告用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.c的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a 可读性:有注释。
b 交互性:有输入提示。
C语言程序设计上机实验报告

(1)创建新项目
选择“文件”一“新建”一“项目”命令;或者按[Ctrl+Shif+N]组合键;也可以在主窗口的起始页面中单击“新建项目”按钮,进入新建项目向导 在“新建项目”对话框左窗格的已安装的模板中选择"VisualC++”--“ Win32”
在对话框中窗格中选择“Win32控制台应用程序”
②在“添加命令”对话框中(见图2.4),从“类别”列表框中选择类别名称,如“调试”,从“命令”列表框中选择要添加的命令,如“开始执行(不调试)”
③单击“确定”按钮,再单击“关闭”按钮。
单击工具栏右侧的下拉按钮,也可以添加或删除命令按钮。
(4)菜单或工具栏的其他操作
在“自定义”对话框“命令”选项卡的“请选择要重新排列的菜单或工具栏”选项组中,选择要移动的菜单或工具栏,单击“上移”或“下移”按钮移动菜单或命令:单击“删除”菜单成命令,单击“全部重置”按钮将所选的菜单栏、工具栏或上下文菜单恢复为其原单需覆由“键盘”按租,可给选中的命令设定快捷键:单击“修改所选内容”按键可以对菜单或命令进行分组
选中“自动换行”复选框,行中水平方向超出可视编辑器区域的任何部分会自动显示在下一行。
选中“行号”复选框,行号出现在每行代码的旁边。行号不会添加到代码中,也不会打印出来,仅供参考。
制表符相关设置。
在“选项”对话框的左侧窗格中选择“文本编辑器”一“C/C++”或“所有语言”一“制表符”,如图2.20所示。各选项的含义如下:
单击“移除”按钮,将选定的文件从当前项目中移除,文件没有被删除,依然存于该项目单击“删除”按钮,选定的文件将永久删除,该项目文件夹内不再含有此文件。
(3)建立多项目文件
c程序上机试验报告

安徽建筑工业学院信息网络中心实验报告课程名称:程序设计基础—C程序实验指导教师:专业:班级:姓名:学号:201 至201 学年第学期实验1 C程序运行环境、数据类型、运算符和表达式一、实验目的1.掌握Turbo C集成环境的进入与退出、Turbo C集成环境各种窗口的切换,了解Turbo C集成环境的设置。
2.掌握C语言源程序的建立、编辑、修改、保存及编译和运行等操作。
3.学会使用C语言的基本运算符(主要是算术运算符、赋值运算符)及其表达式。
4.掌握C语言源程序的结构特点与书写规范。
二、实验要求1.根据题目要求,进行各种程序测试与验证,并记录结果。
2.上机调试程序。
按各个程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据这些信息找到程序中的错误所在,然后修改程序,直至正确。
3.详细记录数据的输入、输出信息,按要求写出实验报告。
三、实验内容1.开机;进入Turbo C集成工作环境,了解Turbo C集成工作环境及其菜单的使用,输入如下C语言源程序,并以ex1.C存盘。
/*ex1.c*/#include <stdio.h>main(){printf("Hello!\n");printf("This is C program!\n");}试编译、连接、运行该程序,并按Alt+F5查看运行结果。
运行结果是:2.输入并调试运行以下程序,查看运行结果(由此结果可以了解到在实验用的微型机上,几种数据类型所占的字节数)。
main(){printf("char\t%d bytes\n",sizeof(char));printf("short\t%d bytes\n",sizeof(short));printf("int\t%d bytes\n",sizeof(int));printf("long\t%d bytes\n",sizeof(long));printf("float\t%d bytes\n",sizeof(float));printf("double\t%d bytes\n",sizeof(double));}运行结果是:3.输入并调试运行以下程序。
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程序设计上机实验报告(完整版)

C语言程序设计上机实验报告学院:机械工程学院班级:机自161213姓名:**学号:***********实验时间: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++上机实验报告(精品)

XX大学C++上机实验报告(一)学院:XX学院班级:XXX姓名:XXX学号:*******指导老师:XXX日期:年月日实验三类的定义和使用一.实验目的1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2.掌握类对象的定义;3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数;5.掌握友元函数的含义,友元函数和成员函数的区别。
二.实验内容及要求1、定义一个圆类,计算圆的面积和周长。
要求:分别用成员函数和友元函数来求圆的面积和周长。
2、定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。
同时编写主函数使用这个类,实现对学生数据的赋值和输出。
要求:1)使用成员函数实现对输出的输入、输出;2)使用构造函数和析构函数实现对数据的输入、输出。
3、定义日期类型Date。
要求有以下面成员:1)可以设置日期;2)日期加一天操作;3)输入函数,输入格式为“XXXX年XX月XX日”。
三.实验要求1)写出程序,并调试程序,要给出测试数据和实验结果。
2)整理上机步骤,总结经验和体会。
3)完成实验日志和上交程序。
四.算法思想1.圆类程序中,用Circle构造函数和Length友元函数分别计算圆的的面积和周长。
再通过主函数调用:Date d;cout<<"请输入圆半径r:";cin>>m;Circle p(m);Length(p);实现输入半径r并输出相关计算值。
2.学生类根据要求分别用构造函数Student(double n,int o,char c[50])和析构函数~Student(),实现学生信息的录入与输出。
于是,当在主程序中,定义学生类Student s(n,o,c)是调用构造函数录入信息,所在作用范围结束时,系统会自动调用析构函数输出信息。
C++上机实验报告实验六

C++上机实验报告实验六C++上机实验报告实验六一、实验目的1、熟练掌握 C++中类和对象的概念及使用方法。
2、深入理解类的成员变量和成员函数的特性及作用。
3、通过实际编程,提高运用类和对象解决问题的能力。
二、实验环境操作系统:Windows 10编程软件:Visual Studio 2019三、实验内容本次实验主要围绕创建一个简单的学生信息管理系统展开。
1、定义一个名为`Student` 的类,包含学生的学号、姓名、年龄和成绩等成员变量。
2、为`Student` 类编写成员函数,实现对学生信息的输入、输出和修改。
3、创建一个包含多个`Student` 对象的数组,模拟学生信息的存储。
4、编写函数,实现对学生信息的排序(如按照成绩从高到低排序)。
四、实验步骤1、首先,打开 Visual Studio 2019 并创建一个新的 C++控制台应用程序项目。
2、在项目中定义`Student` 类,代码如下:```cppclass Student {private:int id;std::string name;int age;double score;public://输入学生信息的函数void inputInfo(){std::cout <<"请输入学号:";std::cin >> id;std::cout <<"请输入姓名:";std::cin >> name;std::cout <<"请输入年龄:";std::cin >> age;std::cout <<"请输入成绩:";std::cin >> score;}//输出学生信息的函数void outputInfo(){std::cout <<"学号:"<< id <<",姓名:"<< name <<",年龄:"<< age <<",成绩:"<< score << std::endl;}//修改学生信息的函数void modifyInfo(){int choice;std::cout <<"1、修改学号 2、修改姓名 3、修改年龄 4、修改成绩" << std::endl;std::cin >> choice;switch (choice) {case 1:std::cout <<"请输入新的学号:";std::cin >> id;break;case 2:std::cout <<"请输入新的姓名:";std::cin >> name;break;case 3:std::cout <<"请输入新的年龄:";std::cin >> age;break;case 4:std::cout <<"请输入新的成绩:";std::cin >> score;break;default:std::cout <<"无效的选择!"<< std::endl;}}};```3、在`main` 函数中创建`Student` 对象数组,并进行相关操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C上机实验报告实验六公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-实验六实验目的1.掌握运算符重载的方法2.学习使用虚函数实现动态多态性实验要求1.定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。
2.定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。
观察虚函数的作用。
3. (选做)对实验4中的People类重载“==”运算符和“-”运算符,“==”运算符判断两个people类对象的id属性是否相等;“-”运算符实现People类对象的赋值操作。
实验内容及实验步骤1.编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point& operator++();Point operator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point& operator--();Point operator--(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。
程序名:1ab8_1.Cpp#include <iostream>using namespace std;class Point{public:Point();Point(int x,int y);~Point(){} //Point类析构函数Point& operator++(); //公有成员函数Point operator++(int);Point&operator--();Point operator--(int);void Show();private:int _x; //私有数据成员int _y;};Point::Point(){ //Point类构造函数_x=0;_y=0;}Point::Point(int x,int y) //Point类构造函数{_x=x;_y=y;}Point & Point::operator++() //重载后置++运算符为Point类成员函数{_x++;_y++;}Point Point::operator++(int) //重载前置++运算符为Point类成员函数{Point old=*this;++(this->_x);++(this->_y);return old;}Point & Point::operator--() //重载后置--运算符为Point类成员函数{_x--;_y--;}Point Point::operator--(int) //重载前置--运算符为Point类成员函数{Point old=*this;--(this->_x);--(this->_y);return old;}void Point::Show() //输出Point的坐标值{cout<<_x<<","<<_y<<")"<<endl;}int main(){Point a(2,3); //定义一个Point类对象aPoint b=a++; //定义Point类对象b并用a++初始化bPoint c=++a; //定义Point类对象c并用++a 初始化cPoint d=--a; //定义Point类对象d并用--a 初始化dPoint e=a--; //定义Point类对象e并用a--初始化ecout<<"Point a(";a.Show(); //输出a的坐标cout<<"Point b(";b.Show(); //输出b的坐标cout<<"Point c(";c.Show(); //输出c的坐标cout<<"Point d(";d.Show(); //输出d的坐标cout<<"Point e(";e.Show(); //输出e的坐标return 0;}运行结果:2编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。
在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。
再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。
程序名:lab8_2.cpp#include <iostream>using namespace std;class vehicle//基类vehicle{public:vehicle(){}~vehicle(){}virtual void Run(){cout<<"The vehicle is running!"<<endl;} //定义虚函数Run()virtual void Stop(){cout<<"The vehicle hasstopped!"<<endl;} //定义虚函数Stop()};class bicycle: virtual public vehicle //定义派生类bicycle,声明基类为派生类的虚基类{public:void Run(){cout<<"The bicycle is running!"<<endl;}void Stop(){cout<<"The bicycle has stopped!"<<endl;}bicycle(){}~bicycle(){}};class motorcar: virtual public vehicle //定义派生类motorcar,声明基类为派生类的虚基类{public:void Run(){cout<<"The motorcar is running!"<<endl;}void Stop(){cout<<"The motorcar has stopped!"<<endl;}motorcar(){}~motorcar(){}};class motorcycle:public bicycle,public motorcar //以bicycle类和motorcar类作为基类派生新类motorcycle{public:void Run(){cout<<"The motorcycle is running!"<<endl;}void Stop(){cout<<"The motorcycle has stopped!"<<endl;} };int main(){vehicle a; //定义vehicle类的一个对象avehicle *p; //定义一个vehicle类的指针bicycle b; //定义bicycle类的对象bmotorcar c; //定义motorcar类的对象cmotorcycle d; //定义motorcycle类的对象da.Run();a.Stop();b.Run();b.Stop();c.Run();c.Stop();d.Run();d.Stop();p=&a; //使指针p 指向vehicle类对象ap->Run(); //通过指针调用vehicle类成员函数p->Stop();p=&b; //使指针p 指向bicycle类对象bp->Run(); //通过指针调用bicycle类成员函数p->Stop();p=&c; //使指针p指向motorcar类对象cp->Run(); //通过指针调用motorcar类成员函数p->Stop();p=&d; //使指针指向motorbicycle类对象dp->Run(); //通过指针调用motorcycle类成员函数p->Stop();return 0;}运行结果:3. (选做)对实验4中的People类重载“==”运算符和“-”运算符,“==”运算符判断两个people类对象的id属性是否相等;“-”运算符实现People类对象的赋值操作。
源程序:#include <iostream>#include <string>using namespace std;class Birthday{public:Birthday(int Year,int Month,int Day); //构造函数Birthday(){} //构造函数 ~Birthday(){} //析构函数Birthday(Birthday &p); //复制构造函数int showBirthday(){cout<<year<<"年"<<month<<"月"<<day<<"日";} //内联成员函数 int enter();private:int year,month,day;};Birthday::Birthday(Birthday &p){year=p.year;month=p.month;day=p.day;}Birthday::Birthday(int Year,int Month,int Day) //Birthday类构造函数{year=Year;month=Month;day=Day;}int Birthday::enter(){cout<<"生日:";cin>>year>>month>>day;}class people{ //定义people 类public:people(){} //people类构造函数~people(){} //people类析构函数people(people &p);people operator==(people &);people operator-(people &);int show();int enter();private:string number,id,sex; //字符串类型变量数据成员Birthday p1; //Birthday类数据成员};int people::show(){cout<<"\n性别 "<<sex<<" 编号 ";cout<<number;cout<<" 生日 ";p1.showBirthday(); //调用Birthday类成员函数cout<<" 身份证号 "<<id<<endl;}int people::enter(){p1.enter();cout<<"性别:";cin>>sex;cout<<"编号:";cin>>number;cout<<"身份证号:";cin>>id;}people::people(people &p):p1(p.p1) //people类复制构造函数{number=p.number;sex=p.sex;id=p.id;}people people::operator==(people &V) //重载==运算符成员函数{if(id==V.id){cout<<" have the same id! "<<endl;}else{cout<<" have different id!"<<endl;}}people people::operator-(people &U) //重载-运算符成员函数{number=U.number; //使用字符串赋值运算符sex=U.sex;id=U.id;p1=U.p1;return *this; //返回this指针}int main(){int t;people p[2]; //定义对象数组p[2]for(t=0;t<2;t++) //输入对象数组成员信息{cout<<"输入第"<<t+1<<"个人员的信息"<<endl;p[t].enter();}for(t=0;t<2;t++) //输出对象数组成员信息{cout<<"\n第"<<t+1<<"个人员信息如下:"<<endl;p[t].show();}people p3; //定义people类的对象p3p3-p[1]; //使用重载运算符将p[1]赋给p3cout<<"\n第3个人员信息如下:"<<endl;p3.show();cout<<"p[0],p[1]";p[0]==p[1]; //使用重载运算符-判断p[0]和p[1]的id 是否相等return 0;}运行结果:思考题1.如何将一个运算符重载为类的成员函数?一般语法形式:返回类型 operator 运算符(形参表){函数体}函数的参数个数比原来的曹祖数个数要少一个(后置“++”,“--”除外)。