《电路计算C++与MATLAB》学习笔记(三)

本文是《电路计算C++与MATLAB》学习笔记的第三部分,主要探讨了直流梯形网络计算的源程序实践。首先介绍了在C++编程中如何组织工程文件,包括头文件、类源文件和主程序源文件的划分。接着讨论了两种处理多个cpp文件的方法,一种是在主程序中引入头文件,另一种是创建新工程文件并仅保留主函数,适用于需要运行多个cpp文件的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)直流梯形网络计算的源程序实践与理解

#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
	int n, j, k;
	double e, ee, q;
	cout << "please input data,n=? e=?" << endl;//提醒输入两个数到n和e
	cin >> n >> e;//送到n的是整型数,送到e的是实型数
	cout << "n=" << n << "e=" << e << endl;//回应打印刚输入的数据n和e
	vector r(n + 1), i(n + 1), u(n + 1);//对三个数组分别动态地开辟含n+1元素的空间
	cout << "input r[i],i=1,...,n" << endl;
	for(j = 1; j <= n; j++)cin >> r[j];//输入各电阻,为方便阅读,电路图中的电阻符号与数组r中存放的下标一致,r[0]不用
	for (j = 1; j <= n; j++)
		cout << "r[" << j << "]=" << r[j] << endl;/*print resitance*/
	//以下当u[n]=1,计算各支路的电流和电压
	u[n] = 1.0;
	i[n] = u[n] / r[n];
	i[n - 1] = i[n]; u[n - 1] = r[n - 1] * i[n - 1];
	for (k = n - 2;k >= 2; k = k - 2)
	{
		u[k] = u[k + 1] + u[k + 2]; i[k] = u[k] / r[k];
        i[k - 1] = i[k] + i[k + 1]; u[k - 1] = r[k - 1] * i[k - 1];
	}
	ee = u[1] + u[2];
		//以下是当电势e为给定值时,计算各支路的电流和电压
		q = e / ee;
	cout << "branch no.current voltage" << endl;
	for(j=1;j<=n;j++)
	{
		u[j] = q*u[j]; i[j] = q*i[j];
		cout << " " << j;//输入各支路号
		cout.width(14);
		cout.precision(5);
		cout << i[j];
		cout.width(14); cout.precision(4); cout << u[j] << endl;
	}
}

源程序采用添加下列头文件,以此调用vector.cpp中的class vector,但无法成功

#include "vector.cpp"

(二)A工程文件调用B工程文件的方法(仅为经验)

a)前提,B工程文件已经分为头文件、类的源文件和主程序源文件三大块。如果只是在A的主程序文件中添加B.h头,则会报错

1>DCladdernetworkcpp.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall vector::vector(int)" (??0vector@@QAE@H@Z),该符号在函数 _main 中被引用
1>DCladdernetworkcpp.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall vector::~vector(void)" (??1vector@@QAE@XZ),该符号在函数 _main 中被引用
1>DCladdernetworkcpp.obj : error LNK2019: 无法解析的外部符号 "public: float & __thiscall vector::operator[](int)" (??Avector@@QAEAAMH@Z),该符号在函数 _main 中被引用
1>C:\Users\Jacon\source\repos\DC ladder network.cpp\Debug\DC ladder network.cpp.exe : fatal error LNK1120: 3 个无法解析的外部命令
1>已完成生成项目“DC ladder network.cpp.vcxproj”的操作 - 失败。

解决方法是A主程序添加B.h之后,还要在源文件下面添加B工程的类的源文件,之后再次debug,则运行不报错,应当注意不要添加B工程的主程序源文件,因为一个源文件下面只要有一个main主程序源文件

b)另一方法为新建工程文件,导入所有的cpp文件,只保留想要执行的主函数,也会出现预期结果,此方法用在需要运行多个.cpp文件时


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值