![C語言課程設(shè)計-學(xué)生成績管理1.doc_第1頁](http://file.renrendoc.com/FileRoot1/2019-7/16/bb790668-21e1-4136-83c4-a92b6998bcb5/bb790668-21e1-4136-83c4-a92b6998bcb51.gif)
![C語言課程設(shè)計-學(xué)生成績管理1.doc_第2頁](http://file.renrendoc.com/FileRoot1/2019-7/16/bb790668-21e1-4136-83c4-a92b6998bcb5/bb790668-21e1-4136-83c4-a92b6998bcb52.gif)
![C語言課程設(shè)計-學(xué)生成績管理1.doc_第3頁](http://file.renrendoc.com/FileRoot1/2019-7/16/bb790668-21e1-4136-83c4-a92b6998bcb5/bb790668-21e1-4136-83c4-a92b6998bcb53.gif)
![C語言課程設(shè)計-學(xué)生成績管理1.doc_第4頁](http://file.renrendoc.com/FileRoot1/2019-7/16/bb790668-21e1-4136-83c4-a92b6998bcb5/bb790668-21e1-4136-83c4-a92b6998bcb54.gif)
![C語言課程設(shè)計-學(xué)生成績管理1.doc_第5頁](http://file.renrendoc.com/FileRoot1/2019-7/16/bb790668-21e1-4136-83c4-a92b6998bcb5/bb790668-21e1-4136-83c4-a92b6998bcb55.gif)
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
課 程 設(shè) 計 報 告課程名稱 c語言課程設(shè)計 課題名稱 學(xué)生成績管理 專 業(yè) 電氣自動化 班 級 學(xué) 號 姓 名 指導(dǎo)教師 2011年 6 月 20 日 目錄封面1目錄2任務(wù)書3學(xué)生成績管理系統(tǒng)需求分析,概要設(shè)計,詳細(xì)設(shè)計5程序調(diào)試8程序界面8附件(程序代碼)10詳細(xì)設(shè)計24運(yùn)行與調(diào)試,參考文獻(xiàn)24源程序25參考文獻(xiàn)37總結(jié)心得37評分表37 湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱 c課程設(shè)計 課 題 學(xué)生成績管理 專業(yè)班級 電氣1085 學(xué)生姓名 學(xué) 號 05 指導(dǎo)老師 審 批 任務(wù)書下達(dá)日期 2011 年 6 月 20 日任務(wù)完成日期 2011 年 6 月 日湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書一設(shè)計內(nèi)容:設(shè)計與開發(fā)一個學(xué)生成績管理系統(tǒng),對學(xué)生的學(xué)號、姓名、課程成績、總分、平均成績等信息進(jìn)行管理、主要功能以下基本功能模塊圖1所示。主程序初始化輸入顯示刪除查找添加計算排序退出圖1 基本功能模塊 二設(shè)計要求:1)設(shè)計正確,方案合理。2)界面友好,使用方便。3)程序精煉,結(jié)構(gòu)清晰。4)設(shè)計報告5000字以上,含程序設(shè)計說明、系統(tǒng)的功能框圖、流程圖、源程序清單等。5)實(shí)際操作過程中遇到的問題及解決方法:設(shè)計總結(jié)及心得體會.6)上機(jī)演示。成績評定:指導(dǎo)老師負(fù)責(zé)驗(yàn)收程序的運(yùn)行結(jié)果,并結(jié)合學(xué)生的工作態(tài)度、實(shí)際動手能力、創(chuàng)新精神和設(shè)計報告等進(jìn)行綜合考評,并按優(yōu)秀、良好、中等、及格和不及格五個等級給出每位同學(xué)的課程設(shè)計成績。具體考核標(biāo)準(zhǔn)包含以下幾個部分: 平時出勤 (占10%) 系統(tǒng)需求分析、功能設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計及程序總體結(jié)構(gòu)合理與否(占10%) 程序能否完整、準(zhǔn)確地運(yùn)行,個人能否獨(dú)立、熟練地調(diào)試程序(占40%) 設(shè)計報告(占30%)注意:不得抄襲他人的報告(或給他人抄襲),一旦發(fā)現(xiàn),成績?yōu)榱惴帧?獨(dú)立完成情況(占10%)。 運(yùn)行所設(shè)計的系統(tǒng)。三、進(jìn)度安排第十九周 星期一 14:3018:00 星期二14:3018:00 星期三14:3018:00附:課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、評分、附件(a4大小的圖紙及程序清單)。 正文的格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體;行距為22。正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專?。正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。成績管理系統(tǒng)1)需求分析:學(xué)生信息是存放在文件中的,所以應(yīng)該提供文件的輸入,輸出,插入,刪除等操作,在程序中需要瀏覽學(xué)生的信息,應(yīng)提供顯示,查找,排序等操作,另外還應(yīng)提供鍵盤式選擇菜單提供選擇功能。2)概要設(shè)計:根據(jù)上面的需求分析,可以將這個系統(tǒng)大致劃分為以下模塊:輸入模塊,修改模塊,刪除模塊,查找模塊,顯示模塊。1.錄入學(xué)生信息2顯示學(xué)生信息3查找學(xué)生信息5修改學(xué)生信息4刪除學(xué)生信息6統(tǒng)計學(xué)生信息7保存學(xué)生信息0退出系統(tǒng)功能選擇1按學(xué)號查找0按姓名查找 1按學(xué)號修改0按姓名修改3)詳細(xì)設(shè)計:1輸入初始的學(xué)生信息:其中包括學(xué)生的姓名、學(xué)號,性別以及學(xué)生的語文、數(shù)學(xué)、英語和計算機(jī)等相關(guān)信息。先打印出已有學(xué)生信息disp(l)輸入學(xué)號格式化學(xué)號并并檢驗(yàn)若輸入學(xué)號為0則退出系統(tǒng)若學(xué)號被占用,重新輸入未占用的學(xué)號2. 查詢模塊:找到就輸出此學(xué)生全部信息包括3科的成績。查詢按學(xué)號查詢按成績查詢運(yùn)行顯示成績3. 插入模塊:其中通過學(xué)號的大小來比較的,并且以此來排序。保存插入點(diǎn)之前的學(xué)號,并輸入學(xué)號查詢該學(xué)號是否存在插入之前的節(jié)點(diǎn)4. 輸出學(xué)生的信息以及成績:通過學(xué)生的姓名來查看學(xué)生的3科成績,同時也可以分別通過caverage()、maverage()、eaverage()和comaverage()來輸出3科成績的平均分?jǐn)?shù),最高和最低分?jǐn)?shù)。5. 退出系統(tǒng):可用一個函數(shù)exit()來實(shí)現(xiàn),首先將信息保存到文件中,釋放動態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。4)程序調(diào)試:問題一:學(xué)生初始信息模塊: 其中包括學(xué)生的姓名、學(xué)號、3門科目的成績等相關(guān)信息;當(dāng)正確輸入存在的學(xué)生號,系統(tǒng)進(jìn)行判斷時,提示不存在此學(xué)生。解決辦法及步驟:1. 一個個輸出所有學(xué)生的學(xué)號,檢查文件中是否有學(xué)生,發(fā)現(xiàn)有。2. 既然有此學(xué)生,那么檢查循環(huán)判斷是否有此學(xué)生的語句,發(fā)現(xiàn)沒有錯。3. 輸出用于循環(huán)檢查語句中的學(xué)生信息,發(fā)現(xiàn)亂碼。4. 仔細(xì)分析亂碼的原因,最后發(fā)現(xiàn)是變量的類型錯誤,錯將學(xué)生類型的結(jié)構(gòu)體指針變量定義為了其它類型的指針變量。問題二:查詢模塊:找到就輸出此學(xué)生全部信息包括學(xué)生的3科成績。當(dāng)正確輸入查找信息時,系統(tǒng)卻不能夠得到所要查找的學(xué)生信息以及學(xué)生的3科成績。解決辦法及步驟:1. 檢查所編寫的程序代碼是否完全正確,若不是,則改之,然后再繼續(xù)正確輸入查找信息看能否得到所要查找的學(xué)生信息一級學(xué)生的3科成績。2. 檢查當(dāng)我們在輸入查找信息時,看是否我們輸入的信息有誤,若是這樣,我們應(yīng)當(dāng)仔細(xì)輸入查找信息。5)程序界面:1.初始界面2.輸入學(xué)生信息節(jié)點(diǎn)界面:3. 刪除節(jié)點(diǎn)界面;4. 查找節(jié)點(diǎn)界面:1)運(yùn)行與調(diào)試:調(diào)試:將圖中/*/去掉在/*計算總分和均值*/上加上個運(yùn)行:2)源程序 /*xuesheng.c*/*頭文件(.h)*/#include stdio.h /*i/o函數(shù)*/#include stdlib.h /*其它說明*/#include string.h /*字符串函數(shù)*/#include conio.h /*屏幕操作函數(shù)*/#include mem.h /*內(nèi)存操作函數(shù)*/#include ctype.h /*字符操作函數(shù)*/#include alloc.h /*動態(tài)地址分配函數(shù)*/#define n 3 /*定義常數(shù)*/typedef struct z1 /*定義數(shù)據(jù)結(jié)構(gòu)*/ char no11; char name15; int scoren; float sum; float average; int order; struct z1 *next; student;/*以下是函數(shù)原型*/student *init(); /*初始化函數(shù)*/student *create(); /*創(chuàng)建鏈表*/student *delete(student *h); /*刪除記錄*/void print(student *h); /* 顯示所有記錄*/void search(student *h); /*查找*/void save(student *h); /*保存*/student *load(); /*讀入記錄*/void computer(student *h); /*計算總分和均分*/student *insert(student *h); /*插入記錄*/void append(); /*追加記錄*/student *sort(student *h); /*排序*/int menu_select(); /*菜單函數(shù)*/*主函數(shù)開始*/main() int i; student *head; /*鏈表定義頭指針*/ head=init(); /*初始化鏈表*/ clrscr(); /*清屏*/ for(;) /*無限循環(huán)*/ switch(menu_select() /*調(diào)用主菜單函數(shù),返回值整數(shù)作開關(guān)語句的條件*/ /*值不同,執(zhí)行的函數(shù)不同,break 不能省略*/ case 0:head=init();break; /*執(zhí)行初始化*/ case 1:head=create();break; /*創(chuàng)建鏈表*/ case 2:head=delete(head);break; /*刪除記錄*/ case 3:print(head);break; /*顯示全部記錄*/ case 4:search(head);break; /*查找記錄*/ case 5:save(head);break; /*保存文件*/ case 6:head=load(); break; /*讀文件*/ case 7:computer(head);break; /*計算總分和均分*/ case 8:head=insert(head); break; /*插入記錄*/ case 9:head=sort(head);break; /*排序*/ case 10:append();break; /*追加記錄*/ case 11:exit(0); /*如菜單返回值為14程序結(jié)束*/ /*菜單函數(shù),返回值為整數(shù)*/menu_select() char *menu=*menu*, /*定義菜單字符串?dāng)?shù)組*/ 0. init list, /*初始化*/ 1. enter list, /*輸入記錄*/ 2. delete a record from list, /*從表中刪除記錄*/ 3. print list , /*顯示單鏈表中所有記錄*/ 4. search record on name, /*按照姓名查找記錄*/ 5. save the file, /*將單鏈表中記錄保存到文件中*/ 6. load the file, /*從文件中讀入記錄*/ 7. compute the score, /*計算所有學(xué)生的總分和均分*/ 8. insert record to list , /*插入記錄到表中*/ 9. sort to make new file, /*排序*/ 10. append record to file, /*追加記錄到文件中*/ 11. quit; /*退出*/ char s3; /*以字符形式保存選擇號*/ int c,i; /*定義整形變量*/ gotoxy(1,25); /*移動光標(biāo)*/ printf(press any key enter menu.n); /*壓任一鍵進(jìn)入主菜單*/ getch(); /*輸入任一鍵*/ clrscr(); /*清屏幕*/ gotoxy(1,1); /*移動光標(biāo)*/ textcolor(yellow); /*設(shè)置文本顯示顏色為黃色*/ textbackground(blue); /*設(shè)置背景顏色為藍(lán)色*/ gotoxy(10,2); /*移動光標(biāo)*/ putch(0xc9); /*輸出左上角邊框*/ for(i=1;i44;i+) putch(0xcd); /*輸出上邊框水平線*/ putch(0xbb); /*輸出右上角邊框 */ for(i=3;i20;i+) gotoxy(10,i);putch(0xba); /*輸出左垂直線*/ gotoxy(54,i);putch(0xba); /*輸出右垂直線*/ gotoxy(10,20);putch(0xc8); /*輸出左上角邊框*/ for(i=1;i44;i+) putch(0xcd); /*輸出下邊框水平線*/ putch(0xbc); /*輸出右下角邊框*/ window(11,3,53,19); /* 制作顯示菜單的窗口,大小根據(jù)菜單條數(shù)設(shè)計*/ clrscr(); /*清屏*/ for(i=0;i13;i+) /*輸出主菜單數(shù)組*/ gotoxy(10,i+1); cprintf(%s,menui); textbackground(black); /*設(shè)置背景顏色為黑色*/ window(1,1,80,25); /*恢復(fù)原窗口大小*/ gotoxy(10,21); /*移動光標(biāo)*/ do printf(n enter you choice(014):); /*在菜單窗口外顯示提示信息*/ scanf(%s,s); /*輸入選擇項(xiàng)*/ c=atoi(s); /*將輸入的字符串轉(zhuǎn)化為整形數(shù)*/ while(c11); /*選擇項(xiàng)不在014之間重輸*/ return c; /*返回選擇項(xiàng),主程序根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/student *init() return null;/*創(chuàng)建鏈表*/student *create() int i; int s; student *h=null,*info; /* student指向結(jié)構(gòu)體的指針*/ for(;) info=(student *)malloc(sizeof(student); /*申請空間*/ if(!info) /*如果指針info為空*/ printf(nout of memory); /*輸出內(nèi)存溢出*/ return null; /*返回空指針*/ inputs(enter no:,info-no,11); /*輸入學(xué)號并校驗(yàn)*/ if(info-no0=) break; /*如果學(xué)號首字符為則結(jié)束輸入*/ inputs(enter name:,info-name,15); /*輸入姓名,并進(jìn)行校驗(yàn)*/ printf(please input %d score n,n); /*提示開始輸入成績*/ s=0; /*計算每個學(xué)生的總分,初值為0*/*n門課程循環(huán)n次*/*將總分保存*/*求出平均值*/for(i=0;iscorei); /*輸入成績*/ if(info-scorei100|info-scoreiscorei100|info-scoreiscorei; /*累加各門課程成績*/ info-sum=s; /*將總分保存*/ info-average=(float)s/n; /*求出平均值*/ info-order=0; /*未排序前此值為0*/ info-next=h; /*將頭結(jié)點(diǎn)做為新輸入結(jié)點(diǎn)的后繼結(jié)點(diǎn)*/ h=info; /*新輸入結(jié)點(diǎn)為新的頭結(jié)點(diǎn)*/ return(h); /*返回頭指針*/*輸入字符串,并進(jìn)行長度驗(yàn)證*/inputs(char *prompt, char *s, int count) char p255; do printf(prompt); /*顯示提示信息*/ scanf(%s,p); /*輸入字符串*/ if(strlen(p)count)printf(n too long! n); /*進(jìn)行長度校驗(yàn),超過count值重輸入*/ while(strlen(p)count); strcpy(s,p); /*將輸入的字符串拷貝到字符串s中*/*輸出鏈表中結(jié)點(diǎn)信息*/void print(student *h) int i=0; /* 統(tǒng)計記錄條數(shù)*/ student *p; /*移動指針*/ clrscr(); /*清屏*/ p=h; /*初值為頭指針*/ printf(nnn*student*n); printf(|rec|no | name | sc1| sc2| sc3| sum | ave |order|n); printf(|-|-|-|-|-|-|-|-|-|n); while(p!=null) i+; printf(|%3d |%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |n, i, p-no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order); p=p-next; printf(*end*n);/*刪除記錄*/student *delete(student *h) student *p,*q; /*p為查找到要刪除的結(jié)點(diǎn)指針,q為其前驅(qū)指針*/ char s11; /*存放學(xué)號*/ clrscr(); /*清屏*/ printf(please deleted non); /*顯示提示信息*/ scanf(%s,s); /*輸入要刪除記錄的學(xué)號*/ q=p=h; /*給q和p賦初值頭指針*/*當(dāng)記錄的學(xué)號不是要找的,或指針不為空時*/ q=p; /*將p指針值賦給q作為p的前驅(qū)指針*/ p=p-next; /*將p指針指向下一條記錄*/ if(p=null) /*如果p為空,說明鏈表中沒有該結(jié)點(diǎn)*/ printf(nlist no %s studentn,s); else /*p不為空,顯示找到的記錄信息*/ printf(*have found*n); printf(|no | name | sc1| sc2| sc3| sum | ave |order|n); printf(|-|-|-|-|-|-|-|-|n); printf(|%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |n, p-no, p-name,p-score0,p-score1,p-score2,p-sum, p-average,p-order); printf(*end*n); getch(); /*壓任一鍵后,開始刪除*/ if(p=h) /*如果p=h,說明被刪結(jié)點(diǎn)是頭結(jié)點(diǎn)*/ h=p-next; /*修改頭指針指向下一條記錄*/ else q-next=p-next; /*不是頭指針,將p的后繼結(jié)點(diǎn)作為q的后繼結(jié)點(diǎn)*/ free(p); /*釋放p所指結(jié)點(diǎn)空間*/ printf(n have deleted no %s studentn,s); printf(dont forget saven);/*提示刪除后不要忘記保存文件*/ return(h); /*返回頭指針*/*查找記錄*/void search(student *h) student *p; /* 移動指針*/ char s15; /*存放姓名的字符數(shù)組*/ clrscr(); /*清屏幕*/ printf(please enter name for searchn); scanf(%s,s); /*輸入姓名*/ p=h; /*將頭指針賦給p*/ while(strcmp(p-name,s)&p!=null) /*當(dāng)記錄的姓名不是要找的,或指針不為空時*/ p=p-next; /*移動指針,指向下一結(jié)點(diǎn)*/ if(p=null) /*如果指針為空*/ printf(nlist no %s studentn,s); /*顯示沒有該學(xué)生*/ else /*顯示找到的記錄信息*/ printf(nn*havefound*n); printf(|no | name | sc1| sc2| sc3| sum | ave |order|n); printf(|-|-|-|-|-|-|-|-|n); printf(|%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |n, p-no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order); printf(*end*n); /*插入記錄*/student *insert(student *h) student *p,*q,*info; /*p指向插入位置,q是其前驅(qū),info指新插入記錄*/ char s11; /*保存插入點(diǎn)位置的學(xué)號*/ int s1,i; printf(please enter location before the non); scanf(%s,s); /*輸入插入點(diǎn)學(xué)號*/ printf(nplease new recordn); /*提示輸入記錄信息*/ info=(student *)malloc(sizeof(student); /*申請空間*/ if(!info) printf(nout of memory); /*如沒有申請到,內(nèi)存溢出*/ return null; /*返回空指針*/ inputs(enter no:,info-no,11); /*輸入學(xué)號*/ inputs(enter name:,info-name,15); /*輸入姓名*/ printf(please input %d score n,n); /*提示輸入分?jǐn)?shù)*/ s1=0; /*保存新記錄的總分,初值為0*/ for(i=0;iscorei); if(info-scorei100|info-scoreiscorei100|info-scoreiscorei; /*計算總分*/ info-sum=s1; /*將總分存入新記錄中*/ info-average=(float)s1/n; /*計算均分*/ info-order=0; /*名次賦值0*/ info-next=null; /*設(shè)后繼指針為空*/ p=h; /*將指針賦值給p*/ q=h; /*將指針賦值給q*/ while(strcmp(p-no,s)&p!=null) /*查找插入位置*/ q=p; /*保存指針p,作為下一個p的前驅(qū)*/ p=p-next; /*將指針p后移*/ if(p=null) /*如果p指針為空,說明沒有指定結(jié)點(diǎn)*/ if(p=h) /*同時p等于h,說明鏈表為空*/ h=info; /*新記錄則為頭結(jié)點(diǎn)*/ else q-next=info; /*p為空,但p不等于h,將新結(jié)點(diǎn)插在表尾*/ else if(p=h) /*p不為空,則找到了指定結(jié)點(diǎn)*/ info-next=p; /*如果p等于h,則新結(jié)點(diǎn)插入在第一個結(jié)點(diǎn)之前*/ h=info; /*新結(jié)點(diǎn)為新的頭結(jié)點(diǎn)*/ else info-next=p; /*不是頭結(jié)點(diǎn),則是中間某個位置,新結(jié)點(diǎn)的后繼為p*/ q-next=info; /*新結(jié)點(diǎn)作為q的后繼結(jié)點(diǎn)*/ printf(n -have inserted %s student-n,info-name); printf(-dont forget save-n); /*提示存盤*/ return(h); /*返回頭指針*/*保存數(shù)據(jù)到文件*/void save(student *h) file *fp; /*定義指向文件的指針*/ student *p; /* 定義移動指針*/ char outfile10; /*保存輸出文件名*/ printf(enter outfile name,for example c:f1te.txt:n); /*提示文件名格式信息*/ scanf(%s,outfile); if(fp=fopen(outfile,wb)=null) /*為輸出打開一個二進(jìn)制文件,如沒有則建立*/ printf(can not open filen); exit(1); printf(nsaving file.n); /*打開文件,提示正在保存*/ p=h; /*移動指針從頭指針開始*/ while(p!=null) /*如p不為空*/ fwrite(p,sizeof(student),1,fp);/*寫入一條記錄*/ p=p-next; /*指針后移*/ fclose(fp); /*關(guān)閉文件*/ printf(-save success!-n); /*顯示保存成功*/* 從文件讀數(shù)據(jù)*/student *load() student *p,*q,*h=null; /*定義記錄指針變量*/ file *fp; /* 定義指向文件的指針*/ char infile10; /*保存文件名*/ printf(enter infile name,for example c:f1te.txt:n); scanf(%s,infile); /*輸入文件名*/ if(fp=fopen(infile,rb)=null) /*打開一個二進(jìn)制文件,為讀方式*/ printf(can not open filen); /*如不能打開,則結(jié)束程序*/ exit(1); printf(n -loading file!-n); p=(student *)malloc(sizeof(student); /*申請空間*/ if(!p) printf(out of memory!n); /*如沒有申請到,則內(nèi)存溢出*/ return h; /*返回空頭指針*/ h=p; /*申請到空間,將其作為頭指針*/ while(!feof(fp) /*循環(huán)讀數(shù)據(jù)直到文件尾結(jié)束*/ if(1!=fread(p,sizeof(student),1,fp) break; /*如果沒讀到數(shù)據(jù),跳出循環(huán)*/ p-next=(student *)malloc(sizeof(student); /*為下一個結(jié)點(diǎn)申請空間*/ if(!p-next) printf(out of memory!n); /*如沒有申請到,則內(nèi)存溢出*/ return h; q=p; /*保存當(dāng)前結(jié)點(diǎn)的指針,作為下一結(jié)點(diǎn)的前驅(qū)*/ p=p-next; /*指針后移,新讀入數(shù)據(jù)鏈到當(dāng)前表尾*/ q-next=null; /*最后一個結(jié)點(diǎn)的后繼指針為空*/ fclose(fp); /*關(guān)閉文件*/ printf(-you have success read data from file!-n); return h; /*返回頭指針*/*追加記錄到文件*/void append() file *fp; /*定義指向文件的指針*/ student *info; /*新記錄指針*/ int s1,i; char infile10; /*保存文件名*/ printf(nplease new recordn); info=(student *)malloc(sizeof(student); /*申請空間*/ if(!info) printf(nout of memory); /*沒有申請到,內(nèi)存溢出本函數(shù)結(jié)束*/ return ; inputs(enter no:,info-no,11); /*調(diào)用inputs輸入學(xué)號*/ inputs(enter name:,info-name,15); /*調(diào)用inputs輸入姓名*/ printf(please input %d score n,n); /*提示輸入成績*/ s1=0; for(i=0;iscorei); /*輸入成績*/ if(info-scorei100|info-scoreiscorei100|info-scoreiscorei; /*求總分*/ info-sum=s1; /*保存總分*/ info-average=(float)s1/n; /*求均分*/ info-order=0; /*名次初始值為0*/ info-next=null; /*將新記錄后繼指針賦值為空*/ printf(enter infile name,for example c:f1te.txt:n); scanf(%s,infile); /*輸入文件名*/ if(fp=fopen(infile,ab)=null) /*向二進(jìn)制文件尾增加數(shù)據(jù)方式打開文件*/ printf(can not open filen); /*顯示不能打開*/ exit(1); /*退出程序*/ printf(n -appending record!-n); if(1!=fwrite(info,sizeof(student),1,fp) /*寫文件操作*/ printf(-file write error!-n); return; /*返回*/ printf(-append sucess!-n); fclose(fp); /*關(guān)閉文件*/*排序*/student *sort(student *h) int i=0; /*保存名次*/ studen
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《項(xiàng)目驗(yàn)收培訓(xùn)》課件
- 《EPS保溫箱原料》課件
- 《小數(shù)點(diǎn)移動》課件
- 銅產(chǎn)品市場需求分析
- 二零二五年度盤扣式建筑模板體系研發(fā)與推廣合同
- 臨床??瓶冃гu估與激勵機(jī)制
- 低空空域管理與安全監(jiān)管
- 《誰選擇了它們》課件
- 二零二五年度熱水器品牌授權(quán)經(jīng)營合同協(xié)議書
- 《節(jié)電小專家:2 節(jié)電小貼士》說課稿-2023-2024學(xué)年四年級下冊綜合實(shí)踐活動滬科黔科版
- 人教PEP版2025年春季小學(xué)英語三年級下冊教學(xué)計劃
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數(shù)字化施工組”賽項(xiàng)考試題庫
- 華為研發(fā)部門績效考核制度及方案
- CSC資助出國博士聯(lián)合培養(yǎng)研修計劃英文-research-plan
- 2025年蛇年年度營銷日歷營銷建議【2025營銷日歷】
- 攝影入門課程-攝影基礎(chǔ)與技巧全面解析
- 司法考試2024年知識點(diǎn)背誦版-民法
- 冀少版小學(xué)二年級下冊音樂教案
- 【龍集鎮(zhèn)稻蝦綜合種養(yǎng)面臨的問題及優(yōu)化建議探析(論文)13000字】
- 25 黃帝的傳說 公開課一等獎創(chuàng)新教案
- 人教版音樂三年級下冊第一單元 朝景 教案
評論
0/150
提交評論