收藏 分销(赏)

学生信息管理系统(C语言基于链表文件).doc

上传人:丰**** 文档编号:3941274 上传时间:2024-07-24 格式:DOC 页数:12 大小:40.54KB
下载 相关 举报
学生信息管理系统(C语言基于链表文件).doc_第1页
第1页 / 共12页
学生信息管理系统(C语言基于链表文件).doc_第2页
第2页 / 共12页
学生信息管理系统(C语言基于链表文件).doc_第3页
第3页 / 共12页
学生信息管理系统(C语言基于链表文件).doc_第4页
第4页 / 共12页
学生信息管理系统(C语言基于链表文件).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、#includestdio.h#includedefine LEN sizeof(struct student)#define DAT_FILENAME ”Information。txt”/*定义数据结构*/struct dateint year;int month;int day;;struct studentint ID;char Name8;int age;char xb;char telephone15;char address40;struct date birthday;char email40;struct student next;/*函数原型*/void DispMainMe

2、nu();void DisplayInformation(struct student head);struct student FindstudentID(struct student head,int findID);struct student FindstudentName(struct student *head,char findname);struct student InformationInput(struct student head);void QueryInformation(struct student *head);struct student EditInform

3、ation(struct student head);struct student Insert(struct student *head,struct student p);void Save(struct student head);struct student Read(struct student head);struct student *Delete(struct student *head,int findID);struct student *Add(struct student head);void Help();/*显示主菜单*/void DispMainMenu()pri

4、ntf(*学生信息管理系统*n”);printf(”n”);printf(”tttt1-信息录入n);printf(n);printf(tttt2-信息修改n);printf(”n”);printf(tttt3-信息查询n”);printf(”n”);printf(”tttt4-保存数据到文件n);printf(”n”);printf(”tttt5-打开数据文件n”);printf(n”);printf(tttt6-文件追加n”);printf(n);printf(”tttt7-帮助n”);printf(”n”);printf(”tttt0-退出n”);printf(”n);printf(”友

5、情提示:初次使用请先阅读帮助n);printf(*n”);printf(请选择(07):”);/*显示主菜单*/*帮助*/void Help()printf(nttt欢迎进入帮助系统!nn”); printf(t1。请按照主菜单提示选择所需执行功能的数字代号!n”);printf(t2.所有文件请按照规范输入n);printf(t3.刚开始执行程序时若需要文本文件里的数据,请先进行读取文件信息!n);printf(”t4。修改信息以后,请切记需要保存!n”);printf(”n);/*显示所有学生信息*/void DisplayInformation(struct student head)s

6、truct student p;printf(”*”);printf(”n学号t姓名t年龄t性别t 电话tt地址t 出生年月t emailn);p=(struct student )malloc(LEN);p=head;if(head!=NULL)while(p!=NULL)printf(dtst-dt”,pID,pName,p-age);printf(”%ctstst,pxb,ptelephone,p-address);printf(”%d d d”,pbirthday。year,p-birthday。month,p-birthday.day);printf(”t%-sn,pemail);p

7、=pnext;elseprintf(”无数据n);/*查找指定学号的学生信息*/struct student FindstudentID(struct student *head,int findID)struct student p;p=(struct student *)malloc(LEN);p=head;if(head!=NULL)while(p!=NULL)if(p-ID=findID)break;p=p-next;elseprintf(无数据n”);return p;/*查找指定姓名的学生信息*/struct student FindstudentName(struct stude

8、nt head,char findname)struct student p;p=(struct student *)malloc(LEN);p=head;if(head!=NULL)while(p!=NULL)if(strcmp(pName,findname)=0)break;p=p-next;elseprintf(”无数据n);return p;/*学生信息录入*/struct student InformationInput(struct student head)int number,i;struct student *p;p=(struct student )malloc(LEN);

9、printf(”n请输入本次录入的学生人数:);scanf(%d”,number);for(i=0;inumber;i+)/*输入 number 个学生的信息*/printf(请输入第d个学生的学号(八个字符以内):”,i+1);scanf(d”,p-ID);printf(ttt 姓名:t”);scanf(%s”,pName);printf(”ttt 年龄:t);scanf(”d”,page);printf(”ttt 性别(男M、女W):”);scanf(%s,pxb);printf(”ttt 电话(八位):t);scanf(”%s”,ptelephone);printf(ttt 地址:t”)

10、;scanf(s”,p-address);printf(ttt 出生年月:t”);scanf(%ddd,pbirthday.year,pbirthday。month,p-birthday。day);printf(tttemail:t);scanf(%s,pemail);head=Insert(head,p);p=(struct student *)malloc(LEN);printf(n 您的输入信息是:n”);DisplayInformation(head);return(head);/*学生信息查询*/void QueryInformation(struct student head)ch

11、ar select;int findID;char findname8;struct student *p;printf(*请选择查询方式*n”);printf(t1-按学号查询;t2按姓名查询n”);printf(”*n”);printf(”请选择(1-2):);/显示菜单信息/select=getche();getch();switch (select)case1:printf(n 按学号查询n 请输入学生的学号:”);scanf(”d,findID);if(p=FindstudentID(head,findID)!=NULL) /*找到指定学号的学生/printf(”n 查找结果如下:n

12、”);printf(”n学号t姓名t年龄t性别t 电话tt地址t 出生年月t emailn);printf(”%dtstdt”,pID,p-Name,page);printf(”%ct%stst”,pxb,p-telephone,paddress);printf(d %d d,pbirthday。year,pbirthday。month,pbirthday。day);printf(”tsn”,pemail);else /*没有找到/printf(”您输入的学号不存在!n”);break;case2:printf(”n 按姓名查询n 请输入学生的姓名:”);scanf(%s,findname);

13、if((p=FindstudentName(head,findname))!=NULL) /找到指定姓名的学生/printf(n 查找结果如下:n);printf(”n 学号t 姓名t 年龄t 性别t 电话t 地址t 出生年月t emailn”);printf(dt%stdt,pID,p-Name,p-age);printf(”%ctstst”,pxb,ptelephone,paddress);printf(”%d d %d”,p-birthday。year,pbirthday。month,pbirthday.day);printf(”t%sn”,p-email);else /没有找到/pri

14、ntf(”您输入的姓名不存在!n”);break;default:printf(”选择错误!n);/*修改学生信息*/struct student *EditInformation(struct student *head)int findID;char select;struct student p;printf(n 请输入学生的学号:);scanf(”d”,findID);if(p=FindstudentID(head,findID))!=NULL) /*找到指定学号的学生*/printf(”*请修改方式*n”);printf(”t1修改信息;t2删除信息n);printf(”*n);pr

