當前位置:編程學習大全網 - 源碼下載 - 基於信息商的端點檢測源代碼。誰有,謝謝

基於信息商的端點檢測源代碼。誰有,謝謝

#include?"stdio.h"?

#include?"stdlib.h"?

#include?"string.h"?

int?shoudsave=0;?/*?*/?

struct?student?

{?

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

char()?name[20];?

char()?sex[4];?

int?cgrade;?

int?mgrade;?

int?egrade;?

int?totle;?

int?ave;?

char?neartime[10];/*?最近更新時間?*/?

};?

typedef?struct?node?

{?

struct?student?data;?

struct?node?*next;?

}Node,*Link;?

void?menu()?

{?

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

printf("\t1登記學生資料\t\t\t\t\t2刪除學生資料\n");?

printf("\t3查詢學生資料\t\t\t\t\t4修改學生資料\n");?

printf("\t5保存學生資料\t\t\t\t\t0退出系統\n");?

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

}?

void?printstart()?

{?

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

}?

void?Wrong()?

{?

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

}?

void?Nofind()?

{?

printf("\n=====>提示:沒有找到該學生!\n");?

}?

void?printc()?/*?本函數用於輸出中文?*/?

{?

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

}?

void?printe(Node?*p)/*?本函數用於輸出英文?*/?

{?

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

}?

Node*?Locate(Link?l,char?findmess[],char?nameornum[])?/*?該函數用於定位連表中符合要求的接點,並返回該指針?*/?

{?

Node?*r;?

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

{?

r=l->next;?

while(r!=NULL)?

{?

if(strcmp(r->data.num,findmess)==0)?

return?r;?

r=r->next;?

}?

}?

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

{?

r=l->next;?

while(r!=NULL)?

{?

if(strcmp(r->data.name,findmess)==0)?

return?r;?

r=r->next;?

}?

}?

return?0;?

}?

void?Add(Link?l)?/*?增加學生?*/?

{?

Node?*p,*r,*s;?

char?num[10];?

r=l;?

s=l->next;?

while(r->next!=NULL)?

r=r->next;?/*?將指針置於最末尾?*/?

while(1)?

{?

printf("請妳輸入學號(以'0'返回上壹級菜單:)");?

scanf("%s",num);?

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

break;?

while(s)?

{?

if(strcmp(s->data.num,num)==0)?

{?

printf("=====>提示:學號為'%s'的學生已經存在,若要修改請妳選擇'4?修改'!\n",num);?

printstart();?

printc();?

printe(s);?

printstart();?

printf("\n");?

return;?

}?

s=s->next;?

}?

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

strcpy(p->data.num,num);?

printf("請妳輸入姓名:");?

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

getchar()();?

printf("請妳輸入性別:");?

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

getchar()();?

printf("請妳輸入c語言成績:");?

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

getchar()();?

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

scanf("%d",&p->data.mgrade);?

getchar();?

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

scanf("%d",&p->data.egrade);?

getchar();?

p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;?

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

/*?信息輸入已經完成?*/?

p->next=NULL;?

r->next=p;?

r=p;?

shoudsave=1;?

}?

}?

void?Qur(Link?l)?/*?查詢學生?*/?

{?

int?sel;?

char?findmess[20];?

Node?*p;?

if(!l->next)?

{?

printf("\n=====>提示:沒有資料可以查詢!\n");?

return;?

}?

printf("\n=====>1按學號查找\n=====>2按姓名查找\n");?

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

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

{?

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

scanf("%s",findmess);?

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

if(p)?

{?

printf("\t\t\t\t查找結果\n");?

printstart();?

printc();?

printe(p);?

printstart();?

}?

else?

Nofind();?

}?

else?if(sel==2)?/*?姓名?*/?

{?

printf("請妳輸入要查找的姓名:");?

scanf("%s",findmess);?

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

if(p)?

{?

printf("\t\t\t\t查找結果\n");?

printstart();?

printc();?

printe(p);?

printstart();?

}?

else?

Nofind();?

}?

else?

Wrong();?

}?

void?Del(Link?l)?/*?刪除?*/?

{?

int?sel;?

Node?*p,*r;?

char?findmess[20];?

if(!l->next)?

{?

printf("\n=====>提示:沒有資料可以刪除!\n");?

return;?

}?

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

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

if(sel==1)?

{?

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

scanf("%s",findmess);?

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

if(p)?

{?

r=l;?

while(r->next!=p)?

r=r->next;?

r->next=p->next;?

free(p);?

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

shoudsave=1;?

}?

else?

Nofind();?

}?

else?if(sel==2)?

{?

printf("請妳輸入要刪除的姓名:");?

scanf("%s",findmess);?

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

if(p)?

{?

r=l;?

while(r->next!=p)?

r=r->next;?

r->next=p->next;?

free(p);?

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

shoudsave=1;?

}?

else?

Nofind();?

}?

else?

Wrong();?

}?

void?Modify(Link?l)?

{?

Node?*p;?

char?findmess[20];?

if(!l->next)?

{?

printf("\n=====>提示:沒有資料可以修改!\n");?

return;?

}?

printf("請妳輸入要修改的學生學號:");?

scanf("%s",findmess);?

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

if(p)?

{?

printf("請妳輸入新學號(原來是%s):",p->data.num);?

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

printf("請妳輸入新姓名(原來是%s):",p->data.name);?

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

getchar();?

printf("請妳輸入新性別(原來是%s):",p->data.sex);?

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

printf("請妳輸入新的c語言成績(原來是%d分):",p->data.cgrade);?

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

getchar();?

printf("請妳輸入新的數學成績(原來是%d分):",p->data.mgrade);?

scanf("%d",&p->data.mgrade);?

getchar();?

printf("請妳輸入新的英語成績(原來是%d分):",p->data.egrade);?

scanf("%d",&p->data.egrade);?

p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;?

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

printf("\n=====>提示:資料修改成功!\n");?

shoudsave=1;?

}?

else?

Nofind();?

}?

