欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    面向过程软件课程设计报告.doc

    • 资源ID:865380       资源大小:343KB        全文页数:13页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向过程软件课程设计报告.doc

    1、目录一、面向过程设计题5-判断日期与星期1.1 需求分析.91.2 概要设计.101.3 详细设计与编码.111.4 调试分析.131.5 用户使用说明 .131.6 设计心得.13二、面向过程设计题8-由计算机生成简单的四则运算题;用户给出答案 2.1 需求分析132.2 概要设计.142.3 详细设计与编码.162.4 调试分析.172.5 用户使用说明 .172.6 设计心得.17三、面向对象程序设计3虚函数的使用与Fibonacci数列。2.1 需求分析132.2 概要设计.142.3 详细设计与编码.162.4 调试分析.172.5 用户使用说明 .172.6 设计心得-18四、面向

    2、对象程序设计6反输入问题。2.1 需求分析132.2 概要设计.142.3 详细设计与编码.162.4 调试分析.172.5 用户使用说明 .172.6 设计心得-18五、图形界面编程1-用可视化编程语言实现计算器2.1 需求分析132.2 概要设计.142.3 详细设计与编码.162.4 调试分析.172.5 用户使用说明 .172.6 设计心得-18六、数据结构-求A矩阵的转置矩阵B2.1 需求分析132.2 概要设计.142.3 详细设计与编码.162.4 调试分析.172.5 用户使用说明 .172.6 设计心得-18七、数据结构-删除结点p 的前趋结点2.1 需求分析132.2 概要

    3、设计.142.3 详细设计与编码.162.4 调试分析.172.5 用户使用说明 .172.6 设计心得-18(1)需求分析以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?明确规定:输入的形式和输出、值的范围输出的形式程序所能达到的功能测试的数据:包括正确的输入和错误的输入及其相应的输出结果(2)概要设计说明程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。(3)详细设计与编码实现概要设计中定义的数据类型和操作。要求源程序中加有适当注释,以增加程序的可读性,关键算法部分画出程序流程图。(4)调试分析内容包括: 调试过程中遇到的问题并且是如何解决的以及

    4、对设计实现的回顾讨论和分析; 经验和体会等。(5)用户使用说明说明用户如何使用你编写的程序,详细列出每一步的操作步骤。(6)测试分析设计测试用例,分析测试结果。要求测试用例应该完整和严谨,且其测试设计应分散于需求分析、软件设计等各个过程。(7)设计体会主要介绍课程设计过程的收获、遇到问题及解决问题过程的思考、程序调试能力的思考。(8) 源程序及设计报告电子版上传服务器(统一封面、目录、格式)。一、面向过程设计题5.判断日期与星期(1)需求分析1.用户任意输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。主要思路是计算用户输入

    5、的确定的年份、星期与所要计算的日期之间的相隔天数,再整除7。因此定义一个整型变量sum用于盛放相隔的天数。由用户输入一个年份和该年一月一日是星期几,首先计算出输入的确定的年份与所要计算年份之间间隔多少年,然后sum=sum*365,在计算出这两个年份之间的年份有多少个闰年,用一个循环若是闰年执行sum=sum+1;接下来判断要计算的年份是否为闰年,不是则跳出,是则继续判断要计算的月份是否大二,是则执行sum=sum+1,不是则跳出。最后用所得的sum加上输入的一月一日星期数在除七取余,再判断余数,余数为零执行余数加七,输出余数即可输入的数均为int型,当用户任意指定一个年份并输入这一年的一月一

    6、日是星期几,则可以计算大于该年份的任意年份的某一天的星期。【输入数据】年2000、星期6;年2011、月10、日20【输出数据】星期4(2)概要设计int s=0,31,28,31,30,31,30,31,30,31,30,31,30;盛放各个月份的天数。使用一个for循环计算两个年份之间的闰年数。(3)详细设计与编码for(int i=0;i=n;i+)x=x+si;if(f!=0)for(int j=0;j2)c=c+1;/判断当年是否为闰年,并且判断所计算的月份是否大于二月。源程序已上传(4)调试分析2.错误的数据(不能计算比输入的年份小的年份)由于本程序涉及到年份所以要考虑的要素很多,

    7、比若说年份是否为闰年,要计算的月份是否大于二月,取余的数是否为零等,所以在设计时要综合考虑多种因素。(5)用户使用说明用户必须知道每一年的一月一号是星期几,只有这样才能算出要计算的具体某一天是星期几。(6)设计心得本程序要考虑的因素很多所以要耐心的一遍遍调试以便找到没考虑到因素。比如说,在考虑本年为闰年时是否在间隔的天数上加一的问题,你必须先判断计算的月份是否大于2,如大于则加以一,否则不加。二、面向过程设计题8-由计算机生成简单的四则运算题;用户给出答案 (1)需求分析计算机生成简单的四则运算题;用户给出答案;计算机判断对错。直到用户回答说不再继续做了时结束程序。根据题目要求,规定如下:【输

    8、入数据】(位数10,100任选一个)10(1、2、3、4、5运算任选一个)1,输入答案【输出数据】正确或错误,并询问是否继续,重复第一步最后输出正确率。1,2,3,4,5分别代表加、减、乘、除、和退出四个选项。供用户选择。(2)概要设计1、int result,num,answer;/计算正确率,计算位数 char op; /设定的运算 int wrong=0,correct=0;/错误个数,正确个数2、定义双精度变量a,b,answer为用户输入3、随机输出四则用算4、主程序流程Step1、进入while循环Step2、让用户选择运算的位数,计算机随机生成数字Step3、让用户选择运算op,

    9、并输出答案Step4、直到用户选着退出时输出正确率(3)详细设计与编码#include#include #includeusing namespace std;while(op!=q) cout请选择要计算的数值位数 10或100num; cout请选择计算符号 1+ 2- 3* 4/或者退出按5op; srand(int)time(0);/保证每次的输出值不同 double a=rand()%num;double b=rand()%num;switch(op)源程序已上传(4)调试分析如下调试情况取得了题目所要求的效果,说明了程序的正确性(5)用户使用说明Step1.打开程序Step2、输入

    10、运算的位数10或100Step3、输入要进行的运算1、2、3、4、5。(6)设计体会通过本次试验加强了我对while循环和switch语句使用的理解,开始时并不会使用生成随机数,通过在网上的查找。终于让我学会了如何去生成一组随机数,所以此次实验收获很多。三、面向对象程序设计3虚函数的使用与Fibonacci数列。(1)需求分析使用虚函数,计算出fibonacci数列的任一项的值要求使用三种方法。要求通过在基类baseCla及其派生类fib1Cla、fib2Cla和fib3Cla完成操作。输入int型,输出double型,并且精确到小数点后六位。(2)概要设计class baseCla /自定义

    11、的基类baseCla;class fib1Cla:public baseCla /由基类baseCla派生出的fib1Cla类;class fib2Cla:public baseCla /派生类fib2Cla;void fun(baseCla *p, int n) void main()主函数调用fun()函数,在fun()函数中定义指向基类的指针,通过虚函数的作用派生为 指向不同类型的指针,从而输出函数值。使用到了虚函数的多态性。(3)详细设计与编码class baseCla /自定义的基类baseClapublic:virtual double fib(int n)=0;/基类baseCl

    12、a中说明了一个虚函数fib,且为纯虚函数;class fib1Cla:public baseCla /由基类baseCla派生出的fib1Cla类public:virtual double fib(int n);/派生类中说明同一个虚函数fib(简单变量“数据平移”法);class fib2Cla:public baseCla /派生类fib2Clapublic:virtual double fib(int n);/派生类中说明同一个虚函数fib(使用数组的求解法);void fun(baseCla *p, int n) void main()。源程序已上传(4)调试分析此程序主要涉及到虚函数

    13、的定义及功能,为此在编写程序前主要将有关虚函数的一些性质重新看了一遍了,收获了很多。至于程序设计本身主要包括了前一阶段所学的一些算法,如:递归调用,数据平移等,没有太大难度。程序基本正确。(5)用户使用说明由于本程序不实用,在编写的过程中没有设置用户接口,所以使用是不需要输入任何数,所有要用到的数据都已在程序中输入完毕。(6)设计心得本次编写的程序主要是关于虚函数的使用这一方面,由于以前对虚函数没有针对性的使用,所以虚函数的一些用法都还不太熟悉。本次针对性的使用巩固和加深了对虚函数的认识,同时编写中用到以前的算法也帮我复习了一遍前面的知识。四、面向对象程序设计6反输入问题。(1)需求分析编写一

    14、类模板tmplt,实现反序输出问题,即输出与输入的数据相反的数据。其中使用类型参数T(使所处理的元素类型可变化)。编制主函数,将类模板实例化为某个具体的类并说明类对象,之后通过对象调用其负责输入数据的成员函数,再通过对象调用另一成员函数按反序输出那些输入数据。【输入数据】(输入为int型)23,34,45【输出数据】(输出为int型)45,34,23(2)概要设计template class tmplt / n个T类型的数据存放于数组arr之中;void main()主函数调用类中的公有的函数;(3)详细设计与编码template class tmplt T arrn;/ n个T类型的数据存放

    15、于数组arr之中public:void dataIn(); /从键盘输入n个T类型数据放入arr数组中void reverseOut();/将arr数组中的数据按输入的相反顺序输出;void main()源程序已上传(4)调试分析1、正确测试()错误测试()由于程序程序中涉及到模板,所以本想应该能够加“#include”语句,以便能够使程序适用于字符串数组,然而由于没能熟练地掌握字符串数组的运用导致编出的程序不适用字符串数组,到现在也没找到方法。所以只能有时间再把有关字符串的章节再看一遍,再来调试。除了这个问题以外,调试还是很顺利的。(5)用户使用说明按照程序中的指示操作即可,注意不能涉及到字

    16、符。(7)设计体会在本次程序的编写中,较多的涉及到了前面学过的知识与类之间的联系,记得此程序在第一次面向对象程序设计中已经解决过了,然而再次出现,并且要求用类模板实现,增加了难度,但基本原理任然没变。由于在字符串这一方面不是太熟悉,故没能设计出想要的功能,所以在以后的学习之余,还要将前面的知识加以巩固,加强与后面的联系。五、图形界面编程1-用可视化编程语言实现计算器(1)需求分析设计一个计算器。该计算器需要实现基础的数学运算,如加,减,乘,除。根据题目要求,规定如下:测试数据:【输入数据】20【输入数据】除【输入数据】2.5【输出数据】8(2)概要设计1、绘制一个简单的计算器界面2、添加成员函

    17、数CEditm_ctlB;CEditm_ctlA;CStaticm_pOp;CStringm_strA;CStringm_strB;CListBoxm_List;3、主程序流程Step1、进入主程序Step2、让用户输入操作数Step3、进行相关运算,输出数据Step4、按下AC键清零(3)详细设计与编码void CMYDlg:OnAdd()/加法void CMYDlg:OnMulish()/减法void CMYDlg:OnTimes()/乘法void CMYDlg:OnDivi()/除法void CMYDlg:OnCalc()/等号键void CMYDlg:OnEmpty()/清零设计到的几

    18、个重要函数SetWindowText()/改变指定窗口的标题栏的文本内容UpdateData()/刷新控件的值到对应的窗口SetFocus()/对指定的窗口设置键盘焦点AddString()/调用此成员函数添加一个字符串到列表框中GetWindowText()/将指定窗口的标题文本拷贝到一个缓存区内Gcvt()/把浮点数转换成字符串Atof()/把字符串转换成浮点数源程序已上传(4)调试分析(5)用户使用说明Step1、打开程序Step2、输入要操作的数及要进行的运算Step3、得到答案后,按下AC清零继续进行运算。(7)设计体会在MFC中由于涉及到的函数太多,记忆起来很麻烦,所以在设计过程中

    19、比较难,在设计中我通过不断的查找各种函数的功能才得以将此计算器调试好,今后在MFC中还要好好学习。六、数据结构-求A矩阵的转置矩阵B(1)需求分析输入两个正整数m和n,而后通过使用指针配合new运算符生成一个m行n列的二维动态数组A以及另一个n行m列的二维动态数组B,之后为A输入数据(A矩阵数据),进而求出其转置矩阵B(数据放动态数组B中)并输出结果。【输入数据】3,4(3*4矩阵)2、4、5、6、4、6、7、9、1、2、3、5.【输出数据】2 4 1 4 6 2 5 7 3 6 9 5(2)概要设计(1)定义两个变量为lin,col分别代表矩阵的行值、列值,并且都为int型。(2)使用new

    20、 运算符生成一个矩阵(3)两个for循环求出转置矩阵(3)详细设计与编码int *a; /a 为指向指针的指针(二重指针) a = new int*lin; /动态生成一组共 lin(行数)个int*指针间 源程序已上传(4)调试分析(5)用户使用说明Step 1、打开程序Step 2、按照程序的指示输入行和列Step 3、输入药转置的矩阵Step 4、得出结果(7)设计体会本次试验使我学会了如何通过new运算符动态生成一个矩阵,这正是我以前所不太清楚的,让我认识到new运算符的功能强大,而且在编程中使我弄懂了对指针的指针的用法。其余试验中只是简单地涉及到一些基本循环的应用,通过前面的学习这些

    21、已近都很熟悉了。七、数据结构- 删除结点p 的前趋结点(1)需求分析假设有一个循环链表的长度大于1,且表中既无头结点也无头指针。已知p为指向链表中某结点的指针,试编写算法在链表中删除结点p 的前趋结点。【输入数据】(表长)5,数据域值(1,2,3,4,5)指定节点3。【输出数据】(删除元素)5(2)概要设计设置三个函数分别完成下列功能(1) 构造一个线性循环链表。(2) 任意指定一个指针。(3) 通过这个指针删除它的前驱结点(4) 详细设计与编码 typedef struct Nodeint data;Node *next;Node,*LinkList; 源程序已上传(4)调试分析程序基本运行无误(5) 用户使用说明Step1、打开程序Step2、输入建立链表的长度Step3、指定一个节点pStep4、运行结束(7)设计体会通过本次试验,我对循环链表的使用又有了新的提高,而且在实验中通过不断地调试终于发现错误,并且改正了他,调试程序真的很重要,我在以后还要好好学习他。文档来源网络,版权归原作者。如有侵权,请告知,我看到会立刻处理。 .


    注意事项

    本文(面向过程软件课程设计报告.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922