15、intf(请选择(12):);select=getche();getch();switch (select)case1: /修改信息/printf(”您选择的是修改信息!n”);printf(”姓 名:sn”,pName);printf(”原信息:学号:dt 年龄:dt 性别:%cn”,p-ID,page,p-xb);printf(t 电话:st 地址:%stemail:%sn,p-telephone,paddress,pemail);printf(”请输入新信息n);printf(”学号t”);scanf(%d”,&pID);printf(姓名:t”);scanf(”s”,pName);pr

16、intf(”年龄:t”);scanf(”d,&p-age);printf(性别(男M、女W):”);scanf(”%s”,pxb);printf(”电话:t”);scanf(”s”,p-telephone);printf(”地址:t”);scanf(”s”,paddress);printf(”出生年月:t”);scanf(”%ddd”,p-birthday。year,p-birthday。month,&pbirthday。day);printf(”email:t”);scanf(s,pemail);break;case2: /删除信息*/printf(”您选择的是删除信息!n);head=De

17、lete(head,findID);break;else /*没有找到学号匹配的记录*/printf(”您输入的学号不存在!n);return (head);/*有序插入*/struct student *Insert(struct student head,struct student *p)struct student p0,p1;if(head=NULL)head=p;p-next=NULL;return(head);if(p-IDheadID)p-next=head;head=p;return(head);p1=head;while(pIDp1ID)&(p1next!=NULL))p0

18、=p1;p1=p1next;if(p-IDp1ID)pnext=p1;p0-next=p;elseif(p-ID=p1ID);elsep1next=p;pnext=NULL;return(head);/*保存数据到文件*/void Save(struct student head)FILE *fp;struct student p;p=head;if(fp=fopen(DAT_FILENAME,”w+”))!=NULL) /*以W+的方式打开文件*/while(p!=NULL)fprintf(fp,”%dt”,p-ID);fprintf(fp,”st,pName);fprintf(fp,”dt

19、,page);fprintf(fp,ct,p-xb);fprintf(fp,%st,ptelephone);fprintf(fp,”st”,paddress);fprintf(fp,%d d dt,pbirthday.year,pbirthday.month,pbirthday.day);fprintf(fp,”sn”,pemail);p=pnext; /*将链表的内容写入文件/fclose(fp);elseprintf(”cannot open filen”);/*打开数据文件*/struct student Read(struct student head)struct student *

20、p;p=(struct student *)malloc(LEN);FILE fp;if(fp=fopen(DAT_FILENAME,”r))!=NULL)/*读取文件中的内容到链表中*/while(fscanf(fp,”%dt,p-ID)!=EOF)fscanf(fp,st,p-Name);fscanf(fp,%dt”,&page);fscanf(fp,ct”,p-xb);fscanf(fp,”st,ptelephone);fscanf(fp,”st”,p-address);fscanf(fp,”%d d dt,&p-birthday。year,pbirthday。month,pbirthd

21、ay.day);fscanf(fp,sn”,pemail);head=Insert(head,p);p=(struct student *)malloc(LEN);fclose(fp);elseprintf(”cannot open filen);return head;/*文件内容追加*/struct student *Add(struct student head)head=Read(head);head=InformationInput(head);return (head);/*删除信息*/struct student Delete(struct student *head,int f

22、indID)struct student pre,*p;if(headID=findID)p=head;head=headnext;elsepre=head; p=prenext;while(p!=NULLp-ID!=findID)pre=p;p=pnext;if(pID=findID)prenext=pnext;free(p);return (head);/*主函数*/void main()char select,c;struct student head;head=NULL;select=0;while(select!=0)DispMainMenu();select=getche();ge

23、tch();switch(select)case0:printf(”n您选择的是退出!n);_beep(300,400);continue;case1:system(”cls”);printf(n您选择的是信息录入!n”);head=InformationInput(head);break;case2:system(cls”);printf(n您选择的是信息修改!n”);head=EditInformation(head);break;case3:system(cls);printf(n您选择的是信息查询!n”);QueryInformation(head);break;case4:syste

24、m(cls”);printf(”n您选择的是保存数据到文件!n);Save(head);break;case5:system(cls”);printf(”n您选择的是打开数据文件!n”);if(head=Read(head)!=NULL)DisplayInformation(head);break;case6:system(”cls);printf(”n您选择的是文件追加!n”);head=Add(head);break;case7:system(cls”);printf(”n您选择的是帮助!n”);Help();break;default:printf(”n选择错误!请重新选择!n”);printf(”请选择返回主界面或退出!n); /选择是否继续printf(主界面:1t退出:2t”); scanf(”d,&c);while(!(c=1c=2)printf(”选择错误,请重新选择!”); printf(n主界面:1t退出:2t”); scanf(”d,&c); if(c=1) system(cls”); else system(cls); _beep(300,400); printf(”nt您已安全退出!n”); break;

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服