利用多文件组织项目

2023-11-08 07:38
文章标签 项目 文件组织

本文主要是介绍利用多文件组织项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:                             
* 作    者:   吴瑕                          
* 完成日期:2012         年   03    月   12     日
* 版 本 号:         

* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:针对第3周任务3,利用多文件组织项目。其中,项目包括3个文件:
主文件: main.cpp,用于定义main()函数
头文件: mytime.h,头文件
类定义文件: mytime.cpp,用于定义类Time

 
* 程序输出:
* 程序头部的注释结束
*/

//main.cpp//用于定义main函数
#include<iostream>
#include"mytime.h"//将头文件包含近进来
using namespace std;
#include <cmath>
int main( )  
{  
Time t1;  //将其设置为全局变量,方便成员函数在类外定义时使用  
Time &t2=t1;
t1.set_time( );    
t1.add_a_set();  
t1.add_a_minute();  
t1.add_a_hour();  
t1.add_seconds(60);//直接采用参数的传递,为避免定义此函数时用cin   
t1.add_minutes(60);  
t1.add_hours(20);  
t2.show_time( );  
return 0;  
} 
//mytime.h //头文件
using namespace std;
class Time  
{  
public:  
void set_time( );     
void show_time( );  
inline void add_a_set();  
inline void add_a_minute();  
inline void add_a_hour();  
inline void add_seconds(int);  
inline void add_minutes(int);  
inline void add_hours(int);  
private:   
bool is_time(int, int, int);  
int hour;  
int minute;  
int sec;  
};  
mytime.cpp//定义类
#include<iostream>
#include"mytime.h"
using namespace std;
#include <cmath>
Time t1;  //将其设置为全局变量,方便成员函数在类外定义时使用  
Time &t2=t1;
void Time::set_time( )   
{  
char c1,c2;  
cout<<"请输入时间(格式hh:mm:ss)";  
while(1)  
{  
cin>>hour>>c1>>minute>>c2>>sec;  
if(c1!=':'||c2!=':')  
cout<<"格式不正确,请重新输入"<<endl;  
else if (!is_time(hour,minute,sec))  
cout<<"时间非法,请重新输入"<<endl;  
else   
break;  
}  
}  
void Time::show_time( )        
{  
cout<<hour<<":"<<minute<<":"<<sec<<endl;  
}  
bool Time::is_time(int h,int m, int s)  
{  
if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)  
return false;  
return true;  
}  
inline void Time::add_a_set()  
{  
sec=sec+1;  
if(sec>=60)  
{  
t1.add_a_minute();//在函数里采用调用,方便。但此处应注意要对所调用的函数指定对象  
sec=0;  
}  
}  
inline void Time::add_a_minute()  
{  
minute=minute+1;  
if(minute>=60)  
{  
t1.add_a_hour();  
minute=0;  
}  
}  
inline void Time::add_a_hour()  
{  
hour=hour+1;  
if(hour>=24)  
{  
hour=0;  
}  
}  
void Time::add_seconds(int m)  
{  
sec=sec+m;  
if(sec>=60)  
{  
t1.add_minutes(int(sec/60));  
sec=sec-((sec/60)*60);  
}  
}  
void Time::add_minutes(int m)  
{  
minute=minute+m;  
if(minute>=60)  
{  
t1.add_hours(int(minute/60));  
minute=minute-((minute/60)*60);  
}  
}  
void Time::add_hours(int m)  
{  
hour=hour+m;  
if(hour>=24)  
{  
hour=hour-((hour/24)*24);  
}  
}  
上机感言:
为什么这些代码放进VC2008中运行时,编译可以通过,但连接时会出错呢?
经验总结:
1.预编译时会将头文件的内容代替#include"mytime.h"行
2.编译时会将两个源文件分别编译,将其变成目标文件,,然后将它们和其他系统连接起来,形成可执行文件
 


 

这篇关于利用多文件组织项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/368595

相关文章

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv