C语言学生信息管理系统代码.docx

上传人:b****3 文档编号:26525865 上传时间:2023-06-20 格式:DOCX 页数:23 大小:18.34KB
下载 相关 举报
C语言学生信息管理系统代码.docx_第1页
第1页 / 共23页
C语言学生信息管理系统代码.docx_第2页
第2页 / 共23页
C语言学生信息管理系统代码.docx_第3页
第3页 / 共23页
C语言学生信息管理系统代码.docx_第4页
第4页 / 共23页
C语言学生信息管理系统代码.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C语言学生信息管理系统代码.docx

《C语言学生信息管理系统代码.docx》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统代码.docx(23页珍藏版)》请在冰豆网上搜索。

C语言学生信息管理系统代码.docx

C语言学生信息管理系统代码

 

XX师范大学

 

实验报告

 

课程C语言课程设计

任课老师

学号

姓名

院系

 

_______年______月至_______年_______月

注意事项

 

1.使用C语言,代码已在vs中运行过,可以运行(主要功能都能实现)

2.需求分析,前期设计都没写,请同学们自己完成

 

3.附带有student.txt文件,将其移动至F:

\stu文件夹中,运行程序时可直接选6号指令,从中读取学生信息。

如果没有该txt文件(可能会在上传过程中丢失),仍需在F盘下新建stu文件夹,各文件将保存于该文件夹中

4.按word格式输出尚未设计好,有兴趣可自己完成

 

5.按excel格式输出,完成后需自行调整相应列宽(拉宽),使内容美观

6.从下一页开始,复制余下全文,粘贴即可运行

 

#include

#defineM30//班级总人数,暂定30,可修改

#defineN3//课程成绩门数,暂定3,可修改

intinputstu(structstudentstu[],intm,intn);

voidprinstu(structstudentstu[],intm,intn);

intsortsno(structstudentstu[],intm);

intsortage(structstudentstu[],intm);

intsortmark(structstudentstu[],intsm[],intm,intn);

voidprinsort(structstudentstu[],intm,intn);

intwritefile(structstudentstu[],FILE*fp,intm,intn);

intreadfile(structstudentstu[],FILE*fp,intm,intn);

intfprinword(structstudentstu[],FILE*fp,intm,intn);

intfprinexcel(structstudentstu[],FILE*fp,intm,intn);

intseachsno(structstudentstu[],longsno,intm,intn);

intseachsname(structstudentstu[],charsname[],intm,intn);

intdesno(structstudentstu[],longsno,intm);

intdesname(structstudentstu[],charsname[],intm);

intcutin(structstudentstu[],intm,intn);

structstudent

{

intturn;

longsno;

charsname[20];

charsgrade[10];

charsbirth[10];

intsmark[N];

};

voidmain()

