當前位置:編程學習大全網 - 源碼下載 - 福建源代碼

福建源代碼

#包含?“stdio.h”?

#包含?“stdlib.h”?

#包含?“string.h”?

int?shoud save = 0;?/*?*/?

struct?學生?

{?

char()?num[10];/*?學號?*/?

char()?名稱[20];?

char()?性[4];?

int?cgrade?

int?mgrade?

int?egrade?

int?totle?

int?ave?

夏爾?near time[10];/*?最後壹次更新是什麽時候?*/?

};?

typedef?struct?節點?

{?

struct?學生?數據;?

struct?節點?*下壹個;?

}節點,*鏈接;?

作廢?menu()?

{?

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *);?

Printf("\t1註冊學生數據\ t \ t \ t \ t2刪除學生數據\ n ");?

printf(" \ t 3查詢學生信息\ t \ t \ t \修改學生信息\ n ");?

Printf("\t5保存學生信息\ t \ t \ t \ t退出系統\ n ");?

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");?

}?

作廢?printstart()?

{?

printf("-\ n ");?

}?

作廢?不對()?

{?

printf(" \ n = = = = = & gt;提示:輸入錯誤!\ n ");?

}?

作廢?Nofind()?

{?

printf(" \ n = = = = = & gt;提示:找不到學生!\ n ");?

}?

作廢?printc()?/*?這個功能是用來輸出中文的?*/?

