收藏 分享(赏)

学生信息管理系统 C语言课程设计通过.doc

上传人:hwpkd79526 文档编号:6877826 上传时间:2019-04-25 格式:DOC 页数:11 大小:38KB
下载 相关 举报
学生信息管理系统 C语言课程设计通过.doc_第1页
第1页 / 共11页
学生信息管理系统 C语言课程设计通过.doc_第2页
第2页 / 共11页
学生信息管理系统 C语言课程设计通过.doc_第3页
第3页 / 共11页
学生信息管理系统 C语言课程设计通过.doc_第4页
第4页 / 共11页
学生信息管理系统 C语言课程设计通过.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、学生信息管理系统 C 语言课程设计通过七、源代码:#include “stdio.h“#include “stdlib.h“#include “string.h“# include “conio.h“# define N sizeof(struct stud) /测结构体变量的大小/typedef struct studchar number20;char name20;char sex20;char call20;char QQ20;char add20;struct stud *next;Elemsn; /为结构体命名/Elemsn *creatlink(void) /创建链表信息/Ele

2、msn *p1,*p2,*head; /p1为前驱,p2 为后继/int i=1;char choice;head=p2=(Elemsn *)malloc(N);head-next=NULL;choice=y;for(i=1;choice=y|choice=Y;i+)p1=(Elemsn *)malloc(N);printf(“*nn“);printf(“请输入第%d 个学生的信息:n“,i);printf(“学号:“);scanf(“%s“,p1-number);printf(“n姓名:“);scanf(“%s“,p1-name);printf(“n性别:“);scanf(“%s“,p1-s

3、ex);printf(“n电话:“);scanf(“%s“,p1-call);printf(“nQQ:“);scanf(“%s“,p1-QQ);printf(“n宿舍号:“);scanf(“%s“,p1-add);p2-next=p1;p2=p1;printf(“n是否继续?(Y/N):“);choice=getche();printf(“n“);p2-next=NULL;return(head);void savelink(Elemsn *h) /保存链表信息/Elemsn *p;FILE *fp;char fliename20;printf(“n请输入你要保存的文件名:“);scanf(“

4、%s“,fliename);if(fp=fopen(fliename,“wt“)=NULL)printf(“写文件出错,按任意键退出!“);getche();exit(1);for(p=h-next;p!=NULL;p=p-next) fprintf(fp,“%s %s %s %s %s %sn“,p-number,p-name,p-sex,p-call,p-QQ,p-add); /向文件中写入数据/printf(“文件已成功保存,按任意键返回!“);getche();fclose(fp);Elemsn *readlink(void) /读出已保存文件的信息/Elemsn *head,*p,*

