您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > C语言程序相量的计算
相量的计算C语言程序指导教师:[请输入指导教师]专业名称:[请输入专业]2020年1月11日请注意:这不是C语言大作业,仅是个人的兴趣之作,写C语言大作业论文的同学请勿照搬按本文的格式姓名:[请输入姓名]为什么要做这个程序我个人对C语言比较感兴趣,想写程序,正好想到了我们所学的电路的相量的计算。我买了计算器,可是计算器并不能直接算相量。所以我就想做一个能够计算相量的程序如果你不学电路的话,你可能根本就不知道相量是什么,你也不会知道相量的计算对人来说有多麻烦。本程序能节省大量的计算时间,这就是本程序的意义所在遇到的问题我发现文件总不能正常写入,花了好长时间才发现问题所在:原来是忘了写fclose函数。有了fclose文件才能正常写入。所以大家写用到文件的程序时一定不要忘了fclose。程序一简介这个程序用[0],[1],[2]之类的东西来代表相量。其实我本来是想用A[0],A[1],A[2]之类的来代表相量,但是那样太麻烦,后来我就用字母来代表相量(见程序二),再后来我又想起来用[0],[1],[2]来代表。这个程序的最大的优点是输入全部为数字截图源代码#includestdio.h#includestdlib.h#includemath.h#defineNUM9#definePI3.141592structxl{doublex;doubley;doubler;doublet;}A[NUM];voidinput(intn);voidother();voidother2();voidopen();voidsave();intmain(){open();intchu;charch;intn;while(1){A[6].x=A[0].x+A[1].x;A[6].y=A[0].y+A[1].y;A[6].r=sqrt(pow(A[6].x,2)+pow(A[6].y,2));A[6].t=atan(A[6].y/A[6].x);A[7].x=A[0].x-A[1].x;A[7].y=A[0].y-A[1].y;A[7].r=sqrt(pow(A[7].x,2)+pow(A[7].y,2));A[7].t=atan(A[7].y/A[7].x);A[8].r=A[0].r*A[1].r;A[8].t=A[0].t+A[1].t;A[8].x=cos(A[8].t)*A[8].r;A[8].y=sin(A[8].t)*A[8].r;if(A[1].r==0)chu=0;else{chu=1;A[9].r=A[0].r/A[1].r;A[9].t=A[0].t-A[1].t;A[9].x=cos(A[9].t)*A[9].r;A[9].y=sin(A[9].t)*A[9].r;}system(cls);printf([0]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[0].x,A[0].y,A[0].r,A[0].t*180/PI);printf([1]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[1].x,A[1].y,A[1].r,A[1].t*180/PI);printf([2]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[2].x,A[2].y,A[2].r,A[2].t*180/PI);printf([3]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[3].x,A[3].y,A[3].r,A[3].t*180/PI);printf([4]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[4].x,A[4].y,A[4].r,A[4].t*180/PI);printf([5]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[5].x,A[5].y,A[5].r,A[5].t*180/PI);printf([6]=[0]+[1]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[6].x,A[6].y,A[6].r,A[6].t*180/PI);printf([7]=[0]-[1]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[7].x,A[7].y,A[7].r,A[7].t*180/PI);printf([8]=[0]*[1]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[8].x,A[8].y,A[8].r,A[8].t*180/PI);if(chu==1)printf([9]=[0]/[1]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,A[9].x,A[9].y,A[9].r,A[9].t*180/PI);printf(0.输入[0]\n);printf(1.输入[1]\n);printf(2.输入[2]\n);printf(3.输入[3]\n);printf(4.输入[4]\n);printf(5.输入[5]\n);printf(6.计算其他两数\n);printf(7.计算其他两数并存储到数组中\n);printf(请选择:);fflush(stdin);ch=getchar();switch(ch){case'0':input(0);break;case'1':input(1);save();break;case'2':input(2);save();break;case'3':input(3);save();break;case'4':input(4);save();break;case'5':input(5);break;case'6':other();break;case'7':other2();save();}}return0;}voidinput(intn){system(cls);charch;printf(1.按普通坐标输入\n);printf(2.按极坐标输入\n);printf(请选择:);fflush(stdin);ch=getchar();switch(ch){case'1':printf(请输入x坐标:);fflush(stdin);scanf(%lf,&A[n].x);printf(请输入y坐标:);fflush(stdin);scanf(%lf,&A[n].y);A[n].r=sqrt(pow(A[n].x,2)+pow(A[n].y,2));A[n].t=atan(A[n].y/A[n].x);break;case'2':printf(请输入半径:);fflush(stdin);scanf(%lf,&A[n].r);if(A[n].r0)A[n].r=-A[n].r;printf(请输入角度:);fflush(stdin);scanf(%lf,&A[n].t);A[n].t=A[n].t*PI/180;A[n].x=cos(A[n].t)*A[n].r;A[n].y=sin(A[n].t)*A[n].r;}}voidother(){intchu;inti,j;printf(请输入第一个数的下标(0-9):);fflush(stdin);scanf(%d,&i);if(i0||i9)return;printf(请输入第二个数的下标(0-9):);fflush(stdin);scanf(%d,&j);if(j0||j9)return;A[6].x=A[i].x+A[j].x;A[6].y=A[i].y+A[j].y;A[6].r=sqrt(pow(A[6].x,2)+pow(A[6].y,2));A[6].t=atan(A[6].y/A[6].x);A[7].x=A[i].x-A[j].x;A[7].y=A[i].y-A[j].y;A[7].r=sqrt(pow(A[7].x,2)+pow(A[7].y,2));A[7].t=atan(A[7].y/A[7].x);A[8].r=A[i].r*A[j].r;A[8].t=A[i].t+A[j].t;A[8].x=cos(A[8].t)*A[8].r;A[8].y=sin(A[8].t)*A[8].r;if(A[1].r==0)chu=0;else{chu=1;A[9].r=A[i].r/A[j].r;A[9].t=A[i].t-A[j].t;A[9].x=cos(A[9].t)*A[9].r;A[9].y=sin(A[9].t)*A[9].r;}printf([%d]+[%d]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,i,j,A[6].x,A[6].y,A[6].r,A[6].t*180/PI);printf([%d]-[%d]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,i,j,A[7].x,A[7].y,A[7].r,A[7].t*180/PI);printf([%d]*[%d]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,i,j,A[8].x,A[8].y,A[8].r,A[8].t*180/PI);if(chu==1)printf([%d]/[%d]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,i,j,A[9].x,A[9].y,A[9].r,A[9].t*180/PI);fflush(stdin);getchar();}voidother2(){intchu;inti,j;printf(请输入第一个数的下标(0-9):);fflush(stdin);scanf(%d,&i);if(i0||i9)return;printf(请输入第二个数的下标(0-9):);fflush(stdin);scanf(%d,&j);if(j0||j9)return;A[6].x=A[i].x+A[j].x;A[6].y=A[i].y+A[j].y;A[6].r=sqrt(pow(A[6].x,2)+pow(A[6].y,2));A[6].t=atan(A[6].y/A[6].x);A[7].x=A[i].x-A[j].x;A[7].y=A[i].y-A[j].y;A[7].r=sqrt(pow(A[7].x,2)+pow(A[7].y,2));A[7].t=atan(A[7].y/A[7].x);A[8].r=A[i].r*A[j].r;A[8].t=A[i].t+A[j].t;A[8].x=cos(A[8].t)*A[8].r;A[8].y=sin(A[8].t)*A[8].r;if(A[1].r==0)chu=0;else{chu=1;A[9].r=A[i].r/A[j].r;A[9].t=A[i].t-A[j].t;A[9].x=cos(A[9].t)*A[9].r;A[9].y=sin(A[9].t)*A[9].r;}printf([%d]+[%d]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,i,j,A[6].x,A[6].y,A[6].r,A[6].t*180/PI);printf([%d]-[%d]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,i,j,A[7].x,A[7].y,A[7].r,A[7].t*180/PI);printf([%d]*[%d]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,i,j,A[8].x,A[8].y,A[8].r,A[8].t*180/PI);if(chu==1)printf([%d]/[%d]:实部:%lg虚部:%lg半径:%lg角度:%lg\n,i,j,A[9].x,A[9].y,A[9].r,A[9].t*180/PI);printf(1.将加法结果存储\n);printf(2.将减法结果存储\n);printf(3.将乘法结果存储\n);printf(4.将除法结果存储\n);printf(请选择:);fflush(stdin);scanf(%d,&i);if(i1||i4)return;if(chu==0&&i==4)return;printf(请输入要存入的数组
本文标题:C语言程序相量的计算
链接地址:https://www.777doc.com/doc-2908096 .html