精华内容
下载资源
问答
  • 软件程序设计中,我们通常会用到以下几种图,来帮助我们,分析问题,整理逻辑。 我将介绍这四种图的特性,以及区分它们的方法。 1.N-S图: 也叫盒图,由美国学者I.Nassi 和 B.Shneiderman提出,所以又称N-S图,...

    在软件程序设计中,我们通常会用到以下几种图,来帮助我们,分析问题,整理逻辑。
    我将介绍这四种图的特性,以及区分它们的方法。

    1.N-S图:

    也叫盒图,由美国学者I.Nassi 和 B.Shneiderman提出,所以又称N-S图,可以清晰的表示程序的结构以及流程,其主要特征为“矩形框”。
    在这里插入图片描述

    2.PAD图:

    全称为Problem Analysis Diagram,即问题分析图表,利用二维树形结构表示程序的控制流,也就是将程序功能的路线图给画出来,既可以表示程序的逻辑,也可以表示程序的结构,区分它的方法是程序的最左端有一条“竖线”,表示程序的“主线”。
    在这里插入图片描述

    3.程序流程图

    按照规定的符号来描述程序中各项操作和判断的图。表示程序的流程,具有三种结构,分别为顺序结构,选择结构和循环结构。区分它的方法是图的顶端总是存在一个“椭圆形的起始框”。
    在这里插入图片描述

    4.E-R图

    E-R图,即Entity Relationship Diagram,实体联系图,也就是表示各个实体之间的联系,图中有矩形框(实体),菱形框(联系),椭圆形框(属性),在面向对象编程中用来表示各个实体之间的关系,也用作数据库设计。区分它的方法为,各个框之间用”直线“相连,并且直线上有”1,n,m“来表示各个实体之间的数量关系。
    在这里插入图片描述

    展开全文
  • 程序设计语言与语言处理程序基础 编译过程 文法定义 文法 语法推导树 有限自动机 正规式   程序设计语言与语言处理程序基础   编译过程   文法定义 偶尔考   文法   语法推导树   ...

    目录

    程序设计语言与语言处理程序基础

    编译过程

    文法定义

    文法

    语法推导树

    有限自动机

    正规式


     

    程序设计语言与语言处理程序基础

     

    编译过程

     

    文法定义

    偶尔考

     

    文法

     

    语法推导树

     

    有限自动机

    考查的重点

     

    正规式

    栗子:

    答案D、C

    第二问有个方法,直接表示第一问中的ABC3个(因为是正确的)可能就有第二问的答案,并且要和文法G[S]保持等价

    例题:

    答案C

    展开全文
  • STM32程序烧录软件设计

    千次阅读 2019-11-03 21:34:37
    本次STM32程序烧录软件是基于本人的上一篇博客所设计的BootLoader实现的,因为实际使用过程中,我们不能说每次下载程序都打开一个Python工程来进行下载,到别的电脑上也不一定有Python的环境,最好的方式是能够做个...

          本次STM32程序烧录软件是基于本人的上一篇博客所设计的BootLoader实现的,因为实际使用过程中,我们不能说每次下载程序都打开一个Python工程来进行下载,到别的电脑上也不一定有Python的环境,最好的方式是能够做个下载助手,这样更加的使用和友好。 因为上一篇博客中使用的TCP客户端是用Python写的,Python也能用来开发界面软件,所以程序烧录软件用了PyQt5来做,

          PyQt5可以简单的理解为Python和QT的融合,QT是非常流行的功能强大的界面开发软件,PyQt几乎拥有QT中所有的功能,而且函数形式也是大同小异,使用PyQt开发的感觉总体上来说比用QT开发爽很多,因为PyQt中可以使用Python的各种API,有时候同一种功能的实现既可以用Python API来实现,也可以用QT的API来实现,哪种实现起来更爽就用哪种,因为以前学了一段时间的深度学习,用的是Python语言,如果使用PyQt的话,就可以把深度学习等等看起来比较牛逼的应用结合QT一起开发。

          一、烧录软件界面设计

          QT Designer的具体使用方法就不多说了,首先打开Qt designer创建新的QT窗体工程,目前只实现最基本的程序下载功能,界面简简单单的不用太花里胡哨。程序烧录助手的界面如下(随便拖一拖控件就完成了):

     

        二、将ui文件转化为py文件

        打开cmd命令行,进入到ui文件所在的目录,然后输入命令pyuic5 -o mainwindow.py mainwindow.ui

    命令执行正确的话就可以在ui文件同级目录看到生成的mainwindow.py文件了,接下来我把py文件的名字改成了ISPwindow.py,当然不改也行,生成的py文件就可以供python调用生成界面了。

     

    三、如何显示界面

    刚刚将ui界面文件转换成了py文件,现在我们要将这个界面显示出来,简单写几行代码就可以了,我使用的Python编译器是PyCharm,先看看ISPwindow.py里面的代码,这是根据ui文件自动生成的。

    # -*- coding: utf-8 -*-
    
    # Form implementation generated from reading ui file 'ISPwindow.ui'
    #
    # Created by: PyQt5 UI code generator 5.6
    #
    # WARNING! All changes made in this file will be lost!
    
    from PyQt5 import QtCore, QtGui, QtWidgets
    
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(525, 306)
            self.centralWidget = QtWidgets.QWidget(MainWindow)
            self.centralWidget.setObjectName("centralWidget")
            self.btn_download = QtWidgets.QPushButton(self.centralWidget)
            self.btn_download.setGeometry(QtCore.QRect(10, 100, 131, 51))
            self.btn_download.setObjectName("btn_download")
            self.edt_ipAddress = QtWidgets.QLineEdit(self.centralWidget)
            self.edt_ipAddress.setGeometry(QtCore.QRect(30, 10, 151, 21))
            self.edt_ipAddress.setObjectName("edt_ipAddress")
            self.label = QtWidgets.QLabel(self.centralWidget)
            self.label.setGeometry(QtCore.QRect(10, 10, 31, 16))
            self.label.setObjectName("label")
            self.edt_port = QtWidgets.QLineEdit(self.centralWidget)
            self.edt_port.setGeometry(QtCore.QRect(220, 10, 61, 21))
            self.edt_port.setObjectName("edt_port")
            self.label_2 = QtWidgets.QLabel(self.centralWidget)
            self.label_2.setGeometry(QtCore.QRect(190, 10, 31, 16))
            self.label_2.setObjectName("label_2")
            self.btn_selectFile = QtWidgets.QPushButton(self.centralWidget)
            self.btn_selectFile.setGeometry(QtCore.QRect(10, 40, 131, 51))
            self.btn_selectFile.setObjectName("btn_selectFile")
            self.btn_tcpConnect = QtWidgets.QPushButton(self.centralWidget)
            self.btn_tcpConnect.setGeometry(QtCore.QRect(290, 10, 71, 21))
            self.btn_tcpConnect.setObjectName("btn_tcpConnect")
            self.pgb_downloadProgress = QtWidgets.QProgressBar(self.centralWidget)
            self.pgb_downloadProgress.setGeometry(QtCore.QRect(150, 110, 371, 23))
            self.pgb_downloadProgress.setProperty("value", 24)
            self.pgb_downloadProgress.setObjectName("pgb_downloadProgress")
            self.edt_filePath = QtWidgets.QLineEdit(self.centralWidget)
            self.edt_filePath.setGeometry(QtCore.QRect(150, 50, 361, 21))
            self.edt_filePath.setObjectName("edt_filePath")
            self.edt_downloadMsg = QtWidgets.QTextEdit(self.centralWidget)
            self.edt_downloadMsg.setEnabled(False)
            self.edt_downloadMsg.setGeometry(QtCore.QRect(10, 180, 511, 121))
            self.edt_downloadMsg.setObjectName("edt_downloadMsg")
            self.label_3 = QtWidgets.QLabel(self.centralWidget)
            self.label_3.setGeometry(QtCore.QRect(10, 160, 91, 16))
            self.label_3.setObjectName("label_3")
            # MainWindow.setCentralWidget(self.centralWidget)
    
            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)
    
        def retranslateUi(self, MainWindow):
            _translate = QtCore.QCoreApplication.translate
            MainWindow.setWindowTitle(_translate("MainWindow", "程序烧录助手V1.0"))
            self.btn_download.setText(_translate("MainWindow", "下载"))
            self.edt_ipAddress.setText(_translate("MainWindow", "192.168.1.41"))
            self.label.setText(_translate("MainWindow", "IP"))
            self.edt_port.setText(_translate("MainWindow", "5198"))
            self.label_2.setText(_translate("MainWindow", "端口"))
            self.btn_selectFile.setText(_translate("MainWindow", "选择文件"))
            self.btn_tcpConnect.setText(_translate("MainWindow", "连接"))
            self.edt_downloadMsg.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
    "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
    "p, li { white-space: pre-wrap; }\n"
    "</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
    "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
            self.label_3.setText(_translate("MainWindow", "下载信息"))
    
    

    然后创建一个新的py文件 ISPdownloader.py,内容如下:

    from ISPwindow import Ui_MainWindow
    from PyQt5.QtWidgets import *
    
    class Demo(QWidget, Ui_MainWindow):
        def __init__(self):
            super(Demo, self).__init__()
            self.setupUi(self)
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        demo = Demo()
        demo.show()
        sys.exit(app.exec_())

     这样就可以把界面显示出来了,效果如下,其实和Qt designer中的效果是一样的。

     

     四、编写功能实现

     在我的上一篇博客里面已经实现了使用TCP通信烧写程序的基本功能了,现在只需要做做界面上控件的功能映射就可以了,还是原来的套路,实现代码如下:

    import sys
    from socket import *
    from ISPwindow import Ui_MainWindow
    from PyQt5.QtWidgets import *
    import os
    import ctypes
    import traceback
    
    class Demo(QWidget, Ui_MainWindow):
        def __init__(self):
            super(Demo, self).__init__()
            self.setupUi(self)
    
            self.btn_selectFile.clicked.connect(self.slot_openFile)
            self.btn_tcpConnect.clicked.connect(self.slot_tcpConnect)
            self.btn_download.clicked.connect(self.slot_downloadFile)
    
            self.pgb_downloadProgress.setValue(0)
    
            self.edt_downloadMsg.setEnabled(True)
            self.edt_downloadMsg.setReadOnly(True)
            self.edt_filePath.setEnabled(True)
            self.edt_filePath.setReadOnly(True)
            self.edt_downloadMsg.setText("")
    
            self.filePath = ""
            self.tcpHost = 'localhost'
            self.tcpRecBufSize = 2048
            self.tcpAddr = ""
    
            self.isTcpConnected = False
    
            self.maxFIleSize = 384*1024
            self.fileSize = 0
            self.fileCRC = 0
    
        def slot_openFile(self):
            filePath, _ = QFileDialog.getOpenFileName(self, "选择下载文件", os.getcwd(), "Bin File (*.bin)")
    
            if filePath == "":
                if self.filePath == "":
                    QMessageBox.warning(self, "文件选择错误", "没有选择下载文件,请重新选择!", QMessageBox.Ok, QMessageBox.Ok)
                    return
                else:
                    filePath = self.filePath
    
            size = os.path.getsize(filePath)
    
            if size > self.maxFIleSize:
                QMessageBox.warning(self, "文件选择错误", "下载文件太大了,最大为384KB,请重新选择!", QMessageBox.Ok, QMessageBox.Ok)
                return
    
            self.fileSize = size
            self.filePath = filePath
            self.edt_filePath.setText(self.filePath)
    
        def slot_downloadFile(self):
            try:
                self.DownloadFile()
            except Exception as e:
                self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + '\r\n下载出错')
                traceback.print_exc()
    
        def slot_tcpConnect(self):
            if self.isTcpConnected == False:
                try:
                    self.tcpSock = socket(AF_INET, SOCK_STREAM)
                    self.tcpAddr = (self.edt_ipAddress.text(), int(self.edt_port.text()))
                    self.tcpSock.connect(self.tcpAddr)
    
                    self.btn_tcpConnect.setText("断开")
                    self.isTcpConnected = True
                except Exception as e:
                    self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + '\r\n连接失败!')
                    traceback.print_exc()
                    return
    
                self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + '\r\n连接成功!')
            else:
                self.tcpSock.close()
                self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + '\r\n断开成功!')
                self.btn_tcpConnect.setText("连接")
                self.isTcpConnected = False
    
    
        def CalculateFileCRC(self, filePath):
            file = open(filePath, "rb")
    
            buf = file.read(4)
            crc = 0
    
            while len(buf) > 0:
                crc = crc ^ (int.from_bytes(buf, byteorder='little', signed=False))
                buf = file.read(4)
    
            file.close()
    
            return crc
    
        def DownloadFile(self):
    
            if self.filePath == "":
                QMessageBox.warning(self, "提示", "请选择下载文件!", QMessageBox.Ok, QMessageBox.Ok)
                return
    
            if self.isTcpConnected == False:
                QMessageBox.warning(self, "提示", "请先连接到开发板!", QMessageBox.Ok, QMessageBox.Ok)
                return
    
            # 传输下载头
            self.fileCRC = self.CalculateFileCRC(self.filePath)
    
            headInfo = []
            headInfo.append(ctypes.c_uint32(0x55591012))
            headInfo.append(ctypes.c_uint32(~0x55591012))
            headInfo.append(ctypes.c_uint32(0x00000000))
            headInfo.append(ctypes.c_uint32(self.fileSize))
            headInfo.append(ctypes.c_uint32(self.fileCRC))
            headInfo.append(ctypes.c_uint32(headInfo[0].value ^ headInfo[1].value ^ headInfo[2].value ^ headInfo[3].value ^ headInfo[4].value))
    
            DownloadHead = bytes()
    
            for item in headInfo:
                DownloadHead = DownloadHead + bytes(item)
    
            self.tcpSock.send(DownloadHead)
    
            file = open(self.filePath, "rb")
    
            downloadLen = 0
    
            self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + "\r\n下载中......")
            while True:
                buf = file.read(120)
    
                if len(buf) <= 0:
                    if downloadLen == self.fileSize:
                        self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + "\r\n下载成功!")
                    else:
                        self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + "\r\n下载出错!")
                        self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + "\r\n文件大小为" + str(self.fileSize) + "Byte,实际下载大小为" + str(downloadLen) + "Byte")
                    break;
    
                self.tcpSock.send(buf)
                rec = self.tcpSock.recv(self.tcpRecBufSize)
    
                if buf != rec:
                    self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + "\r\n下载出错!")
                    self.edt_downloadMsg.setText(self.edt_downloadMsg.toPlainText() + "\r\n恢复数据包不正确")
                    break
    
                downloadLen = downloadLen + len(buf)
    
                self.pgb_downloadProgress.setValue(downloadLen * 100 / self.fileSize)
    
            #程序下载完,开发板程序跳转到APP之后TCP连接就断了
            self.tcpSock.close()
            self.btn_tcpConnect.setText("连接")
            self.isTcpConnected = False
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        demo = Demo()
        demo.show()
        sys.exit(app.exec_())

        五、效果演示

        STM32端的BootLoader代码还是上一篇博客的代码,一点没改过,接下来看看效果。

     

        六、将工程打包成exe文件

        开发的工作都做好了,调试也没问题了,然后将python工程打包成exe文件就可以拿到其他人的电脑上去用了。要打包成exe文件,首先打开cmd命令窗口,进入到python工程的ISPdownloader.py文件所在的同级目录,然后运行命令pyinstaller.exe -F -w ISPdownloader.py,运行没问题的话就生成了两个文件夹,build和dist。exe文件就在dist目录里面。

     

    其实软件也没实现太多的功能,打包一下有15M左右,感觉有点大,上网查了很多资料,貌似PyQt开发界面软件就是有这样的一个让人不爽的地方,exe文件比较大,但也能理解啊,里面要包含一些Python和Qt的库,肯定会大一点的。

     

        七、结束语

        到这里,就实现了通过上位机软件更新STM32端程序的功能了,还是比较好实现的。我们只需要把设备连接到局域网里面来,就可以实现远程对设备程序的更新了,用网络下载比用烧录器或者是串口下载程序方便很多。

    展开全文
  • 软件工程之五——程序设计

    千次阅读 2012-11-04 17:26:30
    程序设计语言的特性和程序设计风格会深刻地影响软件的质量和可维护性。为了保证程序编码的质量,程序员必须深刻地理解、熟练地掌握并正确地运用程序设计语言的特性。此外还要求源程序具有良好的结构特性和良好的程序...

            作为软件工程的一个阶段,程序编码是设计的继续。程序设计语言的特性和程序设计风格会深刻地影响软件的质量和可维护性。为了保证程序编码的质量,程序员必须深刻地理解、熟练地掌握并正确地运用程序设计语言的特性。此外还要求源程序具有良好的结构特性和良好的程序设计风格。

     

           程序编码的总原则是先求正确后求快、先求清晰后求快、求快不忘保持程序正确、保持程序整洁以求快、不要因效率而牺牲清晰。

     

             好程序的标准:易于测试和调试、易于维护、易于修改、设计简单、高效率。

     

     

     

    展开全文
  • 智能手机程序设计 该题目要求作品运行于主流3G智能手机操作系统平台,即所提交的作品应该能够在主流平台的模拟器或手机上演示。软件平台应选用两大主流手机操作系统Android或IOS。可以在如下三个方向选择应用:  ...
  • 软公告视频之程序设计软件测试和软件维护

    千次阅读 热门讨论 2014-01-11 10:27:06
    软件工程视频现在已经看到尾声了,在... 将关于软件的一些设想付诸实践,程序设计整体上分为概要设计和详细设计。最终整理出详细/概要设计说明书。  点击打开链接  2.软件测试和软件维护  将软件设计完成后,在应
  • 简单抽奖软件java程序设计

    千次阅读 2014-01-11 18:42:35
    设计任务  摇奖 描述:从候选手机号码里随机选取号码显示在屏幕上作为获奖手机号。此题训练多线程操作。 描述 提示和要求: 提示和要求 ①候选号码可以保存在数组中,也可以保存在数据库中。 ②抽奖人点击...
  • 程序UI设计——工业软件UI 设计心得

    千次阅读 2013-08-23 20:42:57
    历时一个月,终于将手中的软件基本开发完成。独自一人完成整个软件的开发过程,每一次都能种特别的成就感和喜悦感。看到自己手中的软件终于有种商业化软件的气质(外观比较美观,摆脱了XP时代的UI风格)。心中不免...
  • 大一软件工程新生,C语言程序设计问题 功能:判断一个整数w的各个数字平方之和能否被5整除,可以被5整除返回1,否则返回0. #include "stdio.h" #include "conio.h" int fun(int w){ /**********Begin**********/ /*...
  • 软件需求分析、程序设计思考

    千次阅读 2011-08-02 23:52:22
    软件设计是为确保正确的做软件。两者相辅相成,才能做出一件成功的软件产品。  需求分析从用户的使用场景来考虑,用户希望拿到的是一个个端到端完整的功能,这个功能可能涉及软件的多个模块,多个子系统甚至包括...
  • 软件工程/系统软件/程序设计语言  中国计算机学会推荐国际学术期刊  (软件工程/系统软件/程序设计语言) 一、A类 序号 刊物简称 刊物全称 出版社 网址 ...
  • 画图软件Java实现(面向对象程序设计

    千次阅读 多人点赞 2018-07-30 15:58:35
    利用面向对象的思想,设计并实现一个画图软件。实现基本的图形绘制功能、文本绘制功能、橡皮檫功能、撤销功能以及图片的存取功能,画图软件具有美观的用户界面。使用户可以绘制直线、曲线、矩形、圆、三角形、五边形...
  • 各位朋友们,你们在使用“C与C++程序设计学习与实验系统 2015”软件,编写程序的时候,输入中文,有没有遇到乱码问题,绿C软件图标如下所示: 代码如下所示: 在这里,我们提供两种解决办法: 解决办法一:...
  • java程序设计---计算器软件

    千次阅读 2018-06-11 00:05:49
    setTitle("简易计算器设计"); Container app = getContentPane(); t.setHorizontalAlignment(JTextField.RIGHT); app.add(t, BorderLayout.NORTH); Panel_t op = new Panel_t(); app.add(op, ...
  • 程序设计方法和程序分析

    千次阅读 2017-08-16 13:26:50
    程序设计方法是提高程序效率和确保程序正确性而产生的软件理论。经过战胜软件危机,丰富深刻的设计方法的出现,越来越多的应用编程,程序员和编程爱好者建立了程序设计方法学。 而程序分析是发现程序设计方法不能...
  • 工欲善其事,必先利其器。 ...我之前用Dev c++ VC 6.0,它们在一般的C语言程序设计上还是十分出色。但是在Windows程序设计上,他们并不是特别的出色。而且特别的麻烦。如果你愿意花一个星期只为...
  • “单词”符号是程序设计语言的基本语法单位,如关键字(或称保留字)、标识符、常数、运算符和分隔符(如标点符号、左右符号)等。词法分析程序输出的“单词”常以二元组的方式输出,即单词种别和单词自身的...
  • VB.Net程序设计:AutoUpdater软件自动更新思路是这样的:1.版本控制:通过读本地版本和服务器版本,来判断是否有新的升级文件。获取服务器端XML配置文件中新版本程序的更新日期。2.升级文件的下载:如果有新的升级...
  • 软件程序编码

    千次阅读 2012-12-29 21:22:09
    程序编码是也是软件设计的一个过程,不同的是程序编码将前面的详细设计转换成用程序设计语言实现的程序代码。在程序编码阶段遵循自顶向下,逐步求精方法。 程序编码主要是向我们介绍了一个好的程序的标准和对一个...
  • 软件工程 / 系统软件 / 程序设计语言 (1)A类 序号 刊物简称 刊物全称 出版社 网址 1 TOPLAS ACM Transactions on Programming Languages & Systems ACM ...
  • 吉林大学软件学院学硕从2017年开始招生,复试为高级程序语言设计。此题目为学姐回忆,特此转载记录,并添加个人测试代码,希望对大家有帮助! 一、 验证哥徳巴赫猜想 输入一个大于等于 6 的偶数,偶数等于两个...
  • 面向对象程序设计语言和面向过程程序设计语言的区别由哪些? 面向对象的特点是:封装,继承,多态,其中多态又分为重载和重写,面向对象的编程思想更接近现实的事物 面向对象的优点:  1.编程更加容易,因为面向...
  • 程序设计软件工程基础 一、程序设计基础 1、 程序设计方法和风格 源程序的文档化 符号的命名:见名知意 数据说明次序应该规范化; 语句结构 每条语句简单明了;尽量不用或少用GOTO语句,尽量只采用3种基本控制结构...
  • ros机器人程序设计

    千次下载 热门讨论 2014-10-28 16:11:33
    国内首本引进ROS机器人程序设计的译著,让你全面了解 ROS系统的各种工具。 提供了各种实际的示例代码供读者学习和理解ROS的软件框架。 本书可以帮助读者从对ROS一无所知到能够通过ROS系统完成小型机器人系统的开发...
  •  C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计...
  • 近期,有好多小伙伴们微信咨询说之前的软件没有 Python 题库,我也总是说有时间了更新一下Python 题库的,可一拖就是两月过去了,错过了6月份的报名时间更新,昨天也有小伙伴咨询,决定这两日更新下。如有需要其他...
  • 一、计算思维与程序设计 1、计算思维 ①第3种人类思维特征 - 逻辑思维:推理和演绎,以数学为代表,A->B B->C A->C - 实证思维:实验和验证,以物理为代表,引力波<-实验 - 计算思维:设计和构造,...
  • Windows程序设计应用开发

    千人学习 2018-03-15 20:24:22
    提升的、软件设计经验,初步具备面向对象软件设计思想,能针对性的应用事件驱动编程开发应用程序。 丁宋涛老师是南京大学博士,微软中国认证讲师,任江苏微软技术中心、美国大学理事会计算机学科教师,捷帝科技有限...
  • C程序设计课后习题

    千次阅读 2018-08-02 22:48:52
    程序设计程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段...
  • 程序设计心得体会

    万次阅读 2019-01-02 21:34:58
    程序设计心得体会 一:前言 经过一学期的学习,我们对程序设计有了或多或少的认识。而我们这学期所接触的c语言和c++都不仅为计算机专业人员所使用和喜爱,也成为许多计算机应用人员喜爱和使用的语言。实践证明,它是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,392
精华内容 30,556
关键字:

软件程序设计