数据结构 复数的实现与操作.doc_第1页
数据结构 复数的实现与操作.doc_第2页
数据结构 复数的实现与操作.doc_第3页
数据结构 复数的实现与操作.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*/文件名: * * */作者:湖北科技学院 计科院 曹帅/日期:2013.10.28/功能:实现复数的基本操作/*/头文件#include#include#include#include#include/函数返回状态代码#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define INFEASIBLE -1#define OVERFLOW -2/使用动态分配的顺序存储结构typedef int Status;typedef int ElemType;typedef ElemType * Complex;Status InitComplex(Complex &C,ElemType real,ElemType imag)/初始化一个复数C=(ElemType *)malloc(2*sizeof(ElemType);if(!C) exit(OVERFLOW);C0=real;C1=imag;return OK;/InitComplexStatus DestroyComplex(Complex &C)/销毁一个复数free(C);C=NULL;return OK;/DestroyComplexStatus GetReal(Complex C,ElemType &real)/获取复数的实数部分real=C0;return OK;/GetRealStatus AddComplex(Complex C1,Complex C2,Complex &C3)/两个复数相加C3=(ElemType *)malloc(2*sizeof(ElemType);if(!C3) exit(OVERFLOW);C30=C10+C20;C31=C11+C21;return OK;/AddComplexStatus MultiplyComplex(Complex C1,Complex C2,Complex &C4)/两个复数相乘C4=(ElemType *)malloc(2*sizeof(ElemType);if(!C4) exit(OVERFLOW);C40=C10*C20-C11*C21;C41=C10*C21+C11*C20;return OK;/MutiplyComplexStatus SubComplex(Complex C1,Complex C2,Complex &C5)/两个复数相减C5=(ElemType *)malloc(2*sizeof(ElemType);if(!C5) exit(OVERFLOW);C50=C10-C20;C51=C11-C21;return OK;/SubComplexStatus DivComplex(Complex C1,Complex C2,Complex &C6)/两个复数相除C6=(ElemType *)malloc(2*sizeof(ElemType);if(!C6) exit(OVERFLOW);C60=(C10*C20+C11*C21)/(C20*C20+C21*C21);C61=(C10*C21-C11*C20)/(C20*C20+C21*C21);return OK;/AddComplexvoid main()Complex C1,C2,C3,C4,C5,C6;ElemType real1,imag1,real2,imag2,temp;int select,i;while(1)printf(ntt*复数操作菜单*nn);printf(tt 1.复数的输入;n);printf(tt 2.复数的输出;n);printf(tt 3.复数的四则运算;n);printf(tt 4.复数的实部获取;n);printf(tt 5.退出;nn);printf(tt*n);printf(tt您的选择是(1-5):);scanf(%d,&select);if(select 5|select 1)/限定输入选项printf(tt输入错误!n);printf(ttt按任意键返回主菜单.n);system(cls);getch();switch(select)case 1:system(cls);/清屏;printf(nt*输入操作界面*n);printf(nttreal part: );scanf(%d,&real1);printf(ttimage part: );scanf(%d,&imag1);printf(nttreal part: );scanf(%d,&real2);printf(ttimage part: );scanf(%d,&imag2);InitComplex(C1,real1,imag1);/创建复数InitComplex(C2,real2,imag2);/创建复数,若无该部则无法执行下一步AddComplex(C1,C2,C3);MultiplyComplex(C1,C2,C4);SubComplex(C1,C2,C5);DivComplex(C1,C2,C6);printf(ttt按任意键返回主菜单.n);system(cls);/清屏;getch();/返回主菜单;break;case 2: system(cls);/清屏;printf(t *输出操作界面*n);printf(nttComplex 1 is: (%d + %di)n,C10,C11);printf(ttComplex 2 is: (%d + %di)n,C20,C21);printf(ttt按任意键返回主菜单.n);getch();system(cls);/清屏system(cls);break;case 3: system(cls);/清屏printf(t*四则运算界面*n);printf(nttThe Add : n);printf(tt(%d+%di) + (%d+%di)= %d + %din,C10,C11,C20,C21,C30,C31);printf(nttThe Mut : n);printf(tt(%d+%di) * (%d+%di)= %d + %din,C10,C11,C20,C21,C40,C41);printf(nttThe Sub : n);printf(tt(%d+%di) - (%d+%di)= %d + %din,C10,C11,C20,C21,C50,C51);printf(nttThe Div : n);if(C61 = 0)printf(tt(%d+%di) / (%d+%di)= %d n,C10,C11,C20,C21,C60);elseprintf(tt(%d+%di) / (%d+%di)= %d + %din,C10,C11,C20,C21,C60,C61);printf(ttt按任意键返回主菜单.n);getch();system(cls);break;case 4: system(cls);/清屏printf(tt*实部获取界面*n);printf(nttWhich real part want to get(1 or 2) ? );scanf(%d,&i);if(i!=1&i!=2)printf(ttInput error!n);else if(i=1) GetReal(C1,temp);printf(ttFisrt complexs real part is: %dn,temp);else GetReal(C2,temp); printf(ttSeconed complexs real part is: %dn,temp);printf(ttt按任意键返回主菜单.n);getch();syste

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论