学生管理系统(数据结构课程设计之完整代码).doc
《学生管理系统(数据结构课程设计之完整代码).doc》由会员分享,可在线阅读,更多相关《学生管理系统(数据结构课程设计之完整代码).doc(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date学生管理系统(数据结构课程设计之完整代码)学生管理系统(数据结构课程设计之完整代码) 数据结构课程设计学生信息管理系统C语言编写 仅供参考:#include#include#include#include#define LEN sizeof(LNode)typedef struct LNode/用于存放学生信息节点 int stuNumber; char telenu
2、m50;int age;char chass50;char deptName50;/*char zhuanYe50;char adress50;*/char name20;struct LNode *next;LNode,*Link;/*创建链表结点*Link createLink(Link L) /初始化定义函数,声明变量void inserStu(Link L,Link Elem);/定义插入函数int count(Link L); int temp;temp=count(L);printf(节点个数为%d:n,temp);Link p;int num=1, stuNumber;char
3、telenum50;char name20;int age; /* char deptName50;char adress50; char zhuanYe50;*/char chass50;/开始输出学生信息 while(1)printf(请输入学生的信息:学号,姓名,年龄,班级,院系,专业,家庭住址,电话号码n); printf(学号输入负数结束!n);printf(请输入学号%d: ,num); scanf(%10d,&stuNumber);if(stuNumber=0)p=(Link)malloc(LEN);p-stuNumber=stuNumber; strcpy(p-chass,ch
4、ass); /* strcpy(p-deptName,deptName);*/ p-age=age;strcpy(p-telenum,telenum);strcpy(p-name,name);/插入新结点inserStu(L,p); num+; return (L);/*打印头结点为L的学生记录*void printList(Link L) printf(n*学号,姓名,年龄,班级,电话号码*n);printf(n 学号 姓名 年龄 专业班级 电话号码 n);int n=1;Link p=L;int count(Link L); int temp;temp=count(L);/结点个数:if(
5、temp=0)printf(系统中没有元素n);/判断学生管理系统中有无信息 else while(p-next!=NULL) printf(%2d %-9d,n,p-next-stuNumber); printf(%-8s %-5d %-12s %s n,p-next-name, p-next-age,p-next-chass,p-next-telenum/*p-next-deptName*/);/首个字符打印不出来 p= p-next; n+;printf(n*n);return;/*插入学生信息*void inserStu(Link L,Link Elem) Link prior(Lin
6、k L,Link p);Link p=L-next;/*%* while(p!=NULL&Elem-stuNumber=p-stuNumber) if(p-stuNumber=Elem-stuNumber) printf(重复输入学号,输入失败!);return ; p=p-next; /确定Elem的插入位置if(p=NULL) p=prior(L,p);Elem-next=NULL;p-next=Elem;/若为空表,插入到头结点之后 else p=prior(L,p);Elem-next=p-next;p-next=Elem; /*找到当前地址元素的前一元素的地址*Link prior(
7、Link L,Link p)if(L-next=NULL)return(L);Link p_prior=L; while(p_prior-next!=p) p_prior= p_prior-next ; return (p_prior);/*8按学号查询学生信息*int searchName(Link L,char n)int flag=0;/标志要查找的学生和学生记录中的姓名是否匹配Link p=L-next;int seat=1; if(L-next=NULL|L=NULL)printf(没有学生信息n); else while(p!=NULL) if(!strcmp(p-name,n)/
8、比较要查找的姓名是否和当前学生信息所指的姓名匹配 flag=1;/输入姓名匹配 printf(要查找的是第%d位学生n,seat); printf(学号是:%d 名字:%s 年龄:%d 班级:%s 手机号:%sn,p-stuNumber,p-name,p-age,p-chass,p-telenum); p=p-next ;seat+;return flag;/*按学号查找学生信息*int searchNum(Link L,int n)int flag=0;/标志要查找的学生和管理信息系统中的学号是否匹配Link p=L-next;int seat=1;if(L-next=NULL)printf
9、(没有学生信息n); else while(p!=NULL) if(p-stuNumberstuNumber=n)/比较要查找的学号是否和当前学生信息所指的学号匹配 flag=1;/输入学号匹配 printf(要查找的是第%d位学生n,seat); printf(学号是:%d 名字:%s 年龄:%d 班级:%s 手机号:%sn,p-stuNumber,p-name,p-age,p-chass,p-telenum); p=p-next ;seat+; return flag;/*从通讯录中删除第i个元素*void deleteElem(Link L,int i) Link p=L;int j=0
10、; while(p-next&jnext;j+; if(!(p-next)/判断i时候合法,i不能大于元素的个数,也不能小于等于0 printf(第%d个学生删除失败n,i); return; Link q=p-next; p-next=q-next; free(q);/*按姓名删除学生信息*int deleName(Link L, char n) void deteStu(Link); int flag=0;/判断要删除的学生与系统中的姓名是否匹配 Link p=L-next; int seat =1; if(L-next=NULL)printf(n删除提示:系统中没有元素,删除失败!n);
11、deteStu( L); else while(p!=NULL) if(!strcmp(p-name ,n)/比较名字是否匹配 flag=1; printf(%s,p-name ); p=p-next; deleteElem(L,seat);/删除第i个学生的信息 else p=p-next ;seat+; if(flag)printf(被删除了n); return flag;/*按学号删除学生信息*int deleNum(Link L,int n) void deteStu(Link);int flag=0;Link p=L-next ;int seat=1; if(L-next=NULL)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统 数据结构 课程设计 完整 代码
限制150内