软件课程设计 实验报告(总)陈开武_第1页
软件课程设计 实验报告(总)陈开武_第2页
软件课程设计 实验报告(总)陈开武_第3页
软件课程设计 实验报告(总)陈开武_第4页
软件课程设计 实验报告(总)陈开武_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

编号()字号软件课程设计报告班级信息安全123姓名陈开武学号08123634指导老师李政伟中国矿业大学计算机科学与技术学院2013年4月软件课程设计任务书专业年级信息安全123学生姓名陈开武任务下达日期2013年5月20日课程设计日期2013年5月20日至2013年7月1日课程设计题目软件课程设计类别题目序号成绩面向过程1用迭代法求A的立方根4输入一个人民币钱数,使用最少张数的人民币纸币,凑成上述的钱数,并输出求取结果面向对象1复数的加法以及对复数的输出以及在类中添加对复数进行其他基本运算5自定义CSTUDENT类的对象数据进行存储与读写处理图形界面1通过MFCAPPWIZARD创建一个计算器数据结构1用链表和数组两种方式分别实现栈的出栈、入栈、取栈顶元素、判空、查找等操作;3编程序,按如下方法求A矩阵的转置矩阵B输入两个正整数M和N,而后通过使用指针配合NEW运算符生成一个M行N列的二维动态数组A以及另一个N行M列的二维动态数组B,之后为A输入数据(A矩阵数据),进而求出其转置矩阵B(数据放动态数组B中)并输出结果。软件课程设计指导教师评阅书指导教师评语(基础理论及基本技能的掌握;独立解决实际问题的能力;研究内容的理论依据和技术方法;取得的主要成果及创新点;工作态度及工作量;总体评价及建议成绩;存在问题等)成绩指导教师签字年月日目录一、面向过程设计题1用迭代法求A的立方根11需求分析412概要设计413详细设计与编码514调试分析615用户使用说明716设计心得7二、面向过程设计题4用最少张数的人民币纸币,凑成输入的钱数21需求分析722概要设计723详细设计与编码724调试分析1025用户使用说明1026设计心得10三、面向对象设计题1对复数的基本运算31需求分析832概要设计933详细设计与编码934调试分析935用户使用说明1036设计心得10四、面向对象设计题5设计类CSTUDENT并对文件输入和检索学生信息41需求分析1042概要设计1143详细设计与编码1144调试分析1145用户使用说明1246设计心得12五、图形界面1计算器(计算器RAR)51需求分析2652概要设计2653详细设计与编码2854调试分析2855用户使用说明2956设计心得29六、数据结构1用链表和数组两种方式分别实现栈的基本操作61需求分析3062概要设计3063详细设计与编码3464调试分析3565用户使用说明3566设计心得35七、数据结构3求A矩阵的转置矩阵B71需求分析3672概要设计3773详细设计与编码3974调试分析4175用户使用说明4176设计心得41八、课程设计总结421、面向过程程序设计111需求分析编程序用迭代法求A的立方根,求立方根的迭代公式为XI1(2XI)/3A/3XIXI假定X的初值为A,迭代到|XI1XI|USINGNAMESPACESTDINCLUDE/先声明程序要调用POW函数。INTMAINDOUBLEA,B,X,Y,Z/定义5个DOUBLE型的变量WHILE1COUTAIFA000001/利用循环使A的立方根精确到小数点后五位。YPOWA,10/3/调用POW函数来求A的立方根。COUTUSINGNAMESPACESTDINTMAININTA,K1,K2,K3,K4,K5,K6,K7,N/定义8个整型变量DO/加入DOWHILE循环,保证数据多次运算COUTA/输入总金额数IFA50K2A/50ELSEK20/通过IF语句计算出50元面额的钱的张数AAK250IFA20K3A/20ELSEK30/通过IF语句计算出20元面额的钱的张数AAK320IFA10K4A/10ELSEK40/通过IF语句计算出10元面额的钱的张数AAK410IFA5K5A/5ELSEK50/通过IF语句计算出5元面额的钱的张数AAK55IFA2K6A/2ELSEK60/通过IF语句计算出2元面额的钱的张数AAK62K7A/通过IF语句计算出1元面额的钱的张数COUTNWHILEN1RETURN024调试分析分析经过输入各类预期数值后,都取得了预期值,这说明了程序的正确性。但对于用户可能输入的各类数据还没有充分的考虑到,例如但用户输入的是一个字母时程序就会崩溃。25用户使用说明按提示操作,输入金额数,如果输入的不是正整数,会有错误提示。若输入正确,会得出各面值的张数。然后选择是否继续,输入1或0,继续或终止程序。26设计心得这次编程要比之前的更熟练一点,但还有很多地方需要继续学习,比如程序的健壮性,对用户可能的输入结果进行分析的能力都要加强培养,希望随着课程的开展,能够对以前的知识更加熟练、巩固,并提高自己的很多不足。三、面向对象设计题131需求分析自定义一个示意性的复数类型COMPLEX,其中含有若干个成员函数,使用该类可以完成复数的加法以及对复数的输出。请完成类定义,并编制主函数,说明COMPLEX类对象,对定义的各成员函数进行调用。CLASSCOMPLEXDOUBLEREAL/复数实部DOUBLEIMAG/复数虚部PUBLICCOMPLEX/无参构造函数COMPLEXDOUBLER,DOUBLEI/2参构造函数COMPLEXADDCOMCOMPLEXC2/调用者对象与对象C2相加,返回COMPLEX类对象VOIDOUTCOM/输出调用者对象的有关数据(各分量)进一步,在类中添加对复数进行其他基本运算(如,复数减、乘、除、取模等)的相应成员函数,并通过主函数处的调用来验证各函数的使用正确性。测试数据【输入数据】123I和30I【输出数据】见调试分析32概要设计(1)定义一个COMPLEX类存放数据成员和成员函数;(2)构造函数的初始化;(3)对各种运算符进行重载;(4)提示用户输入要计算的数;(5)调用函数完成运算;(6)输出运算结果;33详细设计与编码主函数定义类对象提示用户从键盘输出两个复数程序一次运行结束2源程序INCLUDEINCLUDEUSINGNAMESPACESTDCLASSCOMPLEX/COMPLEX类的定义/PRIVATE/私有数据成员/DOUBLEREALDOUBLEIMAGPUBLICCOMPLEXREAL0IMAG00/构造函数的初始化/COMPLEXCOMPLEXDOUBLER,DOUBLEIREALRIMAGICOMPLEXOPERATORCOMPLEX/重载运算符,下面的同理/COMPLEXOPERATORCOMPLEXCOMPLEXOPERATORCOMPLEXCOMPLEXOPERATOR/COMPLEXDOUBLEXCOMPLEXVOIDDISPLAY/输出函数/VOIDSETDOUBLECOMPLEXXCOMPLEXINTIVOIDCOMPLEXSETCOUTREALIMAG输出两个复数的各种运算结果VOIDCOMPLEXDISPLAY/下面各类运算函数/COUTINCLUDEINCLUDEUSINGNAMESPACESTDCLASSCSTUDENT/学生类的定义/PRIVATECHARNUM10CHARNAME10CHARSEX10/上面均于数组的形式存储/INTAGE,MATH,COM,ENG,TOTALDOUBLEAVEPUBLICVOIDGETDATAVOIDOUTDATEVOIDCSTUDENTGETDATA/输入函数/COUTNUMCOUTNAMECOUTSEXCOUTAGECOUTMATH用户选择要录入信息还是显示信息显示从文件输入对应学生信息,并调用PUT函数输出信息录入不断重复上述操作COUTCOMCOUTENGCOUTNFORINTI0IASWITCHA/通过用户的输入选择不同的函数/CASE1GETBREAKCASE2PUTBREAKDEFAULTCOUTLOADICONIDR_MAINFRAMEVOIDCCALCULATORDLGDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGDODATAEXCHANGEPDX/AFX_DATA_MAPCCALCULATORDLGDDX_TEXTPDX,IDC_EDIT1,M_EDIT1DDV_MAXCHARSPDX,M_EDIT1,18/AFX_DATA_MAPBEGIN_MESSAGE_MAPCCALCULATORDLG,CDIALOG/AFX_MSG_MAPCCALCULATORDLGON_WM_SYSCOMMANDON_WM_PAINTON_WM_QUERYDRAGICONON_BN_CLICKEDIDC_BUTTON0,ONBUTTON0ON_BN_CLICKEDIDC_BUTTON1,ONBUTTON1ON_BN_CLICKEDIDC_BUTTON2,ONBUTTON2ON_BN_CLICKEDIDC_BUTTON3,ONBUTTON3ON_BN_CLICKEDIDC_BUTTON4,ONBUTTON4ON_BN_CLICKEDIDC_BUTTON5,ONBUTTON5ON_BN_CLICKEDIDC_BUTTON6,ONBUTTON6ON_BN_CLICKEDIDC_BUTTON7,ONBUTTON7ON_BN_CLICKEDIDC_BUTTON8,ONBUTTON8ON_BN_CLICKEDIDC_BUTTON9,ONBUTTON9ON_BN_CLICKEDIDC_BUTTONADD,ONBUTTONADDON_BN_CLICKEDIDC_BUTTONBACK,ONBUTTONBACKON_BN_CLICKEDIDC_BUTTONCALC,ONBUTTONCALCON_BN_CLICKEDIDC_BUTTONCEN,ONBUTTONCENON_BN_CLICKEDIDC_BUTTONCLS,ONBUTTONCLSON_BN_CLICKEDIDC_BUTTONCU,ONBUTTONCUON_BN_CLICKEDIDC_BUTTONFU,ONBUTTONFUON_BN_CLICKEDIDC_BUTTONPOINT,ONBUTTONPOINTON_BN_CLICKEDIDC_BUTTONSUB,ONBUTTONSUBON_BN_CLICKEDIDC_BUTTON10,ONBUTTON10ON_BN_CLICKEDIDC_BUTTON11,ONBUTTON11ON_BN_CLICKEDIDC_BUTTON12,ONBUTTON12/AFX_MSG_MAPEND_MESSAGE_MAP/CCALCULATORDLGMESSAGEHANDLERSBOOLCCALCULATORDLGONINITDIALOGCDIALOGONINITDIALOG/ADD“ABOUT“MENUITEMTOSYSTEMMENU/IDM_ABOUTBOXMUSTBEINTHESYSTEMCOMMANDRANGEASSERTIDM_ABOUTBOXASSERTIDM_ABOUTBOXAPPENDMENUMF_SEPARATORPSYSMENUAPPENDMENUMF_STRING,IDM_ABOUTBOX,STRABOUTMENU/SETTHEICONFORTHISDIALOGTHEFRAMEWORKDOESTHISAUTOMATICALLY/WHENTHEAPPLICATIONSMAINWINDOWISNOTADIALOGSETICONM_HICON,TRUE/SETBIGICONSETICONM_HICON,FALSE/SETSMALLICON/TODOADDEXTRAINITIALIZATIONHEREM_EDIT1“/对显示屏进行初始化,显示0UPDATEDATAFALSERETURNTRUE/RETURNTRUEUNLESSYOUSETTHEFOCUSTOACONTROLVOIDCCALCULATORDLGONSYSCOMMANDUINTNID,LPARAMLPARAMIFNIDDLGABOUTDOMODALELSECDIALOGONSYSCOMMANDNID,LPARAM/IFYOUADDAMINIMIZEBUTTONTOYOURDIALOG,YOUWILLNEEDTHECODEBELOW/TODRAWTHEICONFORMFCAPPLICATIONSUSINGTHEDOCUMENT/VIEWMODEL,/THISISAUTOMATICALLYDONEFORYOUBYTHEFRAMEWORKVOIDCCALCULATORDLGONPAINTIFISICONICCPAINTDCDCTHIS/DEVICECONTEXTFORPAINTINGSENDMESSAGEWM_ICONERASEBKGND,WPARAMDCGETSAFEHDC,0/CENTERICONINCLIENTRECTANGLEINTCXICONGETSYSTEMMETRICSSM_CXICONINTCYICONGETSYSTEMMETRICSSM_CYICONCRECTRECTGETCLIENTRECTINTXRECTWIDTHCXICON1/2INTYRECTHEIGHTCYICON1/2/DRAWTHEICONDCDRAWICONX,Y,M_HICONELSECDIALOGONPAINT/THESYSTEMCALLSTHISTOOBTAINTHECURSORTODISPLAYWHILETHEUSERDRAGS/THEMINIMIZEDWINDOWHCURSORCCALCULATORDLGONQUERYDRAGICONRETURNHCURSORM_HICONVOIDCCALCULATORDLGONBUTTON0UPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT10UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON1/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT11UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON2/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT12UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON3UPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT13UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON4UPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT14UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON5UPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT15UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON6UPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT16UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON7UPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT17UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON8UPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT18UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON9UPDATEDATAIFCAT1ELSEIFM_EDIT1“0“M_EDIT1“M_EDIT19UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTONADD/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATACS1M_EDIT1M_EDIT1“SOS1UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTONBACKUPDATEDATAM_EDIT1M_EDIT1LEFTM_EDIT1GETLENGTH1UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTONCALC/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREDOUBLEF1,F2,F3SWITCHSOSCASE1UPDATEDATACS2M_EDIT1IFCS1LEFT1F1ATOFCS1IFCS1LEFT1CS1CS1RIGHTCS1GETLENGTH1F11ATOFCS1F2ATOFCS2F3F1F2M_EDIT1FORMAT“F“,F3UPDATEDATAFALSEBREAKCASE2UPDATEDATACS2M_EDIT1F1ATOFCS1F2ATOFCS2F3F1F2M_EDIT1FORMAT“F“,F3UPDATEDATAFALSEBREAKCASE3UPDATEDATACS2M_EDIT1F1ATOFCS1F2ATOFCS2F3F1F2M_EDIT1FORMAT“F“,F3UPDATEDATAFALSEBREAKCASE4UPDATEDATACS2M_EDIT1F1ATOFCS1F2ATOFCS2IFF20MESSAGEBOX“被除数不能为零“ELSEF3F1/F2M_EDIT1FORMAT“F“,F3UPDATEDATAFALSEBREAKCASE6UPDATEDATACS2M_EDIT1F1ATOFCS1F2ATOFCS2F3INTF1INTF2M_EDIT1FORMAT“F“,F3UPDATEDATAFALSEBREAKVOIDCCALCULATORDLGONBUTTONCEN/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATACS1M_EDIT1M_EDIT1“SOS3UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTONCLSUPDATEDATAM_EDIT1“SOS0UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTONCU/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATACS1M_EDIT1M_EDIT1“SOS4UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTONFU/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATA/CS1M_EDIT1/M_EDIT1“IFM_EDIT1LEFT1/截取M_EDIT1左边第一个字符M_EDIT1M_EDIT1RIGHTM_EDIT1GETLENGTH1ELSEM_EDIT1M_EDIT1SOS5UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTONPOINT/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATAM_EDIT1“CAT1UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTONSUB/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATACS1M_EDIT1M_EDIT1“SOS2UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON10/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREUPDATEDATACS1M_EDIT1M_EDIT1“SOS6UPDATEDATAFALSEVOIDCCALCULATORDLGONBUTTON11UPDATEDATADOUBLEF1,F3CS1M_EDIT1F1ATOFCS1IFF1DEFINENULL0USINGNAMESPACESTDSTRUCTSNODEINTDATESTRUCTSNODEPRIORSTRUCTSNODETOPVOIDJIANSNODELPRIORNULLVOIDPUSHSNODEPNEWSNODEPDATEEPPRIORLTOPLTOPPVOIDPOPSNODELTOPPPRIORCOUTDATECOUTPRIOR,IIFPDATEECOUTDATEPRIORCOUTNCOUTMPUSHA,MINTX0DOCOUTXIFX1POPA,ECOUTYPUSHA,YELSEIFX6INTZCOUTZCHAZHAOA,ZELSEBREAKWHILEX8RETURN0源代码(数组)INCLUDEUSINGNAMESPACESTD/顺序栈DEFINESTACK_INIT_SIZE100/存储空间初始分配量DEFINESTACKINCREMENT10/存储空间分配增量TYPEDEFSTRUCTINTBASE/在构造之前和销毁之后,BASE的值为NULLINTTOP/栈顶指针INTSTACKSIZE/当前已分配的存储空间,以元素为单位SQSTACKVOIDINITSTACKSQSTACKIFSBASECOUTSSTACKSIZE/栈满,追加存储空间SBASEINTREALLOCSBASE,SSTACKSIZESTACKINCREMENTSIZEOFINTIFSBASECOUTNSTACKSTACKSIZENDOCOUTMSWITCHMCASE1COUTZIFISTACKSTACKSIZECOUTEFINDSTACK,EBREAKDEFAULTCOUTUSINGNAMESPACESTDVOIDMAIN/主函数INTI,J,M,NINTA,BCOUTMNANEWINTMFORI0IAIJCOUT“原矩阵为“FORI0IMICOUTENDLFORJ0JNJCOUTAIJ“T“COUTENDL/新分配存储空间存在转置后的矩阵COUT“对应转置矩阵为“BNEWINTNFORI0INIBIN

温馨提示

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

评论

0/150

提交评论