欢迎来到天天文库
浏览记录
ID:45138507
大小:696.00 KB
页数:45页
时间:2019-11-10
《第1章_面向对象的程序设计及C++概述new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、面向对象程序设计及C++主讲:第1章面向对象程序设计及C++概述面向对象程序设计及C++本章作业作业本:本章习题:一、二、三(1、2、5)或:网上自测本章内容提要面向过程与面向对象面向对象的基本概念及特征C++语言概述C++程序及其开发本章小结1.1.1面向过程的程序设计核心思想:功能分解实现方法:自顶向下、逐步求精优点:直观有条理、结构清晰、模块化强。缺点:代码的可重用性差、模块之间依赖性强、不利于代码的维护和扩充。数据结构对整个程序公开,数据安全性差1.1.1面向过程的程序设计数据与对数据处理的过程相分离,其弊端表现在:一旦数据
2、结构改变,与之相关的所有操作都必须改动,代码修改量大例如:一个简单的学生成绩管理系统用来管理若干个学生的信息。每个学生的信息包括学号、姓名、某门课的平时成绩、期末成绩、总评成绩和名次,总评成绩=平时成绩*0.3+期末成绩*0.7。主要操作:成绩的录入、计算、排名、输出。1.1.1面向过程的程序设计数据结构——定义一个结构体typedefstructstudentScore{charnumber[10];//学号charname[10];//姓名intdailyScore;//平时成绩intfinalScore;//期末成绩float
3、generalScore;//总评成绩intplace;//名次}SS;//结构体变量名CintexperiScore;//后增项实验成绩1.1.1面向过程的程序设计操作数据的几个函数:voidreadData(SSstu[],intn);//输入n个学生的学号、姓名、平时及期末成绩voidcalcuScore(SSstu[],intn);//计算n个学生的总评成绩voidsortScore(SSstu[],intn);//根据总评成绩排名,得出每个学生的place值voidprintOut(SSstu[],intn);//按一定的
4、格式输出n个学生的完整信息1.1.1面向过程的程序设计现在,需求改变了:在C语言课程中,需要增加实验成绩这一项,学生的总评成绩计算方法修改为:总评成绩=平时成绩*0.2+实验成绩*0.2+期末成绩*0.6。显然,类型SS中需要增加一个数据项intexperiScore;表示实验成绩。G同时,所有的函数代码都应该作相应地修改1.1.1面向过程的程序设计面向过程的程序设计的范型是:程序=算法+数据结构数据与对数据操作的分离导致软件维护(包括软件的测试、调试和升级)的困难。一种新型的程序设计方法——面向对象的程序设计方法应运而生,它很好地
5、解决了以上问题。1.1.2面向对象的程序设计核心思想:以数据为核心,将数据以及对这些数据的操作封装为一个整体实现方法:以类封装,以类的对象作为程序的基本元素,通过向对象发送消息,进而由对象启动相关的方法完成各种功能优点:数据安全、软件可靠、代码可重性可维护性强缺点:代码的效率有时会低类与对象是抽象与具体的关系类包含:对象必然属于某一个类,且各有一个名字(对象名),有不同的数据成员值,可以进行相同的行为。类与对象的关系:相当于类型和变量的关系1.1.2面向对象的程序设计成员函数:数据成员:----类对象的静态特性----类对象的动态特
6、性1.1.2面向对象的程序设计例如:人类静态特性:动态特性:姓名性别年龄身高体重身份吃穿住行学习工作Person类数据成员成员函数charname[20]charsex[8]intagedoubleheightdoubleweightcharidentityvoideat();voiddress();voidreside();voidwalk();voidstudy();voidwork();类对象名:teacher1张虹女251.7055.0教师前面成绩管理的例子,将结构体改造成一个类SS,其定义如下:classSS{privat
7、e:charnumber[10];charname[10];intdailyScore;intfinalScore;floatgeneralScore;intplace;1.1.2面向对象的程序设计public://接口对外公开voidreadData();voidcalcuScore();voidprintOut();…};此时的主函数代码为:intmain(){SSs,t;//定义SS类型的两个学生对象,对象名为s和ts.readData();//向对象发送消息,对象接受消息后调成员函数t.readData();//readDa
8、ta()实现读入每个学生的信息s.calcuScore();//对象调用calcuScore()计算总评成绩t.calcuScore();s.printOut();//对象调用printOut()输出各自的信息t.printOut()
此文档下载收益归作者所有