#include "iostream" using namespace std; class Matrix { private: double** A; //矩阵A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //为向量b分配空间并初始化为0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //为向量A分配空间并初始化为0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析构中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"请输入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"请输入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"个:"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分别求得U,L的第一行与第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分别求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"计算U得:"<<endl; U.Disp(); cout<<"计算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; }
标签: 道理特分解法
上传时间: 2018-05-20
上传用户:Aa123456789
#include<stdio.h> #include<windows.h> int xuanxiang; int studentcount; int banjihao[100]; int xueqihao[100][10]; char xm[100][100]; int xuehao[100][10]; int score[100][3]; int yuwen; int shuxue[000]; int yingyu[100]; int c[100]; int p; char x[1000][100]="",y[100][100]="";/*x学院 y专业 z班级*/ int z[100]; main() { void input(); void inputsc(); void alter(); void scbybannji(); printf("--------学生成绩管理-----\n"); printf("请按相应数字键来实现相应功能\n"); printf("1.录入学生信息 2.录入学生成绩 3.修改学生成绩\n"); printf("4.查询学生成绩 5.不及格科目及名单 6.按班级输出学生成绩单\n"); printf("请输入你要实现的功能所对应的数字:"); scanf("%d",&xuanxiang); system("cls"); getchar(); switch (xuanxiang) { case 1:input(); case 2:inputsc(); case 3:alter(); /*case 4:select score(); case 5:bujigekemujimingdan();*/ case 6:scbybanji; } } void input() { int i; printf("请输入你的学院名称:"); gets(x); printf("请输入你的专业名称:"); gets(y); printf("请输入你的班级号:"); scanf("%d",&z); printf("请输入你们一个班有几个人:"); scanf("%d",&p); system("cls"); for(i=0;i<p;i++) { printf("请输入第%d个学生的学号:",i+1); scanf("%d",xuehao[i]); getchar(); printf("请输入第%d个学生的姓名:",i+1); gets(xm[i]); system("cls"); } printf("您已经录入完毕您的班级所有学生的信息!\n"); printf("您的班级为%s%s%s\n",x,y,z); /*alter(p);*/ } void inputsc() { int i; for(i=0;i<p;i++) { printf("\n"); printf("--------------------------------------------------------------------------------\n\n"); printf("\t\t\t\t录入学生的成绩\n\n\n"); printf("--------------------------------------------------------------------------------\n\n"); printf("\t\t\t\t%s\n",xm[i]); printf("\n"); printf("\t\t\t\t数学:"); scanf("%d",&shuxue[i]); printf("\n"); getchar(); printf("\t\t\t\t英语:"); scanf("%d",&yingyu[i]); printf("\n"); getchar(); printf("\t\t\t\tc语言:"); scanf("%d",&c[i]); system("cls"); } } void alter() { int i;/*循环变量*/ int m[10000];/*要查询的学号*/ int b;/*修改后的成绩*/ char kemu[20]=""; printf("请输入你要修改的学生的学号"); scanf("%d",&m); for (i=0;i<p;i++) { if (m==xuehao[i]) { printf("%s的数学成绩为%d,英语成绩为%d,c语言成绩为%d,xm[i],shuxue[i],yingyu[i],c[i]"); printf("请输入你想修改的科目");} } gets(kemu); getchar(); if (kemu=="数学"); { scanf("%d",&b); shuxue[i]=b;} if (kemu=="英语"); { scanf("%d",&b); yingyu[i]=b;} if (kemu=="c语言"); { scanf("%d",&b); c[i]=b; } printf("%s的数学成绩为%d,英语成绩为%d,c语言成绩为%d,xm[i],shuxue[i],yingyu[i],c[i]"); } void scbybannji() { int i; char zyname[20]; int bjnumber; printf("请输入你的专业名称"); scanf("%s",&zyname); printf("请输入你的班级号"); scanf("%d",&bjnumber); for (i=0;i<p;i++) { if (zyname==y[i]); if (bjnumber==z[i]); printf("专业名称%s班级号%d数学成绩%d英语成绩%dc语言成绩%d,y[i],z[i],shuxue[i],yingyu[i],c[i]"); } }
标签: c语言
上传时间: 2018-06-08
上传用户:2369043090
工资管理系统 分为个人工资查询和工资管理两块 个人工资查询的功能 1 查看工资单 2 打印工资单 3 修改密码 工资管理 的 功能 1 按时间查看所工资单 2 添加用户分为两块 a 单个的添加 b 用Database/namedaosfz.xls中直接导入 3 添加工资数据 a 单个的添加添加 b 由 Database/gzxq.xls,Database/qit.xls 中导入 ;工资单分主工资单(gzxq.xls)和其他费用明细(qit.xls)
标签: 工资管理系统
上传时间: 2018-10-29
上传用户:345835833
提取小波脊线的crazy climber算法
上传时间: 2021-01-24
上传用户:
布线是PCB设计的重要组成部分,也是整个PCB设计中工作量最大和最耗时间的部分,工程师在进行PCB布线工作时,需要遵循一些基本的规则,如倒角规则、3W规则等。 环路最小规则,即信号线与其回路构成的环面积要尽可能小,环面积越小,对外的辐射越少,接收外界的干扰也越小。针对这一规则,在地平面分割时,要考虑到地平面与重要信号走线的分布,防止由于地平面开槽等带来的问题;在双层板设计中,在为电源留下足够空间的情况下,应该将留下的部分用参考地填充,且增加一些必要的地过空孔,将双面地信号有效连接起来,对一些关键信号尽量采用地线隔离,对一些频率较高的设计,需特别考虑其地平面信号回路问题,建议采用多层板为宜
标签: pcb
上传时间: 2021-11-08
上传用户:
本书对变换器的闭环有很好的启蒙作用
上传时间: 2021-12-08
上传用户:
硬件工程师 电子工程师必备知识手册关键字: 电阻 基础知识 线绕电阻器 薄膜电阻器 实心电阻器 电阻 导电体对电流的阻碍作用称着电阻,用符号 R 表示,单位为欧姆、千欧、兆欧, 分别用Ω、kΩ、MΩ 表示。 一、电阻的型号命名方法: 国产电阻器的型号由四部分组成(不适用敏感电阻) 第一部分:主称 ,用字母表示,表示产品的名字。如 R 表示电阻,W 表示电位 器。 第二部分:材料 ,用字母表示,表示电阻体用什么材料组成,T-碳膜、H-合成 碳膜、S-有机实心、N-无机实心、J-金属膜、Y-氮化膜、C-沉积膜、I-玻璃釉膜、 X-线绕。 第三部分:分类,一般用数字表示,个别类型用字母表示,表示产品属于什么类 型。1-普通、2-普通、3-超高频 、4-高阻、5-高温、6- 精密、7-精密、8-高压、 9-特殊、G-高功率、T-可调。 第四部分:序号,用数字表示,表示同类产品中不同品种,以
上传时间: 2022-02-17
上传用户:
盲孔(Blind vias ):盲孔是将 PCB 内层走线与 PCB 表层走线相连的过孔类型,此孔不穿透整个板子。埋孔(Buried vias):埋孔则只连接内层之间的走线的过孔类型,所以是从 PCB 表面是看不出来的。在 Altium Designer19 中如何实现盲埋孔设计?
标签: Altium Designer
上传时间: 2022-04-17
上传用户:
前级放大器电路如图1所示,左右声道完全相同。它由两级电压放大加阴极输出器组成,V1为第一级电压放大。现代数码音源CD、DVD的输出电压一般都在2V左右,信号从IN输入,经R1衰减,通过栅极防振电阻R2加至V1栅极,V1将信号放大,然后从屏极取出放大后的信号电压经C1耦合到下一级。W1为V1交流负载的一部分,又是V2的栅极回路,同时起着总音量的控制作用V2a为第二级电压放大,将放大后的信号电压直接送到V2b栅极,这就叫做直接耦合。采用直接耦合的V2a与V2b屏栅电位一致,在静态时足以使V2b管屏流截止而不工作,在动态时由于信号电压的加入,才能使V2b进人工作状态。这种直接耦合,由于少用了一只耦合电容,不存在信号的电路损耗。传输效率高,传真度好,减少了低频衰减,有利于改善幅频特性。V1、V2a阴极电阻R4、R6都未并接旁路电容,有本级电流负反馈作用,能够提高音质、消除失真V2b为阴极输出器,把前级放大的音频信号电压从阴极引出,经C2传送给功率放大器。阴极输出器具有非线性失真小,频率响应宽的特点,它没有放大作用,电压增益小于1,但它有一定的电流输出,有恒压输出特性,带负载能力很强,推动任何纯后级功率放大器从容不迫、轻松自如。它的输入阻抗高,输出阻抗低,大约才几百欧姆,能和末级功放很好地匹配,即使用较长的信号线传输,也不会造成高频损失抗干扰能力强,可以提高信噪比,提高音乐的纯度,音质较好。台靓声、工作稳定可靠的放大器,离不开优质的电源作保证,特别是前级放大器,对电源的品质要求相当高,不应有交流声和噪声,哪怕只有一丁点儿,经过功率放大后,都会产生可怕的声压级,会严重影响音质。
上传时间: 2022-04-24
上传用户:canderile
十字路口车辆通行能否保持较高的效率,将决定城市交通管理水平。本文结合十字路口交通灯控制要求,采用QuartusⅡ实现了交通灯控制电路设计,并对设计效果进行了仿真分析。从仿真结果来看,交通灯控制电路可以在车流量过大时将道路通行时间由60s增加至90s,并在车流量过小时将通行时间由60s减少至30s,因此能够实现十字路口车辆通行量的动态控制。:引言:伴随着私家车数量的不断增加,城市交通压力日渐增大。而加强十字路口交通灯控制,则能起到缓解城市交通堵塞的重要作用。目前在交通灯控制设计方面,采用传统的设计形式已经无法满足交通灯的动态控制需求。为此,还要引入先进的设计软件,采用QuartusⅡ实现十字路口交通灯控制电路设计与仿真分析,提高十字路口的车辆通行效率。
上传时间: 2022-05-08
上传用户: