1、基于LINUX系统下c语言学生管理系统stu/*文件包含*/#includestu.h#includecommon.h#includetooler.h /* 学生按学号查看自己的信息*/* 说明:先查找,然后将查找到的学生结点摘下来放进一个新结点*/linkstu stu_searchmyinfo(linkstu phead,int num,int *index) linkstu p=phead,s; (*index)=0; s=(linkstu)malloc(sizeof(nodestu); if(s=NULL) printf(malloc error!n); return NULL; s-
2、stu_info.num=num; if(p=NULL) printf(无学生信息!n); return NULL; else (*index)=1; while(p!=NULL) if(p-stu_info.num=s-stu_info.num) strcpy(s-stu_info.name,p-stu_info.name); s-stu_info.sex=p-stu_info.sex; s-stu_info.age=p-stu_info.age; s-class=p-class; s-chi=p-chi; s-math=p-math; s-eng=p-eng; strcpy(s-passw
3、ord,p-password); s-rank=p-rank; s-next=NULL; return s; p=p-next; (*index)+; return NULL;/*/*说明:先查找,将查找到的结点返回*/linkstu stu_searchmyinfo_1(linkstu phead,int num) linkstu p=phead; if(p=NULL) printf(无学生信息!n); return NULL; else while(p!=NULL) if(p-stu_info.num=num) return p; p=p-next; return NULL;/*按序号查找
4、学生*/linkstu stu_searchbyindex(linkstu phead,int index) linkstu p=phead; int i; if(phead=NULL|indexlink_getlen(phead)|index1) return NULL; for(i=1;inext; return p;/*学生修改自己的密码*/void stu_modmypass(linkstu mod_p) char a10,b10; if(mod_p!=NULL) printf(Old password:%sn,mod_p-password); while(1) printf(请输入新
5、密码:); scanf(%s,b); printf(请再次确认输入的新密码:); scanf(%s,a); if(strcmp(b,a)=0) strcpy(mod_p-password,a); printf(修改成功!n); break; else printf(两次输入不一样,修改失败,请重新输入!n); getchar(); /*创建学生信息链表*/*创建形式:尾插*功能:返回头指针*/linkstu stu_link_creat() linkstu s=NULL,phead=NULL,r; int flag=1; int num,age,class,chi,math,eng; char
6、 name10,sex; char sym; while(1) printf(请输入学号( 务必输入10004000之间的数): ); scanf(%d,&num); if(num=1001&num=20&age=1&class=0&chi=0&math=0&engstu_info.num=num; strcpy(s-stu_info.name,name);/*字符串不能直接赋给字符串,需要用此方式赋值 s-stu_info.sex=sex; s-stu_info.age=age; s-class=class; s-chi=chi; s-math=math; s-eng=eng; if(phe
7、ad=NULL) s-next=NULL; phead=s; r=s; else s-next=NULL; r-next=s; r=s; getchar(); printf(Do You Want continue? Y/N ); while(1) sym=getchar(); if(sym=y|sym=Y) flag=1; while(1) printf(请输入学号( 务必输入10004000之间的数): ); scanf(%d,&num); if(num=1001&num=20&age=1&class=0&chi=0&math=0&engnext; return len;/*/*打印学生信
8、息的函数*/void link_stu_print(linkstu phead) linkstu p=phead; if(p=NULL) printf(无任何学生信息!n); return; printf(ntttt学生成绩信息nn); printf(学号t姓名t性别t年龄t班级t语文成绩 数学成绩 英语成绩n); while(p!=NULL) printf(%dt%st%ct%dt%dt%dt %dtt%dn,p-stu_info.num,p-stu_info.name,p-stu_info.sex,p-stu_info.age,p-class,p-chi,p-math,p-eng); p=
9、p-next; printf(Endn);/*初始化学生的登录密码123*/void initial_stu_password(linkstu phead) linkstu p=phead; if(p=NULL) printf(empty link!n); return; while(p!=NULL) strcpy(p-password,123); p=p-next; /*学生输入密码登录*/int stu_login(linkstu phead) int q=0,fre=0; char password10; linkstu p; while(1) p=phead; fre+; printf
10、(n请输入学生学号:); scanf(%d,&stu_num); getchar(); printf(请输入学生密码:); scanf(%s,password); getchar(); while(p!=NULL) if(p-stu_info.num=stu_num&(strcmp(p-password,password)=0) q=1; break; else p=p-next; if(q=1) printf(登录成功!n); sleep(2); break; if(fre=3) printf(登录失败! 退出系统n); break; else printf(输入有误,请重新输入:); if(q=1) return 1; else return -1;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1