C語言畢業(yè)課程設(shè)計(電子版)_第1頁
C語言畢業(yè)課程設(shè)計(電子版)_第2頁
C語言畢業(yè)課程設(shè)計(電子版)_第3頁
C語言畢業(yè)課程設(shè)計(電子版)_第4頁
C語言畢業(yè)課程設(shè)計(電子版)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

C語言課程設(shè)計報告ExperimentDesigningreporter課程名稱:C語言課程設(shè)計英文名稱:CProgramExperimentDesigning專業(yè):交通工程+軟件工程08學(xué)號:姓名:指導(dǎo)教師:日期:2009年6月8日至2009年619日大連交通大學(xué)軟件學(xué)院《C語言課程設(shè)計》報告CProgramExperimentDesigning課程編號: 學(xué)時:40學(xué)時適用專業(yè):軟件工程專業(yè)授課單位:軟件學(xué)院C語言課程設(shè)計目的及要求目的:根據(jù)課堂講授內(nèi)容,學(xué)生做相應(yīng)的自主練習(xí),消化課堂所講解的內(nèi)容;通過調(diào)試典型例題或習(xí)題積累調(diào)試C程序的經(jīng)驗;通過完成輔導(dǎo)教材中的編程題,逐漸培養(yǎng)學(xué)生的編程能力、用計算機解決實際問題的能力。要求:熟悉TurboC的編程環(huán)境、主要菜單功能。通過上機驗證運算符、表達(dá)式、運算規(guī)則、函數(shù)使用。熟練使用C語言的典型語句編寫簡單程序。調(diào)試典型例題或習(xí)題。提高上機編程能力實驗類型設(shè)計類型實驗學(xué)時40學(xué)時實驗設(shè)備微型計算機、WINDOWS98XP以上版本的操作系統(tǒng)、TurboC2.0軟件一套XPC語言課程參考教材:1.C語言程序設(shè)計清華大學(xué)出版社馬靖善主編與大綱保持一致最好與大綱保持一致最好2.譚浩強.C語言程序設(shè)計(第三版).北京:高等教育出版社,2002