{?

printf("?學號\t?名字?性別?英語成績?數學成績?c語言成績?總分?平均分\ n”);?

}?

作廢?printe(節點?*p)/*?這個功能是用來輸出英文的?*/?

{?

printf(" %-12s % s \ t % s \ t % d \ t % d \ t % d \ t?%d\t?%d\n ",p-& gt;data.num,p-& gt;data.name,p-& gt;data.sex,p-& gt;data.egrade,p-& gt;data.mgrade,p-& gt;data.cgrade,p-& gt;data.totle,p-& gt;data . ave);?

}?

節點*?定位(鏈接?我,夏爾?findmess[],char?nameornum[])?/*?這個函數用來定位鏈表中符合條件的聯系人並返回指針?*/?

{?

節點?* r;?

if(strcmp(nameornum," num")==0)?/*?按學號查詢?*/?

{?

r = l-& gt;接下來;?

while(r!=NULL)?

{?

if(strcmp(r-& gt;data.num,findmess)==0)?

回歸?r;?

r = r-& gt;接下來;?

}?

}?

不然呢?if(strcmp(nameornum," name")==0)?/*?按姓名查詢?*/?

{?

r = l-& gt;接下來;?

while(r!=NULL)?

{?

if(strcmp(r-& gt;data.name,findmess)==0)?

回歸?r;?

r = r-& gt;接下來;?

}?

}?

回歸?0;?

}?

作廢?添加(鏈接?l)?/*?增加學生?*/?

{?

節點?*p,*r,* s;?

夏爾?num[10];?

r = l;?

s = l-& gt;接下來;?

while(r-& gt;下壹個!=NULL)?

r = r-& gt;接下來;?/*?把指針放在最後?*/?

而(1)?

{?

Printf("請輸入妳的學號(用' 0 ':)返回上壹個菜單);?

scanf("%s ",數字);?

if(strcmp(num," 0")==0)?

打破;?

while(s)?

{?

if(strcmp(s-& gt;data.num,num)==0)?

{?

printf(" = = = = = = & gt;提示:學號為“%s”的學生已經存在。請選擇' 4?修改!\n ",編號);?

printstart();?

printc();?

印刷品;?

printstart();?

printf(" \ n ");?

返回;?

}?

s = s-& gt;接下來;?

}?

p=(節點?*)malloc(sizeof(Node));?

strcpy(p-& gt;data.num,num);?

Printf("請輸入您的姓名:");?

scanf("%s ",p-& gt;data . name);?

getchar()();?

Printf("請輸入您的性別:");?

scanf("%s ",p-& gt;data . sex);?

getchar()();?

Printf("請輸入妳的C語言成績:");?

scanf("%d ",& ampp->;data . cgrade);?

getchar()();?

Printf("請輸入妳的數學成績:");?

scanf("%d ",& ampp->;data . m grade);?

getchar();?

Printf("請輸入妳的英語成績:");?

scanf("%d ",& ampp->;data . e grade);?

getchar();?

p->;data . totle = p-& gt;data . e grade+p-& gt;data . c grade+p-& gt;data . m grade;?

p->;data . ave = p-& gt;data.totle?/?3;?

/*?信息輸入完成了嗎?*/?

p->;next = NULL?

r-& gt;next = p;?

r = p;?

shoudsave = 1;?

}?

}?

作廢?Qur(鏈接?l)?/*?打聽學生?*/?

{?

int?sel?

夏爾?find mess[20];?

節點?* p;?

如果(!l-& gt;下壹個)?

{?

printf(" \ n = = = = = & gt;提示:沒有可查詢的信息!\ n ");?

返回;?

}?

printf(" \ n = = = = = & gt;1按學號搜索\ n = = = = > 2按姓名搜索\ n ");?

scanf("%d ",& ampsel);?

if(sel==1)/*?學號?*/?

{?

Printf("請輸入要查找的學號:");?

scanf("%s ",find mess);?

p=Locate(l,findmess," num ");?

如果(p)?

{?

printf(" \ t \ t \ t \ t \ t findings \ n ");?

printstart();?

printc();?

printe(p);?

printstart();?

}?

不然呢?

nofind();?

}?

不然呢?if(sel==2)?/*?名字?*/?

{?

Printf("請輸入要查找的名稱:");?

scanf("%s ",find mess);?

p=Locate(l,findmess," name ");?

如果(p)?

{?

printf(" \ t \ t \ t \ t \ t findings \ n ");?

printstart();?

printc();?

printe(p);?

printstart();?

}?

不然呢?

nofind();?

}?

不然呢?

錯誤();?

}?

作廢?Del(鏈接?l)?/*?刪除?*/?

{?

int?sel?

節點?*p,* r;?

夏爾?find mess[20];?

如果(!l-& gt;下壹個)?

{?

printf(" \ n = = = = = & gt;提示:沒有數據可以刪除!\ n ");?

返回;?

}?

printf(" \ n = = = = = & gt;1按學號刪除\ n = = = = > 2按姓名刪除\ n ");?

scanf("%d ",& ampsel);?

if(sel==1)?

{?

Printf("請輸入要刪除的學號:");?

scanf("%s ",find mess);?

p=Locate(l,findmess," num ");?

如果(p)?

{?

r = l;?

while(r->;下壹個!=p)?

r = r-& gt;接下來;?

r-& gt;next = p-& gt;接下來;?

免費(p);?

printf(" \ n = = = = = & gt;提示:該學生已被成功刪除!\ n ");?

shoudsave = 1;?

}?

不然呢?

nofind();?

}?

不然呢?if(sel==2)?

{?

Printf("請輸入要刪除的名稱:");?

scanf("%s ",find mess);?

p=Locate(l,findmess," name ");?

如果(p)?

{?

r = l;?

while(r->;下壹個!=p)?

r = r-& gt;接下來;?

r-& gt;next = p-& gt;接下來;?

免費(p);?

printf(" \ n = = = = = & gt;提示:該學生已被成功刪除!\ n ");?

shoudsave = 1;?

}?

不然呢?

nofind();?

}?

不然呢?

錯誤();?

}?

作廢?修改(鏈接?l)?

{?

節點?* p;?

夏爾?find mess[20];?

如果(!l-& gt;下壹個)?

{?

printf(" \ n = = = = = & gt;提示:沒有數據可以修改!\ n ");?

返回;?

}?

Printf("請輸入要修改的學號:");?

scanf("%s ",find mess);?

p=Locate(l,findmess," num ");?

如果(p)?

{?

Printf("請輸入您的新學號(原來是%s):",p-& gt;data . num);?

scanf("%s ",p-& gt;data . num);?

Printf("請輸入您的新名字(原來是%s):",p-& gt;data . name);?

scanf("%s ",p-& gt;data . name);?

getchar();?

Printf("請輸入您的新性別(原來是%s):",p-& gt;data . sex);?

scanf("%s ",p-& gt;data . sex);?

Printf("請輸入您新的C語言分數(原來是%d):",p-& gt;data . cgrade);?

scanf("%d ",& ampp->;data . cgrade);?

getchar();?

Printf("請輸入您的新數學分數(原來是%d):",p-& gt;data . m grade);?

scanf("%d ",& ampp->;data . m grade);?

getchar();?

Printf("請輸入您的新英語成績(原來是%d):",p-& gt;data . e grade);?

scanf("%d ",& ampp->;data . e grade);?

p->;data . totle = p-& gt;data . e grade+p-& gt;data . c grade+p-& gt;data . m grade;?

p->;data . ave = p-& gt;data.totle/3;?

printf(" \ n = = = = = & gt;提示:數據已修改成功!\ n ");?

shoudsave = 1;?

}?

不然呢?

nofind();?

}?

作廢?Disp(鏈接?l)?

{?

int?count = 0;?

節點?* p;?

p = l-& gt;接下來;?

如果(!p)?

{?

printf(" \ n = = = = = & gt;提示:沒有數據可顯示!\ n ");?

返回;?

}?

printf(" \ t \ t \ t \ t顯示結果\ n ");?

printstart();?

printc();?

printf(" \ n ");?

while(p)?

{?

printe(p);?

p = p-& gt;接下來;?

}?

printstart();?

printf(" \ n ");?

}?

作廢?同濟(鏈接?l)?

{?

節點?*pm、*pe、*pc、*pt、* pa?/*?用來指向得分最高的聯系人?*/?

節點?* r = l-& gt;接下來;?

如果(!r)?

{?

printf(" \ n = = = = = & gt;提示:沒有數據可以統計!\ n ");?

回歸?;?

}?

pm = PE = PC = pt = pa = r;?

while(r!=NULL)?

{?

if(r-& gt;data . c grade & gt;= PC->;data.cgrade)?

PC = r;?

if(r-& gt;data . m grade & gt;= pm->;data.mgrade)?

pm = r;?

if(r-& gt;data . e grade & gt;= PE-& gt;data.egrade)?

PE = r;?

if(r-& gt;data.totle & gt= pt-& gt;data.totle)?

pt = r;?

if(r-& gt;data.ave & gt= pa->;data.ave)?

pa = r;?

r = r-& gt;接下來;?

}?

Printf (" -統計結果。?

Printf("最高總分:\t%s?%d點\n ",pt-& gt;data.name,pt-& gt;data . totle);?

Printf("最高平均分:\t%s?%d分數\n ",pa-& gt;data.name,pa-& gt;data . ave);?

Printf("英語最高:\t%s?%d分數\n ",PE-& gt;data.name,PE-& gt;data . e grade);?

Printf("數學最高:\t%s?%d點\n ",pm-& gt;data.name,pm-& gt;data . m grade);?

Printf("最高C語言:\t%s?%d點\n ",PC-& gt;data.name,PC-& gt;data . cgrade);?

printstart();?

}?

作廢?排序(鏈接?l)?

{?

鏈接?ll;?

節點?*p,*rr,* s;?

ll =(Link)malloc(sizeof(Node));?/*?用來制作新的鏈接表?*/?

ll-& gt;next = NULL?

如果(l-& gt;next==NULL)?

{?

printf(" \ n = = = = = & gt;提示:沒有可排序的數據!\ n ");?

回歸?;?

}?

p = l-& gt;接下來;?

while(p)?

{?

s =(Node *)malloc(sizeof(Node));?/*?新聯系人是用來保存信息的?*/?

s-& gt;data = p-& gt;數據;?

s-& gt;next = NULL?

rr = ll?

while(RR->;下壹個!=NULL?& amp& amp?RR-& gt;下壹個-& gt;data.totle & gt= p->;data.totle)?

RR = RR-& gt;接下來;?

if(RR-& gt;next==NULL)?

RR-& gt;next = s;?

不然呢?

{?

s-& gt;next = RR-& gt;接下來;?

RR-& gt;next = s;?

}?

p = p-& gt;接下來;?

}?

免費(l);?

l-& gt;next = ll-& gt;接下來;?

printf(" \ n = = = = = & gt;提示:排序已完成!\ n ");?

}?

作廢?保存(鏈接?l)?

{?

文件*?FP;?

節點?* p;?

int?flag=1,count = 0;?

fp=fopen("c:\\student "," WB ");?

if(fp==NULL)?

{?

printf(" \ n = = = = = & gt;提示:重新打開文件時出錯!\ n ");?

退出(1);?

}?

p = l-& gt;接下來;?

while(p)?

{?

if(fwrite(p,sizeof(Node),1,fp)==1)?

{?

p = p-& gt;接下來;?

count++;?

}?

不然呢?

{?

flag = 0;?

打破;?

}?

}?

if(flag)?

{?

printf(" \ n = = = = = & gt;提示:文件保存成功。(%d條記錄已被保存。)\n”,計數);?

shoud save = 0;?

}?

fclose(FP);?

}?

作廢?main()?

{?

鏈接?l;/*?甚至桌子?*/?

文件?* fp?/*?文件指針?*/?

int?sel?

夏爾?ch;?

夏爾?簡;?

int?count = 0;?

節點?*p,* r;?

printf(" \ t \ t \ t \ t \ t學生成績管理系統\ n \ t \ t -黃歡(第32期)\ n ");?

l=(Node*)malloc(sizeof(Node))。?

l-& gt;next = NULL?

r = l;?

fp=fopen("C:\\student "," Rb ");?

if(fp==NULL)?

{?

printf(" \ n = = = = = & gt;提示:文件尚不存在。您想創建它嗎?(是/否)\ n ");?

scanf("%c ",& amp簡);?

if(jian=='y'||jian=='Y ')?

fp=fopen("C:\\student "," WB ");?

不然呢?

退出(0);?

}?

printf(" \ n = = = = = & gt;提示:文件已經打開,正在導入記錄......\ n ");?

而(!feof(fp))?

{?

p=(節點*)malloc(sizeof(節點));?

if(fread(p,sizeof(Node),1,fp))?/*?將文檔內容放入連接器?*/?

{?

p->;next = NULL?

r-& gt;next = p;?

r = p;?/*?將此聯系人掛在連接中?*/?

count++;?

}?

}?

fclose(FP);?/*?關閉文件?*/?

printf(" \ n = = = = = & gt;提示:導入記錄後,* * *導入了%d條記錄。\n ",計數);?

而(1)?

{?

menu();?

Printf("請選擇壹個操作:");?

scanf("%d ",& ampsel);?

if(sel==0)?

{?

if(shoudsave==1)?

{?getchar();?

printf(" \ n = = = = = & gt;提示:數據已被更改。是否要保存對文件的更改(y/n)?\ n ");?

scanf("%c ",& ampch);?

if(ch=='y'||ch=='Y ')?

保存(l);?

}?

printf(" \ n = = = = = & gt;提示:您已經退出系統。再見!\ n ");?

打破;?

}?

開關(sel)?

{?

案子?1:Add(l);打破;?/*?增加學生?*/?

案子?2:Del(l);打破;/*?刪除學生?*/?

案子?3:古蘭經(左);打破;/*?打聽學生?*/?

案子?4:修改(l);打破;/*?修改學生?*/?

案子?5:保存(l);打破;/*?救學生?*/?

案子?9: printf ("\ t \ t \ t = = = = = =幫助信息= = = = = = = = ");打破;?

默認:?錯誤();getchar();打破;?

}?

}?

}?

/*?*/

  • 上一篇:最輕的論壇源代碼
  • 下一篇:口袋妖怪:紅,藍寶石金手指
  • copyright 2024編程學習大全網