#include stdio.h
公司主營業務:網站制作、成都做網站、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。創新互聯公司是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創新互聯公司推出長豐免費做網站回饋大家。
#include malloc.h
#include stdlib.h
#include string.h
#include conio.h
#include windows.h
#define null '\0'
int shoudsave=0;
struct student /*聲明一個結構體類型struct student*/
{
char clas[20]; /*定義成員班級號*/
char name[20]; /*定義成員學生姓名*/
char classnum[20]; /*定義成員學生學號*/
float basis; /*定義成員基礎學分*/
float major; /*定義成員專業學分*/
float elective; /*定義成員選修學分*/
float humanity; /*定義成員人文學分*/
float laboratory; /*定義成員實驗學分*/
float sum; /*定義成員學分總和*/
float average; /*定義成員平均學分*/
};
typedef struct node /*聲明一個節點類型struct node*/
{
struct student data; /*定義節點數據*/
struct node *next; /*定義節點指針*/
}Node,*Link;
void menu1() /*輸出系統名稱及簡介*/
{
printf("\n 學生學分管理系統 \n");
printf("********************************************************************************");
printf("說明:本系統旨在幫助師生方便,快捷地統計,管理學分。您可以進行輸入,修改,查看,排序等操作,界面清爽,操作簡單,歡迎您的使用。\n");
printf("********************************************************************************");
}//menu1
void menu2() /*輸出主菜單*/
{
printf(" 菜 單 \n");
printf("\t\t0:退出本次登入\t\t\t5:清除屏幕內容\n");
printf("\t\t1:輸入學生信息\t\t\t6:修改學生學分\n");
printf("\t\t2:刪除學生信息\t\t\t7:顯示學生學分\n");
printf("\t\t3:查詢學生學分\t\t\t8:統計學生信息\n");
printf("\t\t4:排序學生學分\t\t\t9:保存學生學分\n");
}//menu2
void menu3() /*輸出排序菜單,供void sort(Link l)函數調用*/
{
printf("\n\t\tA:基礎學分\t\t\tB:專業學分\n");
printf("\t\tC:選修學分\t\t\tD:人文學分\n");
printf("\t\tE:實驗學分\t\t\tF:學分總和\n");
printf("\t\tG:平均學分\t\t\t\n");
printf("\n請選則您要排序的課程代碼:");
}//menu3
void menu4() /*輸出菜單上下限制符*/
{
printf("================================================================================");
}//menu4
void title() /*輸出顯示菜單,供void display(Link l)函數調用*/
{
printf(" 班級\t學號\t姓名\t基礎\t專業\t選修\t人文\t試驗\t總分\t平均\n");
}//title
void data(Node *p,char find[]) /*輸出按姓名查找的結果,供void search(Link l)函數調用*/
{
if(strcmp(p-data.name,find)==0)
printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p-data.clas,p-data.classnum,p-data.name,p-data.basis,p-data.major,p-data.elective,p-data.humanity,p-data.laboratory,p-data.sum,p-data.average);
}//data
void data1(Node *p) /*輸出按學號查找的結果,供void search(Link l)函數調用*/
{
printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p-data.clas,p-data.classnum,p-data.name,p-data.basis,p-data.major,p-data.elective,p-data.humanity,p-data.laboratory,p-data.sum,p-data.average);
}//data1
void data2(Node *p,char find[]) /*輸出按班級查找的結果,供void search(Link l)函數調用*/
{
if(strcmp(p-data.clas,find)==0)
printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p-data.clas,p-data.classnum,p-data.name,p-data.basis,p-data.major,p-data.elective,p-data.humanity,p-data.laboratory,p-data.sum,p-data.average);
}//data2
Node* Locate(Link l,char find[],char match[]) /*查找匹配函數定義,該函數用于定位鏈表中符合要求的節點,并返回該指針*/
{
Node *r; /*定義節點指針r*/
if(strcmp(match,"classnum")==0) /*按學號查詢*/
{
r=l-next; /*初始化r,指向第一個節點*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r-data.classnum,find)==0) /*查詢成功*/
return r;
r=r-next; /*節點后移*/
} //while
} //if
else if(strcmp(match,"name")==0) /*按姓名查詢*/
{
r=l-next; /*初始化r,指向第一個節點*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r-data.name,find)==0) /*查詢成功*/
return r;
r=r-next; /*節點后移*/
} //while
} //else if
else if(strcmp(match,"clas")==0) /*按班級號查詢*/
{
r=l-next; /*初始化r,指向第一個節點*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r-data.clas,find)==0) /*查詢成功*/
return r;
r=r-next; /*節點后移*/
}//while
}//else if
return 0;
}//Locate
void input(Link l) /*輸入函數定義,用于增加學生信息*/
{
char clas[10];
Node *r,*p; /*定義節點r和p*/
r=l; /*將r指向頭結點*/
while(r-next!=NULL)
r=r-next; /*將指針置于最末尾*/
while(l)
{
printf("\n友情提示:輸入'#'返回上一菜單\n");
printf("\n輸入學生的班級號:");
scanf("%s",clas);
if(strcmp(clas,"#")==0)
break;
p=(Node *)malloc(sizeof(Node)); /*生成新的節點*/
strcpy(p-data.clas,clas); /*將clas字符串復制到p-data.clas中*/
printf("輸入學生的學 號:");
scanf("%s",p-data.classnum);
getchar();
printf("輸入學生的姓 名:");
scanf("%s",p-data.name);
getchar();
printf("輸入學生的基礎分:");
scanf("%3.1f",p-data.basis);
getchar();
printf("輸入學生的專業分:");
scanf("%3.1f",p-data.major);
getchar();
printf("輸入學生的選修分:");
scanf("%3.1f",p-data.elective);
getchar();
printf("輸入學生的人文分:");
scanf("%3.1f",p-data.humanity);
getchar();
printf("輸入學生的實驗分:");
scanf("%3.1f",p-data.laboratory);
getchar();
p-data.sum=p-data.basis+p-data.major+p-data.elective+p-data.humanity+p-data.laboratory; /*計算學分總和*/
p-data.average=p-data.sum/5; /*計算平均學分*/
p-next=NULL; /*p節點的下一個節點為空*/
r-next=p; /*節點前移*/
r=p;
}//while
}//input
void delet(Link l) /*刪除函數定義*/
{
char find[10];
Node *p,*r; /*定義節點r和p*/
if(!l-next) /*刪除位置不合理*/
{ printf("\n\a對不起,無信息可刪除!");
printf("\n");
return;
}//if
printf("\n請輸入要刪除學生的學號:");
scanf("%s",find);
p=Locate(l,find,"classnum");
if(p)
{ r=l; /*r指向頭結點*/
while(r-next!=p) /*r的下一個節點不是p,一直循環*/
r=r-next; /*順指針向后查找,直到r指向p的前一個節點*/
r-next=p-next; /*刪除節點p*/
free(p); /*釋放節點p*/
printf("\n\a系統提示:信息刪除成功!\n");
shoudsave=1; /*保存資料*/
}//if
else
{ printf("\n\a對不起,無信息可刪除!");
printf("\n");
}//else
}//delet
void search(Link l) /*查詢函數定義*/
{
char temp; /*定義單字符temp*/
char find[10]; /*定義字符串find[]*/
Node *p; /*定義節點p*/
if(!l-next)
{
printf("\n\a對不起,無信息可查詢!");
printf("\n");
return;
}//if
printf("\n\t\t1:按學號查詢\t 2:按姓名查詢\t 3:按班級查詢\n");
printf("\n請輸入您要查詢的方式:");
scanf("%s",temp);
if(temp!='1' temp!='2' temp!='3')
printf("\n\a\a系統提示:您輸入錯誤!\n");
else if(temp=='1')
{
printf("\n請輸入要查詢的學號:");
scanf("%s",find);
p=Locate(l,find,"classnum"); /*按學號進行查找匹配*/
}//else if
else if(temp=='2')
{
printf("\n請輸入要查詢的姓名:");
scanf("%s",find);
p=Locate(l,find,"name"); /*按名字進行查找匹配*/
}//else if
else if(temp=='3')
{
printf("\n請輸入您要查詢的班級:");
scanf("%s",find);
p=Locate(l,find,"clas"); /*按班級號進行查找匹配*/
}//else if
if(p)
{
printf("\n ==============查詢結果==============\n");
menu4();
title();
if(temp=='1')
data1(p); /*輸出按學號查找的結果*/
else if(temp=='2')
while(p)
{
data(p,find); /*輸出按名字查找的結果*/
p=p-next; /*節點后移*/
}//while
else if(temp=='3')
while(p)
{
data2(p,find); /*輸出按班級號查找的結果*/
p=p-next; /*節點后移*/
}//while
menu4();
}//if
else
{
printf("\n\a對不起,無信息可查詢!");
printf("\n");
}//else
}//search
Link sortH(Link l,char ch) /*分類排序函數定義*/
{
Node *p,*q,*wei,*s,*p1; /*定義節點p,q,wei,s,p1*/
wei=NULL; /*將尾節點置空*/
char temp;
temp=ch;
if(!l-next)
{
printf("\n\a對不起,無信息可排序!");
printf("\n");
return 0;
}//if
while(l-next!=wei)
{
p=l;
q=p-next;
while(q-next!=wei)
{
if(temp=='A') /*按基礎學分由高到低進行排序*/
{
if(p-next-data.basisq-next-data.basis)
{
s=q-next;
p-next=q-next;
q-next=q-next-next;
p-next-next=q;
q=s;
}//if
}//if
else if(temp=='B') /*按專業學分由高到低進行排序*/
{
if(p-next-data.majorq-next-data.major)
{
s=q-next;
p-next=q-next;
q-next=q-next-next;
p-next-next=q;
q=s;
}//if
}//else if
else if(temp=='C') /*按選修學分由高到低進行排序*/
{
if(p-next-data.electiveq-next-data.elective)
{
s=q-next;
p-next=q-next;
q-next=q-next-next;
p-next-next=q;
q=s;
}//if
}//else if
else if(temp=='D') /*按人文學分由高到低進行排序*/
{
if(p-next-data.humanityq-next-data.humanity)
{
s=q-next;
p-next=q-next;
q-next=q-next-next;
p-next-next=q;
q=s;
}//if
}//else if
else if(temp=='E') /*按實驗學分由高到低進行排序*/
{
if(p-next-data.laboratoryq-next-data.laboratory)
{
s=q-next;
p-next=q-next;
q-next=q-next-next;
p-next-next=q;
q=s;
}//if
}//else if
else if(temp=='F') /*按學分總和由高到低進行排序*/
{ if(p-next-data.sumq-next-data.sum)
{
s=q-next;
p-next=q-next;
q-next=q-next-next;
p-next-next=q;
q=s;
}//if
}//else if
else if(temp=='G') /*按平均學分由高到低進行排序*/
{
if(p-next-data.averageq-next-data.average)
{
s=q-next;
p-next=q-next;
q-next=q-next-next;
p-next-next=q;
q=s;
}//if
}//else if
p=p-next;
q=q-next;
}//while
wei=q;
}//while
p1=l-next;
printf("\n ==============排序結果==============\n");
menu4();
if(temp=='A') /*輸出按基礎學分排序的結果*/
{ printf("\t\t\t班級\t學號\t姓名\t基礎學分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1-data.clas,p1-data.classnum,p1-data.name,p1-data.basis);
p1=p1-next;
}//while
}//if
if(temp=='B') /*輸出按專業學分排序的結果*/
{
printf("\t\t\t班級\t學號\t姓名\t專業學分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1-data.clas,p1-data.classnum,p1-data.name,p1-data.major);
p1=p1-next;
}//while
}//if
if(temp=='C') /*輸出按選修學分排序的結果*/
{
printf("\t\t\t班級\t學號\t姓名\t選修學分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1-data.clas,p1-data.classnum,p1-data.name,p1-data.elective);
p1=p1-next;
}//while
}//if
if(temp=='D') /*輸出按人文學分排序的結果*/
{
printf("\t\t\t班級\t學號\t姓名\t人文學分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1-data.clas,p1-data.classnum,p1-data.name,p1-data.humanity);
p1=p1-next;
}//while
}//if
if(temp=='E') /*輸出按實驗學分排序的結果*/
{
printf("\t\t\t班級\t學號\t姓名\t實驗學分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1-data.clas,p1-data.classnum,p1-data.name,p1-data.laboratory);
p1=p1-next;
}//while
}//if
if(temp=='F') /*輸出按學分總和排序的結果*/
{
printf("\t\t\t班級\t學號\t姓名\t學分總和\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1-data.clas,p1-data.classnum,p1-data.name,p1-data.sum);
p1=p1-next;
}//while
}//if
if(temp=='G') /*輸出按平均學分排序的結果*/
{
printf("\t\t\t班級\t學號\t姓名\t平均學分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1-data.clas,p1-data.classnum,p1-data.name,p1-data.average);
p1=p1-next;
}//while
}//if
printf("\n");
menu4();
printf("\n");
return l;
}//sortH
void sort(Link l) /*排序函數定義*/
{
menu3();
char temp;
scanf("%s",temp);
switch(temp) /*對要排序的類別進行選擇*/
{
case 'A':sortH(l,'A');break;
case 'B':sortH(l,'B');break;
case 'C':sortH(l,'C');break;
case 'D':sortH(l,'D');break;
case 'E':sortH(l,'E');break;
case 'F':sortH(l,'F');break;
case 'G':sortH(l,'G');break;
default:printf("\n\a\a系統提示:您輸入錯誤!\n");getchar();break;
}//switch
}//sort
void modify(Link l) /*修改函數定義*/
{
char temp;
char find[10];
Node *p; /*定義節點p*/
if(!l-next)
{
printf("\n\a\a對不起,無信息可修改!");
printf("\n");
return;
}//if
printf("\n\t\t1:按學號修改\t 2:按姓名修改\n");
printf("\n請輸入您要修改的方式:");
scanf("%s",temp);
if(temp!='1'temp!='2')
{
printf("\n\a\a系統提示:您輸入錯誤!\n");
return;
}//if
else if(temp=='1') /*按學號修改*/
{
printf("請輸入要修改的學號:");
scanf("%s",find);
p=Locate(l,find,"classnum"); /*按學號查找匹配*/
}//else if
沒有空間了 郵箱給我 發你郵箱去
以上回答你滿意么?
AddStudent和DisplayStudents函數要先聲明噻,放到你調用函數的前面聲明哈
#includeiostream.h
#includestring.h
#includefstream.h
#includeiomanip.h
class stu
{
char name[20];
double age,homephone,telphone;
char sex;
public:
stu(){}
stu(char n[20],char se,double ag,double ho,double te)
{
strcpy(name, n);
age=ag;
homephone=ho;
telphone=te;
}
friend void main();
};
void main()
{
cout"請選擇您需要的操作!"endl;
cout"操作:"endl;
cout"(0)通訊錄錄入"endl;
cout"(1)增加人員"endl;
cout"(2)刪除人員"endl;
cout"(3)修改數據"endl;
cout"(4)顯示記錄"endl;
cout"(5)退出"endl;
cout"選擇相關操作請輸入相對的括號里的阿拉伯數字!"endl;
stu *s[50];
int i=0;
int j=0;
bool flag2=0;
char p;
do
{
cinp;
if((p='0'p='5'))
flag2=1;
else
cout"指令錯誤!請重新輸入:"endl;
}while(flag2==0);
switch(p)
{
case '0': //(0)通訊錄錄入
{
char name[20];
double age,homephone,telphone;
char sex,c;
do{
cout"請輸入姓名:"endl;
cinname;
cout"請輸入性別:"endl;
cinsex;
cout"請輸入年齡:"endl;
cinage;
cout"請輸入家里的電話號碼:"endl;
cinhomephone;
cout"請輸入移動電話號碼:"endl;
cintelphone;
j++;
s[i]=new stu(name, sex, age, homephone , telphone);
i++;
cout"數據錄入成功,想繼續錄入嗎(y/n)"endl;
cinc;
flag2=0;
do
{
if(c!='y'c!='n')
{
cout"指令錯誤!請重新輸入!"endl;
cinc;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break; }
////////////////////////////////////////////////////////////////////
case '1': //(1)增加人員(Add)
{
char name[20];
double age,homephone,telphone;
char sex,c;
do{
cout"請輸入姓名:"endl;
cinname;
cout"請輸入性別:"endl;
cinsex;
cout"請輸入年齡:"endl;
cinage;
cout"請輸入家里的電話號碼:"endl;
cinhomephone;
cout"請輸入移動電話號碼:"endl;
cintelphone;
j++;
s[i]=new stu(name, sex, age, homephone , telphone);
i++;
cout"數據錄入成功,想繼續錄入嗎(y/n)"endl;
cinc;
flag2=0;
do
{
if(c!='y'c!='n')
{
cout"指令錯誤!請重新輸入!"endl;
cinc;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break; }
case '2': //(2)刪除人員(Delete)
{
char name[20];bool flag3=0;char c;
do{
cout"請輸入您要刪除的學生姓名:"endl;
cinname;
for(int h=0;hi;h++)
{
if(strcmp(name,s[h]-name)==0)
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h=i);
}
}
if(flag3==0)
cout"您要求刪除的對象本來就不存在!請檢查輸入的正確性!";
cout"要繼續刪除嗎?(y/n)"endl;
cinc;
if(c!='y'c!='n')
{
cout"指令錯誤!請重新輸入!"endl;
cinc;
}
}while(c=='y');
break; }
case '3': //(3)修改數據(Alter)
{
char name[20],se;double ag,ho,te;flag2=0;
char c;
do
{
cout"請輸入您要修改的學生的姓名:"endl;
cinname;
for(int h=0;hi;h++)
{
if(strcmp(name,s[h]-name)==0)
{
flag2=1;
cout"請輸入性別:"endl;
cinse;
cout"請輸入年齡:"endl;
cinag;
cout"請輸入家里的電話號碼:"endl;
cinho;
cout"請輸入移動電話號碼:"endl;
cinte;
s[h]-sex=se;
s[h]-age=ag;
s[h]-homephone=ho;
s[h]-telphone=te;
cout"數據修改成功!";
}
}
if(flag2==0)
{
cout"您要修改的學生本來就不存在!請檢查重新輸入!"endl;
}
cout"想繼續修改嗎(y/n)"endl;
cinc;
if(c!='y'c!='n')
{
cout"指令錯誤!請重新輸入!"endl;
cinc;
}
}while(c=='y');
break; }
case '4': //(4)顯示記錄(List)
{
cout"本系統所有通訊錄的數據如下:"endl;
if(i==0)
cout"管理系統中沒有錄入數據或者數據已經被刪除!"endl;
for(int k=0;ki;k++)
{
coutk+1" ""姓名:"" "s[k]-name
"性別:"" "s[k]-sex"年齡:"" "s[k]-age
"家里的電話號碼:"" "s[k]-homephone"移動電話號碼:"
" "s[k]-telphoneendl;
}
break; } }
cout"您想繼續進行其他操作嗎?(y/n)"endl;
bool flag4=0;
do
{
cinp;
if(p!='y'p!='n')
cout"指令錯誤!請重新輸入!"endl;
else
flag4=1;
}while(flag4==0);
if(p=='y')
cout"請輸入操作代碼(0 通訊錄錄入/1 增加人員(Add)/2 刪除人員(Delete)/3 修改數據(Alter)/4 顯示記錄(List)/ 5 退出(Exit))"endl;
cinp;
for(int x=0;xi;x++)
{
delete s[x];
cout"刪除所有成員!"endl;
}
}
回答者:little_goblin - 初入江湖 三級 7-11 09:35
評價已經被關閉 目前有 1 個人評價
好
100% (1) 不好
0% (0)
對最佳答案的評論 共 1 條
看不懂
評論者: hanrenhui88 - 試用期 一級
其他回答 共 1 條
我自己前不久編寫的一個通訊錄,呵呵.
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
struct student
{
int no; /*學號*/
char name[20]; /*姓名*/
char acdamic[20]; /*院系*/
char major[20]; /*專業*/
char province[20]; /*籍貫*/
char address[40]; /*家庭地址*/
long phone; /*聯系電話*/
struct student *next;
};
struct student *input();
void print(struct student *h);
struct student *insert(struct student *h);
struct student *del(struct student *h);
void find4(struct student *h);
void find3(struct student *h);
void find2(struct student *h);
void find1(struct student *h);
struct student *head=NULL;
char ch,*menu[]={"------------------通訊錄菜單------------",
"1.----------建立學生通訊錄---------------",
"2.----------輸出全部學生通訊錄---------------",
"3.----------增加的學生的個數---------------",
"4.----------刪除指定學號的學生--------------",
"5.----------按系別查找學生信息-------------",
"6.----------按專業查找學生信息-------------",
"7.----------按姓名查找學生信息-------------",
"8.----------按學號查找學生信息--------------",
"9.----------退出通訊錄-----------------------"};
struct student *input() /*輸入函數*/
{
int n;
printf("請輸入你要建立的學生通訊錄的學生個數:\n");
scanf("%d",n);
struct student *h=NULL,*p,*q;
int i;
for(i=1;i=n;i++)
{
printf("請依次輸入第%d個學生的學號,姓名,系別,專業,籍貫,家庭住址和聯系電話:\n",i);
p=(struct student *)malloc(sizeof(struct student));
if(p==NULL)
{
printf("內存不足!\n");
exit(0);
}
scanf("%d%s%s%s%s%s%ld",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);
if(i==1)h=p;
else q-next=p;
q=p;
}
q-next=NULL;
return h;
}
void print(struct student *h) /*輸出函數*/
{
struct student *p=h;
while(p)
{
printf("學生信息:\n%d,%s,%s,%s,%s,%s,%ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);
p=p-next;
}
}
struct student *insert(struct student *h) /*增加學生信息*/
{
int n;
printf("請輸入你要增加的學生的個數:\n");
scanf("%d",n);
struct student *p,*r;
int i;
for(i=1;i=n;i++)
{
r=(struct student *)malloc(sizeof(struct student));
printf("請輸入第%d個你要插入的學生的信息:\n",i);
scanf("%d%s%s%s%s%s%ld",r-no,r-name,r-acdamic,r-major,r-province,r-address,r-phone);
p=h;
h=r;
r-next=p;
}
return h;
}
struct student *del(struct student *h) /*按學號進行刪除*/
{
int n;
printf("請輸入要刪除的學生的學號:\n");
scanf("%d",n);
struct student *p,*q;
if(h=NULL)printf("empty list!\n");
else
{
p=h;
while(p-no!=np-next)
{q=p;p=p-next;}
if(p-no==n)
{
if(h==p)h=p-next;
else q-next=p-next;
}
else printf("%d is not found!\n");
}
return h;
}
void find1(struct student *h) /*按院系查找學生信息*/
{
char s[40];
printf("請輸入要查找的學生的院系:\n");
scanf("%s",s);
struct student *p;
if(h==NULL)printf("empty list!\n");
else
{
p=h;
while(p)
{
if(strcmp(p-acdamic,s)==0)
printf("學生信息:\n%d %s %s %s %s %s %ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);
p=p-next;
}
}
}
void find2(struct student *h) /*按專業查找*/
{
char s[20];
printf("請輸入要查找的學生的專業名:\n");
scanf("%s",s);
struct student *p;
if(h==NULL)printf("empty list!\n");
else
{
p=h;
while(p)
{
if(strcmp(p-major,s)==0)
printf("學生信息:\n%d %s %s %s %s %s %ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);
p=p-next;
}
}
}
void find3(struct student *h) /*按姓名查找*/
{
char ss[10];
printf("請輸入要查找的學生的姓名:\n");
scanf("%s",ss);
struct student *p;
if(h==NULL)printf("empty list!\n");
else
{
p=h;
while(p)
{
if(strcmp(p-name,ss)==0)
printf("學生信息:\n%d %s %s %s %s %s %ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);
p=p-next;
}
}
}
void find4(struct student *h) /*按學號查找*/
{
int num;
printf("請輸入要查找的學生的學號:\n");
scanf("%d",num);
struct student *p;
if(h==NULL)printf("empty list!\n");
else
{
p=h;
while(p)
{
if(p-no==num)
printf("學生信息:\n%d %s %s %s %s %s %ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);
else
printf("沒有你要查找的學生信息!\n");
p=p-next;
}
}
}
int menu_select()
{
int i,s;
char c[3];
for(i=0;i10;i++)
printf("%s\n",menu[i]);
do
{
scanf("%s",c);
s=atoi(c);
}while(s0||s9);
return s;
}
main()
{
for(;;)
{
switch(menu_select())
{
case 1:head=input();break;
case 2:print(head);break;
case 3:head=insert(head);break;
case 4:head=del(head);break;
case 5:find1(head);break;
case 6:find2(head);break;
case 7:find3(head);break;
case 8:find4(head);break;
case 9:exit(0);
}
}
}
網站欄目:c語言major函數 c major是什么意思
當前路徑:http://m.newbst.com/article40/docjjho.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、網站排名、關鍵詞優化、App設計、App開發、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