软件课设大作业学生成绩管理系统程序.docx

上传人:b****1 文档编号:10947216 上传时间:2023-05-28 格式:DOCX 页数:24 大小:18.55KB
下载 相关 举报
软件课设大作业学生成绩管理系统程序.docx_第1页
第1页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第2页
第2页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第3页
第3页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第4页
第4页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第5页
第5页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第6页
第6页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第7页
第7页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第8页
第8页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第9页
第9页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第10页
第10页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第11页
第11页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第12页
第12页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第13页
第13页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第14页
第14页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第15页
第15页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第16页
第16页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第17页
第17页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第18页
第18页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第19页
第19页 / 共24页
软件课设大作业学生成绩管理系统程序.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件课设大作业学生成绩管理系统程序.docx

《软件课设大作业学生成绩管理系统程序.docx》由会员分享,可在线阅读,更多相关《软件课设大作业学生成绩管理系统程序.docx(24页珍藏版)》请在冰点文库上搜索。

软件课设大作业学生成绩管理系统程序.docx

软件课设大作业学生成绩管理系统程序

#include

#include

#include

#include

#defineMAXN40

#defineMAX_NAME200

//结构体定义

typedefstructstudent

{

intnum;

charname[MAX_NAME];

doubleChinese;

doublemath;

doubleEnglish;

doublemark_ave;

doublemark_tot;

}STUDENT;

//子函数

voidmenuin();

voidmenuout();

voidmenu_do();

intpassword();

voidreset();

intb=123;

//添加成绩条

voidinput(STUDENT*data,int*len)

