食品資訊統計程序設計

2023-01-13 17:42:06 字數 4526 閱讀 8528

目錄摘要 8

1.緒論 8

2. 系統分析 9

2.1 功能需求 9

2.2程式整體分析 9

2.3 效能需求 9

3. 總體設計 9

3.1功能模組設計 9

3.2系統設計方案 10

4. 詳細設計 11

4.1讀取檔案管理模組 11

4.2降序排列管理模組 11

4.3修改函式管理模組 12

4.4顯示庫存清單管理模組 13

4.5顯示折扣種類管理模組 14

5. 除錯與測試 15

5.1 除錯 15

5.2 測試 16

6. 結論 16

結束語 16

參考文獻 17

附錄1-使用者手冊 17

附錄2-源程式 19

食品資訊統計程式是乙個企事業單位不可缺少的部分,公司可以利用這套程式進行食品的各種資訊管理,也方便查詢修改食品的各項資訊,可以提高管理工作的效率。

本系統使用c語言作為開發工具的,開發食品資訊管理系統,實現了食品資訊統計,包括顯示庫存貨物清單、修改食品資訊、按照庫存量降序列印食品資訊、顯示共有幾種折扣、退出、五項功能,完全符合課設題目的要求,基本適用於簡單的食品庫存統計管理。

本文從分析課題的題目背景、題目意義、題目要求等出發,分別從需求分析、總體設計、詳細設計、測試等各個方面詳細介紹了系統的設計與實現過程,最後對系統的完成情況進行了總結。

關鍵詞:食品資訊統計;統計;c語言

隨著科技的發展,愈來愈多的公司選擇了運用食品資訊統計程式來管理食品的各項資訊。食品資訊統計程式是乙個企事業單位不可缺少的部分,公司可以利用這套程式進行統計食品的各種資訊管理,也方便查詢修改食品的各項資訊,可以提高管理工作的效率和簡化管理工作的程式。有利的為公司節省了運作成本,優化資源利用率,這也正是編寫本程式的目的所在。

根據課程設計任務書要求,本系統開發主要完成以下功能和效能。

(1)讀取檔案管理模組

(2)降序排列管理模組

(3) 修改函式管理模組

(4) 顯示庫存清單管理模組

該模組是對修改食品資訊,按照庫存量降序列印食品資訊,以及顯示共有幾種折扣的資訊功能。分為:

顯示庫存貨物清單;

②修改食品資訊;

③按照庫存量降序列印食品資訊;

④顯示共有幾種折扣的資訊;

(5) 顯示折扣種類

根據本次課設的任務書給定的「課程設計內容」和「課程設計要求」作出如下的需求分析。該程式的設計應該是乙個資料統計系統,其使用者被假定為某超市或者商店的食品資訊統計人員,該程式系統具有功能齊全、準確、使用方便的特點。

食品資訊統計,包括顯示庫存貨物清單、修改食品資訊、按照庫存量降序列印食品資訊、顯示共有幾種折扣、退出、五項功能,完全符合課設題目的要求,基本適用於簡單的食品庫存統計管理。

在執行本程式時只要按照正確的操作方法不會出現無法執行的情況,系統穩定性好,安全,可靠。

根據分析整個系統主要劃分為5個功能模組,分別執行要求中的功能。每個模組對應乙個c語言自定義函式。這些函式原型及其功能簡述如下:

圖1程式總體結構圖

(1)讀取檔案管理模組

該模組是對檔案讀取功能的實現。

(2)降序排列管理模組

該模組是對顯示庫存貨物清單而設計的降序排列功能。

(3) 修改函式管理模組

該模組是對修改食品資訊而設計的功能。

(4) 顯示庫存清單管理模組

該模組是對修改食品資訊,按照庫存量降序列印食品資訊,以及顯示共有幾種折扣的資訊功能。分為:

顯示庫存貨物清單;

②修改食品資訊;

③按照庫存量降序列印食品資訊;

④顯示共有幾種折扣的資訊;

(5) 顯示折扣種類

該模組是根據庫存食品打折而顯示的折扣種類。

設計乙個總選單,基本功能的實現都將體現在這幾個選單選項中。

建立結構體如下:

struct fooda[40];

union data;

根據模組需要本系統需要用到冒泡法排序、for 迴圈結構等。

void read() /*讀取清單函式*/

void jxshow(int left,int right) /*按庫存降序排序食品資訊*/

void revise(char aname[20],char colname[20],union data b) /*修改食品資訊*/

void show() /*顯示庫存清單*/

void discount() /*顯示折扣種類數*/

該模組是對檔案讀取功能的實現。具體實現流程如圖2所示。

圖2 讀取檔案管理流程圖

該模組是對顯示庫存貨物清單而設計的降序排列功能。具體實現程式流程如圖3所示。

圖3 降序排列管理流程圖

該模組是對修改食品資訊而設計的功能。具體實現程式流程如圖4所示。

圖4 修改函式管理流程圖

該模組是對修改食品資訊,按照庫存量降序列印食品資訊,以及顯示共有幾種折扣的資訊功能。分為:

顯示庫存貨物清單;

②修改食品資訊;

③按照庫存量降序列印食品資訊;

④顯示共有幾種折扣的資訊;

