file-type

东南大学C++课程-何洁月课件:面向对象编程基础

PPT文件

下载需积分: 12 | 3.83MB | 更新于2024-08-19 | 114 浏览量 | 8 下载量 举报 收藏
download 立即下载
"东南大学C++课程何洁月教授的课件,主要讲解C++编程语言及面向对象编程概念。" 这篇摘要提供了关于东南大学C++课程的一些关键信息,由何洁月教授主讲。课程旨在培养学生的基础编程能力,特别是在C++语言和面向对象编程(OOP)方面的技能。以下是课程的主要知识点: 1. 基本的计算机程序设计概念:课程首先介绍程序设计的基本概念,帮助学生建立计算机程序设计的思维框架。 2. C++语言基础:涵盖C++语言的基本语法和语义,包括数据类型、表达式、输入/输出操作、控制结构(如条件语句和循环)以及自定义数据类型。 3. 函数:深入讨论函数的定义、使用、内联函数、默认参数、重载和函数模板,以及如何利用C++系统函数。 4. 面向对象编程:强调面向对象的思想,如封装、继承和多态,以及类和对象的概念。课程还涵盖了构造函数、析构函数、类的组合和类模板。 5. 类与对象:详细讲解类和对象的创建和使用,以及它们在实现OOP中的作用。此外,还包括构造函数和析构函数的使用,用于对象的初始化和清理。 6. 程序开发过程:让学生理解从需求分析到代码编写、测试和维护的整个软件开发流程。 7. 实验与考核:课程包含实验环节,以提升学生的实际编程技能,考核形式未具体提及,可能包括平时作业、项目、实验报告和期末考试等。 8. 教材与学习资源:虽然未具体提供,但课程可能配备有专门的教材和补充学习材料,以辅助学生深入理解和实践C++编程。 通过这个课程,学生不仅能够掌握C++语言的基础,还能理解并应用面向对象的设计原则,为后续更高级的编程概念和技术打下坚实的基础。何洁月教授的课件,如所展示的`LinkedList`类的部分代码,展示了实际编程中如何操作链表数据结构,包括获取当前节点值的引用以及在链表前端插入元素的方法。这些实用的示例有助于学生将理论知识转化为实际编程技能。

相关推荐

filetype

#include <stdio.h> #include <malloc.h> #include <stdbool.h> #define MaxSize 50 typedef char ElemType; typedef struct LNode { ElemType data; struct LNode *next; //指向后继结点 } LinkNode; //单链表结点类型 void CreateListF(LinkNode *L,ElemType a[],int n) //头插法建立单链表 { int i; LinkNode *s; L=(LinkNode *)malloc(sizeof(LinkNode)); //创建头结点 L->next=NULL; for (i=0;i<n;i++) { s=(LinkNode *)malloc(sizeof(LinkNode));//创建新结点s s->data=a[i]; s->next=L->next; //将结点s插在原开始结点之前,头结点之后 L->next=s; } } void CreateListR(LinkNode *L,ElemType a[],int n) //尾插法建立单链表 { int i; LinkNode *s,*r; L=(LinkNode *)malloc(sizeof(LinkNode)); //创建头结点 L->next=NULL; r=L; //r始终指向尾结点,开始时指向头结点 for (i=0;i<n;i++) { s=(LinkNode *)malloc(sizeof(LinkNode));//创建新结点s s->data=a[i]; r->next=s; //将结点s插入r结点之后 r=s; } r->next=NULL; //尾结点next域置为NULL } void InitList(LinkNode *L) //初始化线性表 { L=(LinkNode *)malloc(sizeof(LinkNode)); //创建头结点 L->next=NULL; //单链表置为空表 } void DestroyList(LinkNode *L) //销毁线性表 { LinkNode *pre=L,*p=pre->next; while (p!=NULL) { free(pre); pre=p; //pre、p同步后移一个结点 p=pre->next; } free(pre); //此时p为NULL,pre指向尾结点,释放它 } bool ListEmpty(LinkNode *L) //判线性表是否为空表 { return(L->next==NULL); } int ListLength(LinkNode *L) //求线性表的长度 { int i=0; LinkNode *p=L; //p指向头结点,n置为0(即头结点的序号为0) while (p->next!=NULL) { i++; p=p->next; } return(i); //循环结束,p指向尾结点,其序号i为结点个数 } void DispList(LinkNode *L) //输出线性表 { LinkNode *p=L->next; //p指向首结点 while (p!=NULL) //p不为NULL,输出p结点的data域 { printf("%c ",p->data); p=p->next; //p移向下一个结点 } printf("\n"); } bool GetElem(LinkNode *L,int i,ElemType e) //求线性表中第i个元素值 { int j=0; if (i<=0) return false; //i错误返回假 LinkNode *p=L; //p指向头结点,j置为0(即头结点的序号为0) while (jnext; } if (p==NULL) //不存在第i个数据结点,返回false return false; else //存在第i个数据结点,返回true { e=p->data; return true; } } int LocateElem(LinkNode *L,ElemType e) //查找第一个值域为e的元素序号 { int i=1; LinkNode

黄子衿
  • 粉丝: 28
上传资源 快速赚钱