void?Disp(Link?l)?

{?

int?count=0;?

Node?*p;?

p=l->next;?

if(!p)?

{?

printf("\n=====>提示:沒有資料可以顯示!\n");?

return;?

}?

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

printstart();?

printc();?

printf("\n");?

while(p)?

{?

printe(p);?

p=p->next;?

}?

printstart();?

printf("\n");?

}?

void?Tongji(Link?l)?

{?

Node?*pm,*pe,*pc,*pt,*pa;?/*?用於指向分數最高的接點?*/?

Node?*r=l->next;?

if(!r)?

{?

printf("\n=====>提示:沒有資料可以統計!\n");?

return?;?

}?

pm=pe=pc=pt=pa=r;?

while(r!=NULL)?

{?

if(r->data.cgrade>=pc->data.cgrade)?

pc=r;?

if(r->data.mgrade>=pm->data.mgrade)?

pm=r;?

if(r->data.egrade>=pe->data.egrade)?

pe=r;?

if(r->data.totle>=pt->data.totle)?

pt=r;?

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

pa=r;?

r=r->next;?

}?

printf("------------------------------統計結果--------------------------------\n");?

printf("總分最高者:\t%s?%d分\n",pt->data.name,pt->data.totle);?

printf("平均分最高者:\t%s?%d分\n",pa->data.name,pa->data.ave);?

printf("英語最高者:\t%s?%d分\n",pe->data.name,pe->data.egrade);?

printf("數學最高者:\t%s?%d分\n",pm->data.name,pm->data.mgrade);?

printf("c語言最高者:\t%s?%d分\n",pc->data.name,pc->data.cgrade);?

printstart();?

}?

void?Sort(Link?l)?

{?

Link?ll;?

Node?*p,*rr,*s;?

ll=(Link)malloc(sizeof(Node));?/*?用於做新的連表?*/?

ll->next=NULL;?

if(l->next==NULL)?

{?

printf("\n=====>提示:沒有資料可以排序!\n");?

return?;?

}?

p=l->next;?

while(p)?

{?

s=(Node*)malloc(sizeof(Node));?/*?新建接點用於保存信息?*/?

s->data=p->data;?

s->next=NULL;?

rr=ll;?

while(rr->next!=NULL?&&?rr->next->data.totle>=p->data.totle)?

rr=rr->next;?

if(rr->next==NULL)?

rr->next=s;?

else?

{?

s->next=rr->next;?

rr->next=s;?

}?

p=p->next;?

}?

free(l);?

l->next=ll->next;?

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

}?

void?Save(Link?l)?

{?

FILE*?fp;?

Node?*p;?

int?flag=1,count=0;?

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

if(fp==NULL)?

{?

printf("\n=====>提示:重新打開文件時發生錯誤!\n");?

exit(1);?

}?

p=l->next;?

while(p)?

{?

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

{?

p=p->next;?

count++;?

}?

else?

{?

flag=0;?

break;?

}?

}?

if(flag)?

{?

printf("\n=====>提示:文件保存成功.(有%d條記錄已經保存.)\n",count);?

shoudsave=0;?

}?

fclose(fp);?

}?

void?main()?

{?

Link?l;/*?連表?*/?

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

int?sel;?

char?ch;?

char?jian;?

int?count=0;?

Node?*p,*r;?

printf("\t\t\t\t學生成績管理系統\n\t\t\t\t-------福建農業職業學院計應0501?黃歡(32號)\n");?

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

l->next=NULL;?

r=l;?

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

if(fp==NULL)?

{?

printf("\n=====>提示:文件還不存在,是否創建?(y/n)\n");?

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

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

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

else?

exit(0);?

}?

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

while(!feof(fp))?

{?

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

if(fread(p,sizeof(Node),1,fp))?/*?將文件的內容放入接點中?*/?

{?

p->next=NULL;?

r->next=p;?

r=p;?/*?將該接點掛入連中?*/?

count++;?

}?

}?

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

printf("\n=====>提示:記錄導入完畢,***導入%d條記錄.\n",count);?

while(1)?

{?

menu();?

printf("請妳選擇操作:");?

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

if(sel==0)?

{?

if(shoudsave==1)?

{?getchar();?

printf("\n=====>提示:資料已經改動,是否將改動保存到文件中(y/n)?\n");?

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

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

Save(l);?

}?

printf("\n=====>提示:妳已經退出系統,再見!\n");?

break;?

}?

switch(sel)?

{?

case?1:Add(l);break;?/*?增加學生?*/?

case?2:Del(l);break;/*?刪除學生?*/?

case?3:Qur(l);break;/*?查詢學生?*/?

case?4:Modify(l);break;/*?修改學生?*/?

case?5:Save(l);break;/*?保存學生?*/?

case?9:printf("\t\t\t==========幫助信息==========\n");break;?

default:?Wrong();getchar();break;?

}?

}?

}?

/*?*/

  • 上一篇:什麽是爬蟲
  • 下一篇:中國銀行廣東微信發卡業務開戶流程是什麽?
  • copyright 2024編程學習大全網