具體實現程式的演算法流程如圖5所示。

圖5顯示庫存清單管理模組流程圖

該模組是根據庫存食品打折而顯示的折扣種類。具體實現程式的流程如圖6所示。

圖6顯示折扣種類管理流程圖

除錯是軟體開發過程中的乙個重要環節,也是最複雜,對軟體開發者者來說也是最艱鉅的任務。除錯的任務是及時改正測試過程中發現的軟體錯誤。具體地說,除錯過程由兩個步驟組成,它從表示程式中存在錯誤的某跡象開始,首先確定錯誤的準確位置,也就是找出哪個模組或哪個語句引起的錯誤。

然後仔細研究推斷**以確定問題的原因,並設法改正。

除錯過程主要是執行編制好的程式,然後遇到錯誤後根據系統的提示,找到相關的問題所在。本系統除錯過程中遇到問題、原因和解決方法如下面介紹。

(1) 程式不能執行

定義的指標,很多次引用,過個函式裡面,定義的不明確,造成錯誤連連發生。

(2) 不能正確輸出資訊,有亂碼現象

原因是鍵入資訊的時候,沒有一一對應,逗號的位置不正確,後來,用的是資訊逐一輸入,保證了資訊的一一對應和高度的準確性,使程式可以正常執行。

(3) 程式執行途中,出現錯誤,被迫中止

其中定義字元陣列,卻沒有定義長度,導致定義型別變成了字元型,而不能接受字串,因此出現了錯誤。

軟體測試是軟體生存期中的乙個重要階段,是軟體質量保證的關鍵步驟從使用者的角度來看,普遍希望通過軟體測試暴露軟體中隱藏的錯誤和缺陷,所以軟體測試應該是「為了發現錯誤而執行程式的過程」。或者說,軟體測試應該根據軟體開發各階段的規格說明和程式的內部結構而精心設計一批測試用例(即輸入資料及其預期的輸出結果),並利用這些測試用例去執行程式,以發現程式錯誤或缺陷。過度測試則會浪費許多寶貴的資源。

到測試後期,即使找到了錯誤,然而付出了過高的代價。

課程設計順利完成,題目所要求的功能也都一一實現,可以對食品資訊統計。包括顯示庫存貨物清單、修改食品資訊、按照庫存量降序列印食品資訊、顯示共有幾種折扣、退出、五項功能,完全符合課設題目的要求,基本適用於簡單的食品庫存統計管理。而且,由於自己英語的不夠特別好,後幾個功能不知道該怎麼翻譯,就直接寫的漢字,顯得程式主選單有點亂,以後會加強英語,好好規劃程式設計。

經過了一周的c語言課程設計,使我有了很深的感觸和體會,了解了計算機在生活中的應用,以及學好計算機是一件非常重要的事,在我設計程式的整個過程中,我明白了,乙個好的程式,對於需要的人是一件很重要的東西,之前只是覺得使用各種軟體都很方便,但在設計的時候確需要付出很多,然而當你成功的設計出了想要的成果的時候,又感覺到十分的有成就感,十分的又意義。我設計出的程式,如果與真正的實用型程式相比我覺得真的相差太多,我的程式只不過是按著課設的要求完成罷了,並沒有太大的特色,也不適合應用於日常的生活中,如果想要作為乙個真正的作品,還需要更多的完善。我想,在今後的學習中,一定要認真的積累所學的知識,這是一名大學生必需具備的能力。

[1] 譚浩強. c語言程式設計(第三版).北京:清華大學出版社,2005.7

點選執行,首先出現的是主選單,如圖7所示。

圖7 程式主介面

圖8 顯示庫存貨物清單

圖9修改食品資訊

#include ""

#include ""

#include ""

struct fooda[40];

union data;

int count=0; /*統計資訊行數用全域性變數統計行數*/

void read()//讀取清單函式讀取檔案

a[i+1].sign='\0';

for(;a[count].sign!='\0';count++);

fclose(fp);

}/*按庫存降序排序食品資訊*/

void jxshow(int left,int right){

int i,j,k;

/*氣泡排序*/

for(i=1;i<=count;i++)

for(j=1;j<=count-i;j++){

if(a[j-1].stocks

小學資訊LOGO程序設計輔導初探

摘要 logo程式設計多年來作為江蘇省蘇教版小學資訊科技教材使用至今,從中不難發現logo語言其本身的魅力所在。作為資訊教師,筆者從logo語言的發展 特點及筆者感悟的輔導經驗等幾個方面進行初步 發現logo語言有著入門簡單而內含深遠,與其它各學科聯絡緊密等特點 同時也總結出在平時輔導應增強入門的趣...

Visual Basic程序設計

一 程式分析與完善題 1 下列程式段的執行結果為 a x 5 y 20 if not x 0 then x y 3 else y x 3 print x y y x end if a 3 3 b 5 8 c 3 3 d 25 25 2 下列程式段的執行結果是 a a 0 b 0 for i 1 to...

08單元2物件導向程序設計 程式設計題資訊

按以下要求編寫程式 1 建立乙個rectangle類,新增width和height兩個成員變數 2 在rectangle中新增兩種方法分別計算矩形的周長和面積 3 程式設計利用rectangle輸出乙個矩形的周長和面積 public class rectangle public float getl...