- C語言程序設計案例教程
- 馬玉芳 杜麗娟主編
- 1404字
- 2019-09-30 12:14:37
1.3 計算機求解問題的步驟
計算機求解問題就是人們解決某一問題的方法和步驟的計算機化,或者說是通過計算機來表達人們對某一問題的解決方法。也就是說,一個問題,如果人們不知道如何求解,那么計算機是不可能做出正確答案的。程序設計過程實際上是問題解決方案的計算機描述過程,所以程序設計過程必須遵循人們解決問題的一般過程,即分析問題、尋找方法、描述方法和實施方法的過程。具體來說包括以下5個步驟:問題提出與分析;問題的數據描述;問題的功能描述;數據和功能的計算機實現;編碼、調試、編譯、連接和運行。下面以一個具體的實例——“自動應答器”的設計與實現來分析以上過程和步驟。
1.問題描述
“自動應答器”的基本功能描述如下:當客戶走到應答器旁邊時,應答器會向用戶提示“請報上您的姓名:”,當客戶回答完畢后,應答器會立刻回答“×××用戶,您好!”。
對于非語言的自動應答器,其工作過程如下:計算機不能直接接收語音輸入,也不可能進行語音輸出,所以,需要3個步驟:
(1)當一個用戶走到應答器旁邊時,應答器會向用戶顯示信息“請報上您的姓名:”。
(2)當用戶看到這個信息后,會輸入本人的姓名,如Susan。
(3)應答器接收到用戶的輸入后,會立刻顯示“Susan,您好!”。
2.問題分析
為了實現自動應答器的基本功能,根據問題描述的內容,要實現:
(1)向屏幕輸出提示信息,即向用戶屏幕輸出“請報上您的姓名:”。
(2)等待用戶的響應,也就是等待用戶輸入自己的姓名,如Susan。
(3)接收用戶的輸入,并能將用戶輸入的數據連同“您好!”一起顯示在用戶屏幕上。
至此一個工作周期完成。為了便于實現,做一些假設:假定應答器只為一個人服務,即工作一個周期即結束。以上的分析過程就是這個問題的解決方案和步驟。
3.計算機實現
為了讓計算機能代替人工完成以上的工作流程或者說解決方案,需要將以上每一步驟轉化成計算機可以識別的指令序列(即程序)。下面是對這個應答器工作流程的一個計算機描述。
(1)通過計算機指令向用戶屏幕輸出。
(2)通過計算機指令等待并接收用戶的鍵盤輸入,并且暫存起來以備后用。
(3)通過計算機指令向用戶屏幕輸出新的數據信息:用戶輸入的信息加上“您好!”。
接下來將上面對應答器解決過程的計算機實現描述“翻譯”成計算機語言,再通過相應的軟件將這些計算機語言轉換成計算機可以識別的指令,就可以讓其“工作”。
以C語言為例,其翻譯過程如下:
(1)向用戶屏幕輸出信息可以通過函數來實現,具體形式如下:

(2)在C語言環境中,數據是以變量的形式存儲的,為了存放用戶的輸入信息,可以采用以下形式定義變量,其具體語法含義請參見第2章。

接收用戶的鍵盤輸入并暫存數據,可以通過函數scanf()來實現,具體語法形式如下:

(3)向用戶屏幕輸出新的數據,同(1),仍然可以通過函數printf()來實現,具體形式如下:

將以上“翻譯”的C語言程序按照C語言語法規定稍作整理,得到例1-1程序。
【例1-1】自動應答器的C語言實現。
程序如下:

4.程序運行與調試
在完成問題的求解過程后,就需要進行上機操作,將設計的程序輸入計算機,并經過翻譯后,讓計算機自動執行,這個過程一般分為4步:編輯、編譯與調試、連接及運行。下面用框圖描述用C語言進行程序設計的整個過程,如圖1-1所示。

圖1-1 C語言進行程序設計的完整過程
下面來完成自動應答器的計算機處理過程:假設讀者的計算機上已經有C語言編譯系統(VC++6.0),并且位于C盤的TC目錄下,如果沒有安裝,請參閱本章閱讀材料。
- Advanced Quantitative Finance with C++
- Android Studio Essentials
- CentOS 7 Server Deployment Cookbook
- WSO2 Developer’s Guide
- VSTO開發入門教程
- aelf區塊鏈應用架構指南
- 鋒利的SQL(第2版)
- SSM開發實戰教程(Spring+Spring MVC+MyBatis)
- Django 3.0入門與實踐
- Zabbix Performance Tuning
- Distributed Computing in Java 9
- 區塊鏈架構之美:從比特幣、以太坊、超級賬本看區塊鏈架構設計
- Android移動應用項目化教程
- Mastering VMware vSphere Storage
- Learning Google Apps Script