1、学生信息管理系统 C语言#include stdio.h#include string.h#include stdlib.h#define M 10int num; /计数struct student char xuehao10; /学号 char name10; /姓名 char sex8; /性别 char birth20; /出生年月 char jiguan30; /籍贯 char tel30; /电话 int score; /成绩studentM;char headline80; /全局变量void read1() FILE *fp; /文件指针 int i=0; fp=fopen(j
2、z0112.txt,r); /打开文件 if(fp=NULL) printf(不能找到文件,请检查!n); return; fgets(headline,80,fp); /读第一行的函数 puts(headline); while(!feof(fp) /判断文件是否结束 /for(i=0;iM;i+) fscanf(fp,%s%s%s%s%s%s%d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,&studenti.score); i+; /fscanf读两个空白字
3、符之间的字符 num=i; fclose(fp); /关闭文件 for(i=0;inum;i+) printf(%-10s%-8s%6s%16s%16s%16s%6dn,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score);void find_xuehao() /按学号查询 char xuehao10; int i; int flag=0; printf(请输入学号:); scanf(%s,xuehao); for(i=0;inum;i+)
4、if(strcmp(xuehao,studenti.xuehao)=0) flag=1; printf(%-10s%-8s%6s%16s%16s%16s%6dn,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); break; if(flag=0) printf(n无此信息n); void find_name() /按姓名查询 char name8; int i; int flag=0; printf(请输入姓名:); scanf(%s,
5、name); for(i=0;inum;i+) if(strcmp(name,studenti.name)=0) flag=1; printf(%-10s%-8s%6s%16s%16s%16s%6dn,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); break; if(flag=0) printf(n无此信息n);void all() /显示全部 int i; for(i=0;iM;i+) printf(%-10s%-8s%6s%16
6、s%16s%16s%6dn,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); void find() int b; printf(n*n); printf( 1 按学号查询 2按姓名查询 3显示全部 4退出 n); printf(n*n); printf(请选择:); scanf(%d,&b); switch(b) case 1:find_xuehao();break; case 2:find_name();break; case 3:
7、all();break; case 4:return; void sort_name() /按姓名排序 char nameM12,t12; int i,j; for(i=0;iM;i+) strcpy(namei,studenti.name); for(j=1;jM-1;j+) for(i=0;i0) strcpy(t,namei); strcpy(namei,namei+1); strcpy(namei+1,t); for(i=0;iM;i+) for(j=0;jM;j+) if(strcmp(namei,studentj.name)=0) printf(%-10s%-8s%6s%16s%1
8、6s%16s%6dn,studentj.xuehao,studentj.name,studentj.sex, studentj.birth,studentj.jiguan,studentj.tel,studentj.score);void sort_score() /按分数排序 int i,j,t,aM; for(i=0;iM;i+) ai=studenti.score; for(j=1;jM-1;j+) for(i=0;iM-j;i+) if(aiai+1) t=ai; ai=ai+1; ai+1=t; for(i=0;iM;i+) for(j=0;jM;j+) if(ai=studentj
9、.score) printf(n%-10s%-8s%6s%14s%16s%16s%6d,studentj.xuehao,studentj.name,studentj.sex, studentj.birth,studentj.jiguan,studentj.tel,studentj.score); void sort() /排序 int b; printf(n*n); printf( 1 按姓名排序 2 按分数排序 3 退出 n); printf(n*n); printf(请选择:); scanf(%d,&b); switch(b) case 1:sort_name();break; case
10、2:sort_score();break; case 3:return; void add() /添加 int i; int flag=0; char add10; printf(请输入你要修改的学生的学号:); scanf(%s,add); for(i=0;inum;i+) if(strcmp(studenti.xuehao,add)=0) flag=1; printf(此信息已存在,不能添加!n); printf(%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,st
11、udenti.jiguan,studenti.tel,studenti.score);break; if(flag=0) printf(n无此学生信息,请添加信息:); scanf(%s%s%s%s%s%s%d,studentnum.xuehao,studentnum.name,studentnum.sex, studentnum.birth,studentnum.jiguan,studentnum.tel,&studentnum.score); num+; for(i=0;inum;i+) printf(n%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao
12、,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); void Delete_name() /按姓名删除 int i; int flag=0; char name10; printf(请输入要删除的姓名:); scanf(%s,name); for(i=0;inum;i+) if(strcmp(studenti.name,name)=0) flag=1; for(;inum-1;i+) studenti=studenti+1; printf(此信息存在,将被删除。n);
13、 for(i=0;inum-1;i+) printf(n%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); if(flag=0) printf(n无此学生信息,请确认!n); void Delete_xuehao() /按学号删除 int i; int flag=0; char xuehao10; printf(请输入要删除的学号:); scanf(%s,xuehao); for(i
14、=0;inum;i+) if(strcmp(studenti.xuehao,xuehao)=0) flag=1; for(;inum-1;i+) studenti=studenti+1; printf(此信息存在,将被删除。n); for(i=0;inum-1;i+) printf(n%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); if(flag=0) printf(n无此学生信
15、息,请确认!n); void Delete() /删除 int b; printf(n*n); printf( 1 按姓名删除 2 按学号删除 3 退出 n); printf(n*n); printf(请选择:); scanf(%d,&b); switch(b) case 1:Delete_name();break; case 2:Delete_xuehao();break; case 3:return; void modify() /修改 int i; int flag=0; char modify10; printf(请输入你要修改的学生的学号:); scanf(%s,modify); f
16、or(i=0;inum;i+) if(strcmp(studenti.xuehao,modify)=0) flag=1; printf(学号 姓名 性别 出生年月 籍贯 电话 成绩n); printf(%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score);break; if(flag=0) printf(n无此学生信息n); return; printf(n要修改学生的姓名:n); pr
17、intf(studenti.name=); scanf(%s,studenti.name); printf(n要修改学生的性别:n); printf(studenti.sex=); scanf(%s,studenti.sex); printf(n要修改学生的出生年月:n); printf(studenti.birth=); scanf(%s,studenti.birth); printf(n要修改学生的籍贯:n); printf(studenti.jiguan=); scanf(%s,studenti.jiguan); printf(n要修改学生的电话:n); printf(studenti.
18、tel=); scanf(%s,studenti.tel); printf(n要修改学生的成绩:n); printf(studenti.score=); scanf(%d,&studenti.score); for(i=0;inum;i+) printf(n%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score);void classify_male() /按男分类 int i; FILE
19、*fp; fp=fopen (male.txt,w); if (fp=NULL) printf(不能找到文件,请检查!); return ; fputs(headline,fp); for(i=0;inum;i+) if(strcmp(studenti.sex,男)=0) printf(n%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); fprintf(fp,n%-10s%-8s%
20、6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); fclose(fp);void classify_female() /按女分类 int i; FILE *fp1; fp1=fopen(female.txt,w); if (fp1=NULL) printf(不能找到文件,请检查!); return; fputs(headline,fp1); for(i=0;inum;i+) if(strcmp(stu
21、denti.sex,女)=0) printf(n%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score); fprintf(fp1,n%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name,studenti.sex, studenti.birth,studenti.jiguan,studenti.tel,studenti.score
22、); fclose(fp1);void classify() /分类 int b; printf(n*n); printf( 1 按男分类 2 按女分类 3 退出 n); printf(n*n); printf(请选择:); scanf(%d,&b);switch(b) case 1:classify_male();break; case 2:classify_female();break; case 3:return; void write() /写函数,将输出函数写入文本文件 FILE *fp; int i=0; fp=fopen(jz0112gyq.txt,w); if(fp=NULL)
23、 printf(不能找到文件,请检查!n); return; fputs(headline,fp); for(i=0;inum;i+) fprintf(fp,n%-10s%-8s%6s%14s%16s%16s%6d,studenti.xuehao,studenti.name, studenti.sex,studenti.birth,studenti.jiguan,studenti.tel,studenti.score); fclose(fp);void main() int i; read1(); while(1) printf(n*简易学生信息管理系统的设计*n); printf(1 查询 2 排序 3 添加n); printf(4 删除 5 修改 6 分类n); printf( 0 退出 n); printf(n*n); printf(请选择:); scanf(%d,&i); switch(i) case 1:find();break; case 2:sort();break; case 3:add();write();break; case 4:Delete();write();break; case 5:modify();write();break; case 6:classify();break; case 0:return; 这是我的课设程序。简易学生信息管理系统。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1