一直出現這種問題,應該怎么解決呢?
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct scorenode)
#define DEBUG
#include <string.h>
struct scorenode
{
int number;/*學號*/
char name[8];/*姓名*/
char sex;/*性別*/
char age;/*年齡*/
char cl;/*班級*/
struct scorenode *next;
};
typedef struct scorenode score;
int n,k;/*n,k為全域變數,本程式中的函式均可以使用它*/
/*==============================================================================================*/
score *creat(void)
/*函式creat,功能:創建鏈表,此函式帶回一個指向鏈表頭的指標*/
{
score*head;
score *p1,*p2,*p3,*max;
int i,j;
char fen;
char t[20];
n=0;
p1=p2=p3=(score *)malloc(LEN);head=p3; /*申請一個新單元*/
printf("請輸入學生資料,輸0退出!\n");
repeat1: printf("請輸入學生學號(學號應大于0):");/*輸入大于0的學號*/
scanf("%d",&p1->number);
while(p1->number<0)
{
getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&p1->number);
}
/*輸入學號為字符或小于0時,程式報錯,提示重新輸入學號*/
if(p1->number==0)
goto end;/*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else
{
p3=head;
if(n>0)
{
for(i=0;i<n;i++)
{
if(p1->number!=p3->number)
p3=p3->next;
else
{
printf("學號重復,請重輸!\n");
goto repeat1;
/*當輸入的學號已經存在,程式報錯,回傳前面重新輸入*/
}
}
}
}
printf("請輸入學生姓名:");
scanf("%s",&p1->name); /*輸入學生姓名*/
printf("請輸入性別:"); /*輸入學生性別*/
scanf("%s",&p1->sex);
printf("請輸入年齡(0~150):"); /*輸入年齡,成績應在0-150*/
scanf("%f",&p1->age);
while(p1->age<0||p1->age>150)
{
getchar();
printf("輸入錯誤,請重新輸入年齡"); /*輸入錯誤,重新輸入年齡直到正確為止*/
scanf("%f",&p1->age);
}
printf("請輸入班級:");/*輸入班級*/
scanf("%f",&p1->cl);
head=NULL;
while(p1->number!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(score *)malloc(LEN);
printf("請輸入學生資料,輸0退出!\n");
repeat2:printf("請輸入學生學號(學號應大于0):");
scanf("%d",&p1->number); /*輸入學號,學號應大于0*/
while(p1->number<0)
{
getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&p1->number);
}
/*輸入學號為字符或小于0時,程式報錯,提示重新輸入學號*/
if(p1->number==0)
goto end; /*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else
{
p3=head;
if(n>0)
{
for(i=0;i<n;i++)
{
if(p1->number!=p3->number)
p3=p3->next;
else
{
printf("學號重復,請重輸!\n");
goto repeat2;
/*當輸入的學號已經存在,程式報錯,回傳前面重新輸入*/
}
}
}
}
printf("請輸入學生姓名:");
scanf("%s",&p1->name); /*輸入學生姓名*/
printf("請輸入性別:"); /*輸入學生性別*/
scanf("%s",&p1->sex);
printf("請輸入年齡(0~150):"); /*輸入年齡,成績應在0-150*/
scanf("%f",&p1->age);
while(p1->age<0||p1->age>150)
{
getchar();
printf("輸入錯誤,請重新輸入年齡"); /*輸入錯誤,重新輸入年齡直到正確為止*/
scanf("%f",&p1->age);
}
printf("請輸入班級:");/*輸入班級*/
scanf("%f",&p1->cl);
end: p1=head;
p3=p1;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p1;
p1=p1->next;
if(max->number>p1->number)
{
k=max->number;
max->number=p1->number;
p1->number=k;
/*交換前后結點中的學號值,使得學號大者移到后面的結點中*/
strcpy(t,max->name);
strcpy(max->name,p1->name);
strcpy(p1->name,t);
/*交換前后結點中的姓名,使之與學號相匹配*/
fen=max->sex;
max->sex=p1->sex;
p1->sex=fen;
/*交換前后結點中的性別,使之與學號相匹配*/
fen=max->age;
max->age=p1->age;
p1->age=fen;
/*交換前后結點中的年齡,使之與學號相匹配*/
fen=max->cl;
max->cl=p1->cl;
p1->cl=fen;
/*交換前后結點中的班級,使之與學號相匹配*/
}
}
max=head;p1=head;/*重新使max,p指向鏈表頭*/
}
p2->next=NULL;/*鏈表結尾*/
printf("輸入的學生數為:%d個!\n",n);
return(head);
}
score *add(score *head,score *stu)
/*函式add,功能:追加學生資料,并且將所有學生資料按學號排序*/
{
score *p0,*p1,*p2,*p3,*max;
int i,j;
char fen;
char t[20];
p3=stu=(score *)malloc(LEN);/*開辟一個新單元*/
printf("\n輸入要增加的學生的資料!");
repeat4: printf("請輸入學生學號(學號應大于0):");
scanf("%d",&stu->number);
/*輸入學號,學號應大于0*/
while(stu->number<0)
{
getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&stu->number);} /*輸入錯誤,重新輸入學號*/
/******************************************************/
if(stu->number==0)
goto end2;/*當輸入的學號為0時,轉到末尾,結束追加*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++) {if(stu->number!=p3->number) p3=p3->next; else { printf("學號重復,請重輸!\n"); goto repeat4; /*當輸入的學號已經存在,程式報錯,回傳前面重新輸入*/ }
}
}
}
/******************************************************/
printf("請輸入學生姓名:");
scanf("%s",&p1->name); /*輸入學生姓名*/
printf("請輸入性別:"); /*輸入學生性別*/
scanf("%s",&p1->sex);
printf("請輸入年齡(0~150):"); /*輸入年齡,成績應在0-150*/
scanf("%f",&p1->age);
while(p1->age<0||p1->age>150)
{
getchar();
printf("輸入錯誤,請重新輸入年齡"); /*輸入錯誤,重新輸入年齡直到正確為止*/
scanf("%f",&p1->age);
}
printf("請輸入班級:");/*輸入班級*/
scanf("%f",&p1->cl);
p1=head;
p0=stu;
if(head==NULL)
{head=p0;p0->next=NULL;}/*當原來鏈表為空時,從首結點開始存放資料*/
else/*原來鏈表不為空*/
{
if(p1->next==NULL)/*找到原來鏈表的末尾*/
{
p1->next=p0;
p0->next=NULL;/*將它與新開單元相連接*/
}
else
{
while(p1->next!=NULL)/*還沒找到末尾,繼續找*/
{
p2=p1;p1=p1->next;
}
p1->next=p0;
p0->next=NULL;
}
}
n=n+1;
p1=head;
p0=stu;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p1;
p1=p1->next;
if(max->number>p1->number)
{
k=max->number;
max->number=p1->number;
p1->number=k;
/*交換前后結點中的學號值,使得學號大者移到后面的結點中*/
strcpy(t,max->name);
strcpy(max->name,p1->name);
strcpy(p1->name,t);
/*交換前后結點中的姓名,使之與學號相匹配*/
fen=max->sex;
max->sex=p1->sex;
p1->sex=fen;
/*交換前后結點中的性別,使之與學號相匹配*/
fen=max->age;
max->age=p1->age;
p1->age=fen;
/*交換前后結點中的年齡,使之與學號相匹配*/
fen=max->cl;
max->cl=p1->cl;
p1->cl=fen;
/*交換前后結點中的班級,使之與學號相匹配*/
}
}
max=head;p1=head;/*重新使max,p指向鏈表頭*/
} end2:
printf("現在的學生數為:%d個!\n",n);
return(head);
}
/*========================================================
======================================*/
score *search(score *head)
/*函式search,功能:查詢學生資訊*/
{int number;score *p1,*p2;printf("輸入要查詢的學生的學號,");scanf("%d",&number);while(number!=0){ if(head==NULL){printf("\n沒有任何學生資料!\n");return(head);}
printf("-----------------------------------------\n");
printf("|學號\t|姓名\t|性別\t|年齡\t|班級\t|\n");
printf("-----------------------------------------\n");/*列印表格域*/
p1=head;
while(number!=p1->number&&p1->next!=NULL)
{p2=p1;p1=p1->next;}
if(number==p1->number)
{printf("|%d\t|%s\t|%s\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->sex,p1->age,p1->cl); printf("-----------------------------------------\n");}/*列印表格域*/
else
printf("%d不存在此學生!\n",number);
printf("輸入要查詢的學生的學號,");
scanf("%d",&number);
}
printf("已經退出了!\n");
return(head);
}/*=============================================
=================================================*/
score *del(score *head)/*函式del,功能:洗掉學生資料*/
{
score *p1,*p2;
int number;
printf("輸入要洗掉的學生的學號(輸入0時退出):");
scanf("%d",&number);
getchar();
while(number!=0)/*輸入學號為0時退出*/
{
if(head==NULL)
{
printf("\n沒有任何學生資料!\n");
return(head);
}
p1=head;
while(number!=p1->number&&p1->next!=NULL)
/*p1指向的不是所要找的首結點,并且后面還有結點*/
{
p2=p1;p1=p1->next;
} /*p1后移一個結點*/
if(number==p1->number)
/*找到了*/
{
if(p1==head)
head=p1->next;
/*若p1指向的是首結點,把地二個結點地址賦予head*/
else
p2->next=p1->next;
/*否則將下一個結點地址 賦給前一結點地址*/
printf("已經洗掉:%d\n",number);n=n-1;
}
else
printf("%d不存在此學生!\n",number);
/*找不到該結點*/
printf("輸入要洗掉的學生的學號:");
scanf("%d",&number);
getchar();
}
#ifdef DEBUG
printf("已經退出了!\n");
#endif
printf("現在的學生數為:%d個!\n",n);
return(head);
} /*==================================================
============================================*/
int save(score *p1)
/*函式save,功能:保存學生的資料*/
{
FILE *fp;
char filepn[20];/*用來存放檔案保存路徑以及檔案名*/
printf("請輸入檔案路徑及檔案名:");
scanf("%s",filepn);
if((fp=fopen(filepn,"w+"))==NULL)
{
printf("不能打開檔案!\n");
return 0;
}
fprintf(fp," 學生資訊管理系統 \n");
fprintf(fp,"-------------------------------------------------------\n");
fprintf(fp,"| 學號\t| 姓名\t| 性別\t| 年齡\t| 班級\t|\n");
fprintf(fp,"-------------------------------------------------------\n");
/*列印表格域*/
while(p1!=NULL)
{
fprintf(fp,"%d\t%s\t%.1f\t%.1f\t%.1f\t\n",p1->number,p1->name,p1->sex,p1->age,p1->cl);
p1=p1->next;/*下移一個結點*/
}
fclose(fp);
printf("檔案已經保存!\n");
return 0;
}
int menu()/*函式menu,功能:選單選擇界面*/
{
int i,k;
printf("\t\t\t\t學生資訊管理系統\n");
for(i=0;i<80;i++)
printf("*");
printf("\t\t1創建資料\t\t\t2查詢成績\t\t\n");
printf("\t\t3洗掉資料\t\t\t4追加資料\t\t\n");
printf("\t\t5統計成績\t\t\t6保存資料\t\t\n");
/*選單選擇界面*/
for(i=0;i<80;i++)
printf("*");
printf("請選擇您所要的操作(選擇(0)退出):");
scanf("%d",&k);/*選擇操作*/
getchar();
return (k);}
/*==============================================================================================*/
main();/*主函式main,功能:通過呼叫creat,search,del,add,print,ststistics,save,taxis等函式,實作學生成績查詢系統功能*/
{
score *head=0,*stu=0;
while(1)
{
k=menu();
switch(k)/*用switch陳述句實作功能選擇*/
{
case 1: head=creat();break;/*呼叫創建鏈表函式*/
case 2: head=search(head);break;/*呼叫查詢函式*/
case 3: head=del(head); break;/*呼叫洗掉函式*/
case 4: head=add(head,stu);break;/*呼叫追加函式*/
case 6: save(head);break;/*呼叫保存函式*/
case 0: exit(0);/*退出系統,回傳主界面*/
default: printf("輸入錯誤,請重試!\n");
}
}
}
uj5u.com熱心網友回復:
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct scorenode)
#define DEBUG
#include <string.h>
struct scorenode {
int number;/*學號*/
char name[8];/*姓名*/
char sex;/*性別*/
float age;/*年齡*/
float cl;/*班級*/
struct scorenode *next;
};
typedef struct scorenode score;
int n,k;/*n,k為全域變數,本程式中的函式均可以使用它*/
/*==============================================================================================*/
score *creat(void)
/*函式creat,功能:創建鏈表,此函式帶回一個指向鏈表頭的指標*/
{
score*head;
score *p1,*p2,*p3,*max;
int i,j;
char fen;
char t[20];
n=0;
p1=p2=p3=(score *)malloc(LEN);head=p3; /*申請一個新單元*/
printf("請輸入學生資料,輸0退出!\n");
repeat1: printf("請輸入學生學號(學號應大于0):");/*輸入大于0的學號*/
scanf("%d",&p1->number);
while(p1->number<0) {
getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&p1->number);
}
/*輸入學號為字符或小于0時,程式報錯,提示重新輸入學號*/
if(p1->number==0)
goto end;/*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else {
p3=head;
if(n>0) {
for(i=0;i<n;i++) {
if(p1->number!=p3->number)
p3=p3->next;
else {
printf("學號重復,請重輸!\n");
goto repeat1;
/*當輸入的學號已經存在,程式報錯,回傳前面重新輸入*/
}
}
}
}
printf("請輸入學生姓名:");
scanf("%s",&p1->name); /*輸入學生姓名*/
printf("請輸入性別:"); /*輸入學生性別*/
scanf("%c",&p1->sex);
printf("請輸入年齡(0~150):"); /*輸入年齡,成績應在0-150*/
scanf("%f",&p1->age);
while(p1->age<0||p1->age>150) {
getchar();
printf("輸入錯誤,請重新輸入年齡"); /*輸入錯誤,重新輸入年齡直到正確為止*/
scanf("%f",&p1->age);
}
printf("請輸入班級:");/*輸入班級*/
scanf("%f",&p1->cl);
head=NULL;
while(p1->number!=0) {
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(score *)malloc(LEN);
printf("請輸入學生資料,輸0退出!\n");
repeat2:printf("請輸入學生學號(學號應大于0):");
scanf("%d",&p1->number); /*輸入學號,學號應大于0*/
while(p1->number<0) {
getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&p1->number);
}
/*輸入學號為字符或小于0時,程式報錯,提示重新輸入學號*/
if(p1->number==0)
goto end; /*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else {
p3=head;
if(n>0) {
for(i=0;i<n;i++) {
if(p1->number!=p3->number)
p3=p3->next;
else {
printf("學號重復,請重輸!\n");
goto repeat2;
/*當輸入的學號已經存在,程式報錯,回傳前面重新輸入*/
}
}
}
}
printf("請輸入學生姓名:");
scanf("%s",&p1->name); /*輸入學生姓名*/
printf("請輸入性別:"); /*輸入學生性別*/
scanf("%c",&p1->sex);
printf("請輸入年齡(0~150):"); /*輸入年齡,成績應在0-150*/
scanf("%f",&p1->age);
while(p1->age<0||p1->age>150) {
getchar();
printf("輸入錯誤,請重新輸入年齡"); /*輸入錯誤,重新輸入年齡直到正確為止*/
scanf("%f",&p1->age);
}
printf("請輸入班級:");/*輸入班級*/
scanf("%f",&p1->cl);
end: p1=head;
p3=p1;
for(i=1;i<n;i++) {
for(j=i+1;j<=n;j++) {
max=p1;
p1=p1->next;
if(max->number>p1->number) {
k=max->number;
max->number=p1->number;
p1->number=k;
/*交換前后結點中的學號值,使得學號大者移到后面的結點中*/
strcpy(t,max->name);
strcpy(max->name,p1->name);
strcpy(p1->name,t);
/*交換前后結點中的姓名,使之與學號相匹配*/
fen=max->sex;
max->sex=p1->sex;
p1->sex=fen;
/*交換前后結點中的性別,使之與學號相匹配*/
fen=max->age;
max->age=p1->age;
p1->age=fen;
/*交換前后結點中的年齡,使之與學號相匹配*/
fen=max->cl;
max->cl=p1->cl;
p1->cl=fen;
/*交換前后結點中的班級,使之與學號相匹配*/
}
}
max=head;p1=head;/*重新使max,p指向鏈表頭*/
}
p2->next=NULL;/*鏈表結尾*/
printf("輸入的學生數為:%d個!\n",n);
return(head);
}
}
score *add(score *head,score *stu)
/*函式add,功能:追加學生資料,并且將所有學生資料按學號排序*/
{
score *p0,*p1,*p2,*p3,*max;
int i,j;
char fen;
char t[20];
p3=stu=(score *)malloc(LEN);/*開辟一個新單元*/
printf("\n輸入要增加的學生的資料!");
repeat4: printf("請輸入學生學號(學號應大于0):");
scanf("%d",&stu->number);
/*輸入學號,學號應大于0*/
while(stu->number<0) {
getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&stu->number);
} /*輸入錯誤,重新輸入學號*/
/******************************************************/
if(stu->number==0)
goto end2;/*當輸入的學號為0時,轉到末尾,結束追加*/
else {
p3=head;
if(n>0) {
for(i=0;i<n;i++) {
if(stu->number!=p3->number) p3=p3->next; else {
printf("學號重復,請重輸!\n"); goto repeat4; /*當輸入的學號已經存在,程式報錯,回傳前面重新輸入*/
}
}
}
}
/******************************************************/
printf("請輸入學生姓名:");
scanf("%s",&p1->name); /*輸入學生姓名*/
printf("請輸入性別:"); /*輸入學生性別*/
scanf("%c",&p1->sex);
printf("請輸入年齡(0~150):"); /*輸入年齡,成績應在0-150*/
scanf("%f",&p1->age);
while(p1->age<0||p1->age>150) {
getchar();
printf("輸入錯誤,請重新輸入年齡"); /*輸入錯誤,重新輸入年齡直到正確為止*/
scanf("%f",&p1->age);
}
printf("請輸入班級:");/*輸入班級*/
scanf("%f",&p1->cl);
p1=head;
p0=stu;
if(head==NULL) {
head=p0;p0->next=NULL;
}/*當原來鏈表為空時,從首結點開始存放資料*/
else/*原來鏈表不為空*/
{
if(p1->next==NULL)/*找到原來鏈表的末尾*/
{
p1->next=p0;
p0->next=NULL;/*將它與新開單元相連接*/
} else {
while(p1->next!=NULL)/*還沒找到末尾,繼續找*/
{
p2=p1;p1=p1->next;
}
p1->next=p0;
p0->next=NULL;
}
}
n=n+1;
p1=head;
p0=stu;
for(i=1;i<n;i++) {
for(j=i+1;j<=n;j++) {
max=p1;
p1=p1->next;
if(max->number>p1->number) {
k=max->number;
max->number=p1->number;
p1->number=k;
/*交換前后結點中的學號值,使得學號大者移到后面的結點中*/
strcpy(t,max->name);
strcpy(max->name,p1->name);
strcpy(p1->name,t);
/*交換前后結點中的姓名,使之與學號相匹配*/
fen=max->sex;
max->sex=p1->sex;
p1->sex=fen;
/*交換前后結點中的性別,使之與學號相匹配*/
fen=max->age;
max->age=p1->age;
p1->age=fen;
/*交換前后結點中的年齡,使之與學號相匹配*/
fen=max->cl;
max->cl=p1->cl;
p1->cl=fen;
/*交換前后結點中的班級,使之與學號相匹配*/
}
}
max=head;p1=head;/*重新使max,p指向鏈表頭*/
}
end2:
printf("現在的學生數為:%d個!\n",n);
return(head);
}
/*==============================================================================================*/
score *search(score *head)
/*函式search,功能:查詢學生資訊*/
{int number;score *p1,*p2;printf("輸入要查詢的學生的學號,");scanf("%d",&number);while(number!=0) {
if(head==NULL) {
printf("\n沒有任何學生資料!\n");return(head);
}
printf("-----------------------------------------\n");
printf("|學號\t|姓名\t|性別\t|年齡\t|班級\t|\n");
printf("-----------------------------------------\n");/*列印表格域*/
p1=head;
while(number!=p1->number&&p1->next!=NULL) {
p2=p1;p1=p1->next;
}
if(number==p1->number) {
printf("|%d\t|%s\t|%c\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->sex,p1->age,p1->cl); printf("-----------------------------------------\n");
}/*列印表格域*/
else
printf("%d不存在此學生!\n",number);
printf("輸入要查詢的學生的學號,");
scanf("%d",&number);
}
printf("已經退出了!\n");
return(head);
}
/*==============================================================================================*/
score *del(score *head)/*函式del,功能:洗掉學生資料*/
{
score *p1,*p2;
int number;
printf("輸入要洗掉的學生的學號(輸入0時退出):");
scanf("%d",&number);
getchar();
while(number!=0)/*輸入學號為0時退出*/
{
if(head==NULL) {
printf("\n沒有任何學生資料!\n");
return(head);
}
p1=head;
while(number!=p1->number&&p1->next!=NULL)
/*p1指向的不是所要找的首結點,并且后面還有結點*/
{
p2=p1;p1=p1->next;
} /*p1后移一個結點*/
if(number==p1->number)
/*找到了*/
{
if(p1==head)
head=p1->next;
/*若p1指向的是首結點,把地二個結點地址賦予head*/
else
p2->next=p1->next;
/*否則將下一個結點地址 賦給前一結點地址*/
printf("已經洗掉:%d\n",number);n=n-1;
} else
printf("%d不存在此學生!\n",number);
/*找不到該結點*/
printf("輸入要洗掉的學生的學號:");
scanf("%d",&number);
getchar();
}
#ifdef DEBUG
printf("已經退出了!\n");
#endif
printf("現在的學生數為:%d個!\n",n);
return(head);
}
/*==============================================================================================*/
int save(score *p1)
/*函式save,功能:保存學生的資料*/
{
FILE *fp;
char filepn[20];/*用來存放檔案保存路徑以及檔案名*/
printf("請輸入檔案路徑及檔案名:");
scanf("%s",filepn);
if((fp=fopen(filepn,"w+"))==NULL) {
printf("不能打開檔案!\n");
return 0;
}
fprintf(fp," 學生資訊管理系統 \n");
fprintf(fp,"-------------------------------------------------------\n");
fprintf(fp,"| 學號\t| 姓名\t| 性別\t| 年齡\t| 班級\t|\n");
fprintf(fp,"-------------------------------------------------------\n");
/*列印表格域*/
while(p1!=NULL) {
fprintf(fp,"%d\t%s\t%c\t%.1f\t%.1f\t\n",p1->number,p1->name,p1->sex,p1->age,p1->cl);
p1=p1->next;/*下移一個結點*/
}
uj5u.com熱心網友回復:
fclose(fp);
printf("檔案已經保存!\n");
return 0;
}
int menu()/*函式menu,功能:選單選擇界面*/
{
int i,k;
printf("\t\t\t\t學生資訊管理系統\n");
for(i=0;i<80;i++)
printf("*");
printf("\t\t1創建資料\t\t\t2查詢成績\t\t\n");
printf("\t\t3洗掉資料\t\t\t4追加資料\t\t\n");
printf("\t\t5統計成績\t\t\t6保存資料\t\t\n");
/*選單選擇界面*/
for(i=0;i<80;i++)
printf("*");
printf("請選擇您所要的操作(選擇(0)退出):");
scanf("%d",&k);/*選擇操作*/
getchar();
return (k);
}
/*==============================================================================================*/
int main()/*主函式main,功能:通過呼叫creat,search,del,add,print,ststistics,save,taxis等函式,實作學生成績查詢系統功能*/
{
score *head=0,*stu=0;
while(1) {
k=menu();
switch(k)/*用switch陳述句實作功能選擇*/
{
case 1: head=creat();break;/*呼叫創建鏈表函式*/
case 2: head=search(head);break;/*呼叫查詢函式*/
case 3: head=del(head); break;/*呼叫洗掉函式*/
case 4: head=add(head,stu);break;/*呼叫追加函式*/
case 6: save(head);break;/*呼叫保存函式*/
case 0: exit(0);/*退出系統,回傳主界面*/
default: printf("輸入錯誤,請重試!\n");
}
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/266045.html
標籤:C++ 語言
上一篇:那個大佬給看一下,哪里不對了
