學生成績管理系統結構
1. 學生成績管理系統數據結構
#include<stdio.h>
#include<stdlib.h>
int Shu;
typedef struct student
{
int num;
float mgar,cgar,egar;
float zong,ping;
}stu;
typedef struct node
{
stu xue;
struct node *next;
} LNode,*LinkList;
LinkList InitLinkList()
{
LinkList L;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
return L;
}
LinkList CreateTail() //尾插法,帶頭結點
{
LinkList L;
LNode *s,*r;
int i,x;
float m,c,e;
L=InitLinkList();
r=L;
x=0;
printf("輸入學生信息的個數:");
scanf("%d",&Shu);
printf("學號 數學 語文 英語\n");
while(x<Shu)
{
s=(LNode *)malloc(sizeof(LNode));
scanf("%d",&i);
s->xue.num=i;
scanf("%f",&m);
s->xue.mgar=m;
scanf("%f",&c);
s->xue.cgar=c;
scanf("%f",&e);
s->xue.egar=e;
s->xue.zong=m+c+e;
s->xue.ping=(m+c+e)/3;
s->next=NULL;
r->next=s;
r=s;
x++;
}
return (L);
}
void prn(LinkList L)
{
LNode *p;
p=L->next;
printf("\n學號 數學 語文 英語 平均成績 總成績\n");
while (p!=NULL)
{
printf("%d %0.2f %0.2f %0.2f %0.2f %0.2f\n",p->xue.num,p->xue.mgar,p->xue.cgar,p->xue.egar,p->xue.ping,p->xue.zong);
p=p->next;
}
printf("\n");
}
void prn1(LinkList L)
{
LNode *p;
int x,y;
p=L->next;
printf("請輸入要查詢的學生學號:");
scanf("%d",&x);
while(p)
{
if(x==p->xue.num )
{
y=1;
printf("\n學號 數學 語文 英語 平均成績 總成績\n");
printf("%d %0.2f %0.2f %0.2f %0.2f %0.2f\n",p->xue.num,p->xue.mgar,p->xue.cgar,p->xue.egar,p->xue.ping,p->xue.zong);
}
p=p->next;
}
if(y!=1)
printf("不存在該學生\n");
}
void xs(LinkList L)
{
LNode *p;
p=L->next;
float x,y;
printf("輸入要查詢的數學成績范圍:");
scanf("%f",&x);
scanf("%f",&y);
while(p)
{
if(p->xue.mgar>=x && p->xue.mgar<=y)
{printf("\n學號 數學 語文 英語 平均成績 總成績\n");
printf("%d %0.2f %0.2f %0.2f %0.2f %0.2f\n",p->xue.num,p->xue.mgar,p->xue.cgar,p->xue.egar,p->xue.ping,p->xue.zong);
}
p=p->next;
}
}
void ren(LinkList L)
{
LNode *p;
float m,c,e,j;
int i=0;
m=0;c=0;e=0;j=0;
p=L->next;
while(p)
{
m=m+p->xue.mgar;
c=c+p->xue.cgar;
e=e+p->xue.egar;
j=j+p->xue.ping;
p=p->next;
i++;
}
printf("班級平均成績\n");
printf("數學 語文 英語 總平均成績 總人數\n");
printf("%0.2f %0.2f %0.2f %0.2f %d",m/i,c/i,e/i,j/i,i);
}
void del(LinkList L)
{
int x;
LNode *p,*q;
p=L->next;
q=L;
printf("請輸入要刪除的學生學號:");
scanf("%d",&x);
while(p)
{
if(p->xue.num==x)
{
q->next=p->next;
break;
}
else
{
p=p->next;
q=q->next;
}
}
Shu--;
}
LinkList add(LinkList L)
{
LNode *s;
int n,i,x;
float m,c,e;
i=0;
printf("請輸入要添加的學生信息的人數:");
scanf("%d",&x);
printf("\n學號 數學 語文 英語 \n");
while(i<x)
{
s=(LinkList)malloc(sizeof(LNode));
scanf("%d",&n);
s->xue.num=n;
scanf("%f",&m);
s->xue.mgar=m;
scanf("%f",&c);
s->xue.cgar=c;
scanf("%f",&e);
s->xue.egar=e;
s->xue.zong=m+c+e;
s->xue.ping=(m+c+e)/3;
s->next=L->next;
L->next=s;
i++;
Shu++;
}
return L;
}
LinkList pxm(LinkList L)
{
printf("按數學成績排名:");
int i;
LNode *p,*q,*a;
for(i=0;i<Shu;i++)
{
p=L->next;
q=p->next;
while(q)
{
if(p->xue.mgar<=q->xue.mgar)
{
p->next=q->next;
q->next=L->next;
L->next=q;
a=p;
p=q;
q=a;
}
p=p->next;
q=q->next;
}
}
prn(L);
}
void cd()
{
printf("\t\t\t1、輸入學生信息\n");
printf("\t\t\t2、查詢學生學號信息\n");
printf("\t\t\t3、查詢學生成績信息\n");
printf("\t\t\t4、班級平均成績及人數\n");
printf("\t\t\t5、刪除學生成績\n");
printf("\t\t\t6、增加學生成績\n");
printf("\t\t\t7、學生信息排序\n"); //按數學成績排名
printf("\t請先進行操作1,按數字8可顯示全部信息,再進行其他操作\n");
printf("請輸入選項:");
}
int main()
{
int i;
LinkList L;
do
{
cd();
scanf("%d",&i);
switch(i)
{
case 1:
{
system("cls");
L=CreateTail();
prn(L);break;}
case 2:
{
system("cls");
prn1(L);
break;
}
case 3:
{
system("cls");
xs(L);break;
}
case 4:
{
system("cls");
ren(L);break;
}
case 5:
{
system("cls");
del(L);break;
}
case 6:
{
system("cls");
add(L);
prn(L); break;
}
case 7:
{
system("cls");
pxm(L); break;
}
case 8:
{
prn(L);break;
}
}}while(i<=8 && i>=1);
}
希望對你能有所幫助。
2. 數據結構(學生成績管理系統)
http://wenku..com/view/dc69e8ef5ef7ba0d4a733bff.html
3. 學生成績管理系統
學生成績管理系統C代碼
/ *頭文件* /
#包括
包括
#包括 / *其他指令* /
包括中/ *字元串函數* /
/ *內存操作函數* /
/ *字元處理函數* /
包括 / *動態地址分配函數* /
定義:LEN大小(學生)
typedef結構中,學??生/ *定義結構數組,用於緩存數據* /
{字元數[6];
字元名稱[5];
得分[3];
int總和;
>浮動平均水平;
詮釋訂單
結構STU *下;
}的學生;
/ *函數原型* /
學生的init( );/ /初始化函數* /
詮釋MENU_SELECT的(); / *菜單函數* /
學生的create(); / *創建的鏈表* /
無效列印(學生*頭); / *顯示所有記錄* /
無效搜索(學生*頭); / *找到記錄* /
學生刪除(STUDENT *頭); / *刪除記錄* / />學生排序(學生頭); / *排序* /
學生(學生*頭,新的學生*); *插入/ *插入記錄* /
無效保存(的學生頭); / *保存文件* /
學生的load(); / *讀取文件* /
/ *主函數介面* /
主()
{的學生*頭,新的;
頭的init(); / *初始化鏈表頭的值是NULL * /
(;) / *循環無限* /
{開關(menu??_select())
{
案例1:頭= create()方法的突破;
案例2:列印(頭);休息;
案例3:搜索(頭);突破;
情況下,4頭=刪除(頭);突破;
情況下5頭排序(頭);突破;
案例6:頭插入(頭,與新的);打破; / *新的返回地址* /
案例7:保存(頭);
案例8:頭=負載(
案例9:退出);突破;(0)/ *如果菜單,返回值是年底的9個項目* /
}
}
}
/ *初始化函數* /
學生的init()
{
返回NULL; / *返回一個空指針* /
}
a>
/ *菜單選擇功能* /
menu_select
{N;
結構日期d / *定義的時間結構* / /> GETDATE(&D)/ *讀取系統日期,並把它在結構上D * /
printf的(「按任意鍵進入菜單......」); / *按任意鍵進入主菜單* /
的getch(); / *讀取從鍵盤輸入一個字元,但不顯示在屏幕上* /
clrscr(); / *清屏* / /> printf(「請********************************************* *********************************** \ n「);
printf(」請\ T \噸的\ n「);
printf(」請\ n \ t \ t學生成績管理系統\ n「);
printf(」請************ ************************* MENU ************************ *************** \ n「);
printf的(」\ t \ t \ T1輸入記錄\ n「); / *輸入學生記錄* / BR /> printf的(「\ t \ t \ T2列印記錄\ n」); / *顯示* /
printf的(「\ t \ t \ T3的搜索記錄名稱\ n」); / * * /
printf的(「\ t \ t \ T4。刪除記錄\ n」); / *刪除* /
printf的(「\ t \ t \ T5。排序,使新的文件\ n「); / *排序* / <br /輸出(」\ t \ t \ T6插入記錄到列表\ n「); / *插入* /
printf的(」\ t \ t \ T7保存的文件\ n「); / *保存* /
printf的(」\ t \ t \ T8負載的文件\ n「); / *讀* /
printf的(」\ t \ T \ T9退出\ n「); / *退出* /
printf的(」\ n \ t \ t胡嘿黌\ n「);
printf的(」****** ************************************************** ************************ \ n「);
printf的(」\ t \ t \ t \ t%d \ \%d的\ \%e\「,d.da_year,d.da_mon,d.da_day); / *顯示當前系統日期* /
做{
printf的(」\ n \ t \ t \拉幅機的選擇(1?9):「);
scanf的(」%d「,&N);
}(N 9)/ *如果該選項是不減肥9 * /
回報率(N); / *返回選項的數量,主要功能調用相應的函數* /
}
/ *輸入函數* /
學生創??建()
{I,S
學生頭= NULL,* P / *定義函數這個函數返回一個指針表頭指針* /
Clrscr();
(;)
{P =(學生)的malloc(LEN); / *打開了一個新的單元* / BR />(P)/ *如果指針p是空* /
{printf的(「\ Nout的記憶。」); / *輸出內存溢出* /
回報(頭); / *返回頭指針,下同* /
}
printf的(「請輸入NUM(0:列表結束):」);
scanf的(「%s」,P-> NUM);
(P->數[0] == '0')打破; / *如果第一個字元的學生數0輸入* /
printf(「請結束輸入姓名:「);
scanf的(」%s「,P->名稱);
printf(」請輸入%D分數\ n「); / *迅速啟動分型結果* /
= 0; / *計算每個學生的總成績,初始值為0 * /
(i = 0; I <3; i + +)/ * 3個療程周期的3倍* /
{
做{
printf的(「得分%D:」,i +1);
scanf的(「%d」的,普 - >得分[I]);
(P->得分[I] 得分[I]> 100)/ *確保得分在0至100之間* /
printf的(「數據錯誤,請重新輸入\ n」);
}而(P>得分[I] [I]> 100分);
= S + P->得分[I] / *堆積門的成績* /
}
P->總和= S / *節省的總成績* /
對平均= (浮)/ 3; / *首先轉換類型轉換s轉換為float類型,然後尋求的平均* /
P->訂單= 0; / *在此之前的值排序為0 * / BR /> P> =頭; / *頭節點作為一個新的輸入節點的後繼節點* /
頭= P / *新的輸入節點作為新的頭節點* /
}
a>回報(頭);
}
/ *顯示所有記錄函數* / >無效列印(學生頭)
{i = 0; / *統計記錄數* /
學生* P / *移動指針* /
Clrscr();
P =頭; / *初始的頭指針* / /> printf(「請\ n ************************************學生****** ****************************** \ n「);
printf(」請---- -------------------------------------------------- --------------------- \ n「); <br /輸出(」|記錄|編號|名稱| SC1 SC2 SC3 |森|大道|訂單| \ n「);
printf的(」------------------------------------ ------------------------------------------- \ n「); ...... />而(p! = NULL)
{
+ +;
printf的(「|%3D |%4 |%|%-4S 3D | 3D | 3D | %的3d |%4.2f |%-5d的| \「,
,對 - >數,對 - >名稱,對 - >分數[0],對 - >分數[1],對 - > [2分],P->總之,對平均,P->訂單);
P = P->下;
}
printf的(「------ -------------------------------------------------- ----------------------- \ n「);
printf的(」*************** *********************** END ************************** ************ \ n「);
}
/ *查找錄音功能* /
無效搜索(學生*頭) BR /> {STUDENT * p; / *移動指針* /
個char [5]; / *商店的名稱的字元數組* /
Clrscr();
scanf函數
printf的(「請輸入您的名字進行搜索。\ n」);(%S「,S);
P =頭; / *分配的頭指針P * /
而(STRCMP(P->名稱,s)&& P = NULL)/ *的名稱的記錄時不看,或指針的時空* /
P = P-> / *移動指針指向下一個節點* /
(p! = NULL)/ *如果指針不為空* /
{printf(「請\ n ******** ***************************** FOUND ******************** **************** \ n「);
printf(」請---------------------- -------------------------------------------------- ------- \ n「);
printf的(」|編號|名稱| SC1 SC2 | SC3 |森|大道|訂購| \ n「);
printf的(」 - -------------------------------------------------- --------------------------- \ n「);
printf的(」| 4 |%4S |%3D |%三維|%的3d |%的3d |%4.2f |%-5d的| \ N「,
對 - >數,對 - >名稱,對 - >分數[0],對 - >分數[1],對 - >分數[2],對 - >總和,對 - >平均,對 - >順序);
printf(「請------------------- -------------------------------------------------- --------- \ n「);
printf的(」***************************** ********** END ************************************** \ N「);
}
其他
printf的(」\ n該網頁的沒有NUM%的學生在名單上。\ n「); / *學生* /
}
/ *刪除記錄的函數* /
學生*頭*刪除(學生)
學生{N; * P1 * P2 / * P1是找到要刪除一個節點的指針,P2及其前體的指針* /
字元c的s [6] / [6]用來存儲學生數,c是用於輸入字母* / </ clrscr();
printf的(「請輸入刪除的民:」);
scanf的(「%s」);
P1 = P2 =頭; / * P1和P2富最初的頭指針* /
(STRCMP(P1-NUM)&& P1 = NULL)/ *當記錄數的學校不看,或指針不為空* / /> {P2 = P1 / * P1指針的值分配給P2 P1前體指針* /
P1 = P1->; / *點p1指針到下一條記錄* /
} BR />(STRCMP(P1->民)== 0)/ *學生ID * /
{printf的(「***************** ********************* FOUND **************************** ******** \ n「);
printf(」請------------------------------ ------------------------------------------------- \ N「);
printf的(」|編號|名稱| SC1 SC2 | SC3 |森|大道|在線訂單| \ n「);
printf的(」--------- -------------------------------------------------- -------------------- \ n「);
printf的(」| 4 |%4S |%3D | 3D | 3D | 3D |%4.2f%5D | \ n「,
P1->民,P1->名稱,P1->得分[0],P1 - > [1分],P1->得分[2] ,P1->總之,P1->平均,P1->訂單);
printf的(「-------------------------- -------------------------------------------------- --- \ n「);
printf(」請*********************************** **** END ************************************** \ n「); ...... /> printf的(「你確定要刪除的學生Y / N?」); / *提示你是否要刪除,輸入y刪除n退出* /
(;)
/> {scanf函數(「%C」,&C);
(C =='N'| | C =='N'); / *如果你不刪除,然後跳出循環* /
(C =='Y'| | C =='Y')
{
(P1 ==頭)/ * P1 ==頭,被刪除節點是第一個節點* /
頭= P1->下; / *第二個節點的地址給頭* /
其他
P2->下一個= P1-> /否則,請單擊節點地址被分配到前一個節點的地址* /
N = N-1; <br /輸出(「\ nNum%的學生已被刪除。\ n」,S); /> printf的(「不要忘記保存。\ n」); / *循環後已被刪除* /
}
}
} 其他
printf的(「\ n該網頁的沒有NUM%的學生在名單上。\ n」); /,找不到節點* /
回報(頭);
}
/ *排序函數* /
學生排序(學生頭)
{INT I = 0; / *保存排名* /
學生* P1, * P2 * T,*溫度; / *定義一個臨時指針* /
溫度=頭下; / *原來的下一個節點的指針表頭的頭指針* /
頭> = NULL; / *頭節點的新表的第一個節點* /
(temp! = NULL)/ *當原表不為空,進行排??序* /
{
T =溫度; / *取前表節點* /
TEMP =溫度 - >; / *原來的頭節點的指針向後* /
P1 =頭/頭*移動指針P1指針從頭開始* /
P2 =頭; / *移動指針P2為的P1前驅體的頭指針的初始值* /
而(平均平均&& P1 = NULL)/ *成績平均比??較* /
{
P2 = P1 / *點值小進行排序,新表指針落後* /
P1 = P1->下;
}
(P1 == P2)/ * P1 == P2,點值進行排序,應該排在第一個* / BR /> {
T-> = P1;進行排序的繼任者的p * /
頭= T / * / *新的頭節點進行排序點* /
}
的else / *進行排序點應插入在中間的位置p2和p1的,例如為p的空尾之間* /
{
叔 - >下一個= p1的; / * t的後繼是p1 * /
P2-> = T / * P2的繼任噸* /
}
}
P1 =頭; / *排序頭指針被分配到P1准備填寫的排名* /
(p1! = NULL)/ * p1是不是空的,下面的操作* /
{
+ +; / *節點數量* /
P1->訂單; / *分配的節點數量的排名* /
P1 = P1->; / *指針後移* /
}
printf的(「的排序是SUCESSFUL。\ n」排序;} / *成功* /
回報(頭);
}
/ *插入記錄功能* /
學生插入(學生頭STUDENT *新)
{STUDENT * P0,P1,P2;
整數N,SUM1;
P1 =頭/ * P1點的第一個節點* /
P0 =新/ * P0點要插入節點* /
printf的(「\ n請輸入一個新的記錄。\ n」) / *提示信息記錄* /
printf的(「請輸入數量:」);
scanf函數(「%s」的新數);
printf(「輸入的名稱:「);
scanf的(」%s「的新名);
printf的(」請輸入%d的分數。\ n「);
SUM1 = 0; / *保存新的得分紀錄,初始值為0 * /
為(i = 0; I <3; i + +)
{
做{
printf的(「得分%D:「,i +1);
scanf的(」%d「的,與新>得分[]);
(新 - >得分[I]> 100 | |新 - >得分[I] <0)
printf(「請數據錯誤,請重新輸入。\ n」);
}而(新 - >評分[我]> 100 | |新 - >評分[I] <0);
SUM1 = SUM1 +新 - >得分[I] / *累計門成績* /
}
新 - >金額= SUM1; /存款總額新的記錄* /
新的平均=()SUM1 / 3;
新訂單= 0;
(頭== NULL)/ *原鏈表為空表* /
{頭= P0,P0-> = NULL;} / *節點指出P0口作為頭節點* /
其他
{((P0->平均平均)&&(P1->!= NULL))
{P2 = P1 / P2點只是P1結點* /
P1 = P1->; / * P1落後節點* /
}
(P0->平均> = P1->平均)
{如果(頭== P1)頭= P0 / *插入到原來的第一個節點* / />其他P2-> = P0 / *在插入節點* /
P0-> = P1;}
其他
{P1->下一個= P0到P2點P0-> = NULL;} / *上的最後一個節點* /
}
N = N +1; / *節點數目加1 * /
頭排序(頭); / *調用sort函數的學生的成績重新排序* /
printf的(「,已插入\ nStudent%s的。\ n」,新名);
printf的(「不要忘記保存新的文件。\ n「);
回報(頭);
}
/ *將數據保存到文件函數* /
無效保存(學生*頭)
{FILE * FP; / *定義點文件指針* /
STUDENT * p; / *定義移動指針* /
字元,OUTFILE [10];
輸出(「請輸入OUTFILE名稱,例如C:\ \成績\ n」);
scanf的(「%s」,OUTFILE);
((FP =打開(OUTFILE,「WB」) )== NULL)/ *為輸出打開一個二進制文件,只寫* /
{
printf的(「無法打開文件\ n」);
回報; / *如果您無法打開返回菜單* /
}
printf的(「\ nSaving的文件... \ n」);
P =頭; / *移動指針從頭開始* /
而(p! = NULL)/ * p不為空* /
{
FWRITE(P,LEN,1,FP); / *寫的指針記錄* /
P = P->下; / *指針後移* /
}
FCLOSE(FP); / *關閉文件* /
printf的(「將文件保存成功!\ n「);
}
/ *從文件功能* /
學生中讀取數據負載()
{STUDENT * P1 * P2 *頭= NULL; / *定義記錄指針變數* /
FILE * FP / *定義指向文件的指針* /
字元的infile [10];
printf的(「輸入INFILE名稱,例如c:\ \成績\ n「);
scanf的(」%s「,infile中);
((FP =的FOPEN(INFILE,」包「))= = NULL)/ *打開一個二進制文件只讀* /
{
printf的(「無法打開文件\ n」);
回報(頭);
}
printf的(「\ n載入的文件!\ n」);
P1 =(學生)的malloc(LEN); / *開辟了一條新的單位* /
(P1 )
{
printf的(「內存不足!\ n」);
回報(頭);
}
頭= P1 / *適用於空間,作為頭指針* /
同時(!的feof(FP))/ *循環讀取數據,直到年底結束的文件* / {
(FREAD(P1,LEN,1,FP)= 1)打破; / *如果你不讀出的數據的循環* /
P1-> =(學生)的malloc(LEN); / *下一個結點打開空間* /
(P1->)
{
printf的(「內存不足!\ n」);
回報(頭); BR />}
P2 = P1 / P2點只是P1結點* /
P1 = P1->; / *指針回新讀入數據鏈當前的表* /
}
P2-> = NULL; / *最後一個節點的繼任指針為空* /
FCLOSE(FP);
輸出( 「你已經成功從文件中讀取數據!\ n」);
回報(頭);
}
4. c語言程序設計-學生成績管理系統(成績的查詢,統計,用結構體,指針)
#include<stdio.h>
#include<stdlib.h>
struct stu
{
int num;
char name[20];
float grade;
};
int main()
{
int n,i,n1;
float sum=0.0,ave;
printf("請輸入學生人數:\n");
scanf("%d",&n);
struct stu *p;
p=(struct stu*)calloc(n,sizeof(stu));
printf("請輸入%d個學生信息(學號,姓名,成績):\n",n);
for(i=0;i<n;i++)
{
scanf("%d %s %f",&p[i].num,&p[i].name,&p[i].grade);
}
for(i=0;i<n;i++)
{
printf("%d %s %f\n",p[i].num,p[i].name,p[i].grade);
}
printf("請輸入要查詢學生成績的編號:\n");
scanf("%d",&n1);
printf("%d號學生的成績為:%f\n",n1,p[n1-1].grade);
for(i=0;i<n;i++)
{
sum+=p[i].grade;
}
ave=sum/n;
printf("%d個學生的平均成績為:%f\n",n,ave);
delete []p;
return 0;
}
你所指的統計功能不知道是什麼,我就改成計算平均數了
5. 有一個學生成績管理系統,請設計出能夠表示學生信息的結構體,結構體名稱為Student。
structStudent
{
charsno[20];//學號
charsname[10];//姓名
boolsgender;//性別
intsyear;//年級
}
望採納。
6. 1、實現學生成績管理系統:(也可以選擇類似的學籍管理系統) 系統要求如下 a、 當前學生信息:通過結構體
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
structnode
{
intcode;
charname[20];
chartype;
intage;
intchinese;
intmath;
inttotal;
}stud[100];
structnodetemp;
voidmenu();
intinput();
voidfind(int);
voidinsert(int);
voiddeletel(int);
voidprint(int);
voidsort(int);
voidmain()
{
intn,c=0,d=0;
while(1)
{
();
scanf("%d",&n);
switch(n)
{
case1:system("cls");d=input();c+=d;break;
case2:system("cls");find(c);break;
case3:system("cls");insert(c);++c;break;
case4:system("cls");deletel(c);--c;break;
case5:system("cls");print(c);break;
case6:system("cls");sort(c);break;
case7:exit(0);break;
default:
printf("輸入錯誤,請輸入(1-7): ");
printf("按回車鍵繼續... ");
getchar();
}
}
}
voidmenu()
{
system("cls");
printf(" 學生信息管理系統 ");
printf(" *************** ");
printf(" **歡迎使用** ");
printf(" *[1]輸入數據* ");
printf(" *[2]查找數據* ");
printf(" *[3]插入數據* ");
printf(" *[4]刪除數據* ");
printf(" *[5]列印數據* ");
printf(" *[6]排序數據* ");
printf(" *[7]退出* ");
printf(" **歡迎使用** ");
printf(" *************** ");
printf(" 請輸入你的選項(1-7):");
}
intinput()
{
inti,n;
printf("請輸入要插入幾位學生信息: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("請輸入第%d個學生學號:",i+1);
scanf("%d",&stud[i].code);
printf("第%d個學生姓名:",i+1);
scanf("%s",&stud[i].name);
getchar();
printf("第%d個學生性別F/M:",i+1);
scanf("%c",&stud[i].type);
printf("第%d個學生年齡:",i+1);
scanf("%d",&stud[i].age);
printf("第%d個學生語文成績:",i+1);
scanf("%d",&stud[i].chinese);
printf("第%d個學生數學成績:",i+1);
scanf("%d",&stud[i].math);
stud[i].total=stud[i].chinese+stud[i].math;
}
returnn;
}
voidfind(intc)
{
intn,m,i,j,l;
chark[20];
system("cls");
printf("輸入1學號查找 輸入2按姓名查找 ");
printf("請選擇:");
scanf("%d",&n);
if(n==1)
{
printf("請輸入學生學號:");
scanf("%d",&m);
for(i=0;i<c;i++)
{
if(stud[i].code==m)
{
printf("********************** ");
printf("學號:%d ",stud[i].code);
printf("姓名:%s ",stud[i].name);
printf("性別:%c ",stud[i].type);
printf("年齡:%d ",stud[i].age);
printf("語文成績:%d ",stud[i].chinese);
printf("數學成績:%d ",stud[i].math);
printf("總分:%d ",stud[i].total);
printf("********************** ");
printf("回車鍵繼續 ");
getchar();
getchar();
}
}
}
else
if(n==2)
{
getchar();
printf("請輸入姓名:");
fgets(k,20,stdin);
l=strlen(k);
k[l-1]='