1、#include iomanipusing namespace std;structnode intnum;charname10;floatscore;*next; classlinked_list private :node *head;public :linked_list();void prt_linked_list(); void ins_num_linked_list( int i,node *b); void ins_name_linked_list( char name,node *b); int del_num_linked_list(node);int del_name_li
2、nked_list(node);int sear_num_linked_list(int);void sear_name_linked_list(node);void count_linked_list();/* 建立链表 */ linked_list:linked_list()node *p,*q;p=new node;q= new node; p-num=101;strcpy(p-name,aaa);p-score=98; q-num=104;strcpy(q-dddq-score=95;head=p;next=q;next=NULL;return ;/* 输出 */void linked
3、_list:prt_linked_list()node *p;p=head;if (head=NULL)cout 空链表 ! ”endl; return ; else docoutnum namescorenext;while (p!=NULL);/* 按学号插入 */ins_num_linked_list( int i,node *b)node *q;if (head=NULL)b-head=b;if (head-num=i)next=head;q=head;while (q-next!=NULL)&(q-next)-num)!=i) q=q-if (q-next=NULL)coutnext
4、=q-next=b;return/* 按姓名插入 */ins_name_linked_list( char name,node *b)if (strcmp(head-name,name)=0)head=b return ;(strcmp(q-name,name) !=0)q=q-/* 按学号删除 */int linked_list:del_num_linked_list( node x ) return 0;num=x.num)p=head-delete head; return 1; q=head;=x.num) q=q-next=0)coutnext=p-delete p;return 1
5、;/* 按姓名删除 */del_name_linked_list( node x )name,x.name)=0)name,x.nam e)! return/* 按学号查找 */sear_num_linked_list( int i ) node *q;(q-=i)if (q-=i)coutcout(strcmp(p-name,x.name)!=0) p=p-if (strcmp(p-=0)/* 计算 */count_linked_list() float sum=0,ave;int n=0;node *p;if (p=0) 空链表 else while (p!sum=sum+p-nxt;n+
6、;ave=sum/n; 总 分=sum 平均分 =ave/* 主函数 */ int main() int mx;linked_list s1;while (1) coutmx;switch (mx) case 1: s1.prt_linked_list(); break ;case 2: node *b= new node;int mx1; 1. 按学号插入 2. 按姓名插入 0. 退出 输入 0-2:cinmx1;switch (mx1) 请输入要插入位置的学号(在此之前一位插 入) :i; 请输入要插入的学号、姓名、成绩 :b-numnamescore ; s1.ins_num_linke
7、d_list(i,b); char name10; 请输入要插入位置的姓名 (在此之前一位插入) :name;s1.ins_name_linked_list(name,b);s1.prt_linked_list();case 0: cout 退出 break ;case 3: int mx2; node x; 请输入要删除的 : 1. 按学号删除 2. 按姓名删除 0. 退出 mx2;switch (mx2)case 1: 请输入要删除的学号 :x.num;s1.del_num_linked_list(x); 请输入删除姓名x 。 name;s1.del_name_linked_list(x); case 4: int mx3;1. 按学号查找 2. 按姓名查找 0. 退出 mx3;switch (mx3) int i; 请输入要查找的学号 :break ;s1.sear_num_linked_list(i) ;node x; 请输入要查找的姓名 :x.name;return 0;cas
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1