学生档案信息课程设计_制作学生信息档案

2020-02-27 其他范文 下载本文

学生档案信息课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“制作学生信息档案”。

/*注意首先建一个学生档案信息.txt文件到当前目录下,不然无法运行成功*/

#include #include #include #define Max 50

void Main_meau(void);//主菜单 void input(void);//输入学生信息 void serch(void);//查询学生信息 void amend(void);//修改学生信息 void census(void);//统计学生信息 void show(void);//显示学生信息

void sch_num(void);//按学号查询学生信息 void sch_name(void);//按姓名查询学生信息 void add(void);//添加学生信息 void del(void);//删除学生信息 void change(void);//修改学生信息 void c_pjf(void);//平均分统计 void c_nv(void);//男女生人数统计

void c_yc(void);//某年以前出生人数统计 void c_ds(void);//某地学生人数统计 void c_dts(void);//党团员学生人数统计

struct Data { int year;int mounth;int day;};

struct student { char num[15];//学号

char name[20];//姓名

char sex[5];//性别

int age;//年龄

char zzmm[20];//政治面貌

float score;//成绩

struct Data data;//出生日期

char addre[50];//地址 };

int open(struct student stu[Max]);//打开文件 void baocun(int number, struct student stu[Max]);//保存文件

int main(void){ Main_meau();return 1;}

void Main_meau(void)//主菜单 { int m=0,n;while(m==0){

printf(“nnn”);

printf(“*****************************************n”);

printf(“

*学*生*档*案*管*理*系*统*

n”);

printf(“

*欢 迎 使 用*nnn”);

printf(“

1---输入学生信息n”);

printf(“

2---查询学生信息n”);

printf(“

3---修改学生信息n”);

printf(“

4---统计学生信息n”);

printf(“

5---显示学生信息n”);

printf(“

6---退出系统n”);

printf(“*****************************************n”);

printf(“nnn请输入选项: ”);

scanf(“%d”,&n);

switch(n)

{

case 1: input();break;

case 2: serch();break;

case 3: amend();break;

case 4: census();break;

case 5: show();break;

case 6: m=1;break;

default:

printf(“输入错误,请重新输入.n”);break;

} } }

void input(void)//输入学生信息 { int number,i,k;struct student stu[Max];k=open(stu);printf(“请输入要增加的学生人数:n”);scanf(“%d”,&number);for(i=k+1;i

printf(“学号:”);scanf(“%s”,stu[i].num);

printf(“姓名:”);scanf(“%s”,stu[i].name);

printf(“性别:”);scanf(“%s”,stu[i].sex);

printf(“年龄:”);scanf(“%d”,&stu[i].age);

printf(“政治面貌:”);scanf(“%s”,stu[i].zzmm);

printf(“成绩:”);scanf(“%f”,&stu[i].score);

printf(“出生日期(按此格式写入:1990/07/28):n”);

scanf(“%d/%d/%d”,&stu[i].data.year,&stu[i].data.mounth,&stu[i].data.day);

printf(“地址:”);scanf(“%s”,stu[i].addre);} baocun(k+number,stu);}

void serch(void)//查询学生信息 { int i;printf(“nnn”);printf(“

*学生档案管理*

nn”);printf(“

1.学号查询

nn”);printf(“

2.姓名查询

nn”);printf(“

3.返回主菜单

nn”);printf(“nn请选择(1——3):”);scanf(“%d”,&i);printf(“nn”);switch(i){

case 1: sch_num();break;

case 2: sch_name();break;

case 3: return;

default: printf(“输入错误,请重新输入.n”);} }

void amend(void)//修改学生信息 { int i,m=0;while(m==0){

printf(“nn”);

printf(“tt*学生档案管理*nn”);

printf(“tt1.添加学生信息nn”);

printf(“tt2.删除学生信息nn”);

printf(“tt3.修改学生信息nn”);

printf(“tt4.返回主菜单nn”);

printf(“nn请选择(1——4): ”);

scanf(“%d”,&i);

switch(i)

{

case 1: add();break;

case 2: del();break;

case 3: change();break;

case 4: m=1;break;

} } }

void census(void)//统计学生信息 { int i,m=0;while(m==0){

printf(“nn”);

printf(“tt*学生档案管理*nn”);

printf(“tt1.平均分统计nn”);

printf(“tt2.男女生人数统计nn”);

printf(“tt3.某年以前出生人数统计nn”);

printf(“tt4.某地学生人数统计nn”);

printf(“tt5.党团员学生人数统计nn”);

printf(“tt6.返回主菜单nn”);

printf(“请选择(1——6): ”);

scanf(“%d”,&i);

switch(i)

{

case 1: c_pjf();break;

case 2: c_nv();break;

case 3: c_yc();break;

case 4: c_ds();break;

case 5: c_dts();break;

case 6: m=1;break;

} } }

void c_pjf(void)//平均分统计 { int i,k;float vs=0;struct student stu[Max];k=open(stu);for(i=1;i

vs=vs+stu[i].score;} printf(“入学时的平均分为: %.2fn”,vs/k);}

void c_nv(void)//男女生人数统计 { int i,k,man=0,gilr=0;struct student stu[Max];k=open(stu);for(i=1;i

if(strcmp(stu[i].sex,“男”)==0)

man++;

else

gilr++;} printf(“nn男生总人数为: %dn”,man);printf(“女生总人数为: %dn”,gilr);}

void c_yc(void)//某年以前出生人数统计 { int i,k,Year,number=0;struct student stu[Max];k=open(stu);printf(“请输入要统计的年份:

”);scanf(“%d”,&Year);for(i=1;i

if(Year>stu[i].data.year)

number++;} printf(“%d年以前出生的人数为:

%dn”,Year,number);}

void c_ds(void)//某地学生人数统计 { int i,k,number=0;struct student stu[Max];char db[30];k=open(stu);printf(“请输入地名: ”);scanf(“%s”,db);for(i=1;i

if(strcmp(stu[i].addre,db)==0)

number++;} printf(“%s学生人数为: %dn”,db,number);}

void c_dts(void)//党团员学生人数统计 { int i,k,da=0,tu=0;struct student stu[Max];k=open(stu);for(i=1;i

if(strcmp(stu[i].zzmm,“团员”)==0)

tu++;

if(strcmp(stu[i].zzmm,“党员”)==0)

da++;} printf(“团员有:

%d个n”,tu);printf(“党员有:

%d个n”,da);}

void show(void)//显示学生信息 { int i,k;struct student stu[Max];k=open(stu);if(k==0)

return;else

printf(“文件中总共有%d个学生信息:n”,k);for(i=1;i

printf(“nn学号tt姓名t性别t年龄t政治面貌t成绩t出生日期t地址n”);printf(“%st%st%st%dt%st%6.2f”,stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].zzmm,stu[i].score);

printf(“ %d%d%dtt%s”,stu[i].data.year,stu[i].data.mounth,stu[i].data.day,stu[i].addre);} }

void add(void)//添加学生信息 { int number,i,k;struct student stu[Max];k=open(stu);printf(“请输入要增加的学生人数:n”);scanf(“%d”,&number);for(i=k+1;i

printf(“学号:”);scanf(“%s”,stu[i].num);

printf(“姓名:”);scanf(“%s”,stu[i].name);

printf(“性别:”);scanf(“%s”,stu[i].sex);

printf(“年龄:”);scanf(“%d”,&stu[i].age);

printf(“政治面貌:”);scanf(“%s”,stu[i].zzmm);

printf(“成绩:”);scanf(“%f”,&stu[i].score);

printf(“出生日期(按此格式写入:1990/07/28):n”);

scanf(“%d/%d/%d”,&stu[i].data.year,&stu[i].data.mounth,&stu[i].data.day);

printf(“地址:”);scanf(“%s”,stu[i].addre);} baocun(k+number,stu);}

void del(void)//删除学生信息 { int i,k,j;FILE *fp;struct student stu[Max];char db[30];k=open(stu);printf(“请输入要删除学生的学号或姓名:”);scanf(“%s”,db);for(i=1;i

if(strcmp(db,stu[i].name)==0||strcmp(db,stu[i].num)==0)

break;} if(i

printf(“找到要删除的学生信息,删除中……n”);

if((fp=fopen(“学生档案信息.txt”,“w”))==NULL)

{

printf(“打开文件失败!n”);

exit(0);

}

fprintf(fp,“%dn”,k-1);

for(j=1;j

{

if(j==i)

continue;

fprintf(fp,“%sn%sn%sn%dn%sn%.2fn”,stu[j].num,stu[j].name,stu[j].sex,stu[j].age,stu[j].zzmm,stu[j].score);

fprintf(fp,“%d/%d/%dn”,stu[j].data.year,stu[j].data.mounth,stu[j].data.day);

fprintf(fp,“%sn”,stu[j].addre);

}

fclose(fp);

printf(“OK!n”);} else

printf(“未找到对应的学生信息n”);}

void change(void)//修改学生信息 { int i,k;char db[30];struct student stu[Max];printf(“请输入要修改的学生的学号或姓名:”);scanf(“%s”,db);k=open(stu);for(i=1;i

