




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、流程图:开始显示菜单1.creat()2.3.dele()函4.add()函5.6.modify(Searc结束7.sort() h(函8.save(函9.)load()函非法选项全局变量struct studchar name20;long num;int age;char sex;int score3;char tele12;struct stud *next;子程序() 函数功能:创建链表,提示输入学生信息,储存到链表中,录入完成后输入 y 继续,输入 止,返回主菜单() 函数 功能:显示当前已经存入链表的信息() 函数 功能:删除链表中学生信息,可按姓名或学号删除() 函数 功能:按学
2、号插入学生信息() 函数功能:修改链表中学生信息() 函数 功能:查找学生信息,可按学号或姓名查找() 函数 功能:对信息进行排序,可实现分别对三门成绩排序() 函数 功能:将链表中的数据保存到指定文件() 函数 功能:将指定文件中已有的数据读入链表源程序#include#include#include#includestruct studchar name20;long num;int age;char sex;int score3;char tele12;struct stud *next; main()struct stud *head; struct stud *creat(void)
3、; void display(struct stud *head); struct stud *dele(struct stud *head); struct stud *add(struct stud *head); struct stud *modify(struct stud *head); void search(struct stud *head); void save(struct stud *head); struct stud *sort(struct stud *head); void save(struct stud *head); struct stud *load();
4、char ch; head=NULL;for(;) clrscr();/*清屏函数 */printf(“ nnttWelcometo studentinformationmanagementprintf(“nnt*匕*); printf(“ nttt 1: Enter the information” );printf(“nttt2:List the information”);printf(“nttt3:Delete the information”);printf(“nttt4:Add the information”);printf(“nttt5:Modify the informati
5、on”);printf(“nttt6:Search the information”);printf(“nttt7:Sort the information”);printf(“nttt8:Save the information”);printf(“nttt9:Load the information”);printf(“nttt0:Exit“ );printf(“ntttEnter your choice:”);fflush(stdin);system ” );ch=getchar();getchar();switch(ch)case 1 : head=creat(); break;cas
6、e 2 :display(head); system( “ pause ”); break;case 3 :head=dele(head); system( “ pause ”); break;case 4 :head=add(head); system( “ pause ”);break;case 5 :head=modify(head); system( “ pause ”);break;case 6 :search(head); system( “ pause ”);break;case 7 :head=sort(head); system( “ pause ”);break;case
7、8 :save(head); system( “ pause ”); break;case 9 :head=load(); break;case 0 : return; break;default : clrscr();printf( “ nt Error!Please check your inputnn”);system( “ pause ”);struct stud *creat(void) /* 链表的创建 */ struct stud *head,*p1;char ch; clrscr(); head=NULL; p1=(struct stud *)malloc(sizeof(str
8、uct stud); printf( “ t enter name: ”);gets(p1-name); printf(“ t enter number: ” );scanf( “%ld” ,&p1-num);printf( “ t enter age:” );scanf( “ %d” ,&p1-age);printf( “ t enter sex:” );fflush(stdin);scanf( “ %c” ,&p1-sex);printf( “ t enter Math score:” );scanf( “ %d” ,&p1-score0);printf( “ t enter Englis
9、h score:” );scanf( “ %d” ,&p1-score1);printf( “ t enter C score:” );scanf( “ %d” ,&p1-score2);printf( “ t enter telephone number:”);fflush(stdin); gets(p1-tele);head=p1;p1-next=NULL;do printf( “ntDO YOU WANT TO CONTINUE Y or N ”);printf( “ ntEnter your choise:” );fflush(stdin); ch=getchar(); clrscr(
10、); if(ch= y |ch= Y )head=add(head);else if(ch!= N&ch!= n) printf( “ ntError !Please check your input”);ch=y;while(ch= y |ch= Y); return(head);struct stud *dele(struct stud *head)/*链表的删除 */struct stud *p1,*p2;int choose;long delnum;char name20;clrscr();printf( “ nttChoose the way you want”);printf( “
11、 nt 1: According to namen“);printf( “ nt 2: According to numn”);printf( “ nt Enter your choice:”);scanf( “ %d”,&choose); fflush(stdin);if(choose=1)printf( “nt Enter the name:”);gets(name); if(head=NULL)printf( “ tnNo information !n ” );return(head); p1=head; while(strcmp(name,p1-name)!=0&p1-next!=NU
12、LL)p2=p1;p1=p1-next; if(strcmp(name,p1-name)=0) if(p1=head)head=p1-next;else p2-next=p1-next;printf( “ t Delete Successed !nn”);else printf( “ t Not been find!nn”);return(head);else if(choose=2)printf( “ntEnter the number:” );scanf( “ %ld”,&delnum);if(head=NULL)printf( “ nNoinformation!n ”);return(h
13、ead);p1=head;while(delnum!=p1-num&p1-next!=NULL)p2=p1;p1=p1-next; if(delnum=p1-num)if(p1=head)head=p1-next;else p2-next=p1-next;printf( “ t Delete Successed !nn”);else printf( “t Not been find!n”);return(head);else printf(“ nt Error!Please check your inputnn” );return(head);void display(struct stud
14、*head)struct stud *p; p=head;clrscr();if(head=NULL)printf( “nt No informationnn” );else printf(“nametnumbertagetsextMathtEnglishtCttelephonenumbern ”);doprintf( “ %st%ldt%dt%ct%dt%dt%dt%sn” ,p-name,p-num,p-age,p-sex,p-score0,p-score1,p-score2,p-tele);p=p-next;while(p!=NULL); struct stud *add(struct
15、stud *head)/*链表的插入 */struct stud *p1,*p2,*p0;p0=(struct stud *)malloc(sizeof(struct stud); clrscr();printf( “ ntt Input the information: ”); printf( “ntt name: ” );fflush(stdin); gets(p0-name);printf( “tt number: ” );scanf( “ %ld”,&p0-num); printf( “ tt age:”);scanf( “ %d”,&p0-age); printf( “ tt sex
16、:”);fflush(stdin);scanf( “ %c”,&p0-sex);printf( “tt Math score: ” );scanf( “ %d”,&p0-score0); printf( “ tt English score:”);scanf( “ %d”,&p0-score1); printf( “ tt C score:”);scanf( “ %d”,&p0-score2); printf( “ tt telephone number:”);fflush(stdin);gets(p0-tele); p1=head;if(head=NULL) head=p0;p0-next=
17、NULL; elsewhile(p0-nump1-num)p2=p1, p1=p1-next; if(p0-numnum)if(head=p1)head=p0; else p2-next=p0;p0-next=p1;elsep1-next=p0;p0-next=NULL;return(head);struct stud *modify(struct stud *head)/*链表的修改 */struct stud *p1,*p2,*p0;clrscr();printf( “ ntInput the students name: ”);p0=(struct stud *)malloc(sizeo
18、f(struct stud);fflush(stdin); gets(p0-name);p1=head;if(head=NULL)printf(“ nNo information !nn ”);return(head);while(strcmp(p0-name,p1-name)!=0&p1-next!=NULL)p2=p1;p1=p1-next; if(strcmp(p0-name,p1-name)=0)printf( “nametnumbertagetsextMathtEnglishtCttelephone numbern ”);printf( “ %st%ldt%dt%ct%dt%dt%d
19、t%sn ” ,p1-name,p1-num,p1-age,p1-sex, p1-score0,p1-score1,p1-score2,p1-tele);tNew information:number:”);scanf( “ %ld”,&p0-num); printf(scanf( “%d”,&p0-age);printf( “ tttscanf( “%c”,&p0-sex);printf( “ tttscanf( “%d”,&p1-score0);printf( “ tttscanf( “%d”,&p1-score1);printf( “ tttscanf( “%d”,&p1-score2)
20、;printf( “ tttif(p1=head)head=p1-next; else p2-next=p1-next; printf(fflush(stdin); gets(p0-tele); p1=head; if(head=NULL)tttage: ” );” sex: ” );Math English C telephonefflush(stdin);” score: ” )” score: ” )” score: ” )number: ” )head=p0;p0-next=NULL; elsewhile(p0-nump1-num) p2=p1;p1=p1-next; if(p0-nu
21、mnum) if(head=p1)head=p0; else p2-next=p0;p0-next=p1; elsep1-next=p0;p0-next=NULL; printf( “ Modify Successed !nn ” ); else printf( “Not been find!nn ”); return(head);void search(struct stud *head)/* 查询链表 */ struct stud *p;int choose;long num; char name20; clrscr();printf( “ nttChoose the way you wa
22、nt”);printf( “ nt 1: According to namen“);printf( “ nt 2: According to numn”);printf( “nt Enter your choice:” );scanf( “ %d”,&choose);fflush(stdin); if(choose=1) printf( “nt enter the name:”);gets(name);if(head=NULL)printf(“ tnNo information !nn”);elsep=head; while(strcmp(name,p-name)!=0&p-next!=NUL
23、L) p=p-next; if(strcmp(name,p-name)=0)printf( “nametnumbertagetsextMathtEnglishtCttelephone numbern ”);printf( “ %st%ldt%dt%ct%dt%dt%dt%sn” ,p-name,p-num,p-age,p-sex,p-score0,p-score1,p-score2,p-tele);else printf( “ Not been find!nn”);else if(choose=2)printf( “nt Enter the number:” );scanf( “ %ld”,&
24、num);if(head=NULL)printf( “nNo information!n ”); elsep=head;while(num!=p-num&p-next!=NULL)p=p-next;if(num=p-num)printf( “nametnumbertagetsextMathtEnglishtCttelephone numbern ”);printf( “ %st%ldt%dt%ct%dt%dt%dt%sn” ,p-name,p-num,p-age,p-sex,p-score0,p-score1,p-score2,p-tele);else printf( “t Not been
25、find!n”);else printf( “nt Error!Please check your inputnn”);struct stud *sort(struct stud *head)struct stud *first;struct stud *t;struct stud *p;struct stud *q;int ch;clrscr();printf( “ nttChoose the way you want”);printf( “nt 1: According to Math:n ” );printf( “ nt 2: According to Englishn ”);print
26、f( “ nt 3: According to Cn”);printf( “ nt Enter your choice:”);scanf( “ %d”,&ch);first = head-next;head-next = NULL;while (first != NULL)for (t=first, q=head; (q!=NULL) & (q-scorech-1t-scorech-1); p=q, q=q-next);first = first-next;if (q = head) head = t;elsep-next = t; t-next = q;printf( “ nttSucces
27、s !n” );return head;void save(struct stud *head) /* 保存链表 */ FILE *fp;struct stud *p; char filename20;printf( “ nninput the filename:“);fflush(stdin);gets(filename); if(fp=fopen(filename,”w”)=NULL),filename);printf( “Save file %s error ! Type it again.nn exit(0); p=head;while(p!=NULL) fprintf(fp, fpr
28、intf(fp, fprintf(fp, fprintf(fp, fprintf(fp, fprintf(fp, fprintf(fp, fprintf(fp,”%st ”,p-name); %ldt ” ,p-num);%dt ”,p-age);%ct ”,p-sex);%dt ”,p-score0);%dt ”,p-score1);%dt ”,p-score2); %stn ”,p-tele);p=p-next;printf( “ nttSuccess !n” );fclose(fp);struct stud *load() /* 链表的导入 */ FILE *fp;char filename20;struct stud *head,*p1,*p2;printf( “ nninput the filename:“);fflush(stdin); gets(filename);if(fp=fopen(filename,”r ”)=NULL),filename);printf( “Load file %s error ! Type it again.nn exit(0);if(!feof(fp)fscanf(fp, fscanf(fp, fscanf(fp, fscanf(fp,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 男方过错导致的离婚财产分割及子女监护协议
- 建筑垃圾处理厂环保设施设计与建设方案
- 夫妻离婚财产分割与子女抚养费用及赡养费协议
- 中式景观水池施工方案
- 给水工程环境适应性设计方案
- 离婚协议范本:宠物抚养权与关爱责任规定
- 主题公园游乐场地租赁与文创产品开发合同
- 线上线下结合的精装店铺租赁及O2O营销服务合同
- 仓储物流信息化与现代公路货物运输合同知识普及
- 离婚协议模板:子女监护权与财产分割全面协议
- 小学生中医健康宣教
- DB34-T2453-2015-泵站运行操作规程-安徽省
- 学校预算制度管理制度
- 产后抑郁症妇女的护理
- 公司全电发票管理制度
- 《人工智能通识导论(慕课版)》全套教学课件
- 视频制作拍摄服务方案投标文件(技术方案)
- 下半年中小学教师资格笔试考试题库带答案2025
- 2024年全国职业院校技能大赛高职组(环境检测与监测赛项)考试题库(含答案)
- 贵州省高品质住宅设计导则(试行)2025
- 2025-2030中国钽电解电容器市场营运格局分析与全景深度解析报告
评论
0/150
提交评论