資源描述:
《C基礎(chǔ)程序設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、程序設(shè)計基礎(chǔ)課程設(shè)計說明書課程名稱:題目:姓名:學(xué)號:教學(xué)班號:指導(dǎo)教師:蘭州交通大學(xué)計算機基礎(chǔ)教研室二o—O年月日目錄課程設(shè)計說明書1一.設(shè)計目的:3二.問題重述3三.基本要求:3卩q.概要設(shè)計:41.數(shù)據(jù)組織形式:42.扌交IIp
2、*?43.函數(shù)關(guān)系調(diào)用圖:5五.詳細設(shè)計:51.主要函數(shù)流程圖52.運行實例8六.思考題11七.總結(jié)12一.設(shè)計目的:通過較大型程序的設(shè)計,編制,調(diào)試,掌握IT頂向下,逐步求精,和模塊化的程序設(shè)計方法,熟練掌握排序,查詢,統(tǒng)計等常用數(shù)據(jù)處理方法,并為后續(xù)課程的學(xué)習(xí)奠定良好的基礎(chǔ),形成良好的程序設(shè)計風格。二.問題重述編制一個簡單的“學(xué)牛成績管理系統(tǒng)”,要求其主要功
3、能有:數(shù)據(jù)輸入,成績排序,成績查詢,及格率查詢,退出等基本功能?;疽?1?將學(xué)生成績利用計算機來管理是一個常見的問題,其實現(xiàn)方法很多。山于先行知識所限,要求:①利川C++語言實現(xiàn);0考慮一個班同學(xué)即可;③簡化學(xué)生的屬性,至多考慮學(xué)號、姓名、和若T?門成績,其他屬性全部忽略不計;2.原始數(shù)據(jù)用文件存儲;3.采用模塊化的設(shè)計方式,利用函數(shù)分層的實現(xiàn)各個模塊;4.可以嘗試在一個工程下使用多個文件(包含.cpp和.h等)的編譯方法;5.各個模塊Z間應(yīng)該滿足“高內(nèi)聚、低耦合”的要求,數(shù)據(jù)通信應(yīng)該盡量用參數(shù)實現(xiàn),而不用全局量;6?保證良好的“人一機”界血,最好采用菜單來驅(qū)動;7?源程序要有良好的可讀性
4、,要求書寫格式淸晰、美觀、采用縮進格式書寫;&在設(shè)計的最后階段,應(yīng)提交設(shè)計說明書.有關(guān)文檔、及源程序清單和總結(jié)。從!概要設(shè)計:1?數(shù)據(jù)組織形式:木程序采用數(shù)組存放數(shù)據(jù),其中有namcfN],num[N],eng[N],math[N],pro[N],s[N],ave[N],engj,mathj,projoname[N])IJ來存放姓名,num[N]用來存放學(xué)號,floateng[N]川來存放英語成績,math[N]川來存放數(shù)學(xué)成績,pro[NUIJ來存放程序設(shè)計成績,s[N]用來存放每個學(xué)生的總分,ave[NjHJ來存放每個學(xué)生的平均分,engj川來存放英語及格率,mathj川來存放數(shù)學(xué)及格率,
5、proj川來存放程序設(shè)計及格率。2?接口設(shè)計主要函數(shù):voidmain()//主函數(shù)voidset^data(intn)〃輸入數(shù)據(jù)voiddisplay(intn)〃顯示數(shù)據(jù)voidsearch(stringa,intn)〃成績查詢函數(shù)voidsortl(float*pjntn,string*num,〃成績排序函數(shù)string*name,float*d,float*a,float*b,float*c)voidmenu1()〃菜單?1voidmcnu2()〃菜單2voidmcnu3()〃菜單31?函數(shù)關(guān)系調(diào)用圖:圖1.函數(shù)調(diào)用關(guān)系圖五.詳細設(shè)計:1.主要函數(shù)流程圖1)排序函數(shù):源程序:voids
6、ortl(float*p,intn,string*num,string*name,float*d,float*a,float*b5float*c)〃排序,用指針變暈作形參{inti,j,k,t;string1;for(i=0;i*(p+k))k=j;〃用指針法訪問數(shù)組元素t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;流程圖:l=*(num+k);*(num+k)=*(num+i);*(num+i)=l;1=*(name+k);*(name+k)=*(name+i);*(name+i)=l;(=
7、*(d+k);*(d+k)=*(d+i);*(d+i)=t;t=*(a+k);*(a+k)=*(a+i);*(a+i)=t;t=*(b+k);*(b+k)=*(b+i);*(b+i)=t;t=*(c+k);*(c+k)=*(c+i);*(c+i)=t;}}圖2排序函數(shù)流程圖2)查詢函數(shù):源程序:voidstudent::search(stringa,intn)boolf=true;for(inti=();i8、l;coutvv”學(xué)號:"vvnum[i]vvendl;coutvv"英語:"?eng[i]?endl;cout?n數(shù)學(xué):M?math[i]?endl;cout?"程序設(shè)計:”vvpro[i]vvendl;cout?"總分:"?s[i]?endl;cout?"平均分:"wave[i]?endI;}if⑴{"?endl;cout?tl=====>提示:對不起,無法找到該學(xué)生的信息!<====retu