資源描述:
《《c程序設(shè)計(jì)》課程設(shè)計(jì)--銷(xiāo)售管理系統(tǒng)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、《C程序設(shè)計(jì)》課程實(shí)踐報(bào)告銷(xiāo)售管理系統(tǒng)191.設(shè)計(jì)目標(biāo)問(wèn)題:對(duì)某公司有四個(gè)銷(xiāo)售員(編號(hào):1-4),負(fù)責(zé)銷(xiāo)售五種產(chǎn)品(編號(hào):1-5)進(jìn)行合理管制。每個(gè)銷(xiāo)售員都將當(dāng)天出售的每種產(chǎn)各寫(xiě)一張便條交上來(lái)。每張便條包含內(nèi)容:1.銷(xiāo)售員的代號(hào)2.產(chǎn)品的代號(hào)3.這種產(chǎn)品的當(dāng)天的銷(xiāo)售額每位銷(xiāo)售員每天可能上繳0-5張便條。功能:假設(shè),收集到了上個(gè)月的所有便條,編寫(xiě)一個(gè)處理系統(tǒng),讀取上個(gè)月的銷(xiāo)售情況(自己設(shè)定),進(jìn)行如下處理。1.計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額。2.按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序,輸出排序結(jié)果(銷(xiāo)售員代號(hào))
2、3.統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額,對(duì)這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號(hào)和銷(xiāo)售額)4.輸出統(tǒng)計(jì)報(bào)表。2.總體設(shè)計(jì)程序設(shè)計(jì)組成框圖:銷(xiāo)售系統(tǒng)1計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額3按產(chǎn)品銷(xiāo)額從高到底的順序排序5退出系統(tǒng)4輸出統(tǒng)計(jì)報(bào)表2按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序程序流程圖:19main()menu()if(choice==5)case1;f1();case2;f2();case3;f3();case4;f4();scanf("%d",&choice);switch(choice)for(i=0
3、;;i++)break;break;結(jié)束3.詳細(xì)設(shè)計(jì)191.功能函數(shù)f1()函數(shù)的功能:計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷(xiāo)售額函數(shù)的入口:從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choice的值為1時(shí)進(jìn)入該函數(shù),打開(kāi).dat數(shù)據(jù)文件,然后提示用戶(hù)通過(guò)鍵盤(pán)對(duì)該月的員工銷(xiāo)售情況進(jìn)行數(shù)據(jù)的讀入。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口:當(dāng)程序執(zhí)行提示語(yǔ)“printf("繼續(xù)輸入請(qǐng)按Y,結(jié)束輸入請(qǐng)按S");”的時(shí)候,對(duì)用戶(hù)的操作進(jìn)
4、行提示,如果用戶(hù)選擇了按“S”鍵,則用戶(hù)選擇了結(jié)束數(shù)據(jù)的錄入,將結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開(kāi)關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。2.功能函數(shù)f2()函數(shù)的功能::按銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排序,輸出排序結(jié)果。函數(shù)的入口:程序從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choise的值為2時(shí),開(kāi)始進(jìn)入該函數(shù),進(jìn)入函數(shù)后,首先用“fopen()”打開(kāi)文件,然后利用“fread()”讀取二進(jìn)制數(shù)據(jù),最終利用選擇排序法,按銷(xiāo)售員的所選產(chǎn)品的總銷(xiāo)售額對(duì)銷(xiāo)售員進(jìn)行排
5、序。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口:當(dāng)輸出排序結(jié)果用printf()標(biāo)準(zhǔn)輸出到屏幕上,然后結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”跳出switch()開(kāi)關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。3.功能函數(shù)f3()函數(shù)的功能::統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額,輸出排序結(jié)果函數(shù)的入口:從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choise的值為3的時(shí)侯,進(jìn)入該函數(shù),開(kāi)始讀取數(shù)據(jù)對(duì)用戶(hù)進(jìn)行提示,然后統(tǒng)計(jì)每種產(chǎn)品的總銷(xiāo)售額
6、。將計(jì)算后的總銷(xiāo)售額進(jìn)行排序,最終把排序的結(jié)果用printf()標(biāo)準(zhǔn)輸出函數(shù),將結(jié)果輸出在屏幕上。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口:當(dāng)輸出排序結(jié)果用printf()標(biāo)準(zhǔn)輸出到屏幕上,然后結(jié)束該函數(shù),而執(zhí)行主函數(shù)main()中“break;”19跳出switch()開(kāi)關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。3.功能函數(shù)f4()函數(shù)的功能:輸出統(tǒng)計(jì)報(bào)表函數(shù)的入口:從main()的switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,即choise的值為3時(shí)
7、,進(jìn)入該函數(shù),然后通過(guò)fopen()函數(shù)。即:“if((fp=fopen(fname,"rb"))==NULL)”打開(kāi)文件。進(jìn)入數(shù)據(jù)的處理。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。由switch()開(kāi)關(guān)結(jié)構(gòu)中進(jìn)入,并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口:開(kāi)始時(shí)讀取數(shù)據(jù)后,統(tǒng)計(jì)報(bào)表已經(jīng)輸出到屏幕上時(shí),然后用而執(zhí)行主函數(shù)main()中“break;”跳出switch()開(kāi)關(guān)函數(shù),繼續(xù)執(zhí)行for循環(huán)結(jié)構(gòu)。5、功能函數(shù)主菜單menu()函數(shù)的功能:主要作用是提示用戶(hù)操作,體現(xiàn)模塊化思想,主要是顯示出菜單讓用戶(hù)
8、選擇要進(jìn)行的任務(wù)。函數(shù)的入口:從主函數(shù)main()中的system("cls");/*清屏命令*/menu();/*菜單函數(shù)提示用戶(hù)怎樣選擇*/進(jìn)入函數(shù),這是直接被主函數(shù)main()調(diào)用的。函數(shù)調(diào)用關(guān)系:被主函數(shù)調(diào)用。并在文中無(wú)返回值的空值void函數(shù)。函數(shù)的出口:執(zhí)行完所有的printf()函數(shù)后自動(dòng)退出該函數(shù)。6、功能函數(shù)主函數(shù)main()函數(shù)的功能:用于聯(lián)系各個(gè)功能函數(shù)模塊,以及退出程序時(shí)的退出畫(huà)面提示。函數(shù)的入口:整個(gè)程序是從主函數(shù)開(kāi)始的。函數(shù)的出口:當(dāng)從main()的sw