版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、高級語言課程設(shè)計 班班 級:微電子級:微電子1301-03 指導(dǎo)教師:汪陳伍指導(dǎo)教師:汪陳伍 張曉利張曉利 梁琛梁琛 電子郵箱:電子郵箱:v時間:第1周第2周前半周 8:0013:00v地點:計算機(jī)基礎(chǔ)實驗室(圖書館二樓)目目 的的p通過本課程設(shè)計,強(qiáng)化上機(jī)動手能力,使學(xué)生在理通過本課程設(shè)計,強(qiáng)化上機(jī)動手能力,使學(xué)生在理論和實踐的基礎(chǔ)上進(jìn)一步鞏固論和實踐的基礎(chǔ)上進(jìn)一步鞏固C語言程序設(shè)計語言程序設(shè)計課程學(xué)習(xí)的內(nèi)容,掌握工程軟件設(shè)計的基本方法;課程學(xué)習(xí)的內(nèi)容,掌握工程軟件設(shè)計的基本方法;p學(xué)會將知識應(yīng)用于實際的方法,提高分析和解決學(xué)會將知識應(yīng)用于實際的方法,提高分析和解決問題的能力,增加綜合能力;
2、問題的能力,增加綜合能力;p為后續(xù)各門計算機(jī)課程的學(xué)習(xí)打下堅實基礎(chǔ);為后續(xù)各門計算機(jī)課程的學(xué)習(xí)打下堅實基礎(chǔ); 為畢業(yè)設(shè)計和以后工作打下必要基礎(chǔ)。為畢業(yè)設(shè)計和以后工作打下必要基礎(chǔ)。p通過系統(tǒng)分析、系統(tǒng)設(shè)計、編程調(diào)試,寫實驗報告通過系統(tǒng)分析、系統(tǒng)設(shè)計、編程調(diào)試,寫實驗報告等環(huán)節(jié),初步掌握軟件系統(tǒng)設(shè)計的方法和步驟,靈等環(huán)節(jié),初步掌握軟件系統(tǒng)設(shè)計的方法和步驟,靈活運用程序設(shè)計語言進(jìn)行軟件開發(fā)的能力;活運用程序設(shè)計語言進(jìn)行軟件開發(fā)的能力;題題 目目p小區(qū)物業(yè)管理系統(tǒng)p樓盤銷售管理系統(tǒng)p商場店面管理系統(tǒng)p設(shè)備管理系統(tǒng)p宿舍管理系統(tǒng)p汽車銷售管理系統(tǒng)p圖書管理系統(tǒng)p飛機(jī)訂票系統(tǒng) 說明:每個學(xué)生任選一個題目,
3、或自己選一個其它題目??己朔绞娇己朔绞絧成績計分按優(yōu)、良、中、及格、不及格5級評定。p內(nèi)容:第一周占45%,第二周占25%,這兩部分主要以機(jī)器運行的檢查結(jié)果為準(zhǔn)。p設(shè)計報告:占20%。p平時分?jǐn)?shù):占10%,包括每天點名情況等。v設(shè)計結(jié)果 v設(shè)計報告v平時表現(xiàn)要 求p使用使用C語言,源程序要有適當(dāng)?shù)淖⑨?,使程語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀。序容易閱讀。p 按要求完成規(guī)定的功能,不同的功能使用不按要求完成規(guī)定的功能,不同的功能使用不 同的函數(shù)來完成。同的函數(shù)來完成。p 有完整的實驗報告。有完整的實驗報告。p 獨立完成,不追求系統(tǒng)完美,必須是自行設(shè)獨立完成,不追求系統(tǒng)完美,必須是自行設(shè)
4、計的程序。計的程序。p 每天上機(jī)時間不準(zhǔn)遲到早退,不許無故不到。每天上機(jī)時間不準(zhǔn)遲到早退,不許無故不到。p 按時完成設(shè)計內(nèi)容,按時提交設(shè)計報告。按時完成設(shè)計內(nèi)容,按時提交設(shè)計報告。 (第第3周周三之前周周三之前)系統(tǒng)基本要求(以超市管理系統(tǒng)為例)1.數(shù)據(jù)錄入:錄入系統(tǒng)所需的數(shù)據(jù),用鏈表(或數(shù)組)組織數(shù)據(jù);2.數(shù)據(jù)存儲:將錄入的數(shù)據(jù)存儲,用文件的形式將錄 入的數(shù)據(jù)存儲; 3.數(shù)據(jù)讀寫:對數(shù)據(jù)進(jìn)行讀寫操作;4.數(shù)據(jù)修改:對數(shù)據(jù)進(jìn)行更新操作,可以進(jìn)行新數(shù)據(jù)的插入,舊數(shù)據(jù)的修改操作5.數(shù)據(jù)刪除:對數(shù)據(jù)進(jìn)行刪除操作,根據(jù)具體題目將對應(yīng)記錄刪除;6.數(shù)據(jù)查詢:按要求對數(shù)據(jù)進(jìn)行查詢,含簡單查詢及組合查詢;系
5、統(tǒng)基本要求(以超市管理系統(tǒng)為例)7. 數(shù)據(jù)統(tǒng)計:按要求對數(shù)據(jù)進(jìn)行統(tǒng)計,含簡單統(tǒng)計及綜合統(tǒng)計;8. 數(shù)據(jù)排序:按要求對數(shù)據(jù)進(jìn)行排序,含升序排序及降序排序;9. 數(shù)據(jù)報表:按要求對數(shù)據(jù)打印報表,依規(guī)定的報表格式對數(shù)據(jù)打印報表;10.界面:設(shè)計總體菜單界面,簡單菜單、下拉式或彈出式;11.密碼設(shè)置:用戶進(jìn)入系統(tǒng)時,有不同用戶名和密碼的輸入。選作要求1.不用全局變量,而用參數(shù)傳遞,或指針變量傳遞數(shù)值,或return 語句實現(xiàn)值傳遞;2.設(shè)置密碼,將密碼存儲在文件中,并可以添加新用戶,或刪除不合法用戶等;3.給密碼簡單加密,例如本來是ABC,讓在文件中存儲的是123等簡單運算;4.自己設(shè)計的功能有代表意
6、義,有亮點。算法簡要分析1.存儲格式:p結(jié)構(gòu)體類型的定義p鏈表組織數(shù)據(jù)2.界面設(shè)計:按功能不同編寫模塊(首先寫入空語句,最后一個模塊一個模塊的調(diào)試代碼),設(shè)計主菜單。3.數(shù)據(jù)的存儲和讀寫:對文件的操作4.分別依此完成后續(xù)模塊5.注意:在設(shè)計的過程中要跟蹤、監(jiān)視數(shù) 據(jù)變化日程安排準(zhǔn)備工作:搜集相關(guān)資料,書籍,復(fù)習(xí)C語言 C語言庫函數(shù)參閱指導(dǎo)書及相關(guān)參考書,可借閱C庫函數(shù)或C程序設(shè)計技巧等書籍,另外,還可參閱C語言編程寶典。第1周周一:1)系統(tǒng)分析與總體設(shè)計;2)完成主菜單的顯示,初步完成對各模塊的調(diào)用。第1周周一: 結(jié)合實際題目基本完成數(shù)據(jù)的錄入,輸出功能。第1周周一: 完成數(shù)據(jù)的文件存儲以及數(shù)
7、據(jù)文件的打開與讀出。參考:可以練習(xí)有關(guān)文件操作的內(nèi)容,完成以下編程任務(wù):v1 編寫程序?qū)崿F(xiàn)功能:建立一個文件名為stuinfo.txt的文件,錄入一批(10個)學(xué)生的學(xué)號、姓名、年齡、C語言成績,并將這些數(shù)據(jù)寫到stuinfo.txt文件中。v2 打開上述建立的文件,從文件中讀入所有數(shù)據(jù)(即將這些學(xué)生信息讀入內(nèi)存中),然后將它們輸出到顯示器上。日程安排第1周周四至第2周周二 :詳細(xì)設(shè)計(插入、刪除、修改、統(tǒng)計、排序等)第2周周一至周三 在計算機(jī)上檢查驗收,檢查內(nèi)容包括:1)自述系統(tǒng)特點、調(diào)試中遇到的問題及解決方法;2)回答問題。 參考:練習(xí)數(shù)組、結(jié)構(gòu)體、鏈表相關(guān)內(nèi)容,完成以下任務(wù):v 1. 對
8、已建立的學(xué)生信息,在指定位置進(jìn)行插入和刪除一個元素工作。v 2. 對已建立的學(xué)生信息,按指定方式(如學(xué)號的遞增次序等)進(jìn)行排序,并輸出結(jié)果。 最終提交:電子版實驗報告、打印版實最終提交:電子版實驗報告、打印版實驗報告、電子版源程序代碼。驗報告、電子版源程序代碼。提交文件名約定:提交文件名約定:v實驗報告文件名實驗報告文件名 :學(xué)號:學(xué)號_姓名姓名.doc程序模塊圖程序模塊圖vbioskey(0)利用BIOS中斷0 x14執(zhí)行各種鍵盤操作。括號里的參數(shù)確定實際的操作0 的意思是返回下一從鍵盤輸入的字符。 如果低8位非零,則為ASCII字符;如果低8位為零,則高8位為擴(kuò)展鍵盤碼,可以參看IBM P
9、C技術(shù)參考手冊 編程舉例v建立一個小型的超市管理系統(tǒng)??蓪Τ械膸齑婧弯N售情況進(jìn)行管理。在內(nèi)容上,包括庫存和銷售兩方面。v庫存應(yīng)包括:商品的貨號、名稱、類別、總量、庫存量上限、庫存量下限、進(jìn)貨價格、零售價格、進(jìn)貨日期、進(jìn)貨量、生產(chǎn)日期、生產(chǎn)廠家、保質(zhì)期等。v銷售應(yīng)包括:商品的貨號、名稱、銷售日期、銷售價格、銷售數(shù)量、利潤等。v數(shù)據(jù)必須以文件形式存放,分解為庫存和銷售兩個文件。v分析:首先進(jìn)行資料錄入及存儲,錄入庫存和銷售基本資料,然后分別存儲在兩個文件中。v其次做更新操作(插入、刪除、修改),即商品的進(jìn)貨與銷售過程。v進(jìn)貨時:如是新商品則把新的商品信息直接插入到庫存文件中;如是舊商品根據(jù)商品庫
10、存量的上限和下限值確定進(jìn)貨的數(shù)量,然后將進(jìn)貨后的該商品的相關(guān)數(shù)據(jù)進(jìn)行修改;如是該商品已過保質(zhì)期,則不再銷售,資料全部刪除。v銷售時:當(dāng)有商品被銷售時,應(yīng)首先將銷售情況記錄到銷售文件中的相關(guān)信息,然后修改庫存文件中的相關(guān)信息。v然后作查詢,統(tǒng)計,排序等操作;v最后輸出報表。/*主程序*/main() int choice; sum=read_message(); bioskey(0); do clrscr(); printf(nnn *超市管理系統(tǒng)*nn); printf( 1. 錄入商品信息nn); printf( 2. 打印商品信息nn); printf( 3. 更新商品信息nn); pri
11、ntf( 4. 查詢商品信息nn); printf( 5. 統(tǒng)計商品信息nn); printf( 6. 商品排行信息nn); printf( 0. 退出系統(tǒng)nn); printf( 請選擇(0-6):); scanf(%d,&choice); switch(choice) case 1: input_message(); break; case 2: output_message(); break; case 3: renew_message(); break; case 4: inquire_message(); break; case 5: count_message(); bre
12、ak; case 6: sort_message(); break; case 0: break; while(choice!=0);save_message(sum);printf(n-以上商品信息已保存!-(文件名:supermarket.txt)n);v/*商品結(jié)構(gòu)體類型*/vstruct goods_typev int num; /商品號 v char name10; /商品名稱 v char kind10; /商品種類 v int amount; /商品總量 v int goods_up; /商品庫存量上限 v int goods_down; /商品庫存量下限 v int in_pr
13、ice; /進(jìn)貨價格v int out_price; /零售價格 v int in_num; /進(jìn)貨量 v struct date in_time; /進(jìn)貨日期 v struct date pro_time; /生產(chǎn)日期 v char factory10; /生產(chǎn)廠家 v int save_day; /保質(zhì)期 v int profit; /利潤 vgoodsMAX; /*存放MAX種商品記錄的結(jié)構(gòu)體數(shù)組*/v#include v#include v#define MAX 20v/*日期結(jié)構(gòu)體類型*/vstruct datev int year;v int month;v int date;v;
14、/*輸入模塊*/input_message() int i=0,s=MAX; clrscr(); printf(nn 錄入商品信息 (最多%d種)n,s); printf( -n); do printf(n 第%d種商品,i+1); printf(n 商品號:); scanf(%d,&goodsi.num); if(goodsi.num=0) break; printf(n 商品名稱:); scanf(%s,); printf(n 商品類別:); scanf(%s,goodsi.kind); printf(n 商品總量:); scanf(%d,&goods
15、i.amount); printf(n 商品上限:); scanf(%d,&goodsi.goods_up); printf(n 商品下限:); scanf(%d,&goodsi.goods_down); printf(n 進(jìn)貨價格:); scanf(%d,&goodsi.in_price);printf(n 銷售價格:); scanf(%d,&goodsi.out_price);printf(n 進(jìn)貨數(shù)量:); scanf(%d,&goodsi.in_num);printf(n 進(jìn)貨日期(yyyy-mm-dd):);scanf(%d-%d-%d,&am
16、p;goodsi.in_time.year,&goodsi.in_time.month,&goodsi.in_time.date);printf(n 生產(chǎn)日期(yyyy-mm-dd):);scanf(%d-%d-%d,&_time.year,&_time.month,&_time.date);printf(n 生產(chǎn)廠家:); scanf(%s,goodsi.factory);printf(n 保質(zhì)期:); scanf(%d,&goodsi.save_day);i+;while(iMAX)
17、;printf(n -%d種商品信息輸入完畢!-n,i);sum=i;printf(n 按任意鍵返回主菜單!);bioskey(0);v#define PRINT1 printf(-n)v#define PRINT2 printf(商品號-商品名稱-商品種類-銷售價格-生產(chǎn)日期(年-月-日)-保質(zhì)期n)v#define PRINT3 printf(%4d %8s %8s %8d %15d-%2d-%2d %10dn,goodsi.num, ,goodsi.kind,goodsi.out_price,_time.year,_time.
18、month,_time.date,goodsi.save_day)v#define PAGE 10/*輸出模塊*/output_message() int i=0,j=0,count,page=1; clrscr(); printf(nn -商品信息表- 第%d頁nn,page); PRINT2; PRINT1; do if(goodsi.num!=0) j+; if(j%PAGE!=0) PRINT3; PRINT1; else PRINT3; PRINT1; if(goodsi+1.num!=0) printf(按任意鍵繼續(xù)!); bioskey(0); clrscr(
19、); printf(nn -商品信息表- 第%d頁nn,+page); PRINT2; PRINT1; i+; while(goodsi.num!=0); printf(按任意鍵返回主菜單!); bioskey(0);/*更新模塊*/renew_message() int choice; do clrscr(); printf(nnn *更新商品信息*nn); printf( 1. 添加商品信息nn); printf( 2. 刪除商品信息nn); printf( 3. 修改商品信息nn); printf( 0. 返回主菜單nn); printf( 請選擇(0-3):); scanf(%d,&a
20、mp;choice); switch(choice) case 1: insert_message();break; case 2: del_message();break; case 3: revise_message();break; case 0: break; while(choice!=0);/*添加商品信息*/insert_message() int i=sum,j,flag=0; char choice; clrscr(); printf(nn 添加一種新商品n); printf( -n); do goodsi.num=+sum; printf(n 新商品號:%d,goodsi.
21、num); printf(n 商品名稱:); scanf(%s,); printf(n 商品類別:); scanf(%s,goodsi.kind); printf(n 商品總量:); scanf(%d,&goodsi.amount); printf(n 商品上限:); scanf(%d,&goodsi.goods_up); printf(n 商品下限:); scanf(%d,&goodsi.goods_down); printf(n 進(jìn)貨價格:); scanf(%d,&goodsi.in_price); printf(n 銷售價格:); s
22、canf(%d,&goodsi.out_price); printf(n 進(jìn)貨數(shù)量:); scanf(%d,&goodsi.in_num); printf(n 進(jìn)貨日期(yyyy-mm-dd):); scanf(%d-%d-%d,&goodsi.in_time.year,&goodsi.in_time.month,&goodsi.in_time.date); printf(n 生產(chǎn)日期(yyyy-mm-dd):); scanf(%d-%d-%d,&_time.year,&_time.month,&a
23、mp;_time.date); printf(n 生產(chǎn)廠家:); scanf(%s,goodsi.factory); printf(n 保質(zhì)期:); scanf(%d,&goodsi.save_day); printf(n 要繼續(xù)嗎?(Y/N); choice=getch(); if (choice=y|choice=Y) printf(n 繼續(xù)!n); i+; flag=1; else flag=0; while(flag=1); printf(n 按任意鍵返回主菜單!); bioskey(0);/*查詢模塊*/inquire_message() int choi
24、ce; do clrscr(); printf(nnn *查詢商品信息*nn); printf( 1. 按商品名稱查詢nn); printf( 2. 按商品類別查詢nn); printf( 3. 按商品名稱和進(jìn)貨價格查詢nn); printf( 0. 返回主菜單nn); printf( 請選擇(0-3):); scanf(%d,&choice); switch(choice) case 1: inquire_name();break; case 2: inquire_kind();break; case 3: inquire_count_time();break; case 0: br
25、eak; while(choice!=0);/*按名稱查詢*/inquire_name() int i,choice,j=0,inquire_in_price; char inquire_name10; clrscr(); printf(n 輸入要查詢的商品名稱:); scanf(%s,inquire_name); for(i=0;isum;i+) if(strcmp(,inquire_name)=0&goodsi.num!=0) printf(n -商品信息-n); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) print
26、f(n 該商品不存在!); bioskey(0);/*統(tǒng)計模塊*/count_message() int choice; do clrscr(); printf(nnn *統(tǒng)計商品信息*nn); printf( 1. 統(tǒng)計某商品的利潤nn); printf( 2. 統(tǒng)計某商品的進(jìn)貨量nn); printf( 3. 統(tǒng)計同種名稱不同貨號商品庫存量nn); printf( 0. 返回主菜單nn); printf( 請選擇(0-3):); scanf(%d,&choice); switch(choice) case 1: count_profit();break; case 2: count
27、_in_amount();break; case 3: count_full();break; case 0: break; while(choice!=0);/*統(tǒng)計利潤*/count_profit() int i,choice,j=0,count_num,profit; char inquire_name10; clrscr(); printf(n 輸入要統(tǒng)計的商品號:); scanf(%d,&count_num); for(i=0;isum;i+) if(goodsi.num=count_num) profit=goodsi.out_price-goodsi.in_price;
28、printf(n 商品利潤); printf(n -n); printf(n 商品號 利潤); printf(n%25d%13dn,goodsi.num,profit); else j+; if(j=sum) printf(n 該商品不存在!); bioskey(0);/*排序模塊*/sort_message() int choice; do clrscr(); printf(nnn *商品排行信息*nn); printf( 1.庫存量排行nn); printf( 2.利潤排行nn); printf( 3.銷售量排行nn); printf( 0.返回主菜單nn); printf( 請選擇(0-
29、3):); scanf(%d,&choice); switch(choice) case 1: sort_amount();break; case 2: sort_profit();break; case 3: sort_out_amount();break; case 0: break; while(choice!=0);/*庫存排行*/sort_amount() struct goods_type *p,*qMAX; int i,j,k; clrscr(); printf(n 庫存排行n); printf(-n); printf(n 排名 商品號 商品名稱 商品類別 庫存量n);
30、p=goods; for(i=0;isum;i+) qi=p+; for(i=0;isum;i+) k=i; for(j=i+1;jamountamount) k=j; if (k!=i) p=qi;qi=qk;qk=p; for(i=0;inum,qi-name,qi-kind,qi-amount); bioskey(0);/*保存信息*/save_message(int sum) FILE *fp; int i; if(fp=fopen(supermarket.txt,wb)=NULL) printf(讀文件錯誤!n); return 0; for(i=0;isum;i+) if(fwri
31、te(&goodsi,sizeof(structgoods_type),1,fp)!=1) printf(寫文件錯誤!n); fclose(fp);/*讀取信息*/read_message() FILE *fp; int i=0; if(fp=fopen(supermarket.txt,rb)=NULL) printf(nn*暫時還沒有任何庫存信息,按任意鍵進(jìn)入主菜單選擇基本信息的錄入!*n); return; while(feof(fp)!=1) fread(&goodsi,sizeof(struct goods_type),1,fp); if(goodsi.num=0) break; e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南2024年湖南省檢察機(jī)關(guān)招聘聘用制書記員203人歷年參考題庫(頻考版)含答案解析
- 2025年云南保山市龍陵縣萬達(dá)建設(shè)投資有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 2025年江蘇蘇州市常熟市交通公有資產(chǎn)經(jīng)營有限公司招聘筆試參考題庫附帶答案詳解
- 2025年廣西武宣縣萬融國資公司招聘筆試參考題庫含答案解析
- 2025年貴州息烽縣供銷社總公司招聘筆試參考題庫含答案解析
- 2025年華能貴州清潔能源分公司招聘筆試參考題庫含答案解析
- 2025年中鐵十七局集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年重慶軌道九號線建設(shè)公司招聘筆試參考題庫含答案解析
- 2025年浙江中天紡檢測有限公司招聘筆試參考題庫含答案解析
- 寧夏2025年下半年部分事業(yè)單位公開招聘工作人員歷年高頻重點提升(共500題)附帶答案詳解
- 2024年國家公務(wù)員考試行政職業(yè)能力測驗真題及答案
- 2024年便攜式儲能行業(yè)分析報告
- 2024-2025學(xué)年廣東省廣州市廣州大附中初三3月教學(xué)質(zhì)量監(jiān)測考試數(shù)學(xué)試題(理甲卷)版含解析
- 科研倫理與學(xué)術(shù)規(guī)范期末考試試題
- 2024年秋季人教版新教材七年級上冊語文全冊教案(名師教學(xué)設(shè)計簡案)
- 2024中華人民共和國農(nóng)村集體經(jīng)濟(jì)組織法詳細(xì)解讀課件
- 2025屆湖南省長沙市青竹湖湘一外國語學(xué)校七年級數(shù)學(xué)第一學(xué)期期末經(jīng)典試題含解析
- 2024中國食藥同源大健康產(chǎn)業(yè)消費洞察與產(chǎn)業(yè)發(fā)展分析白皮書
- 郵政銀行借款合同
- 2024屆廣州市番禺區(qū)重點名校中考數(shù)學(xué)全真模擬試題含解析
- 2024春期國開電大??啤吨袊糯幕WR》在線形考(形考任務(wù)一至四)試題及答案
評論
0/150
提交評論