{

inti,a;

printf("请输入学生资料,1/0!

\n");

scanf("%d",&a);

while(a!

=0)

{

printf("请输入学生学号(学号应大于0):

");/*输入学号,学号应大于0*/

scanf("%d",&data[*len].num);

while(data[*len].num<0)

{

getchar();

printf("输入错误,请重新输入学生学号:

");

scanf("%d",&data[*len].num);

}

/*输入学号为字符或小于0时,程序报错,提示重新输入学号*/

if(*len>=0)

{

for(i=0;i<(*len);i++)

if(data[*len].num==data[i].num)

{

printf("学号重复,请重输!

\n");

break;

}

/*当输入的学号已经存在,程序报错,重新输入*/

if(i==(*len))

{

printf("请输入学生姓名:

");

scanf("%s",&data[*len].name);/*输入学生姓名*/

printf("请输入语文成绩(0~100):

");/*输入语文成绩,成绩应在0-100*/

scanf("%lf",&data[*len].Chinese);

while(data[*len].Chinese<0||data[*len].Chinese>100)

{

getchar();

printf("输入错误,请重新输入语文成绩");/*输入错误,重新输入语文成绩直到正确为止*/

scanf("%lf",&data[*len].Chinese);

}

printf("请输入英语成绩(0~100):

");/*输入英语成绩,成绩应在0-100*/

scanf("%lf",&data[*len].English);

while(data[*len].English<0||data[*len].English>100)

{

getchar();

printf("输入错误,请重新输入英语成绩");/*输入错误,重新输入英语成绩直到正确为止*/

scanf("%lf",&data[*len].English);

}

printf("请输入数学成绩(0~100):

");/*输入数学成绩,成绩应在0-100*/

scanf("%lf",&data[*len].math);

while(data[*len].math<0||data[*len].math>100)

{

getchar();

printf("输入错误,请重新输入数学成绩");

scanf("%lf",&data[*len].math);

}/*输入错误,重新输入数学成绩直到正确为止*/

while(data[*len].num!

=0)

{

data[*len].mark_ave=(data[*len].Chinese+data[*len].math+data[*len].English)/3.0;

data[*len].mark_tot=data[*len].Chinese+data[*len].math+data[*len].English;

(*len)++;

}

}

}

/*输入的学号唯一,输入信息*/

printf("请输入学生资料,1/0!

\n");

scanf("%d",&a);}

}

//成绩条输出

voidoutput(STUDENT*data,intlen)

{

inti;

doublea=0,b=0,c=0;

for(i=0;i

{

a=a+data[i].Chinese;

b=b+data[i].math;

c=c+data[i].English;

}

a=a/len;

b=b/len;

c=c/len;

system("cls");

printf("学生成绩:

\n");

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%10s","平均分");

printf("%10s","总分");

printf("\n\n");

printf("_______________________________________________________________\n");

for(i=0;i

{

printf("%8d",data[i].num);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%8.1lf",data[i].math);

printf("%10.1lf",data[i].English);

printf("%12.1lf",data[i].mark_ave);

printf("%10.1lf",data[i].mark_tot);

putchar('\n');

}

printf("\n");

printf("平均成绩:

\n语文:

%.1lf\t",a);

printf("数学:

%.1lf\t",b);

printf("英语:

%.1lf\n",c);

printf("_______________________________________________________________\n");

printf("按回车键继续.");

getch();

}

//排序

voidsort(STUDENT*data,intlen)

{

inti,j,k;

STUDENTtemp;

for(i=0;i

for(k=i,j=i+1;j

if(data[k].mark_ave>data[j].mark_ave)k=j;

if(k!

=i){

temp=data[i];

data[i]=data[k];

data[k]=temp;

}

}

printf("排序已完成!

");

system("pause");

}

//查找

voidfind(STUDENT*data,intlen)

{

intfind_num,result;

inti;

printf("\n请输入学号查找(-1退出).");

scanf("%d",&find_num);

printf("\n");

while(find_num!

=-1)

{result=0;

while(data[result].num!

=find_num&&result

if(result>=len)

printf("%s\n","未查询到相关信息");

else

{

system("cls");

printf("%s\n","查询信息如下:

");

for(i=0;i<80;i++)

putchar('=');

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[result].num);

printf("%8s",data[result].name);

printf("%8.1lf",data[result].Chinese);

printf("%8.1lf",data[result].math);

printf("%10.1lf",data[result].English);

printf("%12.1lf",data[result].mark_ave);

printf("%10.1lf",data[result].mark_tot);

}

printf("\n请输入学号查找(-1退出).");

scanf("%d",&find_num);

}

}

//插入

voidinsert(STUDENT*data,int*len)

{

intnum,pos;

doubleChinese,math,English,mark_ave,mark_tot;

inti;

charname[MAX_NAME];

printf("输入新的记录,-1退出");

printf("\n格式:

\n");

printf("\n学号姓名语文数学英语\n");

scanf("%d",&num);

while(num!

=-1)

{

data[*len].num=num;

scanf("%s%lf%lf%lf",name,&Chinese,&math,&English);

mark_ave=(Chinese+math+English)/3.0;

mark_tot=Chinese+math+English;

pos=0;

while((data[pos].mark_ave

pos++;

for(i=*len-1;i>=pos;i--)

data[i+1]=data[i];

data[pos].num=num;

strcpy(data[pos].name,name);

data[pos].Chinese=Chinese;

data[pos].math=math;

data[pos].English=English;

data[pos].mark_ave=mark_ave;

data[pos].mark_tot=mark_tot;

(*len)++;

printf("输入新的记录,-1退出");

printf("\n学号姓名语文数学英语\n");

printf("____________________________\n");

scanf("%d",&num);

}

}

//删除

voiddelete_item(STUDENT*data,int*len)

{

intnum,i,pos;

printf("%s\n","输入需要删除的学生的学号,退出当前菜单请输入0.");

scanf("%d",&num);

while(num!

=0)

{

pos=0;

while((data[pos].num!

=num)&&(pos<*len))

pos=pos+1;

if(pos>=*len)

printf("%s\n","未找到需要删除的学生");

else{

for(i=pos+1;i<*len;i++)

data[i-1]=data[i];

*len=*len-1;

printf("删除完成!

");

if(*len==0)

{

printf("%s\n","没有任何记录,请按回车键返回.");

printf("\n");

return;

}

}

printf("%s\n","输入需要删除的学生的学号,退出当前菜单请输入0.");

scanf("%d",&num);

}

}

//统计

voidstat(STUDENT*data,intlen)

{

intnum_59=0,num_69=0,num_79=0,num_89=0,num_100=0;

inti;

for(i=0;i

if(data[i].mark_ave<=59)num_59++;

elseif(data[i].mark_ave<=69)num_69++;

elseif(data[i].mark_ave<=79)num_79++;

elseif(data[i].mark_ave<=89)num_89++;

elsenum_100++;

}

system("cls");

printf("\n");

printf("%10s","分数");

printf("%10s","0--59");

printf("%10s","60--69");

printf("%10s","70--79");

printf("%10s","80--89");

printf("%10s","90--100");

putchar('\n');

putchar('\n');

printf("%10s","学生");

printf("%10d",num_59);

printf("%10d",num_69);

printf("%10d",num_79);

printf("%10d",num_89);

printf("%10d",num_100);

printf("\n");

printf("按回车键返回");

getchar();

}

//文件导出

voidsave(STUDENT*data,intlen)

{

inti;

FILE*fp;

doublea=0,b=0,c=0;

for(i=0;i

{

a=a+data[i].Chinese;

b=b+data[i].math;

c=c+data[i].English;

}

a=a/len;

b=b/len;

c=c/len;

fp=fopen("学生成绩统计表.txt","w");

fprintf(fp,"学生成绩信息");

fprintf(fp,"\n班级:

0311101\n");

fprintf(fp,"%8s","学号");

fprintf(fp,"%8s","姓名");

fprintf(fp,"%8s","语文");

fprintf(fp,"%8s","数学");

fprintf(fp,"%10s","英语");

fprintf(fp,"%12s","平均分");

fprintf(fp,"%10s\n","总分");

fprintf(fp,"+++++++++++++++++++++++++++++++++++++++++++++++\n");

putchar('\n');

for(i=0;i

{

fprintf(fp,"%8d",data[i].num);

fprintf(fp,"%8s",data[i].name);

fprintf(fp,"%8.1lf",data[i].Chinese);

fprintf(fp,"%8.1lf",data[i].math);

fprintf(fp,"%10.1lf",data[i].English);

fprintf(fp,"%12.1lf",data[i].mark_ave);

fprintf(fp,"%10.1lf\n",data[i].mark_tot);

}

fprintf(fp,"平均成绩:

\n语文:

%.1lf",a);

fprintf(fp,"数学:

%.1lf",b);

fprintf(fp,"英语:

%.1lf\n",c);

fprintf(fp,"++++++++++++++++++++++++++++++++++++++++++++\n");

fclose(fp);

printf("文件已保存到\"学生成绩统计表.txt\"");

getchar();getchar();

}

//文件导入

voidload(STUDENT*data,int*len)

{

charfilepn[10];

FILE*fp;

printf("请输入文件路径及文件名:

");

scanf("%s",filepn);/*输入文件路径及名称*/

if((fp=fopen(filepn,"r+"))==NULL)

printf("不能打开文件!

\n");

elseif((fp=fopen(filepn,"r+"))!

=NULL)

{

fscanf(fp,"考试成绩管理系统\n");

fscanf(fp,"学号\t姓名\t语文\t数学\t英语\t\n");

fscanf(fp,"________________________________________________________\n");/*读入表格域*/

printf("考试成绩管理系统\n");

printf("学号\t姓名\t语文\t数学\t英语\t\n");

printf("___________________________________________________________\n");/*打印表格域*/

do

{

fscanf(fp,"%d%s%lf%lf%lf\n",&data[*len].num,&data[*len].name,&data[*len].Chinese,&data[*len].math,&data[*len].English);

printf("%d\t%s\t%.1lf\t%.1lf\t%.1lf\t\n",data[*len].num,data[*len].name,data[*len].Chinese,data[*len].math,data[*len].English);

/*文件读入与显示*/

data[*len].mark_ave=(data[*len].Chinese+data[*len].math+data[*len].English)/3.0;

data[*len].mark_tot=data[*len].Chinese+data[*len].math+data[*len].English;

(*len)++;

}while(!

feof(fp));

printf("____________________________________________________________\n");/*表格下线*/

fclose(fp);/*结束读入,关闭文件*/

}

system("pause");

}

//主菜单

voidmenu(STUDENT*data,int*len)

{

charctrl_ch;

//inti;

system("cls");

printf("学生成绩管理系统");

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

printf("\t管理员权限\t\t学生权限\n");

printf("\t_________________________________________________\n");

printf("\t\t1输入学生信息\t||4输出学生信息\n");

printf("\t\t2学生成绩管理\t||\n");

printf("\t\t3密码修改\t||\n");

printf("\t_________________________________________________\n");

putchar('\n');

ctrl_ch=getch();printf("%c",ctrl_ch);getch();

putchar('\n');

switch(ctrl_ch)

{

case'1':

if(password())

menuin(data,len);

break;

case'2':

if(password())

menu_do(data,len);

break;

case'3':

if(password())

reset();

menu(data,len);

break;

case'4':

menuout(data,len);

break;

default:

if(ctrl_ch!

='\n'){printf("%s\n","输入错误!

");system("pause");}

break;

}

menu(data,len);

}

//输入菜单

voidmenuin(STUDENT*data,int*len)

{charctrl_ch;

system("cls");

printf("输入信息");

printf("\n\n\n\

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2