課程設(shè)計(報告)任務(wù)書任務(wù)及要求:設(shè)計(研究)內(nèi)容和要求研究內(nèi)容:投票選舉、計算并按序輸出學(xué)生平均成績及總分、字符串排序、統(tǒng)計單詞、學(xué)生成績管理系統(tǒng)任務(wù)和要求:(1).學(xué)習(xí)C語言基礎(chǔ)知識,掌握C語言編程和程序調(diào)試的基本技能。(2).對指導(dǎo)教師下達(dá)的題目進行系統(tǒng)分析。(3).根據(jù)分析結(jié)果完成系統(tǒng)設(shè)計。(4).編程:在計算機上實現(xiàn)題目的代碼實現(xiàn)。(5).完成對該系統(tǒng)的測試和調(diào)試。(6).提交課程設(shè)計報告。(7).指標(biāo):要求完成課程設(shè)計報告3千字以上(約二、三十頁).完成若干綜合性程序設(shè)計題目,每個綜合設(shè)計題目的語句行數(shù)的和在300行語句以上.2.原始依據(jù)了解C語言的基礎(chǔ)知識,有一定的語言編程基礎(chǔ),能夠熟練運用C語言進行程序設(shè)計。通過用C語言完成的題目,提高用C語言解決實際問題的能力。3.參考文獻(xiàn)[1]黃明等.C語言程序設(shè)計輔導(dǎo)教材.大連理工大學(xué)出版社,2006[2]馬靖善等.C語言程序設(shè)計.清華大學(xué)出版社,2005[3]譚浩強.C語言程序設(shè)計(第二版).北京:高等教育出版社,20022008年6月20日目錄C語言課程設(shè)計報告 1[1]黃明等.C語言程序設(shè)計輔導(dǎo)教材.大連理工大學(xué)出版社,2006 31統(tǒng)計選票 11.1系統(tǒng)分析 11.2設(shè)計說明 11.3程序運行截圖 21.4 源程序代碼 22成績輸出 32.1功能說明 32.2設(shè)計說明 32.3程序運行截圖 42.4源程序代碼 43字符串排序 53.1功能說明 53.2設(shè)計說明 53.3程序運行截圖 63.4源程序代碼 64統(tǒng)計單詞 74.1功能說明 74.2設(shè)計說明 74.3程序運行截圖 84.4源程序代碼 85學(xué)生成績管理系統(tǒng) 95.1需求分析 95.2總體設(shè)計 105.3詳細(xì)設(shè)計與實現(xiàn) 125.3程序運行截圖 151統(tǒng)計選票[格式:標(biāo)題2,黑體,3號]1.1系統(tǒng)分析統(tǒng)計候選人的選票。1.2設(shè)計說明1、定義:#include"string.h"2、子函數(shù),輸入候選人。函數(shù)名:structperson返回值:候選人的序號,姓名參數(shù):intnum;charname[20];intcount;處理流程:定義候選人3、主函數(shù)main()從鍵盤上輸入一候選人,for循環(huán)輸入選票,若選票與候選人匹配,增加票數(shù),最后統(tǒng)計最終的票,選出候選人。如:lilizhaozhaozhaoliliwangwangzhangzhangzhangzhaolili,則在屏幕上顯示:=================================Theresultis:li7zhang2zhao3wang3****thangyouforyouvote****1.3程序運行截圖源程序代碼#include"string.h"/*統(tǒng)計4候選人的得票情況*/structperson{charname[20];intcount;}leader[]={"li",0,"zhang",0,"zhao",0,"wang",0};main(){inti,j;charselect[20];clrscr();printf("========================================================\n");printf("****voteforourleader****\n\n\n");for(i=0;i<15;i++){printf("%d\tPleaseinputyourresult:",i+1);scanf("%s",select);for(j=0;j<4;j++){if(strcmp(leader[j].name,select)==0)leader[j].count++;}}printf("Theresultis:\n");for(j=0;j<4;j++)printf("%s\t%d\n",leader[j].name,leader[j].count);printf("\n\n\n****thankyouforyourvote****\n");printf("====================================================");getch();printf("***************************\n");}2成績輸出2.1功能說明根據(jù)提示輸入學(xué)生姓名年齡和成績,求出總成績和平均值2.2設(shè)計說明1、定義:#include"stdio.h"2、子函數(shù),求出總成績及平均值。函數(shù)名:floataver(floata[])返回值:av,求出成績平均值參數(shù):inti,含義:數(shù)字Floatav,s=a[],含義:數(shù)組處理流程:For循環(huán)求出平均值3、主函數(shù)main()從鍵盤上輸入成績,調(diào)用結(jié)構(gòu)數(shù)組,輸入成績,然后調(diào)用子函數(shù)floataver(floata[])如:==============================================WelcometothesystemPleaseinputyourname:LilyPleaseinputyourage:19Pleaseinputyourscore:8998789664***********************conclusion**********************Name:LilyAge:19Score1:89.000000score2:98.000000score3:78.000000Score4:96.000000score5:64.000000Final:sum=425ave=85.0000002.3程序運行截圖2.4源程序代碼#include"stdio.h"main(){structstudent{charname[10];intage;floatscore[5],ave;}stu;inti,sum;sum=0;stu.ave=0;printf("==============================================================\nwelcometothesystem\n");printf("\nPleaseinputyourname:");scanf("%s",);printf("\nPleaseinputyourage:");scanf("%s",&stu.age);printf("\nPleaseinputyourscore:");for(i=0;i<5;i++){scanf("%f",&stu.score[i]);sum=sum+stu.score[i];stu.ave+=stu.score[i]/5.0;}printf("\n\n************************conclusion**************************");printf("\n\nName:%s\n\n",);printf("Age:%d\n\n",stu.age);for(i=0;i<5;i++)printf("Score%d:%2.lf",i+1,stu.score[i]);printf("\n\nFinal:sum=%d",sum);printf("average=%6.lf\n",stu.ave);printf("\n\n===============================================================");getch();}3字符串排序[格式:標(biāo)題2,黑體,3號]3.1功能說明統(tǒng)計三個字符串中的元素,并按從小到大的順序排列3.2設(shè)計說明1、定義:#include"stdio.h"#include"string.h"#defineM3#defineN202、主函數(shù)main(),根據(jù)提示從鍵盤上輸入字符串,然后用strcmpt統(tǒng)計字符串長度,根據(jù)長度不同,運用for循環(huán)和復(fù)制函數(shù)strcpy,重新排列字符串如:Pleaseinputthefirststring:hahahahahaPleaseinputthesecondstring:hiPleaseinputthethirdstring:nihaoTheresultis:Thefirst:hiThesecond:nihaoThethird:hahahahaha3.3程序運行截圖3.4源程序代碼#include"stdio.h"#include"string.h"#defineM3#defineN20main(){charstr[M][N],temp[N];inti,j;for(i=0;i<M;i++){printf("pleaseinputnumber%dstring:",i+1);scanf("%s",&str[i]);}printf("======================================================");printf("Before:\n");for(i=0;i<M;i++)printf("the%dstring:%s\n",i+1,str[i]);for(j=0;j<M-1;j++){for(i=0;i<M-j-1;i++)if(strcmp(str[i],str[i+1])>0){strcpy(temp,str[i]);strcpy(str[i],str[i+1]);strcpy(str[i+1],temp);}}printf("After:\n");for(i=0;i<M;i++)printf("thenumber%dstring:%s\n",i+1,str[i]);printf("=======================================================");getch();}4統(tǒng)計單詞4.1功能說明統(tǒng)計字符串中的單詞數(shù)量4.2設(shè)計說明1、定義:#include“stdio.h”2、主函數(shù)main()定義變量,運用for語句循環(huán)統(tǒng)計字符串中單詞的數(shù)量如:輸入Thelittleboyisverysmart則屏幕上顯示:Thereare6wordsintheline.4.3程序運行截圖4.4源程序代碼#include"stdio.h"main(){charstr[80],c,i;intword,num;num=1;printf("=======================================");printf("\nPleaseinputaline:\n");gets(str);for(i=0;(c=str[i])!='\0';i++){if(c=='')word=0;elseif(word==0){word=1;num++;}}printf("\n\neare%dwordsintheline.\n",num);printf("=======================================");getch();}5學(xué)生成績管理系統(tǒng)建立學(xué)生成績管理系統(tǒng),采用計算機對學(xué)生成績進行管理,進一步提高辦學(xué)效益和現(xiàn)代化水平。幫助廣大教師提高工作效率,實現(xiàn)學(xué)生成績信息管理工作流程的系統(tǒng)化規(guī)范化和自動化。利用單鏈表結(jié)構(gòu)實現(xiàn)學(xué)生成績管理,了解數(shù)據(jù)管理的基本功能,掌握C語言中的結(jié)構(gòu)體,指針,函數(shù)文件操作等知識,是一個C語言知識的綜合應(yīng)用。5.1需求分析需求分析是軟件開發(fā)中最重要的環(huán)節(jié),它直接影響著項目的成功與失敗。通過對用戶需求進行調(diào)查分析,寫出需求分析的文檔。需求分析的文檔可以作為項目設(shè)計的基本要求,也可以作為系統(tǒng)分析員進行系統(tǒng)分析和測試人員進行軟件測試的手冊。1.需求概述設(shè)計一個學(xué)生成績管理系統(tǒng),使之能提供以下功能:(1)信息錄入功能(2)信息查詢功能(3)信息刪除功能(4)信息修改功能(5)信息瀏覽功能2.需求說明(1)系統(tǒng)中的每個信息包含學(xué)生的學(xué)號,姓名,課程成績,平均成績等。(2)錄入的信息要以文件或其他形式保存,并可以進行查詢、修改、刪除和瀏覽等基本操作。(3)系統(tǒng)中的信息顯示要求有一定的規(guī)范格式。(4)對系統(tǒng)中的信息修改應(yīng)分別按照學(xué)號或姓名兩種方式進行查詢,要求能返回所有符合條件的信息。(5)對系統(tǒng)中的信息修改應(yīng)該逐個的進行,一個信息記錄的修改不應(yīng)影響其他的信息記錄。(6)所設(shè)計的系統(tǒng)應(yīng)以菜單方式工作,應(yīng)為用戶提供清晰的使用提示,根據(jù)用戶的選擇進行各種處理,并要求要此過程中能盡可能地兼容使用中的異常情況。5.2總體設(shè)計根據(jù)需求分析的文檔可以,初步提出問題的解決方案,以及軟件系統(tǒng)的體系結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)的設(shè)計方案,并寫出總體設(shè)計說明書,為詳細(xì)設(shè)計做準(zhǔn)備。1.功能模塊根據(jù)需求分析,得到系統(tǒng)的功能模塊。如圖1-1所示:圖1-1系統(tǒng)模塊圖說明:(1)菜單選擇模塊完成用戶命令的接收功能。是學(xué)生成績管理系統(tǒng)的入口,用戶想要進行的各種操作都要在此模塊中選擇,并進而調(diào)用其他模塊實現(xiàn)相應(yīng)的功能。(2)成績錄入模塊用于完成成績的輸入功能。輸入的信息包括學(xué)號、姓名、課程成績等數(shù)據(jù),且每一項輸入有誤時用戶能直接修改。(3)成績刪除模塊用于完成成績的刪除功能,用戶根據(jù)個人的需求,輸入所要刪除的記錄,系統(tǒng)將執(zhí)行該程序,并輸出刪除后剩余的原有存儲信息。(4)成績查詢模塊完成成績查詢功能??梢园凑招蛱柡托彰麅煞N方式進行,并輸出符合條件的信息。(5)成績處理模塊完成成績的排序,計算總分和平均分的功能。(6)成績插入模塊完成成績的插入功能。該模塊和成績刪除模塊可以完成成績的修改功能。(7)成績保存模塊完成成績保存到文件的功能。2.?dāng)?shù)據(jù)結(jié)構(gòu)本系統(tǒng)中主要的數(shù)據(jù)結(jié)構(gòu)就是學(xué)生的成績信息,包含學(xué)號、姓名、三門課程成績、總分、平均分等。 3.程序流程 系統(tǒng)的執(zhí)行應(yīng)從系統(tǒng)菜單的選擇開始,根據(jù)用戶的選擇來進行后續(xù)的處理,直到用戶選擇退出系統(tǒng)為止,其間應(yīng)對用戶的選擇做出判斷及異常處理。系統(tǒng)的流程圖如圖1-2所示:圖1-2程序流程圖5.3詳細(xì)設(shè)計與實現(xiàn)在總體設(shè)計的基礎(chǔ)上進行詳細(xì)設(shè)計,為下一步編碼做準(zhǔn)備。數(shù)據(jù)結(jié)構(gòu)#defineN3typedefstructsl/*定義課程門數(shù),可以根據(jù)情況而定*/{charno[11];/*學(xué)號*/charname[20];/*學(xué)生姓名*/intscore[N];floatsum/*總分*/floataverage;/*平均分*/intorder;/*名次*/structsl*next;/*指向后繼結(jié)點的指針*/}STUDENT/*定義結(jié)構(gòu)體類型*/2.各個功能模塊的處理流程2.各個功能模塊的設(shè)計與實現(xiàn)(1)菜單的設(shè)計與實現(xiàn)本系統(tǒng)設(shè)計了友好且功能豐富的主菜單界面,提供打11項功能的選擇。利用switchcase語句來實現(xiàn)調(diào)用主菜單函數(shù),返回值整數(shù)作開關(guān)語句的條件。值不同,執(zhí)行的函數(shù)不同,具體函數(shù)如下:head=init()實現(xiàn)對數(shù)據(jù)執(zhí)行初始化;head=create()創(chuàng)建鏈表,進行數(shù)據(jù)錄入;head=delete(head)刪除記錄;print(head)顯示全部記錄;search(head)查找記錄;save(head)保存文件;head=load()讀文件;computer(head)計算總分和平均分;head=insert(head)插入記錄;head=sort(head)排序;exit(0)(2)數(shù)據(jù)錄入當(dāng)在主菜單中輸入了字符1時,進入創(chuàng)建鏈表函數(shù)-create(),即輸入學(xué)生信息,按照提示信息輸入學(xué)號(字符串不超過5位)、姓名(字符串不超過10位)、三門課程的成績(整數(shù)0~100),每輸入一個數(shù)就按一下回車鍵,當(dāng)在輸入學(xué)號首字符為@時結(jié)束輸入,返回主函數(shù),單鏈表創(chuàng)建完畢。當(dāng)成績輸入后,系統(tǒng)自動計算該生的總分和平均分,并將名次數(shù)據(jù)先置0,待排序后再賦予新值。數(shù)據(jù)輸入后,將其后繼結(jié)點指針指向當(dāng)前頭結(jié)點,新頭指針指向新插入結(jié)點,這樣新插入結(jié)點總在頭。數(shù)據(jù)輸入結(jié)束后返回鏈表的頭指針到主函數(shù)。(3)刪除數(shù)據(jù)刪除指定學(xué)號的學(xué)生記錄,使用delete()函數(shù)實現(xiàn)。首先輸入要刪除結(jié)點的學(xué)號,輸入后根據(jù)學(xué)號順序查找結(jié)點,如果沒找到,則輸出沒找到信息;否則,顯示找到的結(jié)點信息,按任意鍵后顯示已刪除信息。注意刪除結(jié)點時的操作,如果該結(jié)點是首結(jié)點,則要修改頭指針;否則,將該結(jié)點的前趨指針的后繼指向其后繼結(jié)點,然后釋放該結(jié)點。(4)顯示數(shù)據(jù)學(xué)生成績表建立好后,更頻繁的操作是顯示和查找記錄,print()函數(shù)實現(xiàn)顯示鏈表數(shù)據(jù)功能。由于單鏈表只能采取順序訪問的方法,所以定義一個指向結(jié)點的臨時變量p,初值為單鏈表的頭指針,輸出指針?biāo)赣涗浀臄?shù)據(jù)后,將指針后移一個記錄,直到p指針值為空,則所有記錄輸出完畢。設(shè)計本函數(shù)時注意輸出格式以二維表格的形式輸出,直觀漂亮。輸出的第一列為記錄號。注意調(diào)整格式,對齊表格線。(4)查找數(shù)據(jù)按照姓名查找結(jié)點,使用search()函數(shù)實現(xiàn)。從頭結(jié)點開始順序查找,成功則顯示記錄信息,失敗,顯示沒找到。學(xué)號是字符串,比較功能利用字符串比較函數(shù)strcmp()實現(xiàn)。(6)保存數(shù)據(jù)到文件將學(xué)生成績信息保存到指定文件中,使用save()函數(shù)實現(xiàn)。按照文件讀寫要求,先定義一個指向文件的指針,輸入要保存的磁盤文件名,如果輸入的是絕對路徑,則文件保存到指定位置;如果只給文件名,則文件保存在TurboC默認(rèn)的路徑下,然后確定文件的打開方式,打開文件;若文件打不開,則退出程序,否則選擇一種寫文件方式,從鏈表的頭指針開始,順序?qū)⒂涗泴懭胛募钡剿杏涗泴懲?,?biāo)志就是移動指針為空。(7)從文件中讀取數(shù)據(jù)從文件中讀取數(shù)據(jù)使用load()函數(shù)實現(xiàn)。按照文件讀寫要求,先定義一個指向文件的指針,輸入要讀入數(shù)據(jù)的磁盤文件名,然后確定文件的打開方式。如果文件打不開,則退出函數(shù),否則選擇一種讀文件方式,從文件頭開始,將記錄讀入內(nèi)存,直到文件尾。文件打開方式和讀入方式的確定要依據(jù)輸出文件的打開方式和寫入方式,以免數(shù)據(jù)讀入錯誤。如果輸出文件是二進制文件,塊寫操作,讀入也應(yīng)設(shè)置為二進制打開方式,塊讀取方式。每讀入一條記錄,都要做好指針鏈接關(guān)系,本函數(shù)將新結(jié)點鏈接到當(dāng)前鏈表的尾部,鏈表的順序和文件保存的順序一致。(8)計算學(xué)生的總分和所有課程平均分計算學(xué)生的總分和所有課程平均分使用computer()函數(shù)實現(xiàn)。從頭指針開始,每讀一條記錄,將該生的總分累加,并統(tǒng)計記錄條數(shù),當(dāng)所有數(shù)據(jù)處理完畢,求出平均分,最后輸出結(jié)果為所有學(xué)生的總分和平均分。(9)插入數(shù)據(jù)插入結(jié)點需要輸入插入位置和新結(jié)點信息,使用insert()函數(shù)實現(xiàn)。輸入某個結(jié)點的學(xué)號,新結(jié)點將插入在這個指定結(jié)點之前。申請空間得到指針info,輸入新結(jié)點信息,存放到新申請的空間中。(10)成績排序?qū)τ趯W(xué)生成績管理,一個很重要的運算是將學(xué)生按照分?jǐn)?shù)由高到低排名,sort()函數(shù)實現(xiàn)按照總分排序功能,先從原表刪除頭結(jié)點,然后在新表中查找到合適的位置,進行插入。待排序結(jié)點的插入位置總是插在表頭、表尾和表中間三種情況之一,由于單鏈表的特性,實際插入結(jié)點時,并不需要移動和交換結(jié)點信息,而是只改變指針關(guān)系,所以排序時間主要用在比較上。排好序后將其名次數(shù)據(jù)寫入數(shù)據(jù)域order中。(11)退出5.3程序運行截圖進入主菜單1.成績錄入2.從表中刪除記錄3.顯示單鏈表中所有記錄(7)記錄保存為文件4.按學(xué)號查找記錄5.將單鏈表中記錄保存到文件6.從文件中讀取記錄7.計算所有學(xué)生總分和平均分8.插入記錄到列表9.排序5.5參考程序#include"stdio.h"#include"stdlib.h"#include"string.h"#include"conio.h"#include"mem.h"#include"ctype.h"#include"alloc.h"#defineN5typedefstructs1{charno[11];charname[15];intscore[N];floatsum;floataverage;intorder;structs1*next;}STUDENT;menu(){char*menu[]={"*****MENU******","0.Initiallist","1.Enterrecord","2.Deletearecordfromlist","3.Printlist","4.Searchrecordonnumber","5.Saveasfile","6.Loadfromfile","7.Computethescore","8.Insertrecordtolist","9.Sorttomakenewfile","10Quit"};chars[3];intc,i;gotoxy(1,25);printf("pressanykeyentermenu...\n");getch();clrscr();gotoxy(1,1);textcolor(YELLOW);textbackground(BLUE);gotoxy(10,2);putch(0xc9);for(i=1;i<44;i++)putch(0xcd);putch(0xbb);for(i=3;i<20;i++){gotoxy(10,i);putch(0xba);gotoxy(54,i);putch(0xba);}gotoxy(10,20);putch(0xc8);for(i=1;i<44;i++)putch(0xcd);putch(0xbc);window();clrscr();for(i=0;i<10;i++){gotoxy(10,i+1);printf("%s",menu[i]);}textbackground(BLACK);window();gotoxy(10,21);do{printf("\nEnteryouchoice(0~10:)");scanf("%s",s);c=atoi(s);}while(c<0||c>10);returnc;}STUDENT*init(){returnNULL;}STUDENT*create(){inti;ints;STUDENT*h=NULL,*info;for(;;){info=(STUDENT*)malloc(sizeof(STUDENT));if(!info){printf("\nOutofmemory");returnNULL;}inputs("Pleaseenterstudent'snumber:",info->no,11);if(info->no[0]=='@')break;inputs("Pleaseenterstudent'sname:",info->name,15);printf("PleaseinputMath,Chinese,English,physics,chemistryscore\n");s=0;for(i=0;i<N;i++){do{printf("Score%d:",i+1);scanf("%d",&info->score[i]);if(info->score[i]>100||info->score[i]<0)printf("baddata,repeatinput\n");}while(info->score[i]>100||info->score[i]<0);s=s+info->score[i];}info->sum=s;info->average=(float)s/N;info->order=0;info->next=h;h=info;}return(h);}inputs(char*prompt,char*s,intcount){charp[255];do{printf(prompt);scanf("%s",p);if(strlen(p)>count)printf("\ntoolong!\n");}while(strlen(p)>count);strcpy(s,p);}voidprint(STUDENT*h){inti=0;STUDENT*p;clrscr();p=h;printf("\n\n\n*************************StudentScores*********************************\n");printf("Rec|StuNu|Name|Math|Chin|Engl|phys|chem|Sum|Ave|order|\n");printf("|----|||-----|-----|-----|-----|-----|||-----|\n");while(p!=NULL){i++;printf("|%3d|%-5s|%-8s|%4d|%4d|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",i,p->no,p->name,p->score[0],p->score[1],p->score[2],p->score[3],p->score[4],p->sum,p->average,p->order);p=p->next;}printf("**************************************End**********************************\n");}STUDENT*delete(STUDENT*h){STUDENT*p,*q;chars[11];clrscr();printf("pleasedeletedno\n");scanf("%s",s);q=p=h;while(strcmp(p->no,s)&&p!=NULL){q=p;p=p->next;}if(p==NULL)printf("\nlistno%sstudent\n",s);else{printf("*********************************havefound*************************\n");printf("|no|nme|sc1|sc2|sc3|sc4|sc5|sum|ave|order|\n");printf("|------|-|-----|-----|-----|-----|-----||-----|-----|\n");printf("|%-5s|%-8s|%4d|%4d|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->score[3],p->score[4],p->sum,p->average,p->order);printf("***********************************end*******************************\n");getch();if(p==h)h=p->next;elseq->next=p->next;free(p);printf("\nhavedeletedNo%sstudent\n",s);printf("Don'tforgetsave\n");}return(h);}voidsearch(STUDENT*h){STUDENT*q;chara;clrscr();printf("pleaseenterstudent'snoforsearch\n");scanf("%s",a);q=h;while(strcmp(q->no,a)&&q!=NULL)q=q->next;if(q==NULL)printf("nlistno%dnumber\n",a);else{printf("\n\n**************************havefound****************************\n");printf("|no|name|sc1|sc2|sc3|sc4|sc5|sum|ave|order|\n");printf("|------||----|----|----|----|----|||-----|\n");printf("|%-5s|%-8s|%4d|%4d|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",q->no,q->name,q->score[0],q->score[1],q->score[2],q->score[3],q->score[4],q->sum,q->average,q->order);printf("****************************end*********************************\n");}}STUDENT*insert(STUDENT*h){STUDENT*p,*q,*info;chars[11];ints1,i;printf("pleaseenterlocationbeforethenumber\n");scanf("%s",s);printf("\npleaseenternewrecord\n");info=(STUDENT*)malloc(sizeof(STUDENT));if(!info){printf("\noutofmemory");returnNULL;}inputs("pleaseenterstudent'snumber:",info->no,11);inputs("pleaseenterstudent'sname:",info->name,15);printf("pleaseinput%dscore\n",N);s1=0;for(i=0;i<N;i++){do{printf("Score%d:",i+1);scanf("%d",&info->score[i]);if(info->score[i]>100||info->score[i]<0)printf("baddata,repeatinput\n");}while(info->score[i]>100||info->score[i]<0);s1=s1+info->score[i];}info->sum=s1;info->average=(float)s1/N;info->order=0;info->next=NULL;p=h;q=h;while(strcmp(p->no,s)&&p!=NULL){q=p;p=p->next;}if(p==NULL)if(p==h)h=info;elseq->next=info;elseif(p==h){info->next=p;q->next=info;}printf("\n----haveinserted%sstudent----\n",info->name);printf("----Don'tfogetsave--\n");return(h);}voidsave(STUDENT*h){FILE*fp;STUDENT*p;charoutfile[10];printf("Enteroutfilename,forexamplec:\\f1\\te.txt:\n");scanf("%s",outfile);if((fp=fopen(outfile,"wb"))==NULL){printf("cannotopenfile\n");exit(1);}printf("\nSavingfile...\n");p=h;while(p!=NULL){fwrite(p,sizeof(STUDENT),1,fp);p=p->next;}fclose(fp);printf("----savesuccess\n");}STUDENT*load(){STUDENT*p,*q,*h=NULL;FILE*fp;charinfile[10];printf("Enterinfilename,forex

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論