东北大学软件学院C++实验报告
- 格式:doc
- 大小:687.50 KB
- 文档页数:19
c语言大实验报告C 语言大实验报告一、实验目的本次 C 语言大实验的主要目的是通过实际的编程项目,深入巩固和应用 C 语言的基础知识,提高编程能力和解决实际问题的能力。
具体而言,包括熟练掌握数据类型、控制结构、函数、数组、指针等核心概念,并能够运用它们构建较为复杂的程序逻辑。
二、实验要求1、完成一个具有一定规模和功能的 C 语言程序,例如学生成绩管理系统、图书管理系统等。
2、程序应具备良好的代码结构和可读性,遵循编程规范。
3、实现数据的输入、处理和输出功能,能够进行数据的存储和查询。
4、对程序进行充分的测试,确保其稳定性和正确性。
三、实验环境1、操作系统:Windows 102、编程工具:Visual Studio 2019四、实验内容本次实验我选择开发一个学生成绩管理系统,该系统能够实现学生成绩的录入、查询、修改、删除以及成绩统计分析等功能。
(一)数据结构设计为了存储学生的信息,我定义了一个结构体`Student` ,包含学生的学号、姓名、各科成绩等字段:```ctypedef struct {int id;char name50;float score3; //假设存储三门课程的成绩} Student;```同时,使用一个动态数组来存储多个学生的信息:```cStudent students;int numStudents = 0; //记录学生数量```(二)功能模块实现1、成绩录入通过循环让用户输入学生的信息,包括学号、姓名和各科成绩,并将其添加到动态数组中:```cvoid inputStudent(){Student newStudent;printf("请输入学号:");scanf("%d",&newStudentid);printf("请输入姓名:");scanf("%s", newStudentname);printf("请输入三门课程的成绩:");for (int i = 0; i < 3; i++){scanf("%f",&newStudentscorei);}students =(Student )realloc(students, (numStudents + 1) sizeof(Student));studentsnumStudents++= newStudent;}```2、成绩查询根据用户输入的学号,在动态数组中查找对应的学生信息并输出:```cvoid queryStudent(){int id;printf("请输入要查询的学号:");scanf("%d",&id);for (int i = 0; i < numStudents; i++){if (studentsiid == id) {printf("学号:%d\n", studentsiid);printf("姓名:%s\n", studentsiname);printf("成绩:");for (int j = 0; j < 3; j++){printf("%2f ", studentsiscorej);}printf("\n");return;}printf("未找到该学号的学生信息!\n");}```3、成绩修改先查询要修改的学生信息,然后让用户输入修改后的成绩:```cvoid modifyStudent(){int id;printf("请输入要修改的学号:");scanf("%d",&id);for (int i = 0; i < numStudents; i++){if (studentsiid == id) {printf("请输入修改后的三门课程成绩:");for (int j = 0; j < 3; j++){scanf("%f",&studentsiscorej);printf("修改成功!\n");return;}}printf("未找到该学号的学生信息!\n");}```4、成绩删除根据学号删除指定的学生信息,并重新调整动态数组:```cvoid deleteStudent(){int id;printf("请输入要删除的学号:");scanf("%d",&id);int found = 0;for (int i = 0; i < numStudents; i++){if (studentsiid == id) {found = 1;for (int j = i; j < numStudents 1; j++){studentsj = studentsj + 1;}numStudents;students =(Student )realloc(students, numStudents sizeof(Student));printf("删除成功!\n");return;}}if (!found) {printf("未找到该学号的学生信息!\n");}}```5、成绩统计分析计算所有学生的平均成绩,并输出最高和最低成绩:```cvoid statistics(){float totalScore = 0;float maxScore = students0score0;float minScore = students0score0;for (int i = 0; i < numStudents; i++){float sum = 0;for (int j = 0; j < 3; j++){sum += studentsiscorej;}totalScore += sum / 3;if (sum / 3 > maxScore) {maxScore = sum / 3;}if (sum / 3 < minScore) {minScore = sum / 3;}}printf("平均成绩:%2f\n", totalScore / numStudents);printf("最高成绩:%2f\n", maxScore);printf("最低成绩:%2f\n", minScore);}```(三)主函数在主函数中,通过菜单的方式让用户选择要执行的操作:```cint main(){int choice;while (1) {printf("1、录入成绩\n");printf("2、查询成绩\n");printf("3、修改成绩\n");printf("4、删除成绩\n");printf("5、成绩统计分析\n");printf("6、退出\n");printf("请选择操作:");scanf("%d",&choice);switch (choice) {case 1:inputStudent();break;case 2:queryStudent();break;case 3:modifyStudent();break;case 4:deleteStudent();break;case 5:statistics();break;case 6:free(students);return 0;default:printf("无效的选择,请重新输入!\n");}}return 0;}```五、实验结果经过多次测试,本系统能够稳定运行,实现了预期的各项功能。
东北大学软件学院学生实训总结报告专业:软件工程班级:1206学号:20124835姓名:孙永晖实训基地:大连中软国际卓越计算机培训中心企业指导教师:杨迪2015年8月31日目录1前言 (1)1.1实训背景 (1)1.2实训环境 (1)2实训内容 (2)2.1实训过程 (2)2.2实训内容 (2)2.3主要成果 (2)3总结 (3)3.1实训体会 (3)3.2其它意见 (3)1前言1.1 实训背景为培养出优秀的软件行业的精英人才,东北大学软件学院在大三下学期期末结尾阶段,将学生送入企业进行实训。
这也是东北大学软件学院的一大特色,理论与实践相结合。
在此之前,我也通过网上查询得知中软卓越计算机培训中心是国内非常有名的,因此在实训开始后,我报名申请到大连中软进行实习。
到达中软之后我进入到JA V A 1527班,在杨迪老师的指导下学习。
在2015年6月8日正式进入到大连中软开始为期10周的实训学习。
1.2 实训环境实训单位名称:中软国际卓越培训中心(ETC)地址:中国辽宁省大连市高新园区宏川东路黄泥川天地软件园金枫楼三层实训单位性质:大型人才服务机构规模:中软国际卓越培训中心(大连)是中软国际卓越培训中心继北京总部之后,建立的又一家分基地,也是大连市政府招商引资的重点支持项目之一。
自2008年9月启动至今,累计实训人数近1000人,500余名学员通过大连中软实训找到了人生中的第一份工作,由此开启他们的IT职业生涯。
由于实训人数逐年激增,为了让更多的学子获得一流的IT实训服务,经过紧张的前期筹备,大连中心于10月11日正式入驻大连天地软件园金枫楼三层,已拥有近2568平米的优雅整洁的实训环境,相较之前的面积扩大了一倍,15个多媒体教室,可同时容纳900人进行项目实战。
简介:为响应国家政策,以更快、更好、更大规模的培养软件人才。
2008年,由中软国际投资成立了中软国际教育科技集团(ETC总部),并先后在除北京外的长沙、大连、无锡、重庆、厦门、天津、南京等地投资建设了3000-10000平米不等的实训基地。
(完整版)c实验报告实验名称: C语言实验报告实验内容:本次实验主要针对C语言编程进行实验。
通过实验的设计和完成,检验和加深对C语言的理解和应用能力。
实验步骤:1. 实验准备在开始实验之前,需要准备好以下必要的工具和材料:- 计算机- C语言编译器(比如GCC、Clang等)- 文本编辑器(比如Notepad++、Sublime Text等)2. 实验环境搭建在计算机上安装C语言编译器,并配置好相应的环境变量。
这样可以在终端或命令提示符中执行相关的C程序。
3. 编写实验代码根据实验要求,使用文本编辑器编写C语言代码。
根据实验的要求和功能需求,合理设计和组织代码结构,包括头文件的引用、变量的定义、函数的声明和定义等。
4. 编译和运行代码在命令行或终端中使用编译器对编写好的C语言代码进行编译,并生成可执行文件。
编译命令的具体格式根据不同的编译器而有所差异,但一般形式如下:```gcc -o output_file input_file.c```其中,"output_file"表示生成的可执行文件名,"input_file.c"表示待编译的C源代码文件名。
编译成功后,通过命令行或终端执行生成的可执行文件,检查程序的运行结果是否符合预期。
5. 实验结果分析根据实际运行结果,对实验数据进行分析和归纳。
可以通过输出结果、打印特定信息或观察程序的行为来判断程序是否正确地实现了预期的功能。
6. 实验总结在实验报告中对本次实验的过程、方法、结果进行总结,并提出实验中遇到的问题和解决方法。
同时,对所学习的C语言相关知识点进行总结和归纳,以加深对相关知识的理解和记忆。
实验结果:通过本次实验的设计和实现,我成功完成了对C语言编程的实验,达到了预期的目标。
通过编写实际的代码,我巩固了对C语言语法和基本概念的理解。
在实验过程中,我遇到了一些问题,通过查阅资料和与同学的讨论,我成功解决了这些问题。
东北大学C++实验报告61.实验要求(1)定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。
(2)定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。
观察虚函数的作用。
2. 实验内容及实验步骤(1) 编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point& operator++();Point operator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point&operator--();Point operator--(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。
程序名:1ab8_1.cpp。
(2) 编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。
在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。
再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。
程序名:lab8_2.cpp。
3. 源程序Lab8_1#include<iostream>using namespace std;class Point{public:Point(int X,int Y): _x(X),_y(Y){}Point operator++();Point operator++(int);Point operator--();Point operator--(int);void Putout() const;private:int _x,_y;};void Point::Putout() const{cout<<"("<<_x<<","<<_y<<")"<<endl; }Point Point:: operator++(){_x++;_y++;return *this;}Point Point::operator++(int){++_x;++_y;return *this;}Point Point::operator--(){_x--;_y--;return *this;}Point Point::operator--(int){--_x;--_y;return *this;}int main(){Point A(6,7);cout<<"Point++: ";(A++).Putout();cout<<"++Point: ";(++A).Putout();cout<<"Point--: ";(A--).Putout();cout<<"--Point: ";(--A).Putout();return 0;}运行结果Lab8_21)在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数。
C语言上机实验要求:1、每次实验满分10分,每次试验按要求写实验报告。
2、每次把实验报告提交到LINTIAN8@信箱里。
3、上实验课不得迟到、早退(扣2分),旷课本次实验0分记。
4、事假必须有假条,否则一律按旷课处理。
5、上实验课不得做与实验无关的事情,否则酌情扣分或取消上实验课资格。
6、实验报告不得抄袭,发现实验报告雷同者,一律按0分记。
参考看网站:1)、/ 上-->教学资源中心-----〉资源共享课-----〉工学--------〉高级语言程序设计2)、/cxsj/ 上------〉上机实践(教学视频1,2,3)----〉程序实例C语言程序运行过程四个步骤:1、编辑(EDIT)2、编译(COMPILE)3、链接(BUILD)4、运行(RUN)具体操作步骤:启动VisualC++6.0-->文件--〉新建(new)-->文件---〉C++Sourcefile-->添加文件名(必须后缀.C)--->添加存放文件目录-->编辑文件-->编译文件--->链接文件--->运行文件--->看结果.C语言程序设计实验报告1实验目的2实验内容3算法描述流程图4源程序5测试数据6运行结果7出现问题及解决方法8实验心得C语言程序设计实验报告1实验目的1.熟练掌握if、if...else、if...else if语句,掌握if语句中的嵌套关系和匹配原则,利用if语句实现分支选择结构。
2.熟练掌握for语句格式及使用方法3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧.进一步学习调试程序,掌握语法错误和逻辑的检查方法。
4.掌握C函数的定义方法,函数的调用方法,参数说明以及返回值,掌握实参与形参的对应关系以及参数之间的“值传递”的方式。
5.在编程的过程中加深函数调用的设计思想。
2实验内容输入一个数值,计算并输出该数值以内最大的10个素数以及它们的和.要求:(1) 在程序内部加必要的注释.(2)要对小于该数以内不够10个素数的情况进行处理.(3)输出的形式为:素数1+素数2+...+素数10=总和值.3算法描述流程图主函数流程图:判断素数函数流程图:4源程序int a(int n) /*设计一个求素数的函数*/{ int i;for(i=2;i<=n/2;i++)if(n%i==0) return 0; /*不是素数则返回0*/return 1; /*是素数则返回1*/}main(){int i=1,n,sum=0,k;printf(“Input a number:”);scanf("%d",&k); /*输入一个整数*/for(n=k;n>1;n-=1){if(a(n)) /*调用a(int n)函数,判断是否为素数*/ {if(i==1) printf("%d",n);else printf("+%d",n); /*是素数以和的形式输出*/sum+=n; /*是素数则求和*/i++;}if(i==11) break; /*当i>10时就退出循环*/}printf("=%d\n",sum);if(i<=10) printf("not shuchu.\n"); /*当i〈10时,程序结束*/}5测试数据测试数据为10,100,1000.6运行结果当测试数据为10时:当测试数据为100时:当测试数据为1000时:7出现问题及解决方法1)在本实验中,需按要求的格式输出“素数1+素数2+...+素数10=总和值.”,因采用循环for(n=k;n>1;n-=1){if(a(n)){if(i==1) printf("%d",n);else printf("+%d",n);sum+=n;i++;}if(i==11) break;}printf("=%d\n",sum);从而使输出结果符合题目要求;2)要对不足10个的素数进行处理,因而要加入“if(i<=10) printf("not shuchu.\n");”8实验心得通过该实验,我对分支(if,if``else,if```else if```)和循环结构(for,while,do```while)的几种用法更加熟练,并掌握了函数的定义与调用,参数说明以及返回值使用。
C语言程序设计报告工资管理系统学生姓名:学生系别:计算机科学与技术学生班级:日期:20xx年x月x日程序实践报告【运行环境】软件:Windows、Microsoft Visual C++ 6.0PC一台【实践要求】工资信息包括:编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税使之提供以下功能:(1)用户登陆。
(2)背景音乐。
(3)工资信息录入功能。
(4)工资信息浏览功能。
(5)工资信息查询功能。
(6)工资信息删除功能。
(7)工资信息修改功能。
(8)工资信息排序功能。
【概要设计】【存储设计】程序数据存取主要由两个文件:pay.txt、admin.txt组成。
admin.txt :主要存储用户名和密码pay.txt :职工信息。
包括编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税【头函数】typedef struct pay{long num;short month;char name[20];float should_pay,rebate,actual_pay,post_wage,merit_pay,house_subsidy,prize,reserve_fund;struct pay *next;}PAY;定义了一个包含编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税变量的结构体。
【模块功能】1、void menu();z这个是菜单,用来提示用户选择需要的功能。
打印出各种选项可供用户选择。
2、PAY *input();y这是用来新建职工信息。
包括编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税。
用预先定义的结构体和指针链表来完成。
3、void output();m这是用来输出职工信息。
可以按照各种关键字排序输出。
包括按编号输出、按基本工资输出、按岗位工资输出、按实发工资输出。
用预先定义的结构体和指针链表来完成。
竭诚为您提供优质文档/双击可除东北大学软件测试实验报告篇一:东北大学软件学院软件测试实验报告软件测试实验报告东北大学软件学院20XX年4月实验一功能性测试方法一、测试结果1.1边界值分析法1.2等价类测试1.3决策表分析二、实验总结1.1程序中存在的bug当在测试中发现正常输入start:“20XX-10-3002:00:00”ischanged_1=falseend:“20XX-10-3002:10:00”ischanged_2=true结果并非预期结果为:Total_time:70Total_cost:6.0(:东北大学软件测试实验报告) 检查代码得:当“2 Total_time=(end_d.getTime()-begin_d.getTime())/1000+60*602.2三种测试方法对揭露程序错误的异同点(1)等价类:把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例,这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。
(2)边界值分析不是从某等价类中随便挑一个作为代,而是使这个等价类的每个边界都要作为测试条件;边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
(3)在一些数据处理问题中,某些操作的实施依赖于多个逻辑条件的组合值,分别执行不同的操作,决策表很适合处理这类问题。
篇二:软件工程实验报告篇三:东北大学数据结构实验报告课程编号:b080101050《数据结构》实验报告东北大学软件学院1.实验目的针对每次实验,写出你认为比较重要的实验目的实验一:1、了解和掌握队列的数据类型描述及其特点。
2、掌握队列初始化、入队、出队等相关基本操作的实现方法,从而达到能灵活运用队列解决应用问题的目的实验二:1、加深对图的表示法和图的基本操作的理解,并可初步使用及操作;2、掌握用图对实际问题进行抽象方法,可以解决基本的问题;3、掌握利用邻接表求解非负权值、单源最短路径的方法,即利用迪杰斯特拉算法求最短路径,同时掌握邻接表的建立以及使用方法,能够解决相关的问题。
课程编号:B080103110
面向对象程序设计
实验报告
东北大学软件学院
一、实验目的
写出你认为比较重要的实验目的
二、实验内容
简短明确地写出实验的内容
三、实验步骤
(1)分析要解决的问题,给出你的思路。
(2)根据对问题的分析,写出你的设计思路,可以用类图等表达。
(3)给出你的关键数据结构设计。
(4)描述你在进行实现时,主要的功能或方法的实现。
(5)你在程序设计过程中遇到了怎样的问题?如何解决得?
(6)其它(你认为需要在此说明的)。
四、实验结果
(1)对不同的输入,该系统都存在哪几类可能出现的情况,你的测试数据要完全覆盖了你所想到的这些情况,并给出测试结果。
(2)测试过程中发现了哪些问题?你是如何解决这些问题的?
(3)其它(你认为需要在此说明的)。
五、实验总结
(1)阐述通过实验你对面向对象程序设计相关知识的认识和理解。
(2)你认为该系统还有其它设计和实现方案吗?
(3)其它(你认为需要在此说明的)。
教师评语或评价表格:。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==东北大学软件学院学生实训总结报告篇一:东北大学软件学院学生实训开发文档东北大学软件学院学生实训开发文档专业:软件工程班级:学号:姓名:实训基地:东北大学企业指导教师:201X年 8月日301 B&W図書館 .................................................................. ..................................................................... ................. - 3 - 1.1 引言 .................................................................. ..................................................................... .............................. - 3 - 1.1.1 项目介绍 .................................................................. ......(来自:WWw. : 东北大学软件学院学生实训总结报告 )................................................................. ............. - 3 - 1.1.2 编写目的 .................................................................. ..................................................................... ............... - 3 - 1.1.3 项目职责 .................................................................. ..................................................................... ............... - 3 - 1.2 需求分析 ........................................................................................ - 3 - 1.3 静态页面作成 .................................................................. ..................................................................... .............. - 4 - 1.4 编码 .................................................................. ..................................................................... .............................. - 9 - 1.5 测试 .................................................................. ..................................................................... .............................. - 9 - 2 京西电子商城 .................................................................. ..................................................................... .............. - 9 - 2.1 引言 .................................................................. ..................................................................... .............................. - 9 - 2.1.1 项目介绍 .................................................................. ..................................................................... ............... - 9 - 2.1.2 编写目的 .................................................................. ..................................................................... ............. - 10 - 2.1.3 项目职责 .................................................................. ..................................................................... ............. - 10 - 2.2 需求分析 .................................................................. ..................................................................... .................... - 10 - 2.2.1 需求理解 .................................................................. ..................................................................... ............. - 10 - 2.2.2 概要设计 .................................................................. ..................................................................... ............. - 11 -2.2.2.1 浏览商品 .................................................................. ..................................................................... .........................- 11 - 2.2.2.1.1 商品查询 .................................................................. ..................................................................... ................- 11 - 2.2.2.1.2 发表评论 ..................................................................................- 11 - 2.2.2.2 购物车管理 .................................................................. ..................................................................... .................... - 12 - 2.2.2.2.1 商品添加 .................................................................. ..................................................................... ............... - 12 - 2.2.2.2.2 查看购物车 .................................................................. ..................................................................... ........... - 12 - 2.2.2.2.3 商品数量修改 .................................................................. ..................................................................... ....... - 12 -2.3 详细设计 .................................................................. ..................................................................... .................... - 13 - 2.3.1 浏览商品 .................................................................. ..................................................................... ............. - 13 -2.3.1.1 功能模块设计 .................................................................. ..................................................................... ................ - 13 - 2.3.1.1.1 功能说明 .................................................................. ..................................................................... ............... - 13 - 2.3.1.1.2 子模块设计 .................................................................. ..................................................................... ........... - 13 - 2.3.1.2 数据库设计 .................................................................. ..................................................................... .................... - 19 - 2.3.1.2.1 功能说明 .................................................................. ..................................................................... ............... - 19 - 2.3.1.2.2 数据表设计 .................................................................. ..................................................................... ........... - 20 -2.3.2 购物车管理 ..................................................................。
课程编号:B080101020《C++程序设计》实验报告姓名学号班级指导教师实验名称《C++ 程序设计》综合实验开发与总结开设学期2016-2017学年第一学期开设时间第15周——第18周报告日期XXXX评定成绩评定人XXX评定日期2016-01-12 东北大学软件学院1. 实验目的实验一1)学习编写简单的C++程序,并掌握C++程序的基本格式与规范。
2)练习重载函数的使用,掌握指针的使用方法。
3)学习标准输人输出及格式控制。
4)学习使用VC ++的debug调试功能,使用step into追踪到函数内部。
实验二1)学习并掌握类与对象的定义、使用、声明。
2)学习具有不同属性的数据成员与成员函数的访问方式。
3)理解构造函数和析构函数的定义与执行过程。
4)理解什么是运算符重载,掌握运算符重载的方法实验三1)学习定义和使用类的继承关系,定义派生类。
2)熟悉不同继承方式下对基类成员的访问控制。
3)学习使用虚函数实现动态多态性。
4)学习利用虚基类解决二义性问题。
实验四1)加强对模板相关概念的理解,熟悉模板编程的语法。
2)学习编写简单的函数模板和类模板。
3)理解STL中容器、算法、迭代器的等概念,明确它们之间的关系。
4)掌握STL中Vector容器的使用方法。
2. 实验环境编译器:Microsoft Visual C++ 6.0操作系统:Windows 103. 实验内容与实验过程及分析实验一项目一:内容:使用动态数组完成编写并测试3X3矩阵转置函数,使用数组保存3X3矩阵,使用指针实现函数的功能。
代码:main(){int i,j;int **p;p=new int*[3];cout<<"输入矩阵的元素:"<<endl;for(i=0;i<3;i++){p[i]=new int[3];for(j=0;j<3;j++){cin>>p[i][j];}}transpose(p);cout << "转置后的矩阵的为:" << endl;for(i=0; i<3; i++){for (j=0; j<3; j++)cout << p[i][j] << " ";cout << endl;}delete[] p;}void transpose (int **matrix){int i,k,j;for(i=0;i<3;i++){for(j=0;j<3;j++){if(j>i){k=matrix[j][i];matrix[j][i]=matrix[i][j];matrix[i][j]=k;}}}}运行结果:总结:传递二维数组时候通过指针传递,可以对数组进行修改,方便了许多。
项目二:内容:编写程序,读写指定的文件,在每一行前加行号后,将结果输出到屏幕代码:void write(){ofstream out("test.txt");if (out.is_open()){out << "第一行\n";out << "第二行\n";out << "第三行\n";out << "第四行\n";out << "第五行\n";out << "第六行\n";}out.close();}void read(){char buffer[88];ifstream in("test.txt");if (!in.is_open()){cout << "Error opening file";exit(1);}while (!in.eof()){in.getline(buffer, 80);cout << buffer << endl;}in.close();}void main(){cout << "写文件" << endl;write();cout << "读文件" << endl;read();system("pause");}运行结果:总结:学会了C++如何进行文件读写操作。
实验二项目一:内容:以成员函数方式重载的“+”操作符的原型为:CPoint CPoint::operator+ (CPoint pt); 以全局函数方式重载的“-”操作符的原型为:CPoint operator- (CPoint pt1, CPoint pt2); 分析以成员函数方式和全局函数方式重载运行符的异同点。
重载的“>>”操作符的原型为:istream& operator>>(istream&, CPoint&);重载的“<<”操作符的原型为:ostream& operator>>(ostream&, CPoint);思考一下,重载的“>>”操作符和“<<”操作符能否作为CPoint类的成员函数来实现。
代码:#include<iostream.h>#include<math.h>class CPoint{private:int x,y;static int nCount ;// nCount用于保存点的个数public:CPoint(int px=0,int py=0):x(px),y(py){}//构造函数,这个地方一定要写函数体内容,不然没有初始化的话会导致运行出错。
//CPoint(CPoint&);~CPoint(){}//这是析构函数int GETX() const{return x;}int GETY() const{return y;}void SetX(int a){x=a;}void SetY(int b){y=b;}void ShowPoint(){cout<<"("<<x<<","<<y<<")";}CPoint operator+ (CPoint& cp2){return CPoint(GETX()+cp2.GETX(),GETY()+cp2.GETY());};friend CPoint operator-(CPoint& cp1,CPoint& cp2);//声明为友元函数//输入输出运算符只能用友元函数重载friend ostream &operator<<(ostream &os,const CPoint &c);friend istream &operator>>(istream &is,CPoint &c);};CPoint operator-(CPoint& cp1,CPoint& cp2){return CPoint(cp1.x-cp2.x,cp1.GETY()-cp2.GETY());}//不要逗号ostream & operator<<(ostream &os,const CPoint &c){cout <<"重载<<直接输出对象得到:"<< "("<<c.GETX()<<","<<c.GETY()<<")"<<endl;return os;}istream & operator>>(istream &is,CPoint &c){is >>c.x>>c.y;return is;}class CLine{private:CPoint pt1, pt2;//pt1和pt2分别代表该线段的起点和终点public:CLine(){}//构造函数CLine(int x1,int y1,int x2,int y2):pt1(x1,y1),pt2(x2,y2){}//必须以参数列表的形式来写,这样才能在声明的时候即初始化CLine(CPoint p1,CPoint p2):pt1(p1),pt2(p2){}//必须以参数列表的形式来写,这样才能在声明的时候即初始化double Distance(){int a=pt1.GETX()-pt2.GETX();int b=pt1.GETY()-pt2.GETY();double distance=sqrt(a*a+b*b);return distance;} //计算该线段长度的成员函数void ShowLine(){pt1.ShowPoint();cout<<"-";pt2.ShowPoint();}};int main(){CPoint cp1(2,4);CPoint cp2(3,6);CPoint cp;cout<<"两个点分别是";cp1.ShowPoint();cp2.ShowPoint();cp=cp1+cp2;//两个点相加cout<<endl;cout<<"两个点相加的结果是";cp.ShowPoint();cp=cp1-cp2;//两个点相减cout<<"两个点相减的结果是";cp.ShowPoint();cout<<endl;CLine line1(1,3,5,0);CLine line2(cp1,cp2);cout<<"线段1是";line1.ShowLine();cout<<endl;cout<<"线段2是";line2.ShowLine();cout<<endl<<"长度为"<<line1.Distance()<<endl;cout <<"重载>>直接创建一个点,请输入两个值:";CPoint LoadPoint;cin>>LoadPoint;cout<<LoadPoint;//重载<<直接输出对象return 0;}运行结果:总结:通过C++重载运算符的操作,可以让编程者自定义各个操作符的运算规则,简化了程序的编写逻辑和过程。