版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程名稱 C語言課程設(shè)計 課題名稱 學(xué)生成績管理 專 業(yè)班 級學(xué) 號姓 名指導(dǎo)教師湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱 C語言課程設(shè)計 課 題 學(xué)生成績管理 專業(yè)班級 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 審 批 任務(wù)書下達日期 任務(wù)完成日期 目錄一、 課程設(shè)計內(nèi)容與主要功能 .4二、 課題分析 .6三、 主要功能的實現(xiàn)步驟 .7四、 程序測試.13調(diào)試分析與結(jié)論.21五、 總結(jié) .22六、 附件 .23一、 課題設(shè)計內(nèi)容與主要功能程序設(shè)計內(nèi)容對一個班級的學(xué)生,每個學(xué)生有N門課程。該系統(tǒng)實現(xiàn)對班級成績的錄入、顯示、刪除、查找、添加、計算、修改、排序、保存等操作的管理。設(shè)計思想結(jié)構(gòu)化程序設(shè)計一般
2、由兩部分組成:算法和數(shù)據(jù)結(jié)構(gòu),合理地選擇和實現(xiàn)一個數(shù)據(jù)結(jié)構(gòu)與處理這些數(shù)據(jù)結(jié)構(gòu)具有同樣的重要性。數(shù)據(jù)結(jié)構(gòu)在本課題中,每個學(xué)生的成績門數(shù)用先預(yù)先定義一個常數(shù)N表示。將學(xué)生的信息:學(xué)號、姓名、成績、總分、平均分、名次。定義成如下的數(shù)據(jù)結(jié)構(gòu):#define N 3typedef struct s1char no 11; /*學(xué)號*/char name16; /*姓名*/int scoreN; /*成績*/float sum; /*總分*/float average; /*平均分*/int order; /*名次*/struct s1 next;/*指向后繼結(jié)點的指針*/(2)main()主函數(shù)主函數(shù)是
3、程序的入口,采用模塊化設(shè)計,主函數(shù)不宜復(fù)雜,功能盡量在各模塊中實現(xiàn)。首先聲明一些必要的變量,然后作一無限循環(huán)程序,循環(huán)體為一個開關(guān)語句,該語句的條件值是通過調(diào)用主菜單函數(shù)得到的返回值,根據(jù)該值,調(diào)用相應(yīng)的各功能函數(shù),同時設(shè)置一個斷點,即當(dāng)返回值為一定條件時運行exit()函數(shù)結(jié)束程序,以免造成死循環(huán)。menu_select()主菜單制作一個單邊框的窗口,窗口背景為藍色,在窗口中顯示光帶主菜單,字體顏色為黃色,同時光標(biāo)默認(rèn)定位在第一項菜單上,用光標(biāo)的上下移動即可選中所需選項,選中項背景不綠色,按回車鍵后進入相應(yīng)的功能函數(shù),而不必輸入數(shù),真正具有了窗口的特性,方便了操作。利用函數(shù)bioskey()
4、識別按了什么鍵,根據(jù)光標(biāo)停留在窗口的行數(shù)換算成對應(yīng)的菜單項,作為菜單函數(shù)的返回值。init()初始化初始化單鏈表。enter()錄入記錄輸入學(xué)生信息,按照提示信息輸入學(xué)號(字符串不超過10位)、姓名(字符串不超過15位)、三門課程成績(整數(shù)0-100),每輸入一個數(shù)就按一下回車鍵,進行下一個數(shù)的輸入,當(dāng)在輸入學(xué)號首字符為時結(jié)束輸入,返回主函數(shù)。list()顯示所有記錄學(xué)生成績信息錄入好后,更頻繁的操作是顯示和查找記錄,本函數(shù)實現(xiàn)學(xué)生信息的顯示功能。delete(); /*刪除記錄*/刪除指定學(xué)號的學(xué)生記錄。首先輸入要刪除學(xué)生記錄的學(xué)號,輸入后判斷該學(xué)生是否存在,如果不存在,則輸出沒找到的提示信
5、息;否則,顯示找到的學(xué)生信息,按任意鍵后進行該學(xué)生信息的刪除。search(); /*查找記錄*/按照學(xué)生姓名查找學(xué)生信息,如果查找成功,則顯示信息,否則顯示提示沒找到的信息。姓名是字符串,比較功能利用字符串比較函數(shù)strcmp()實現(xiàn)。add(); /*添加記錄*/添加記錄函數(shù)的功能是將新的記錄緊跟在原來所有信息記錄的后面進行添加,添加一個學(xué)生后。computer(); /*計算總分和均分*/該功能是計算所有學(xué)生成績的總分和平均分。void sort(); /*排序*/對于學(xué)生成績的管理,一個很重要的運算是將學(xué)生按照分?jǐn)?shù)由高到低排名,本函數(shù)實現(xiàn)按照總分排序功能,最后根據(jù)排序后學(xué)生信息的排列順
6、序,將每個學(xué)生名次寫入order的當(dāng)中。本程序利用數(shù)組和指針完成對學(xué)生成績的動態(tài)管理,其基本功能模塊圖如圖21所示。主程序初始化輸入顯示刪除查找添加計算排序退出圖2-1基本功能模塊通過實現(xiàn)學(xué)生成績管理,了解數(shù)據(jù)庫管理的基本功能,掌握C語言中的數(shù)組、指針、函數(shù)(系統(tǒng)函數(shù)、自定義函數(shù))等知識,是一個C語言知識的比較綜合應(yīng)用。二、課題分析(分析課程設(shè)計項目的實現(xiàn)方法,并寫出類聲明與核心算法實現(xiàn)代碼)。該系統(tǒng)是一個簡單的學(xué)生擋案管理系統(tǒng),能夠使學(xué)生了解到相應(yīng)的信息。同時也減少了老師的工作量。整個系統(tǒng)除了主函數(shù)外,另外還有五個函數(shù),實現(xiàn)五大功能:插入功能、顯示功能、查找功能、修改功能、刪除功能。該系統(tǒng)的
7、插入功能可以每次可以任意插入一位學(xué)生的學(xué)生信息;顯示功能可以任意顯示一名或多名學(xué)生信息;查找功能分為學(xué)號查找和姓名查找兩種查找方式;刪除功能和修改功能進入這兩個系統(tǒng)時可選擇進行學(xué)號對比和姓名對比兩種方式。該系統(tǒng)操作簡單,這也利于管理人員進行實際的操作。 主要流程結(jié)構(gòu)學(xué)生成績管理系統(tǒng)成績錄入 成績顯示成績刪除成績查找成績添加成績排序退出系統(tǒng)三、主要功能的實現(xiàn)步驟 輸入記錄函數(shù) 這是一個無參函數(shù),用來執(zhí)行第學(xué)生成績記錄的輸入,函數(shù)結(jié)束后,帶回一個指鏈表頭的指針向r。將下一個學(xué)生的信息插在表頭。N-S流程圖如下:r=l;s=l->next;指針 l->next 指向新開辟的單元指針 l-
8、>next r是否為空是否輸入學(xué)號num輸出strcmp(num,”0”)是否為0內(nèi)存是否溢出 輸入姓名停止while(s)輸入輸入成績返回p->data.grade;菜單 ;p->data.ave=p->data.totle / 4;p->next=NULL; r->next=p; r=p;顯示記錄函數(shù) void Disp(link l)這是一個不返回值的有參函數(shù),形參為“鏈表頭的指針”,負責(zé)對全部學(xué)生成績記錄的輸出,不足之處就是不能對學(xué)生成績進行分頁顯示。算法:先將p結(jié)點的指針指向第一個結(jié)點,將p結(jié)點(即第一個結(jié)點)的數(shù)據(jù)輸出。然后再將p結(jié)點的指針指向p
9、指針的的指針(即下一結(jié)點),將p結(jié)點(即第一結(jié)點)的數(shù)據(jù)輸出。重復(fù)執(zhí)行此步聚直到p指針指向NULL為止。N-S流程圖如下: p=l->next,使指向第一個結(jié)點 輸出p所指向的結(jié)點p->next指向一下個結(jié)點當(dāng)p指的不是表尾保存數(shù)據(jù)到文件函數(shù) void Save(link l)這是一個不返回值的有參函數(shù),形參為“鏈表頭的指針”,可以把學(xué)生記錄保存在電腦上由自己任意命名的二進制文件。查找記錄函數(shù) void Qur(link l)這是一個不返回值的有參函數(shù),形參為“鏈表頭的指針”,實現(xiàn)按學(xué)號對某個學(xué)生進行查找,并顯示所查找到的記錄。算法:采用線性查找法往下一個結(jié)點查找。輸入所要查找的學(xué)
10、生的學(xué)號s,設(shè)一個指針變量p,先指向第一個結(jié)點,當(dāng)strcmp(p->name,s) && p != NULL時,使p后移一個結(jié)點,如果p!=NULL,輸出p所指的結(jié)點。結(jié)構(gòu)流程圖如下:開始Void find()打開文件選擇查找方式學(xué)號查找姓名查找Strcmp(NO,stui.number)Strcmp(name,)輸出學(xué)生信息輸出學(xué)生信息輸出錯誤輸出錯誤結(jié)束查找程序保存關(guān)閉文件結(jié)束刪除函數(shù) Del(link l)這是一個有返回值的有參函數(shù)。形參為“鏈表頭的指針”,在核對密碼后。實現(xiàn)對所要刪除學(xué)生按學(xué)號進行查找。找到后顯示該學(xué)生的信息。按任意鍵進行刪除。
11、算法:主函數(shù)鏈表的頭指針,用一個輸出語句printf("Input your password:");提示用戶輸入密碼。在輸入過程中如果需要用到退格。putchar(8);putchar(' '); putchar(8);來達到視覺和功能上的要求。如果密碼錯誤,則兩秒后自動返回主菜單。正確后輸入要刪除的學(xué)生學(xué)號,進行刪除。開始打開文件void Del(Link l)輸入所需刪除學(xué)生信息的學(xué)生的學(xué)號刪除該學(xué)生的信息之后,把所有該學(xué)生以后的學(xué)生信息都復(fù)制給前面一個學(xué)生的學(xué)生信息,來填補空位該學(xué)生檔案管理系統(tǒng)中不存在此學(xué)號,不做任何處理。結(jié)束刪除程序關(guān)閉保存文件S
12、tcmp(num,stui.number)修改函數(shù) void Modify(link l)這是一個有參函數(shù),一個是“鏈表頭的指針”修改之后,并返回鏈表的頭指針。算法:首先向系統(tǒng)申請一塊空間,用于存放輸入的信息。程序會根據(jù)用戶輸入的學(xué)號。采用線性查找法往下一個結(jié)點查找。設(shè)一個指針變量p,先指向第一個結(jié)點,當(dāng)strcmp(p->) && p != NULL時,使p后移一個結(jié)點,如果p!=NULL,輸出p所指的結(jié)點。如果有該學(xué)生就修改。并出現(xiàn)提示信息"資料修改成功"。如果沒有該學(xué)生則出現(xiàn)“沒有資料可以修改!”。結(jié)構(gòu)流程圖如下開始Void modify()打開
13、文件輸入要修改的學(xué)生信息的學(xué)生的學(xué)號Stcmp(num,stui.number)修改該學(xué)生所需修改的學(xué)生信息無該學(xué)生學(xué)號,系統(tǒng)不作任何修改結(jié)束對學(xué)生信息的修改程序關(guān)閉保存文件結(jié)束定位鏈表函數(shù):Node* Locate(Link l,char findmess,char nameornumber)這是一個不返回值的有參函數(shù),形參為“鏈表頭的指針”,根據(jù)輸入的文件地址進行讀取。排序函數(shù) void Sort (link l)這是一個有參函數(shù),形參為“鏈表頭的指針”,按學(xué)生成績的平均分高低進行排序,還可以顯示名次。四、程序測試與結(jié)論(應(yīng)包括課程設(shè)計程序的屏幕顯示,并加以簡單的文字說明)。1、開始運行頁
14、面如圖1所示 圖12、輸入學(xué)生信息數(shù)據(jù)頁面如圖2所示圖23、刪除記錄頁面如圖3所示圖34、查找全部記錄頁面如圖4所示圖45、查找記錄頁面如圖5所示圖56、保存文件頁面如圖6所示圖67、讀文件頁面如圖7所示圖78、計算總分和平均分頁面如圖8所示圖89、插入記錄頁面如圖9所示圖910、復(fù)制文件如圖10所示圖1011、為所有學(xué)生排序頁面如圖11所示圖1112、追加記錄頁面如圖12圖1213、索引成功頁面如圖13所示圖1314、分類合計頁面如圖14圖14調(diào)試分析與結(jié)論:五、總結(jié)六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專?*xuesheng.c*/*頭文件(.h)*/#include &q
15、uot;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 /*
16、定義數(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); /*保
17、存*/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(me
18、nu_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=lo
19、ad(); 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 li
20、st", /*初始化*/ " 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", /*從文件中讀入記錄*/ &
21、quot; 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)*/ pr
22、intf("press any key enter menu.n"); /*壓任一鍵進入主菜單*/ getch(); /*輸入任一鍵*/ clrscr(); /*清屏幕*/ gotoxy(1,1); /*移動光標(biāo)*/ textcolor(YELLOW); /*設(shè)置文本顯示顏色為黃色*/ textbackground(BLUE); /*設(shè)置背景顏色為藍色*/ gotoxy(10,2); /*移動光標(biāo)*/ putch(0xc9); /*輸出左上角邊框*/ for(i=1;i<44;i+) putch(0xcd); /*輸出上邊框水平線*/ putch(0xbb); /*輸
23、出右上角邊框 */ 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(11,3,53,19); /* 制作顯示菜單的窗口,大小根據(jù)菜單條數(shù)設(shè)計*/ clrscr(); /*清屏*/ for(i=0;i<13;i+) /*輸
24、出主菜單數(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); /*輸入選擇項*/ c=atoi(s); /*將輸入的字符串轉(zhuǎn)化為整形數(shù)*/ while(c<0|c>11);
25、 /*選擇項不在014之間重輸*/ return c; /*返回選擇項,主程序根據(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 N
26、ULL; /*返回空指針*/ inputs("enter no:",info->no,11); /*輸入學(xué)號并校驗*/ if(info->no0='') break; /*如果學(xué)號首字符為則結(jié)束輸入*/ inputs("enter name:",info->name,15); /*輸入姓名,并進行校驗*/ printf("please input %d score n",N); /*提示開始輸入成績*/ s=0; /*計算每個學(xué)生的總分,初值為0*/ for(i=0;i<3;i+) /*3門課程
27、循環(huán)3次*/ scanf("%d",&info->scorei);while(info->scorei<0 | info->scorei>100); s=s+info->scorei; /*累加各門成績*/ info->sum=s; /*將總分保存*/ info->average=(float)s/3; /*先用強制類型轉(zhuǎn)換將s轉(zhuǎn)換成float型,再求平均值*/ info->order=0; /*未排序前此值為0*/ info->next=h; /*將頭結(jié)點做為新輸入結(jié)點的后繼結(jié)點*/ h=info; /*
28、新輸入結(jié)點為新的頭結(jié)點*/ return(h); /*返回頭指針*/*輸入字符串,并進行長度驗證*/inputs(char *prompt, char *s, int count) char p255; do printf(prompt); /*顯示提示信息*/ scanf("%s",p); /*輸入字符串*/ if(strlen(p)>count)printf("n too long! n"); /*進行長度校驗,超過count值重輸入*/ while(strlen(p)>count); strcpy(s,p); /*將輸入的字符串拷貝到字
29、符串s中*/*輸出鏈表中結(jié)點信息*/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("|%3
30、d |%-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é)點指針,q為其前驅(qū)指針*/ char c; char s11; /*存放學(xué)號
31、*/ clrscr(); /*清屏*/ printf("please deleted non"); /*顯示提示信息*/ scanf("%s",s); /*輸入要刪除記錄的學(xué)號*/ q=p=h; /*給q和p賦初值頭指針*/ while(strcmp(p->no,s) &&q!= NULL) /*當(dāng)記錄的學(xué)號不是要找的,或指針不為空時*/ q=p; /*將p指針值賦給q作為p的前驅(qū)指針*/p=p->next; /*將p指針指向下一條記錄*/ if(strcmp(p->no,s)=0) /*學(xué)號找到了*/ printf(&
32、quot;*FOUND*n"); printf("-n"); printf("| Num | Name | sc1 | sc2 | sc3 | Sum | Ave | Order |n"); printf("-n"); printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|n",p->no,p->name,p->score0,p->score1,p->score2,p->sum,p->average,
33、p->order); printf("-n"); printf("*END*n"); printf("Are you sure to delete the student Y/N ?"); /*提示是否要刪除,輸入Y刪除,N則退出*/ for(;) scanf("%c",&c); if(c='n'|c='N') break; /*如果不刪除,則跳出本循環(huán)*/ if(c='y'|c='Y') if(p=h) /*若p=head,說明被刪結(jié)點
34、是首結(jié)點*/ h=p->next; /*把第二個結(jié)點地址賦予head*/ else q->next=p->next; /*否則將一下結(jié)點地址賦給前一結(jié)點地址*/ /* n=n-1;*/ printf("nNum %s student have been deleted.n",s); printf("Don't forget to save.n");break; /*刪除后就跳出循環(huán)*/ else printf("nThere is no num %s student on the list.n",s); /*
35、找不到該結(jié)點*/return(h);/*/ if(p=NULL) /*如果p為空,說明鏈表中沒有該結(jié)點*/ 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|%
36、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é)點是頭結(jié)點*/ h=p->next; /*修改頭指針指向下一條記錄*/ else q->next=p->next; /*不是頭指針,將p的后繼結(jié)點作為q的后繼結(jié)點*/ f
37、ree(p); /*釋放p所指結(jié)點空間*/ printf("n have deleted No %s studentn",s); printf("Don't forget saven");/*提示刪除后不要忘記保存文件*/ return(h); /*返回頭指針*/*查找記錄*/void search(STUDENT *h) STUDENT *p; /* 移動指針*/ char s15; /*存放姓名的字符數(shù)組*/ clrscr(); /*清屏幕*/ printf("please enter name for searchn")
38、; scanf("%s",s); /*輸入姓名*/ p=h; /*將頭指針賦給p*/ while(strcmp(p->name,s)&&p!=NULL) /*當(dāng)記錄的姓名不是要找的,或指針不為空時*/ p=p->next; /*移動指針,指向下一結(jié)點*/ if(p=NULL) /*如果指針為空*/ printf("nlist no %s studentn",s); /*顯示沒有該學(xué)生*/ else /*顯示找到的記錄信息*/ printf("nn*havefound*n"); printf("|n
39、O | 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"); /*插入記錄*/STUDE
40、NT *insert(STUDENT *h) STUDENT *p,*q,*info; /*p指向插入位置,q是其前驅(qū),info指新插入記錄*/ char s11; /*保存插入點位置的學(xué)號*/ int s1,i; printf("please enter location before the non"); scanf("%s",s); /*輸入插入點學(xué)號*/ printf("nplease new recordn"); /*提示輸入記錄信息*/ info=(STUDENT *)malloc(sizeof(STUDENT); /*申
41、請空間*/ 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;i<N;i+) /*N門課程循環(huán)N次輸入成績*/ do /*對數(shù)據(jù)進行驗證,保證在0100之間*/ printf("score%d:",i+1); scanf("%d",&info->scorei); if(info->scorei>100|info->scorei<0) printf("bad data,repeat inputn"); while(info->scorei>100
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年天然植物纖維及人造纖維編織工藝品合作協(xié)議書
- 2025年柔印CTP合作協(xié)議書
- 自動化儀表考試培訓(xùn)試題2
- 2025年二手車帶牌轉(zhuǎn)讓協(xié)議(三篇)
- 2025年個人房屋租賃協(xié)議合同模板(2篇)
- 2025年個人車輛轉(zhuǎn)讓協(xié)議參考樣本(三篇)
- 山西省2024七年級道德與法治上冊第三單元珍愛我們的生命第九課守護生命安全情境基礎(chǔ)小練新人教版
- 2025年互聯(lián)網(wǎng)信息網(wǎng)站公告服務(wù)協(xié)議(2篇)
- 2025年代理銷售商品房協(xié)議樣本(三篇)
- 2025年個人旅游協(xié)議格式版(2篇)
- 柴油機油-標(biāo)準(zhǔn)
- 足療店營銷策劃方案
- 《初三開學(xué)第一課 中考動員會 中考沖刺班會》課件
- 學(xué)校安全一崗雙責(zé)
- 2024年全國版圖知識競賽(小學(xué)組)考試題庫大全(含答案)
- 產(chǎn)后修復(fù)學(xué)習(xí)培訓(xùn)課件
- 高考志愿咨詢培訓(xùn)課件
- mysql課件第五章數(shù)據(jù)查詢
- 超濾培訓(xùn)課件
- 熱線電話管理制度
- 《海峽兩岸經(jīng)濟合作框架協(xié)議》全文
評論
0/150
提交評論