C++程序的多文件组成

【例3.32】 一个源程序按照结构划分为3个文件
// 文件1 student.h (类的声明部分)
#include<iostream.h>
#include<string.h>
class Student {
private:char *name; // 学生姓名char *stu_no; // 学生学号float score; // 学生成绩
public: // 类的外部接口Student(char *name1,char *stu_no1,float score1); // 构造函数~Student(); // 析构函数void modify(float score1); // 数据修改void show(); // 数据输出
};
// 文件2 student.cpp (类的实现部分)
#include "student.h" // 包含类的声明文件
Student∷Student(char *name1,char *stu_no1,float score1)
{name=new char[strlen(name1)+1];strcpy(name,name1);stu_no=new char[strlen(stu_no1)+1];strcpy(stu_no,stu_no1);score=score1;
}
Student∷~Student()
{delete []name;delete []stu_no;
}
void Student∷modify(float score1)
{ score=score1; }
void Student∷show()
{cout<<"\n name: "<<name;cout<<"\n stu_no: "<<stu_no;cout<<"\n score: "<<score;
}
// 文件3 studentmain.cpp (类的使用部分)
#include "student.h" // 包含类的声明文件
void main()
{Student stu1("Liming","990201",90);stu1.show();stu1.modify(88);stu1.show();
}
【例3.33】 利用类表示一个堆栈(stack),并为此堆栈建立push()、 pop()及显示堆栈内容的showstack()等函数
//文件1 stack.h
#include <iostream.h>
#include <iomanip.h>
#include <ctype.h>
const int SIZE=10;
class stack{int stck[SIZE]; // 数组,用于存放栈中数据int tos; // 栈顶位置(数组下标)
public:stack();void push(int ch); // 将数据ch压入栈int pop(); // 将栈顶数据弹出栈void ShowStack();
};
// 文件2 stack.cpp
#include <iostream.h>
#include "stack.h"
stack∷stack() // 构造函数,初始化栈
{ tos= 0; }
void stack∷push(int ch)
{if(tos==SIZE){cout<<"Stack is full";return;}stck[tos]=ch;tos++;cout<<"You have pushed a data into the stack!\n";
}
int stack∷pop()
{if (tos==0){cout<<"Stack is empty";return 0;}tos--;return stck[tos];
}
void stack∷ShowStack()
{cout<<"\n The content of stack: \n" ;if (tos==0){cout<<"\nThe stack has no data!\n";return;}for (int i=tos-1; i>=0;i--)cout<<stck[i]<<" ";cout<<"\n\n";
}
//文件3 stackmain.cpp
#include <iostream.h>
#include "stack.h"
main()
{cout<<endl;stack ss;int x;char ch;cout<<" <I> ------ Push data to stack\n";cout<<" <O> ------ Pop data from stack\n";cout<<" <S> ------ Show the content of stack\n";cout<<" <Q> ------ Quit... \n";while (1){cout<<"Please select an item: ";cin>>ch;ch=toupper(ch);switch(ch){case 'I':cout<<"\n Enter the value that "<<"you want to push: ";cin >>x;ss.push(x);break;case 'O':x=ss.pop();cout<<"\n Pop "<<x<<" from stack.\n"; break;case 'S':ss.ShowStack();break;case 'Q':return 0;default:cout<<"\n You have inputted a wrong item! Please try again!\n";continue;}}
}

转载于:https://www.cnblogs.com/whale90830/p/10542444.html

