C++实现学生通讯录类
需积分: 14 182 浏览量
更新于2024-09-18
收藏 120KB DOC 举报
"本资源提供了一个C++实现的学生通讯录类的示例,包含学号、姓名、院系、通讯地址和电话等数据成员,并有相应的成员函数用于输出和设置这些信息。"
在C++编程中,类是组织数据和操作数据的方法,它允许我们定义自定义的数据类型。在这个例子中,我们定义了一个名为`CStudent`的类,用来表示学生通讯录中的一个条目。这个类包含了以下数据成员:
1. `int number`: 学号,用于唯一标识每个学生。在这里使用了整型变量`int`来存储。
2. `char* p_name`: 姓名,使用指向字符的指针来存储字符串。这是因为C++标准库中的`string`类型在早期版本中并未被广泛使用,所以这里使用了C风格的字符串处理。
3. `char* p_school`: 院系,同样使用指向字符的指针来存储。
4. `char* p_address`: 通讯地址,同样使用指针存储。
5. `char tel[15]`: 电话,由于电话号码长度有限,使用固定大小的字符数组来存储。
除了数据成员,`CStudent`类还定义了一些成员函数,用于操作这些数据:
- `void show()`: 输出数据成员的值,通过调用`get`系列函数获取每个数据成员的值并显示在控制台上。
- `CStudent(int un, char* pn, char* ps, char* pa, char tel[])`: 构造函数,用于初始化一个新的`CStudent`对象。接受学号、姓名、院系、地址和电话作为参数,并使用`set`系列函数设置这些值。
- `void setname(char* name)`: 设置学生的姓名,首先申请足够大的内存来存储新名字,然后使用`strcpy`复制传入的名字到`p_name`所指向的位置。
- `void setnumber(int nu)`: 直接将传入的学号赋值给`number`。
- `void setschool(char* school)`: 类似地,为院系分配内存并复制传入的院系名称。
- `void setaddress(char* address)`: 设置通讯地址,分配内存并复制传入的地址。
- `void settel(char tel[])`: 将电话号码复制到`tel`数组中。
这样的设计使得我们可以方便地创建和管理学生通讯录,同时通过成员函数来保护数据成员不被直接访问,提高了代码的安全性和封装性。在实际应用中,可能还需要添加更多的功能,如添加、删除学生条目,搜索学生信息等。同时,为了防止内存泄漏,记得在不再需要这些动态分配的字符串时释放内存,这可以通过在类中添加析构函数或者使用智能指针来实现。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-10-12 上传
2011-11-07 上传
2008-12-31 上传
2022-07-12 上传
2010-07-11 上传
2012-04-02 上传
Mr_just
- 粉丝: 34
- 资源: 14
最新资源
- Condition-monitoring-of-hydraulic-systems-using-xgboost-modeling:我们将使用各种传感器值并使用xgboost进行测试液压钻机的状态监控
- 齐尔奇
- cubelounge:基于立方体引擎的游戏社区网站
- csharp_s7server_snap7_snap7c#代码_C#S7协议_c#s7连接plc_c#s71500
- Excel模板基础体温记录表格.zip
- lab_prog_III
- lekce03-priklad01:第3课示例
- ember-cli-htmlbars
- Recommendation-System:基于相似性创建简单的推荐系统
- React Native 的可扩展组件
- Excel模板简易送货单EXCEL打印模板.zip
- DependencyWalker:PE格式图像依赖解析器
- 数据结构基础系列(6):树和二叉树
- neuro-network-visualizer-web-app-python:使用Streamlit的神经网络Visualizer Web应用程序,以及使用Keras和Flask的简单模型服务器
- SentimentAnalysis
- mayorleaguec23:Basi HTML页面