1、学生管理系统程序源代码#include #include struct student long int num; char name20; int age; char sex4; int e; char m20; char b30; char p15;int n=0;struct student stu100;struct student *p;void lr();void ll();void cx();void xg();void sc();void bc();void dq();void px();void main()int z; printf(+-+n); printf(| 欢迎使用
2、学生档案管理系统 |n); printf(+-+n); printf(提示:为保证您的操作得到保存,请按正常顺序退出系统_n); do printf(nttt-n); printf(ttt+ 主菜单 |n); printf(ttt-n); printf(ttt+ 1-录入学生信息 |n); printf(ttt+ 2-浏览学生信息 |n); printf(ttt+ 3-查询学生信息 |n); printf(ttt+ 4-删除学生信息 |n); printf(ttt+ 5-修改学生信息 |n); printf(ttt+ 6-保存学生信息 |n); printf(ttt+ 7-读取学生信息 |n)
3、; printf(ttt+ 8-按学号排序 |n); printf(ttt+ 0-退出系统 |n); printf(ttt-n); printf(请输入您的选择:); scanf(%d, &z); switch(z) case 0 : break; case 1 :lr();break; case 2 :ll();break; case 3 :cx();break; case 4 :sc();break; case 5 :xg();break; case 6 :bc();break; case 7 :dq();break; case 8 :px();break; default:printf(
4、n无效选项!); while(z!= 0);void lr()/*录入函数*/ int y; if(n=0) p=stu; else p=&stun; do printf(-n); printf(请输入学生的学号:); scanf(%ld,&p-num); printf(请输入学生的:); scanf(%s,p-name); printf(请输入学生的年龄:); scanf(%d,&p-age); printf(请输入学生的性别:); scanf(%s,p-sex); printf(请输入学生的出生日期:); scanf(%d,&p-e); printf(请输入学生的:); scanf(%s,
5、p-m); printf(请输入学生的籍贯:); scanf(%s,p-b); printf(请输入学生的:); scanf(%s,p-p); n+; p+; printf(n1.继续输入.n0.输入完毕.n); printf(请选择:); scanf(%d,&y); while(y=1); printf(提示:输入完毕!你一共输入%d个n,n);void ll()/*浏览函数*/ int i; if(n!=0) printf(学生总数:%dn, n); printf(学号tt年龄t性别t出生日期tttt籍贯ttn); printf(-n); for(i=0;in;i+) printf(%ld
6、t%st%dt%st%dt%st%stt%sn,stui.num,stui.name,stui.age,stui.sex,stui.e,stui.m,stui.b,stui.p); else printf(提示:无学生数据,请输入数据!); void cx()/*查询函数*/ int c; int w,i,j=0; char name20; if(n!=0) do printf(n); printf(+-+n); printf(| 按学号查询 请按 1 |n); printf(| 按查询 请按 2 |n); printf(| 取消 请按 0 |n); printf(+-+n); printf(
7、请输入您的选择:); scanf(%d, &c); switch(c) case 0:break; case 1: printf(请输入学生的学号;); scanf(%ld, &w); printf(n); for(i=0;in;i+) if(stui.num=w) printf(学号tt年龄t性别t出生日期tttt籍贯ttn); printf(%ldt%st%dt%st%dt%st%stt%sn,stui.num,stui.name,stui.age,stui.sex,stui.e,stui.m,stui.b,stui.p); j=1; if(j=0) printf(提示:没有该学生记录,请
8、核对!); break; case 2: printf(请输入学生的:); scanf(%s, name); printf(n); for(i=0;in;i+) if(strcmp(name,stui.name)=0) printf(学号tt年龄t性别t出生日期tttt籍贯ttn); j=1; printf(%ldt%st%dt%st%dt%st%stt%sn,stui.num,stui.name,stui.age,stui.sex,stui.e,stui.m,stui.b,stui.p); if(j=0) printf(提示:没有该学生记录,请核对!); break; default: pr
9、intf(n提示:无效选项!); break; while(c!= 0); else printf(提示:无学生数据,请输入数据!);return;void xg()/*修改函数*/ long int num; int i,j,c; if(n!=0) printf(请输入您要修改的学生的学号:); scanf(%ld, &num); printf(n); for(i=0;in;i+) if(stui.num=num) j=i; do printf(请选择您要修改的学生的容:n); printf(+-+n); printf(| 请按 1 |n); printf(| 年龄 请按 2 |n); pr
10、intf(| 性别 请按 3 |n); printf(| 出生年月 请按 4 |n); printf(| 请按 5 |n); printf(| 学号 请按 6 |n); printf(| 籍贯 请按 7 |n); printf(| 请按 8 |n); printf(| 取消 请按 0 |n); printf(+-+n); printf(请输入您的选择:); scanf(%d, &c); printf(n); switch(c) case 0:break; case 1:printf(请输入新:); scanf(%s,stuj.name); break; case 2:printf(请输入新年龄
11、:); scanf(%d,&stuj.age); break; case 3:printf(请输入新性别:); scanf(%s,stuj.sex); break; case 4:printf(请输入新出生年月:); scanf(%d,&stuj.e); break; case 5:printf(请输入新:); scanf(%s,stuj.m); break; case 6:printf(请输入新学号:); scanf(%ld,&stuj.num); break; case 7:printf(请输入新籍贯:); scanf(%s,stuj.b); break; case 8:printf(请输
12、入新:); scanf(%s,stuj.p); break; default: printf(n无效选项!); break; while(c!= 0); else printf(提示:无学生数据,请输入数据!);void sc()/*删除函数*/ long int num; int i,j,e; if(n!=0) printf(学号tt年龄t性别t出生日期tttt籍贯ttn); printf(-n); for(i=0;in;i+) printf(%ldt%st%dt%st%dt%st%stt%sn,stui.num,stui.name,stui.age,stui.sex,stui.e,stui
13、.m,stui.b,stui.p); printf(请输入您要删除的学生的学号:); scanf(%ld, &num); printf(n); for(i=0;in;i+) if(num=stui.num) j=i; if(j!=(n-1) for(e=i-1;en;e+,j+) stuj.num=stuj+1.num; strcpy(stuj.name,stuj+1.name); strcpy(stuj.sex,stuj+1.sex); stuj.e=stuj+1.age; strcpy(stuj.m,stuj+1.m); stuj.age=stuj+1.age; strcpy(stuj.b
14、,stuj+1.b); strcpy(stuj.p,stuj+1.p); n-;p-; else n-;p-; printf(提示:删除完毕!); else printf(提示:无学生数据,请输入数据!);void bc() /*保存学生信息到文件的函数*/ int i; char x=0; FILE *fp; if(fp=fopen(student.txt,wb)=NULL) /*创建文件并判断是否能够打开成功*/ printf(文件不能打开!n); return; /*如果不能打开文件,如此关闭当前所有的文件*/ for(i=0;in;i+) /*将存中的学生信息写入到磁盘文件中*/ if
15、(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(文件输入错误!n); fclose(fp); /*关闭文件*/ x=(char)i; if(fp=fopen(math.txt,wb)=NULL) printf(文件创建失败!); return; fputc(x,fp); fclose(fp); void dq() int i; char x; FILE *fp; if(fp=fopen(math.txt,rb)=NULL) printf(打开错误!n); return; x=fgetc(fp); fclose(fp); n=(int)
16、x; if(fp=fopen(student.txt,rb)=NULL) printf(打开文件时错误!请按任意键退出!); return; printf( 所有学生的信息为:n n); printf(学号tt年龄t性别t出生日期tttt籍贯ttn); for(i=0;in;i+) fread(&stui,sizeof(struct student),1,fp); printf(%ldt%st%dt%st%dt%st%stt%sn,stui.num,stui.name,stui.age,stui.sex,stui.e,stui.m,stui.b,stui.p); fclose(fp);void px() int i,j;/*计数变量*/ struct student temp; for(i=0;in-1;i+) /*运用冒泡排序对结构体数组进展排序*/ for (j=i+1;jstuj.num) temp=stui; stui=stuj; stuj=temp; printf(n排序后的学生信息:nn); for (i=0;in;i+) printf(%ldt%st%dt%st%dt%st%stt%sn,stui.num,stui.name,stui.age,stui.sex,stui.e,stui.m,stui.b,stui.p); /*输出排序后的学生信息*/ return;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1