C++程序的多文件组成相关推荐

  1. java 打开指定文件,java解决指定应用程序打开指定文件

    java解决指定应用程序打开指定文件 //打开工具的路径及名字 String toolsPath = "D:/office/Office12/WINWORD.EXE"; //被打开 ...

  2. 编写程序,在文件file1.dat中存入字符串“good morning”,然后将file1.dat中的内容输出到屏幕上,并复制到文件file2.dat中

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p257 习题8 7.编写程序,在文件file1.dat中存入字符串"good morning ...

  3. Spark应用程序第三方jar文件依赖解决方案

    Spark应用程序第三方jar文件依赖解决方案 参考文章: (1)Spark应用程序第三方jar文件依赖解决方案 (2)https://www.cnblogs.com/dinghong-jo/p/78 ...

  4. VMware Workstation提示:另一个程序已锁定文件的一部分,进程无法访问,删除.lck文件夹和文件

    一.现象 VMware Workstation提示:另一个程序已锁定文件的一部分,进程无法访问,截图如下: 二.原因 因为虚拟机在运行的时候,会锁定文件,防止被修改,而如果系统突然崩溃,虚拟机就来不急 ...

  5. linux 设计一个程序,要求打开文件 pass 所有者,第二章 Linux 文件操作

    文档均来自网络,如有侵权请联系我删除文档 第二章 Linux 文件操作(4学时) 实验一文件属性和无缓冲I/O 实验目的 1.熟悉Linux文件系统属性控制 2.掌握不带缓存的文件I/O程序设计方法 ...

  6. 链接器ld程序的脚本文件u-boot.lds(二)

    目的:了解链接器用到的脚本文件u-boot.lds. 在开始这篇博文之前,需要先了解一些GNU linker script的基本知识,可以参考博主的另外一篇分享<GNU linker scrip ...

  7. 微信小程序PHP文件建在哪里,微信小程序解析H5文件方法

    经常有网友问怎么让微信小程序解析H5文件或者类似封装H5网页到APP里面?我一开始觉得这是不可能的,因为官方的解答是这样的: 每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index. ...

  8. DCMTK:基本工作清单管理服务类提供程序基于一组文件作为数据源

    DCMTK:基本工作清单管理服务类提供程序基于一组文件作为数据源 基本工作清单管理服务类提供程序基于一组文件作为数据源 基本工作清单管理服务类提供程序基于一组文件作为数据源 #include &quo ...

  9. linux应用程序接收文件,Linux应用程序学习之文件编程

    Linux应用程序学习之文件系统调用函数编程 上一篇我们了解了Linux系统下函数库的设计方法,这一章我们就来学习一下linux系统下常用的文件操作函数,在进行系统文件操作函数介绍前,我们首先要明白一 ...

最新文章

  1. C#中base关键字的几种用法
  2. 立足自主可控 斩获财政局虚拟化大单
  3. 【SSH网上商城项目实战23】完成在线支付功能
  4. Doc命令收集(一)
  5. 传输层协议TCP和UDP的区别
  6. 微服务架构与组件总览
  7. [Android] Android统计Apk , jar包方法数
  8. 通过示例学 Golang 2020 中文版【翻译完成】
  9. 【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
  10. 《领域驱动设计:软件核心复杂性应对之道(修订版)》—第2章 2.3节一个团队,一种语言...
  11. win10摄像头无法使用黑屏的解决办法
  12. 防抖和节流理解,以及lodash使用
  13. 【计算机数学】二次规划(QP)问题
  14. 2021年中国乳制品行业发展现状分析,“双循环”助力行业发展「图」
  15. 滚动 下拉简单实现分页
  16. java开源saas项目
  17. laravel jwt attempt 总是返回false
  18. 【C++初阶】简析拷贝构造、赋值运算符重载
  19. 如何一次通过CISSP考试
  20. 浅谈Prim,Kruskal最小生成树算法

热门文章

  1. wxWidgets的一些资源
  2. C++ 指向常量的指针与指针类型的常量
  3. SanFengClound
  4. Golang 并发Groutine实例解读(一)
  5. 20150720 Two heads are better than one
  6. 8086汇编学习小记-王爽汇编语言实验12
  7. 11g compression 新特性(1)
  8. PL/SQL Developer中,存储过程无法调试的问题解决办法
  9. https的那些事儿
  10. Android视频压缩并且上传