五招,打破面对编程题目无从下手的窘境 - Go语言中文社区

五招,打破面对编程题目无从下手的窘境


学习C++半年,分享一些小经验。很多初学者在做题目时,对题目不知道从哪里开始分析,不知道从哪里开始打代码,面对题目陷入无从下手的窘境。接下来我从小作业和大作业分别分析,分析我们无从下手的原因和解决方法。

小作业是指像求水花仙数,求素数,解应用题,打印图案等,这些难度较低,功能需求单一的题目。这些题目往往不需要多文件格式,也几乎用不着面向对象的程序设计思想(下面简称OOP),过程性和结构性编程就足以解决问题。只要把算法设计好,程序流程想清楚,这类题目就解了。

我主要讨论的是大作业。

做个总结:分析+设计,即先写报告再敲代码

大作业指的是一些OOP项目,在学校阶段,我们一般是接触不到大项目的,课程题目的话大都是让我们设计一些简单的系统。但是无论是大项目还是小项目,编程思路都是一致的,主体思维模式也是相同的,从小项目开始,要逐渐培养自己的编程思想和能力,这对将来不管是做硬件还后台还是前端都有很大的帮助。

先认识下在开发项目时会常遇见的问题,我们在设计和开发OOP项目时,会遇到很多问题,总的来说有三种:

1、迷路。很多初学者,大部分的分析和设计都是为了解决最大的问题,而往往忽略了各种细节的问题,这会导致在开发过程中的“迷路”,简单地说,就是想好了目的地,也计划一路开摩托车去,却没考虑到这中间有一大片沼泽地,于是决定换条路,结果来到另一片沼泽地。

2、分析瘫痪。这往往是由于在当前的开发阶段没有弄清所有的细节而感到不能继续下去。继续用上面的比喻,这就是你不断地寻找新的路线结果发现前面不是高山就是沼泽,你只能原地打圈。当然,无论做多少分析,总有更多问题一直到设计时才暴露,这时就需要迅速的分析和设计,并及时对系统进行执行测试。

3、不定要素的分析。这往往是针对大项目而言的,在分析阶段,没有充分的信息去发现和解决问题,因此在分析阶段就试图分析所有的不定因素会陷入分析瘫痪,继续比喻,你决定趟过这片沼泽地,结果在中间发现有潜伏的鳄鱼,进退维谷。解决这类问题需要多次循环的尝试。不要畏惧失败和出错而不敢下手。

知道我们大概会遇到的问题后,来讲下怎么解决,整个过程可以分为5个阶段。我用一个学生信息管理系统的例子来简单说明下。

第一阶段,制定计划

首先决定在此过程中应该有哪些步骤,在什么时间内完成。举个例子:

解题思路构造,周一,周二
代码框架设计,周三
代码完善,周四到周日
合理安排,严格按照计划进程,控制好节奏,很多难题会迎刃而解。

**第二阶段,题目分析。**就是解决“我们在做什么”的问题,确定这个系统要做什么,这一般在题目中会讲清楚,但我们必须有自己的理解,实际上就是对下列问题的回答:

1、谁将使用这个系统?(老师)
2、用这个系统做什么?(管理学生信息)
3、这个系统如何工作,或者说有什么功能?(读取、修改、输出数据等)
4、使用这个系统会遇到什么问题?(文件读取,数据保存、修改、删除,等)
在对第二阶段的问题有一定的理解后,就可以深入地进行分析。

**第三阶段,需求分析。**从这阶段开始写报告。需求分析分为2部分:功能需求分析和数据需求分析。

功能需求分析,考虑系统需要实现哪些功能,并一一列举出来,给自己最直观地答案。

举例:

学生信息管理系统,需要实现以下功能:

1、添加学生信息:用户输入学生信息
2、删除学生信息:输入学生学号,再次确认后删除学生信息
3、修改学生信息:用户通过指令指定修改指定学生的指定信息
4、and so on……

数据需求分析,根据功能需求分析,分析各个功能所需的数据。

举例:

根据上述功能需求分析,系统所需的数据如下:

1、学生总人数
2、学生姓名,性别,学号,各科成绩

**第四阶段,系统设计。**开始系统的框架设计,分为2个步骤:系统框架设计和系统功能设计。

系统框架设计,这一步骤我们必须做出设计、描述出这个系统需要哪些类和它们是如何交互的,即设计出每个类的名字、功能、数据成员、成员函数和每个类的交互方式。

对学生系统的系统框架设计:
                学生系统的系统框架设计

学生系统的系统框架
分别有学生类、课程类、管理类和菜单类,学生类和课程类以学号作为桥梁连接起来,管理类负责处理数据,菜单类为单体类用做交互接口。大概如此,你大可做得更仔细些,对代码实现也有利。

系统功能设计,系统的功能是通过类和函数来实现的,这个阶段要完成每个功能具体流程的设计,即每个功能的接口是什么,用到哪几个类之间的交互,具体操作流程是什么?

对学生系统的功能设计:

1、菜单功能:系统菜单,界面提供用户所有功能选项。

系统菜单业务流程图
系统菜单业务流程图
2、添加信息功能:读取外部数据后,用户可选择添加信息指令。

添加信息功能业务流程图
添加信息业务流程图
流程图展示形式并不唯一,自己能理解就行。

**第五阶段,代码实现。**通过前面的几个阶段,我们对题目本身和解题过程已经有了一个很明确的方向,这时我们去打代码,能很容易的先构建起一个框架,再将每个功能看作一个个子集,对每个功能对每个函数逐一进行完善,再加上后期的测试改进,这将是一个非常优秀的代码

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lc_rose/article/details/106569116
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 23:04:33
  • 阅读 ( 566 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