{

inti=0;

intcon1=0;

intcon2=0;

longsno;

charsname[20];

FILE*fp=NULL;

structstudentstu[M];

for(i=0;i

{

stu[i].turn=-1;

}

do{

printf("\n\n********************************************\n");

printf("\n***学生信息管理系统***\n\n");

printf("***请按提示输入相应命令:

***\n\n");

printf("1键盘输入所有学生的基本信息\n");

printf("2屏幕输出所有学生的基本信息\n");

printf("3子菜单:

按一定顺序对学生进行排序\n");

printf("4按顺序屏幕输出学生信息\n");

printf("5保存学生信息(二进制文件)\n");

printf("6从上次保存的二进制文件中读取学生信息\n");

printf("7子菜单:

将学生信息保存为文本文档(人工阅读)\n");

printf("8子菜单:

对单个学生的插入删除查询修改\n");

printf("-1退出系统\n");

scanf("%d",&con1);

switch(con1)

{

case1:

{

printf("\n***注意!

***\n");

printf("继续进行输入会覆盖原数据!

\n");

printf("第一次使用本软件或需重新写信息请继续:

\n");

printf("1继续\n");

printf("-1返回\n");

scanf("%d",&con2);

if(con2==1)

{

inputstu(stu,M,N);

}

break;

}

case2:

prinstu(stu,M,N);break;

case3:

{

do{

printf("\n****************************************\n");

printf("1按学号顺序进行排序\n");

printf("2按年龄从小到大排序\n");

printf("3按总成绩由高到低排序\n");

printf("-1返回上一级菜单\n");

scanf("%d",&con2);

switch(con2)

{

case1:

{

sortsno(stu,M);

con2=0;

break;

}

case2:

{

//sortage(stu,M);

break;

}

case3:

{

intsm[M];

sortmark(stu,sm,M,N);

break;

}

case-1:

break;

default:

printf("二级命令输入错误,请重试!

\n");

fflush(stdin);

}

}while(con2!

=-1);

break;

}

case4:

prinsort(stu,M,N);break;

case5:

writefile(stu,fp,M,N);break;

case6:

readfile(stu,fp,M,N);break;

case7:

{

printf("\n************************************************\n");

printf("1将学生信息输出为txt文档,路径:

F:

\stu\student.txt\n");

printf("2将学生信息输出为word文档,路径:

F:

\stu\student.doc\n");

printf("3将学生信息输出为excel文档,路径:

F:

\stu\student.xls\n");

printf("-1返回上一级菜单\n");

scanf("%d",&con2);

switch(con2)

{

case1:

{

break;

}

case2:

{

fprinword(stu,fp,M,N);

break;

}

case3:

{

fprinexcel(stu,fp,M,N);

break;

}

}

}

break;

case8:

{

do

{

printf("\n*******************************\n\n");

printf("1按学号查询单个学生\n");

printf("2按姓名查询单个学生\n");

printf("3按学号删除单个学生\n");

printf("4按姓名删除单个学生\n");

printf("5插入单个学生信息\n");

printf("-1返回主菜单\n");

scanf("%d",&con2);

switch(con2)

{

case1:

{

printf("请输入单个学号:

\n");

scanf("%10ld",&sno);

seachsno(stu,sno,M,N);

break;

}

case2:

{

printf("请输入单个学生姓名:

\n");

scanf("%20s",sname);

seachsname(stu,sname,M,N);

break;

}

case3:

{

printf("请输入单个学号:

\n");

scanf("%10ld",&sno);

desno(stu,sno,M);

break;

}

case4:

{

printf("请输入单个学生姓名:

\n");

scanf("%s",sname);

desname(stu,sname,M);

break;

}

case5:

{

cutin(stu,M,N);

break;

}

default:

{

printf("二级指令错误,请重新输入!

\n");

break;

}

}

}while(con2!

=-1);

}

case-1:

printf("感谢使用本系统!

\n");break;

default:

printf("一级命令输入错误,请重试");

fflush(stdin);

break;

}

}while(con1!

=-1);

}

//输入学生的基本信息

intinputstu(structstudentstu[],intm,intn)

{

inti=0;

intj=0;

printf("请按说明输入学生信息:

\n");

while(i

{

printf("请输入第%d个学生的学号,姓名,班级,出生日期:

\n",i+1);

scanf("%10ld%20s%10s%10s",&stu[i].sno,&stu[i].sname,&stu[i].sgrade,&stu[i].sbirth);

for(j=0;j

{

printf("请输入第%d个学生的第%d门成绩\n",i+1,j+1);

scanf("%d",&stu[i].smark[j]);

}

i++;

}

returni;

}

//屏幕输出学生信息

voidprinstu(structstudentstu[],intm,intn)

{

inti=0;

intj=0;

printf("**********************************************************\n");

printf("学生基本信息如下:

\n");

printf("学号姓名班级出生年月成绩1成绩2成绩3\n");

while(i

{

if(stu[i].sno==0)

{

i++;

continue;

}

printf("%10ld%20s%10s%10s",stu[i].sno,stu[i].sname,stu[i].sgrade,stu[i].sbirth);

for(j=0;j

{

printf("%d",stu[i].smark[j]);

}

printf("\n");

i++;

}

}

//按学号顺序进行排序

intsortsno(structstudentstu[],intm)

{

inti=0;

intj=0;

ints;

longsno[M];

for(i=0;i

{

sno[i]=stu[i].sno;

}

for(i=0;i

{

for(j=i+1;j

{

s=sno[i];

if(s>sno[j])

{

s=sno[j];

sno[j]=sno[i];

sno[i]=s;

}

}

}

for(i=0;i

{

for(j=0;j

{

if(stu[j].sno==sno[i])

{

stu[j].turn=i;

}

}

}

returni;

}

//按年龄对学生进行排序;

intsortage(structstudentstu[],intm)

{

}

//按总成绩由高到低排序

intsortmark(structstudentstu[],intsm[],intm,intn)

{

inti=0;

intj=0;

ints=0;

for(i=0;i

{

sm[i]=0;

}

for(i=0;i

{

for(j=0;j

{

sm[i]=sm[i]+stu[i].smark[j];

}

}

for(i=0;i

{

for(j=i+1;j

{

s=sm[i];

if(s

{

s=j;

}

sm[s]=0;

stu[s].turn=i;

}

}

returni;

}

//按顺序屏幕输出

voidprinsort(structstudentstu[],intm,intn)

{

inti=0;

intj=0;

intk=0;

printf("\n**********************************************************\n");

printf("按排序,学生基本信息如下:

\n");

printf("学号姓名班级出生年月成绩1成绩2成绩3\n");

while(k

{

if(stu[i].sno==0)

{

continue;

}

for(i=0;i

{

if(stu[i].turn==k)

{

printf("%10ld%20s%10s%10s",stu[i].sno,stu[i].sname,stu[i].sgrade,stu[i].sbirth);

for(j=0;j

{

printf("%d",stu[i].smark[j]);

}

printf("\n");

}

}

k++;

}

}

//写数据进二进制文件

intwritefile(structstudentstu[],FILE*fp,intm,intn)

{

inti=1;

fp=fopen("f:

\\stu\\student.txt","wb");

if(fp==NULL)

{

printf("打开文件失败!

\n");

exit(0);

}

fwrite(&stu[0],sizeof(structstudent),m,fp);

i=fclose(fp);

returni;

}

//从二进制中读取学生信息

intreadfile(structstudentstu[],FILE*fp,intm,intn)

{

inti=1;

fp=fopen("f:

\\stu\\student.txt","rb");

if(fp==NULL)

{

printf("打开文件失败!

\n");

exit(0);

}

fread(&stu[0],sizeof(structstudent),m,fp);

i=fclose(fp);

returni;

}

//将学生信息写入word文档,保存于F:

\stu\student.doc

intfprinword(structstudentstu[],FILE*fp,intm,intn)

{

inti=0;

intj=0;

fp=fopen("F:

\\stu\\student.doc","w");

if(fp==NULL)

{

printf("文件打开失败!

");

exit(0);

}

while(i

{

if(stu[i].sno==0);

{

continue;

}

fprintf(fp,"%10ld%20s%10s%10s",stu[i].sno,stu[i].sname,stu[i].sgrade,stu[i].sbirth);

for(j=0;j

{

fprintf(fp,"%d",stu[i].smark[j]);

}

printf("\n");

i++;

}

fclose(fp);

returni;

}

//将学生信息写入excel文档,保存于F:

\stu\student.xls

intfprinexcel(structstudentstu[],FILE*fp,intm,intn)

{

inti=0;

intj=0;

chart='\t';

charlin[20]="成绩";

charstr[4][20];

strcpy(str[0],"学号");

strcpy(str[1],"姓名");

strcpy(str[2],"班级");

strcpy(str[3],"生日");

fp=fopen("F:

\\stu\\student.xls","w");

if(fp==NULL)

{

printf("文件打开失败!

");

exit(0);

}

fprintf(fp,"%s%c%s%c%s%c%s",str[0],t,str[1],t,str[2],t,str[3]);

for(i=0;i

{

fprintf(fp,"%c%s%d",t,lin,i+1);

}

fprintf(fp,"\n");

i=0;

while(i

{

if(stu[i].sno==-1)

{

continue;

}

fprintf(fp,"%10ld%c%20s%c%10s%c%10s",stu[i].sno,t,stu[i].sname,t,stu[i].sgrade,t,stu[i].sbirth);

for(j=0;j

{

fprintf(fp,"%c%d",t,stu[i].smark[j]);

}

fprintf(fp,"\n");

i++;

}

fclose(fp);

returni;

}

//按学号查询单个学生

intseachsno(structstudentstu[],longsno,intm,intn)

{

inti=0;

intj=0;

for(i=0;i

{

if(stu[i].sno==sno)

{

printf("按学号查询到的学生基本信息如下:

\n");

printf("学号姓名班级出生年月成绩1成绩2成绩3\n");

printf("%10ld%20s%10s%10s",stu[i].sno,stu[i].sname,stu[i].sgrade,stu[i].sbirth);

for(j=0;j

{

printf("%d",stu[i].smark[j]);

}

printf("\n");

break;

}

}

returni;

}

//按姓名查询单个学生

intseachsname(structstudentstu[],charsname[],intm,intn)

{

inti=0;

intj=0;

ints=-1;

for(i=0;i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1