当前位置:文档之家› 学生管理系统程序源代码

学生管理系统程序源代码

学生管理系统程序源代码-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include <stdio.h>#include <string.h>struct student{long int num;char name[20];int age;char sex[4];int e;char m[20];char b[30];char p[15];};int n=0;struct student stu[100];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("| 欢迎使用学生档案管理系统 |\n");printf("+---------------------------+\n");printf("提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n"); do{printf("\n\t\t\t--------------------------------\n");printf("\t\t\t+ 主菜单 |\n");printf("\t\t\t--------------------------------\n");printf("\t\t\t+ [1]----录入学生信息 |\n");printf("\t\t\t+ [2]----浏览学生信息 |\n");printf("\t\t\t+ [3]----查询学生信息 |\n");printf("\t\t\t+ [4]----删除学生信息 |\n");printf("\t\t\t+ [5]----修改学生信息 |\n");printf("\t\t\t+ [6]----保存学生信息 |\n"); printf("\t\t\t+ [7]----读取学生信息 |\n");printf("\t\t\t+ [8]----按学号排序 |\n");printf("\t\t\t+ [0]----退出系统 |\n");printf("\t\t\t--------------------------------\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("\n无效选项!");}}while(z!= 0);}void lr()/*录入函数*/{int y;if(n==0){p=stu;}else{p=&stu[n];}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("请输入学生的E-mail:");scanf("%s",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("学生总数:%d\n", n);printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");printf("-----------------------------------------------------\n");for(i=0;i<n;i++)printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu [i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);}else printf("提示:无学生数据,请输入数据!");}void cx()/*查询函数*/{int c;int w,i,j=0;char name[20];if(n!=0){do{ printf("\n");printf("+--------------------+\n");printf("| 按学号查询请按 1 |\n");printf("| 按姓名查询请按 2 |\n");printf("| 取消请按 0 |\n");printf("+--------------------+\n");printf("请输入您的选择:");scanf("%d", &c);switch(c){case 0:break;case 1:printf("请输入学生的学号;");scanf("%ld", &w);printf("\n");for(i=0;i<n;i++)if(stu[i].num==w){printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu [i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);j=1;}if(j==0)printf("提示:没有该学生记录,请核对!");break;case 2:printf("请输入学生的姓名:");scanf("%s", name);printf("\n");for(i=0;i<n;i++)if(strcmp(name,stu[i].name)==0){printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");j=1;printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu [i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);}if(j==0)printf("提示:没有该学生记录,请核对!");break;default:printf("\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;i<n;i++)if(stu[i].num==num)j=i;do{printf("请选择您要修改的学生的内容:\n"); printf("+----------------------+\n");printf("| 姓名请按 1 |\n");printf("| 年龄请按 2 |\n");printf("| 性别请按 3 |\n");printf("| 出生年月请按 4 |\n");printf("| E-mail 请按 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",stu[j].name);break;case 2:printf("请输入新年龄:");scanf("%d",&stu[j].age);break;case 3:printf("请输入新性别:");scanf("%s",stu[j].sex);break;case 4:printf("请输入新出生年月:");scanf("%d",&stu[j].e);break;case 5:printf("请输入新E-mail:");scanf("%s",stu[j].m);break;case 6:printf("请输入新学号:");scanf("%ld",&stu[j].num);break;case 7:printf("请输入新籍贯:");scanf("%s",stu[j].b);break;case 8:printf("请输入新电话:");scanf("%s",stu[j].p);break;default:printf("\n无效选项!");break;}}while(c!= 0);}else printf("提示:无学生数据,请输入数据!");}void sc()/*删除函数*/{long int num;int i,j,e;if(n!=0){printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");printf("-----------------------------------------------------\n");for(i=0;i<n;i++)printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu [i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);printf("请输入您要删除的学生的学号:");scanf("%ld", &num);printf("\n");for(i=0;i<n;i++)if(num==stu[i].num)j=i;if(j!=(n-1)){for(e=i-1;e<n;e++,j++){stu[j].num=stu[j+1].num;strcpy(stu[j].name,stu[j+1].name);strcpy(stu[j].sex,stu[j+1].sex);stu[j].e=stu[j+1].age;strcpy(stu[j].m,stu[j+1].m);stu[j].age=stu[j+1].age;strcpy(stu[j].b,stu[j+1].b);strcpy(stu[j].p,stu[j+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;i<n;i++) /*将内存中的学生信息写入到磁盘文件中*/ if(fwrite(&stu[i],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)x;if((fp=fopen("student.txt","rb"))==NULL){printf("打开文件时错误!请按任意键退出!");return;}printf(" 所有学生的信息为:\n \n");printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");for(i=0;i<n;i++){fread(&stu[i],sizeof(struct student),1,fp);printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu [i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);}fclose(fp);}void px(){int i,j;/*计数变量*/struct student temp;for(i=0;i<n-1;i++) /*运用冒泡排序对结构体数组进行排序*/for (j=i+1;j<n;j++){if(stu[i].num>stu[j].num){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}}printf("\n排序后的学生信息:\n\n");for (i=0;i<n;i++){printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu [i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);}/*输出排序后的学生信息*/return;}。

相关主题