第一篇:大連理工大學c語言大作業
程序設計大作業總結報告
——<東北大餡餃子館>的點餐/帳目信息管理系統
選題意義;
餐廳賬目繁多,通過本系統可以實現餐廳管理的自主化。更加適應這個信息化的社會。通過對賬目、訂單的管理與排序。也能使餐廳管理者更加直觀地看出產品之間的優劣與受眾。使其能夠更好的調動資源,達到餐廳的快速發展目的。
設計方案;
1)任務分析
該系統應包括兩大界面—用戶界面和管理界面。用戶界面包括用戶點餐功能并將用戶點餐信息存入賬單文件中。管理界面包括記錄餃子的單價,庫存等信息并將這些信息按一定規律排列供管理者參考,還要記錄每天的收入與庫存消耗。2)系統組成框圖
系統組成如下圖所示,點餐/帳目信息管理系統中任務調度模塊是信息管理的指揮中心,所有的功能模塊均通過該模塊集中管理和調用。數據文件是用于將改變的記錄隨時保存起來,I/O交互模塊是指數據按鍵和控制按鍵的響應操作。數據按鍵是窗口的輸入輸出。
系統平臺
I/O交互 任務調度 數據文件
添加賬目 查詢賬目 查詢原料 銷量排序 當天收入
功能模塊設計;
本管理系統開發的過程中成功地完成很多函數的編寫,而且全部通過程序調試。下面針對與該系統相關的主要功能函數的編寫思路和實現方法作總結。1)數據描述與數據文件(1)數據描述;
系統中共定義了三種結構體分別是struct list(賬單信息)、struct dump(原材料信息)、struct system(管理信息)其中賬單信息成員定義如下; struct list/*賬單信息 */ { int num;/*編號*/ int month;/*月份*/ int date;/*日期*/ int table;/*桌號*/ int people;/*人數*/ int add;/*收款金額*/ };原材料信息;
struct dump/*原材料信息*/ { int num;/*編號*/ char a[40];/*名稱*/ int price;/*單價*/ int quantity;/*庫存*/ };管理信息; struct system { struct dump data;/*點餐*/ int cash;/*收款*/ int sale;/*銷量*/ int p;/*人數*/ };(2)數據文件;
共定義四個數據文件;記錄編號的文件count、記錄原料的文件dumplings、記錄賬單的文件customer、數據處理文件system。2)主要功能模塊的設計(1)主要功能模塊函數原型 本程序共編寫了8個自定義函數,其中5個用于文件管理,3個用于文件的建立。系統管理函數原型如下; 點餐函數void customer(); 統計單日銷量函數void record(); 銷量排序函數void line(); 賬單查詢函數void list(); 編號歸零函數void countzero();(2)典型功能模塊函數設計 *點餐函數void customer(); 打開dumplings文件 打印菜單 用戶點餐 記錄數據
打開customer文件、system文件 將數據寫入文件;
*統計單日銷量函數void record(); 打開system文件; 將數據讀入內存;
計算單日總收入、總人數、總銷量; *銷量排序函數void line(); 打開system文件; 對銷量進行排序;
運行效果:
設計體會;
可能是因為第一次編寫200行語句以上的程序,在程序設計中我經常忘記給一些變量賦初值,有時也會將fread函數錯寫成fwrite函數導致程序運行失敗。除此之外我對結構體的理解還不夠充分,對文件的操作也不夠熟練。這些因素都導致了我這次程序設計的一些不完美的地方。如結構體定義過多。文件功能相互疊加等。影響了程序的易維護性與可讀性。這都是我不成熟的表現。但通過這次設計我對數據存儲的理解變得更加深刻了。今后我也將繼續提升我的編程能力,做出更完美的程序。
第二篇:C語言作業
Problem B: 算術基本運算 Description 計算兩整數x和y(0 printf(”x * y : %dn“,x*y); printf(”x / y quotient: %d, remainder: %dn“,x/y,x%y); printf(”x ^ 2 : %dn“,x*x); printf(”y ^ 3 : %dn“,y*y*y); return 0;} Problem C: 求圓的面積和周長 Description 從鍵盤輸入圓的半徑,求圓的面積和周長,圓周率取3.14。Input 輸入一個浮點型數據,有效數字不會超過十進制的6位。Output 輸出為兩行。 第一行為圓的面積,第二行為圓的周長,格式見sample。Sample Input Sample Output Area: 28.260000 Perimeter: 18.840000 HINT 了解浮點類型的輸入、輸出和算術運算符 #include double Area,Perimeter,r,p=3.14; scanf(”%lf“,&r); Area=p*r*r,Perimeter=2*p*r; printf(”Area: %lfn“,Area); printf(”Perimeter: %lfn“,Perimeter); return 0;} Problem D:平均值 Description 求3個數的平均值。Input 輸入只有一行,為3個較小的整數。Output 輸出為這3個整數的平均值,保留3位小數。Sample Input 1 2 3 Sample Output 2.000 HINT 注意除法運算對整型數據和浮點型數據是不一樣的。#include int x,y,z; float ave; scanf(”%d %d %d“,&x,&y,&z); ave=(x+y+z)/3.0; printf(”%.3f“,ave); return 0;} Problem E: 貨幣兌換 Description 給出人民幣對美元、歐元、日元的當日匯率,求給定金額的人民幣能兌換成外幣的金額,求給定金額的外幣能兌換成人民幣的金額。要計算的外幣有三種:美元、歐元、日元。Input 輸入有三行。 第一行依次為美元、歐元、日元外幣匯率,用空格分開。匯率用100外幣為單位,精確到小數點后4位,如668.5200表示“100美元=668.5200人民幣”。匯率浮動范圍為(0,10000)。 第二行為外幣金額x,第三行為人民幣金額y。x,y均為整數,且0 第一行為金額為x的美元、歐元、日元兌換成人民幣的金額,用空格分開。第二行為金額為y的人民幣兌換成美元、歐元、日元的金額,用空格分開。所有金額精確到小數點后兩位。Sample Input 668.5200 908.0685 7.9852 1500 1500 Sample Output 10027.80 13621.03 119.78 224.38 165.19 18784.75 HINT 了解浮點數據類型的精確度和輸出控制。 #include return 0; } Problem F: 求字符的值 Description 從鍵盤輸入3個字符(不含雙字節字符),分別輸出每個字符的十進制值(ASCII碼)、八進制值和十六進制值。Input 輸入為3個字符。Output 輸出為3行。 每一行為每個字符(對應輸入順序)的十進制、八進制和十六進制值,用空格分隔開。每個輸出的值占3個字符,不足3個字符前面補0。Sample Input 0 A Sample Output 048 060 030 032 040 020 065 101 041 HINT 了解字符值的存儲和整型的關系。#include Problem G: 奇數還是偶數? Description 輸入一個整數,判讀它是奇數還是偶數。Input 輸入只有一行,為一個100以內的正整數。Output 輸出為一行。 若輸入為偶數則輸出“even”,奇數輸出“odd”。Sample Input 30 Sample Output even HINT 用整數運算可以解決,練習“?:”表達式。#include int x; scanf(”%d“,&x); if(x%2==0) printf(”even“); else printf(”odd“); return 0;} Problem H: 絕對值 Description 求整型數據和浮點型數據的絕對值。Input 輸入兩個數,第一個是整數,第二個是浮點數。Output 輸出為兩行,第一行為整數的絕對值,第二行為浮點數的絕對值,注意浮點數的絕對值不輸出無意義的0。Sample Input-1 1 Sample Output 1 1 HINT 求絕對值可以用標準庫函數來完成,也可以自己判斷。注意浮點數的輸出格式。求絕對值的函數在哪個頭文件?貌似很多人會搞錯,包括很多編書的人!#include int x; float y; scanf(”%d“,&x); scanf(”%f“,&y); printf(”%dn“,abs(x)); printf(”%gn“,fabs(y)); return 0;} Problem I: 簡單的打折計算 Description 商店規定:消費滿n元,可以打八八折。設某件商品標價m元,輸入購買的件數x,計算出需要支付的金額(單位:元),精確到分。Input 輸入只有一行,三個整數m、n和x,且0 300 4 Sample Output 334.40 HINT 了解浮點型的輸出控制,注意整型和浮點型混合運算過程中的數據類型轉換。#include int m,n,x; double y; scanf(”%d%d%d“,&m,&n,&x); y=m*x; if(y>n) y=y*0.88; else y=y; printf(”%.2lfn“,y); return 0;} Description 輸入一個正整數的年份,判斷是否為閏年。Input 輸入只有一行,為一個10000以內的正整數。Output 輸出為一行。 若輸入為閏年偶數則輸出“Yes”,否則輸出“No”。Sample Input 2010 Sample Output No HINT 了解邏輯運算符和關系運算符。#include int a; scanf(”%d“,&a); if(a%4==0&&a%100!=0||a%400==0) printf(”Yes“); else printf(”No“); return 0;} Problem K: GHacker的解謎過關游戲 Description GHacker最近癡迷于一個新上市的解謎游戲,其中一關的過關是破解一個字符串S。經過3天的冥思苦想,GHacker成功的搞明白了這其中的奧秘,把串S中的整數取出來求和,就可以過關了。但是GHacker的數學實在糟糕。他無法在短暫的時間內算出來,只好求助Jackie。Jackie觀察到雖然每次出現的數字不同,但是其它的符號并不會變化。于是Jackie編寫了一個非常短的程序,幫助GHacker把這一關過了。Input 輸入為串S,只有一行。Output 串S中用非數字(0~9)分隔開的非負整數之和,不會超出int類型的數據范圍。Sample Input `13?:[7514],54.487==”(438922x159??392)%032n111cdef120$95;Sample Output 447899 HINT scanf()可以解決這個問題,注意轉義字符和格式控制字符。#include int i,sum,num; char str[1000]; while(scanf(“%s”,str)!=EOF) { num=sum=0; for(i=0;;i++) { if(str[i]>='0' && str[i]<='9') num=num*10+str[i]-'0'; else { sum=sum+num;num=0; if(str[i]=='
主站蜘蛛池模板:
国产aⅴ激情无码久久久无码|
国产精品美女久久久网av|
777久久精品一区二区三区无码|
欧美人与动牲交a欧美精品|
性欧美大战久久久久久久久|
中文人妻av久久人妻水密桃|
天堂中文在线资源|
苍井空亚洲精品aa片在线播放|
久久www色情成人免费观看|
女人高潮被爽到呻吟在线观看|
久久精品国产欧美日韩99热|
日本熟妇色熟妇在线视频播放|
色五月婷婷成人网|
日产幕无线码三区在线|
一边摸一边抽搐一进一出视频|
国产最大成人亚洲精品|
久久精品国产亚洲夜色av网站|
久久99热这里只有精品66|
成年在线网站免费观看无广告|
av无码人妻一区二区三区牛牛|
精品一区二区三区波多野结衣|
中文字幕人妻互换av久久|
一二三四免费观看在线视频中文版|
国产麻豆亚洲精品一区二区|
欧美性猛交ⅹxxx乱大交妖精|
怡红院精品久久久久久久高清|
一本色道久久99一综合|
国产精品一区二区久久国产|
中文无码一区二区不卡αv|
久久精品一区二区av999|
国产日韩精品欧美一区喷水|
全程粗话对白视频videos|
一本到在线观看视频|
成人区人妻精品一区二区不卡|
免费人成网站视频在线观看国内|
久久综合狠狠色综合伊人|
激情内射亚洲一区二区三区|
亚洲色精品vr一区二区三区|
男女同房做爰爽免费|
久久五月精品中文字幕|
99re视频热这里只有精品38|