版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告C語言程序設(shè)計(jì)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告一、設(shè)計(jì)名稱:學(xué)生成績治理查詢系統(tǒng)實(shí)驗(yàn)項(xiàng)目性質(zhì):綜合性所涉及課程:C語言程序設(shè)計(jì)打算學(xué)時(shí):實(shí)驗(yàn)學(xué)時(shí)12二、設(shè)計(jì)目的:通過本課程設(shè)計(jì),培育上機(jī)動(dòng)手能力,使學(xué)生鞏固《C語言程序設(shè)計(jì)》課程學(xué)習(xí)的內(nèi)容,把握工程軟件設(shè)計(jì)的大體方式,強(qiáng)化上機(jī)動(dòng)手能力,闖過編程關(guān);為后續(xù)各門運(yùn)算機(jī)課程的學(xué)習(xí)打下堅(jiān)實(shí)基礎(chǔ)。明白得程序設(shè)計(jì)的思路,把握結(jié)構(gòu)化程序設(shè)計(jì)的方式,綜合利用C語言進(jìn)行程序編寫,鞏固常常利用的C語言概念,如數(shù)組、指針、結(jié)構(gòu)體、鏈表、文件操作等,注意良好的程序設(shè)計(jì)風(fēng)格的培育。提高編寫程序解決實(shí)際問題的能力、調(diào)試程序的技術(shù)。三、設(shè)計(jì)環(huán)境(軟件、硬件及條件)硬件:PC機(jī)軟件:TurboC++四、設(shè)計(jì)說明:程序系統(tǒng)的結(jié)構(gòu):用一系列圖表列出本程序系統(tǒng)內(nèi)的每一個(gè)程序(包括每一個(gè)模塊和子程序)的名稱、標(biāo)識(shí)符和它們之間的層次結(jié)構(gòu)關(guān)系。主程序:新建:輸入記錄(遇#號(hào)時(shí)停止輸入)。插入:在指定位置插入記錄。顯示:列出所有記錄。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第1頁。查詢:C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第1頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第2頁。一、按學(xué)號(hào)查詢;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第2頁。二、按名字排序。刪除:一、按學(xué)號(hào)刪除;二、按名字刪除;3、刪除所有記錄。排序:一、按語文成績排序;二、按英語成績排序;3、按數(shù)學(xué)成績排序。保留:保留為任意名字,系統(tǒng)自動(dòng)加后綴名為.txt。讀取:讀取程序目錄下的后綴名為.txt的文件。退出:退出程序。五、各功能模塊的具體實(shí)現(xiàn),用圖表表示。輸入記錄開始:輸入學(xué)號(hào)開始:輸入學(xué)號(hào)YN輸入的學(xué)號(hào)是否為#YN輸入的學(xué)號(hào)是否為#輸入記錄結(jié)束,返回主菜單輸入記錄結(jié)束,返回主菜單循環(huán)輸入循環(huán)輸入結(jié)束結(jié)束顯示開始開始p=hp=hC語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第3頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第3頁。p!=NULL輸出學(xué)生信息;p=p->nextC語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第4頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第4頁。結(jié)束按學(xué)號(hào)(姓名)查詢信息輸入要查詢的學(xué)號(hào)(姓名)輸入要查詢的學(xué)號(hào)(姓名)與要查詢的學(xué)號(hào)(姓名)比較與要查詢的學(xué)號(hào)(姓名)比較YHead=NULLYHead=NULLN繼續(xù)運(yùn)行回到主界面繼續(xù)運(yùn)行回到主界面NY是否找到該學(xué)生NY是否找到該學(xué)生輸出該學(xué)生不存在輸出該學(xué)生成績輸出該學(xué)生不存在輸出該學(xué)生成績結(jié)束NY是否重新查詢結(jié)束NY是否重新查詢按學(xué)號(hào)(姓名)刪除信息輸入要?jiǎng)h除的學(xué)號(hào)(姓名)與要?jiǎng)h除的學(xué)號(hào)(姓名)比較YHead=NULL輸入要?jiǎng)h除的學(xué)號(hào)(姓名)與要?jiǎng)h除的學(xué)號(hào)(姓名)比較YHead=NULLN回到主界面繼續(xù)運(yùn)行回到主界面繼續(xù)運(yùn)行是否找到該學(xué)生是否找到該學(xué)生NYNY刪除輸出不能找到該學(xué)生刪除輸出不能找到該學(xué)生返回返回讀取文件head=a1=a2=NULL;n=0;head=a1=a2=NULL;n=0;輸入文件名字(自動(dòng)添加后綴名字.txt輸入文件名字(自動(dòng)添加后綴名字.txt)NY能否找到文件NY能否找到文件找不到該文件開辟新單元找不到該文件開辟新單元a1,a2;讀文件讀文件fp!feof(fp)!feof(fp)C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第5頁。n=n+1C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第5頁。n=n+1YNN==1YNN==1a2->next=a1head=a1a2->next=a1head=a1a2=a1;a2=a1;開辟新單元a1;讀取fp;返回a2->next=NULL返回a2->next=NULLC語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第6頁。保留文件C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第6頁。head=a1=a2=NULL;n=0;head=a1=a2=NULL;n=0;輸入文件名字(自動(dòng)添加后綴名字輸入文件名字(自動(dòng)添加后綴名字.txt)保存完畢保存完畢六、各模塊(函數(shù))的功能介紹,數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)描述,參數(shù)說明等。STUDENT*init();/*初始化鏈表*/STUDENT*create();/*新建鏈表*/STUDENT*del_no(STUDENT*h);/*按學(xué)號(hào)刪除信息*/STUDENT*del_name(STUDENT*h);/*按姓名刪除信息*/voidprint(STUDENT*h);/*顯示信息函數(shù)*/voidsearch_no(STUDENT*h);/*按學(xué)號(hào)搜索*/voidsearch_name(STUDENT*h);/*按姓名搜索*/STUDENT*insert(STUDENT*h);/*插入信息函數(shù)*/voidsort(STUDENT*h);/*排序函數(shù)*/voidsave(STUDENT*h);/*保留數(shù)據(jù)到文件*/voidload(STUDENT*h);/*從文件讀取數(shù)據(jù)*/intmenu_main();/*菜單函數(shù)*/voidinputs(char*prompt,char*s,intcount);/*輸出信息*/七、程序代碼:Enterrecords\n");printf("2.Addrecords\n");printf("3.Listrecords\n");printf("4.Searchrecords\n");C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第7頁。printf("5.Deleterecords\n");C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第7頁。printf("6.Sortrecords\n");C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第8頁。printf("7.Savefiles\n");C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第8頁。printf("8.Loadfiles\n");printf("9.Quit\n\n");printf("*****************************************\n");do{printf("\nEnteryouchoice(1~9):");/*提示輸入選項(xiàng)*/scanf("%s",s);/*輸入選擇項(xiàng)*/c=atoi(s);/*將輸入的字符串轉(zhuǎn)化為整型數(shù)*/}while(c<1||c>9);/*選擇項(xiàng)不在1~9之間重輸*/returnc;/*返回選擇項(xiàng),主程序依照該數(shù)挪用相應(yīng)的函數(shù)*/}Searchrecordsonnumber\n");printf("2.Searchrecordsonname\n");printf("3.Back\n\n");printf("*****************************************\n");do{printf("\nEnteryouchoice(1~3):");/*提示輸入選項(xiàng)*/scanf("%s",s);/*輸入選擇項(xiàng)*/c=atoi(s);/*將輸入的字符串轉(zhuǎn)化為整型數(shù)*/}while(c<1||c>3);returnc;/*返回選擇項(xiàng),主程序依照該數(shù)挪用相應(yīng)的函數(shù)*/}Chinese\n");printf("2.English\n");printf("3.Math\n");C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第9頁。printf("4.Back\n\n");C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第9頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第10頁。printf("*****************************************\n");C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第10頁。do{printf("\nEnteryouchoice(1~4):");/*提示輸入選項(xiàng)*/scanf("%s",s);/*輸入選擇項(xiàng)*/c=atoi(s);/*將輸入的字符串轉(zhuǎn)化為整型數(shù)*/}while(c<1||c>4);returnc;/*返回選擇項(xiàng),主程序依照該數(shù)挪用相應(yīng)的函數(shù)*/}Deleterecordsonnumber\n");printf("2.Deleterecordsonname\n");printf("3.Deleteallrecords\n");printf("4.Back\n\n");printf("*****************************************\n");do{printf("\nEnteryouchoice(1~4):");/*提示輸入選項(xiàng)*/scanf("%s",s);/*輸入選擇項(xiàng)*/c=atoi(s);/*將輸入的字符串轉(zhuǎn)化為整型數(shù)*/}while(c<1||c>4);returnc;/*返回選擇項(xiàng),主程序依照該數(shù)挪用相應(yīng)的函數(shù)*/}.");/*提示*/getch();/*讀入任意字符*/}.\n");getch();/*讀入任意字符*/C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第11頁。if(p==h)C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第11頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第12頁。h=p->next;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第12頁。elseq->next=p->next;free(p);/*釋放*/printf("\n%shadbeendeleted\n",s);}printf("\nPressanykeytocontinue...");getch();/*讀入任意字符*/returnh;}.\n");getch();if(p==h)h=p->next;elseq->next=p->next;free(p);/*釋放*/printf("\n%shadbeendeleted\n",s);}printf("\nPressanykeytocontinue...");getch();/*讀入任意字符*/returnh;}.");C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第13頁。getch();/*讀入任意字符*/C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第13頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第14頁。}C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第14頁。.");getch();/*讀入任意字符*/}xt"};STUDENT*p;FILE*fp;/*指向文件的指針*/printf("\nInputthefilename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"wb"))==NULL)/*打開文件,并判定打開是不是正常*/{printf("\nCannotopenfile!\n");exit(1);/*退出*/}p=h;while(p!=NULL){if(fwrite(p,sizeof(STUDENT)-sizeof(p->next),1,fp)!=1) { printf("Error!\n");exit(1); }/*寫入*/p=p->next;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第15頁。}C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第15頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第16頁。fclose(fp);/*關(guān)閉文件*/C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第16頁。printf("\n------OK------\n");printf("Pressanykeytocontinue...");getch();/*讀入任意字符*/}xt"};STUDENT*p,*a1=NULL,*a2=NULL;FILE*fp;/*概念文件指針*/printf("\nInputthefilename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"rb"))==NULL)/*打開文件*/{printf("\nCannotopenfile!\n");exit(1);/*退出*/}p=h;a1=a2=(STUDENT*)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp);while(!feof(fp)){ n++; if(n==1)h=a1;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第17頁。 elsea2->next=a1;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第17頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第18頁。a2=a1;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第18頁。a1=(STUDENT*)malloc(LEN); fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp);}a2->next=NULL;printf("\n------OK------\n");printf("Pressanykeytocontinue...");getch(p);/*讀入任意字符*/}///////////////////////////////////////////voidsort(STUDENT*h)/*排序函數(shù)*/{inti=0,j;STUDENT*p,*q,*t,*h1,*z;clrscr();/*清屏*/printf("Enteryouchoice:\n");scanf("%d",&j);z=h;h1=h->next;h->next=NULL;while(h1!=NULL){t=h1;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第19頁。h1=h1->next;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第19頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第20頁。p=h;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第20頁。q=h;while(t->score[--j]<p->score[--j]&&p!=NULL){q=p;p=p->next;}if(p==q){t->next=p;h=t;}else{t->next=p;q->next=t;}}p=h;while(p!=NULL){i++;p=p->next;C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第21頁。}C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第21頁。C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第22頁。print(h);/*挪用"print"函數(shù)*/C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告全文共25頁,當(dāng)前為第22頁。h=z;printf("------OK------\n");}//////////////////////////////////////////////////九、體會(huì)、總結(jié)本課程設(shè)計(jì)完成了設(shè)計(jì)一個(gè)學(xué)生成績治理系統(tǒng),學(xué)生的學(xué)習(xí)成績進(jìn)行治理,具有查詢和檢索功能,而且能夠?qū)χ付ㄎ?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全員A證考試試題(得分題)附完整答案詳解(全優(yōu))
- 安全員A證考試及完整答案詳解(必刷)
- 安全員A證考試能力提升試題打印含答案詳解【綜合題】
- 麗水市國企面試題及答案解析(2025版)
- 安全員A證考試通關(guān)模擬卷附完整答案詳解(典優(yōu))
- 商務(wù)會(huì)議活動(dòng)策劃執(zhí)行方案模版
- 縣事業(yè)單位招聘考試(面試)歷年參考題庫含答案詳解(5套)
- 安全員A證考試押題模擬含答案詳解【新】
- 企業(yè)員工激勵(lì)制度設(shè)計(jì)范本
- 德法違憲審查制度比較:歷史、機(jī)制與啟示
- 環(huán)境監(jiān)測(cè)站建設(shè)施工方案
- 快遞配送外包合同范本
- 火龍罐的市場前景分析
- 設(shè)備技術(shù)員轉(zhuǎn)正述職報(bào)告
- 驗(yàn)貨執(zhí)行合同書
- 2026年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能筆試備考試題及答案詳解
- 終止妊娠藥物課件
- 2025年無人駕駛公共交通項(xiàng)目可行性研究報(bào)告
- 北京市朝陽區(qū)2026屆高三上英語期末考試試題含解析
- 亞急性硬化性全腦炎2-
- GB/T 6462-2025金屬和氧化物覆蓋層厚度測(cè)量顯微鏡法
評(píng)論
0/150
提交評(píng)論