5、q;FILE *fp;char filename20;printf(“n请输入要打开的文件名:“);scanf(“%s“,filename);if(fp=fopen(filename,“rt“)=NULL)printf(“读文件出错,按任意键退出!“);getche();exit(1);head=q=(Elemsn *)malloc(N);head-next=NULL;while(!feof(fp)p=(Elemsn *)malloc(N); /建立新链表,并从文件中读出数据/fscanf(fp,“%s %s %s %s %s %sn“,p-number,p-name,p-sex,p-call

6、,p-QQ,p-add);q-next=p;q=p;q-next=NULL;fclose(fp);printf(“文件信息已正确读出,按任意键返回!“);getch();return head;Elemsn *insert(Elemsn *head) /插入信息/Elemsn *p;p=(Elemsn *)malloc(N);printf(“n请输入要插入学生的信息:n“);printf(“n学号:“);scanf(“%s“,p-number);printf(“n姓名:“);scanf(“%s“,p-name);printf(“n性别:“);scanf(“%s“,p-sex);printf(“

7、n电话:“);scanf(“%s“,p-call);printf(“nQQ:“);scanf(“%s“,p-QQ);printf(“n宿舍号:“);scanf(“%s“,p-add);if(head-next!=NULL)p-next=head-next; /插入数据操作代码/head-next=p;printf(“n学生信息插入成功!按任意键继续!“);getche();return head;Elemsn *delet(Elemsn *p0) /删除信息/char num20;Elemsn *p;char choice;if(p0-next=NULL)printf(“信息出错!按任意键退出

8、!“);getch();exit(1);printf(“n请输入要删除学生的学号:“);scanf(“%s“,num);for(p=p0-next;strcmp(p-number,num)!=0;p0=p,p=p-next) ; /找到要删除的学生的信息/printf(“你要删除的信息如下,请确认是否删除:n“);printf(“n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%snn“,p-number,p-name,p-sex,p-call,p-QQ,p-add);printf(“n是 Y,否 N:“); /显示要删除的学生的信息/choice=getche();if

9、(choice=Y|choice=y)p0-next=p-next;free(p);printf(“n文件删除成功!“);printf(“n按任意键结束!“);getche();return p0;Elemsn *modify(Elemsn *h) /修改信息/char num20;Elemsn *p;char choice;printf(“n请输入要修改学生信息的学号:“);scanf(“%s“,num);for(p=h;strcmp(p-number,num)!=0;p=p-next) ; /找到要删除的学生的信息/while(1)printf(“请输入修改后学生的信息:n“); prin

10、tf(“学号:“);scanf(“%s“,p-number);printf(“n姓名:“);scanf(“%s“,p-name);printf(“n性别:“);scanf(“%s“,p-sex);printf(“n电话:“);scanf(“%s“,p-call);printf(“nQQ:“);scanf(“%s“,p-QQ);printf(“n宿舍号:“);scanf(“%s“,p-add);printf(“修改后学生信息如下:n“);printf(“n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%snn“,p-number,p-name,p-sex,p-call,p-

11、QQ,p-add);printf(“n确认?是 Y否 N:“);choice=getche();if(choice=y|choice=Y) break;printf(“n修改成功,按任意键继续!“);getche();return h;void find(Elemsn *h) /查询信息/char num20;Elemsn *p;printf(“n请输入你要查找的学生的学号:“);scanf(“%s“,num);for(p=h;strcmp(p-number,num)!=0;p=p-next) ;printf(“你查找的学生信息如下:n“);printf(“n学号:%s 姓名:%s 性别:%s

12、 电话:%s QQ:%s 宿舍号:%snn“,p-number,p-name,p-sex,p-call,p-QQ,p-add);printf(“按任意键继续!“);getche();void print(Elemsn *p) /显示全部信息/p=p-next;while(p!=NULL)printf(“n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%sn“,p-number,p-name,p-sex,p-call,p-QQ,p-add);p=p-next;printf(“n按任意键继续!“);getche();Elemsn *sort(Elemsn *head) Ele

13、msn *q,*t,*p; p=head; t=NULL; while(t!=head-next) p=head; q=p-next; while(q-next!=t) if(strcmp(p-next-number,q-next-number)0) /*前结点和后结点比较大小*/p-next=q-next; q-next=q-next-next; p-next-next=q; p=p-next; q=p-next; t=q; printf(“学生信息排序完毕,按任意键继续!“);getche();print(head);return(head); /*返回头指针*/ void main()i

14、nt choice=1,i,ok=1; /choice用于选择对数据执行操作,i循环,ok 主界面选择/Elemsn *head,*h;head=NULL;for(i=1;ok!=0;i+)system(“cls“);printf(“n欢迎来到学生信息管理系统主界面!nnn“);printf(“nnn 1.创建新文件.nnn“);printf(“ 2.读取原文件,并执行相应操作.(原文件名为:jxx)“);printf(“nnn 0.退出;“);printf(“nnnnn请选择你要执行的操作:“);scanf(“%d“,if(ok=1) system(“cls“);head=creatlink

15、(); /创建新链表并保存文件/savelink(head);if(ok=2) head=readlink(); /进入文件,对已知数据进行操作/for(i=1;choice!=0;i+)system(“cls“);printf(“*欢迎来到学生信息管理系统*nnn“);printf(“ 1. 添加学生信息; nn“);printf(“ 2. 删除学生信息; nn“);printf(“ 3. 修改学生信息; nn“);printf(“ 4. 查询学生信息; nn“);printf(“ 5. 显示全部信息; nn“);printf(“ 6. 排序全部信息; nn“);printf(“ 0. 退出

16、; nn“);printf(“请输入你要执行的操作代码:“);scanf(“%d“,switch(choice)case 1: h=insert(head);savelink(h);break; /执行增,删,改完毕后对新信息进行保存/case 2: h=delet(head);savelink(h);break;case 3: h=modify(head);savelink(h);break;case 4: find(head);break;case 5: print(head);break;case 6: h=sort(head);savelink(h);break;case 0: break;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报