if(strcmp(db,stu[i].num)==0||strcmp(db,stu[i].name)==0)

break;} if(i

printf(“找到要修改的学生的信息,请重设该学生所有的信息.n”);

printf(“学号: ”);scanf(“%s”,stu[Max-1].num);

strcpy(stu[i].num,stu[Max-1].num);

printf(“姓名: ”);scanf(“%s”,stu[Max-1].name);

strcpy(stu[i].name,stu[Max-1].name);

printf(“性别: ”);scanf(“%s”,stu[Max-1].sex);

strcpy(stu[i].sex,stu[Max-1].sex);

printf(“年龄: ”);scanf(“%d”,&stu[Max-1].age);

stu[i].age=stu[Max-1].age;

printf(“政治面貌: ”);scanf(“%s”,stu[Max-1].zzmm);

strcpy(stu[i].zzmm,stu[Max-1].zzmm);

printf(“成绩: ”);scanf(“%f”,&stu[Max-1].score);

stu[i].score=stu[Max-1].score;

printf(“出生日期: ”);scanf(“%d/%d/%d”,&stu[Max-1].data.year,&stu[Max-1].data.mounth,&stu[Max-1].data.day);

stu[i].data.day=stu[Max-1].data.day;

stu[i].data.mounth=stu[Max-1].data.mounth;

stu[i].data.year=stu[Max-1].data.year;

printf(“地址: ”);scanf(“%s”,stu[Max-1].addre);

strcpy(stu[i].addre,stu[Max-1].addre);} else

printf(“未找到对应的学生信息n”);baocun(k,stu);}

void sch_num(void)//按学号查询学生信息 { int i,number;struct student stu[Max];char db[15];number=open(stu);printf(“n请输入要查询的学号:”);scanf(“%s”,db);for(i=1;i

if(strcmp(db,stu[i].num)==0)

break;} if(i

printf(“nn学号tt姓名t性别t年龄t政治面貌t成绩t出生日期t地址n”);

printf(“%st%st%st%dt%st%6.2f”,stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].zzmm,stu[i].score);

printf(“ %d%d%dtt%s”,stu[i].data.year,stu[i].data.mounth,stu[i].data.day,stu[i].addre);

} else

printf(“未找到此学号对应的学生信息n”);}

void sch_name(void)//按姓名查询学生信息 { int i,number;struct student stu[Max];char db[15];number=open(stu);printf(“n请输入要查询的姓名:”);scanf(“%s”,db);for(i=1;i

if(strcmp(db,stu[i].name)==0)

break;} if(i

printf(“nn学号tt姓名t性别t年龄t政治面貌t成绩t出生日期t地址n”);

printf(“%st%st%st%dt%st%6.2f”,stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].zzmm,stu[i].score);

printf(“ %d%d%dtt%s”,stu[i].data.year,stu[i].data.mounth,stu[i].data.day,stu[i].addre);

} else

printf(“未找到此姓名对应的学生信息n”);}

int open(struct student stu[Max])//打开文件 { int number=0,i;FILE *fp;if((fp=fopen(“学生档案信息.txt”,“r”))==NULL){

printf(“打开文件失败!n”);

exit(0);} if((fscanf(fp,“%d”,&number))==EOF)

number=0;else

for(i=1;i

{

fscanf(fp,“%s%s%s%d%s%f”,stu[i].num,stu[i].name,stu[i].sex,&stu[i].age,stu[i].zzmm,&stu[i].score);

fscanf(fp,“%d/%d/%d”,&stu[i].data.year,&stu[i].data.mounth,&stu[i].data.day);

fscanf(fp,“%s”,stu[i].addre);

} fclose(fp);if(number==0)

printf(“文件中无数据,请添加.n”);return number;}

void baocun(int number , struct student stu[Max])//保存文件 { int i;FILE *fp;if((fp=fopen(“学生档案信息.txt”,“w”))==NULL){

printf(“打开文件失败!n”);

exit(0);} fprintf(fp,“%dn”,number);for(i=1;i

{

fprintf(fp,“%sn%sn%sn%dn%sn%.2fn”,stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].zzmm,stu[i].score);

fprintf(fp,“%d/%d/%dn”,stu[i].data.year,stu[i].data.mounth,stu[i].data.day);

fprintf(fp,“%sn”,stu[i].addre);

} fclose(fp);}

《学生档案信息课程设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
学生档案信息课程设计
点击下载文档
相关专题 制作学生信息档案 课程设计 学生档案 信息 制作学生信息档案 课程设计 学生档案 信息
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文