学生成绩记录簿簿设计源程序.docx
- 文档编号:24383876
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:24
- 大小:19.37KB
学生成绩记录簿簿设计源程序.docx
《学生成绩记录簿簿设计源程序.docx》由会员分享,可在线阅读,更多相关《学生成绩记录簿簿设计源程序.docx(24页珍藏版)》请在冰豆网上搜索。
学生成绩记录簿簿设计源程序
学生成绩记录簿设计程序
//
(1).头文件,对要调用的系统函数的声明
#include
#include
#include
#include
#defineN8//N为学生结构体的总数
structstudent//学生结构体
{
longnum;
charname[20];
intscore[4];
intsum;
};
structstudentstu[N];
intpl=0;//定义两个全变量,学生总数变量和增加的学生变量
intt=1;
//
(2).定义无参函数
voids();//主菜单
/*以下为定义无参函数*/
voidsave();//输入并保存
voidsav();//保存
voidshow();//显示
voiddelet();//删除
voidpreside();//分段
voidfint();//查找
voidchange();//修改
voidadd();//添加
voidoutput();//退出
voiddeleta();//学号查找后——删除(新增功能)
voiddeletb();//姓名查找后——删除(新增功能)
voidfinta();//学号查找
voidfintb();//姓名查找
voidchangea();//按学号改
voidchangeb();//按姓名改
voidarrange();//排序
//(3).主函数.
voidmain()//主函数
{
system("cls");
s();
}
//(4).显示菜单函数.
voids()
{
intselect,w;chark;//定义变量
system("cls");
printf("\n\t\tO(∩_∩)O学生成绩记录簿O(∩_∩)O\n\t\t\t程序创作者\n\t\t\t电子信息工程学院电气六班\n\t\t\t张三VS李四\n");//以下显示主菜单
printf("\t————————————————————————\n\n");
printf("\t\t\t1.文件保存.\t2.显示输出.\t\n\n\t\t\t3.查询成绩.\t4.添加成绩.\n\n\t\t\t5.修改成绩.\t6.分段显示.\n\n\t\t\t7.删除成绩.\t8.退出程序\n\n");
printf("\t\t请选择(按1--8任意数字键):
\n");
scanf("%d",&select);
switch(select)
{case1:
save();break;//以下是选怿执行菜单上的哪个函数
case2:
show();break;
case3:
fint();break;
case4:
add();break;
case5:
change();break;
case6:
preside();break;
case7:
delet();break;
case8:
output();break;
default:
w=1;
}
if(w==1)
{printf("输入有误,按任意键重新选怿.\n");
k=getchar();
getch();
s();
}
}
//(5)保存函数,被调用
voidsav()
{
FILE*fp;
inti;
if((fp=fopen("stu_list","wb"))==NULL)
{
printf("cannotopenfile\n");
return;
}
for(i=0;i if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } //(6)文件函数,将输入信息保存 voidsave()//该函数为输入函数 { intx,l,count=0,i,sum;charw,o,m,n;structstudent*p;//定义变量和指向结构体的指针变量 system("cls"); p=stu;//p指向结构体变量stu[N] printf("\t\t\t学生信息的录入.\n"); do{ pl++; printf("请输入第%d个学生的信息.\n\n",t);//逐个步骤的实现学生信息的输入 printf("学号: \n");scanf("%ld",&p->num);printf("\n"); printf("姓名: \n");scanf("%s",p->name);printf("\n"); printf("四门成绩: 1.平时成绩.2.试验成绩.3.设计成绩4.期末成绩.\n"); for(i=0;i<4;i++) scanf("%d",&p->score[i]); sum=(p->score[0])*0.10+(p->score[1])*0.15+(p->score[2])*0.15+(p->score[3])*0.60;//总分 p->sum=sum; printf("sum为%d",sum); printf("\n\n是否要继续输入学生信息,如果是请按y;不是请按n.\n"); o=getchar();//接收回车键 w=getchar(); if(w=='y'||w=='Y')//选怿是否输入更多的学生 { t++; x=1; p++; } else x=0; }while(x==1); if(w=='n'||w=='N') { printf("\n\n是否保存输入的信息,如果是请按y;不是请按n.\n"); m=getchar(); n=getchar(); if(n=='y'||n=='Y')sav(); if(n=='n'||n=='N')l=1; printf("按任意键返回.\n"); getch(); s(); } } //(7)显示输入的成绩 voidshow() { inti,j; FILE*fp; system("cls"); fp=fopen("stu_list","rb"); i=0; while (1) { if(fread(&stu[i],sizeof(structstudent),1,fp)==0)break; printf("学号\t姓名"); printf("平时成绩实验成绩设计成绩期末成绩总分\n"); printf("%-10d%-11s",stu[i].num,stu[i].name); for(j=0;j<4;j++) printf("%-12d",stu[i].score[j]); printf("%-12d",stu[i].sum); printf("\n\n\n"); } fclose(fp); printf("\n按任意键返回"); fflush(stdin); getch(); s(); } //(8).对学生信息的查找。 voidfint()//对学生信息的查找。 { inti,m;chare; system("cls"); printf("\n\n\n\t\t\t请选择用哪种方式进行查找.\n"); printf("\n\n\n\t\t1.学号.\n\n\n\t\t2.姓名.\n\n\n\t\t"); fflush(stdin); scanf("%d",&i);//输入是用姓名查找还是用学号查找 switch(i) { case1: finta();break; case2: e=getchar();fintb();break; default: m=1; } if(m==1) printf("输入有误,请按任意键返回.\n"); fflush(stdin); getch(); s(); } //(9).查找函数(用学号进行查找) voidfinta()//查找函数(用学号进行查找)。 { inti,j=t;longnum_a;structstudent*p;chara,b; system("cls"); printf("\n\n\t\t\t请输入要查找的学生学号: \n\t\t"); scanf("%ld",&num_a);//输入要查找学生的学号 for(p=stu;p { j--;if(p->num==num_a)break;//判断该学生是否存在 if(j==0) { printf("\n\n\t\t-_-|||不存在该学生,请按任意键返回.........\n\n"); a=getchar(); getch(); s(); } } printf("\n\t\t你要查找的学生为: \n\n");//以下对已查找出的学生的显示 printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n\n","学号","姓名","平时成绩","试验成绩","设计成绩","期末成绩","总分"); printf("%-10ld%-10s",p->num,p->name); for(i=0;i<4;i++) printf("%-10d",p->score[i]); printf("%-10d",p->sum); printf("\n\n\n\t\t\t查找完成,请按任意键返回......"); b=getchar(); getch(); s(); } //(10).查找(用姓名查找) voidfintb()//查找(用姓名查找)。 { charname_b[20];intj=t,i;structstudent*p; system("cls"); printf("\n\t\t\t请输入要查找的学生姓名: \n\t\t\t"); gets(name_b);//输入姓名 for(p=stu;p {j--;if(strcmp(p->name,name_b)==0)break;//判断是否存在该学生 if(j==0) { printf("\n\n\t\t\t-_-|||不存在该学生,请按任意键返回......\n"); getch(); s(); } } printf("\n\t\t\t你要查找的学生为: \n\n");//显示已找出的学生 printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n\n","学号","姓名","数学","语文","英语","平均分","总分"); printf("%-8ld%-8s",p->num,p->name); for(i=0;i<4;i++) printf("%-8d",p->score[i]); printf("%-8d",p->sum); printf("\n\n\n\n\t查找完成,请按任意键返回.........."); getch(); s(); } //11,添加函数 voidadd() { inti,j,m=0; intl; charr,n; FILE*fp; structstudent*p; system("cls"); printf("%-10s%-10s%-11s%-11s%-10s%-12s%-10s\n\n","学号","姓名","平时成绩","试验成绩","设计成绩","期末成绩","总分"); fp=fopen("stu_list","rb"); for(i=0;i { fread(&stu[i],sizeof(structstudent),1,fp); printf("%-10d%-10s",stu[i].num,stu[i].name); for(j=0;j<4;j++) printf("%-12d",stu[i].score[j]); printf("%-12d",stu[i].sum); printf("\n\n"); m++; } fclose(fp); p=stu+t; printf("输入添加者的信息\n"); printf("学号: \n"); scanf("%ld",&p->num); printf("\n"); printf("姓名: \n"); scanf("%s",p->name); printf("\n"); printf("四门成绩: 1.平时成绩.2.试验成绩.3.设计成绩4.期末成绩.\n"); for(i=0;i<4;i++) scanf("%d",&p->score[i]); p->sum=(p->score[0])*0.10+(p->score[1])*0.15+(p->score[2])*0.15+(p->score[3])*0.60;//总分 printf("\n\n是否保存添加的信息,如果是请按y;不是请按n.\n"); r=getchar(); n=getchar(); t=t+1; if(n=='y'||n=='Y')sav(); if(n=='n'||n=='N')l=1; printf("\n按任意键返回"); arrange(); } //(12).对学生信息的修改。 voidchange()//对学生信息的修改。 { inti,m;chare; system("cls"); printf("\t\t\t请选择用哪种方式进行修改.\n"); printf("\n\n\t\t1.查找学号.\n\n\n\t\t2.查找姓名.\n\n\n\t\t"); scanf("%d",&i);//输入是用姓名查找还是用学号修改 switch(i) { case1: changea();break; case2: e=getchar();changeb();break; default: m=1; } if(m==1) printf("输入有误,请按任意键返回.\n"); getch(); s(); } //(13).修改函数(用学号进行查找修改) voidchangea()//查找函数(用学号进行查找修改)。 { inti,j=t; charm,n; longnum_a;structstudent*p;chara,b; system("cls"); printf("\n\n\n\t\t\t请输入要修改的学生学号: \n\n\t\t"); scanf("%ld",&num_a);//输入要修改学生的学号 for(p=stu;p { j--;if(p->num==num_a)break;//判断该学生是否存在 if(j==0) { printf("\n\n\t\t-_-|||不存在该学生,请按任意键返回.........\n\n"); a=getchar(); getch(); s(); } } printf("\n\n\t\t你要修改的学生为: \n\n");//以下对已查找出的学生的显示 printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n\n","学号","姓名","平时成绩","试验成绩","设计成绩","期末成绩","总分"); printf("%-10ld%-10s",p->num,p->name); for(i=0;i<4;i++) printf("%-12d",p->score[i]); printf("%-12d",p->sum); printf("\n"); printf("输入要修改的信息\n"); printf("学号: \n");scanf("%ld",&p->num);printf("\n"); printf("姓名: \n");scanf("%s",p->name);printf("\n"); printf("四门成绩: 1.平时成绩.2.试验成绩.3.设计成绩4.期末成绩.\n"); for(i=0;i<4;i++) scanf("%d",&p->score[i]); p->sum=(p->score[0])*0.10+(p->score[1])*0.15+(p->score[2])*0.15+(p->score[3])*0.60;//总分 printf("修改完毕,是否保存,如果是请按y;不是请按n.\n"); m=getchar(); n=getchar(); if(n=='y'||n=='Y')sav(); if(n=='n'||n=='N') printf("\n\n\n\t\t\t修改完成,请按任意键返回......"); b=getchar(); getch(); s(); } //(14).修改函数(用姓名查找修改) voidchangeb() { charname_b[20]; intj=t,i; intsum; charm,n; structstudent*p; system("cls"); printf("\n\t\t\t请输入要修改的学生姓名: \n\n\t\t\t"); gets(name_b);//输入姓名 for(p=stu;p { j--;if(strcmp(p->name,name_b)==0)break;//判断是否存在该学生 if(j==0) { printf("\n\n\n\t\t\t-_-|||不存在该学生,请按任意键返回......\n"); getch(); s(); } } printf("\n\n\t\t\t你要修改的学生为: \n\n");//显示已找出的学生 printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n\n","学号","姓名","数学","语文","英语","平均分","总分"); printf("%-8ld%-8s",p->num,p->name); for(i=0;i<4;i++) printf("%-10d",p->score[i]); printf("%-10d",p->sum); printf("\n"); printf("输入要修改的信息\n"); printf("学号: \n");scanf("%ld",&p->num);printf("\n"); printf("姓名: \n");scanf("%s",p->name);printf("\n"); printf("四门成绩: 1.平时成绩.2.试验成绩.3.设计成绩4.期末成绩.\n"); for(i=0;i<4;i++) scanf("%d",&p->score[i]); p->sum=(p->score[0])*0.10+(p->score[1])*0.15+(p->score[2])*0.15+(p->score[3])*0.60;//总分 printf("修改完毕,是否保存,如果是请按y;不是请按n.\n"); m=getchar(); n=getchar(); if(n=='y'||n=='Y')sav(); printf("\n\n\n\n\t修改完成,请按任意键返回.........."); if(n=='n'||n=='N')i=0; getch(); s(); } //15.分段显示总成绩在不同区间段的学生信息 voidpreside() { intj; structstudent*p; system("cls"); printf("\t\t\t分段显示总成绩在不同区间段的学生信息\n\n"); printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","学号","姓名","平时成绩","试验成绩","设计成绩","期末成绩","总分"); printf("\n\n"); printf("总分在60分以下\n\n"); for(p=stu;p if(p->sum<60) { printf("%-8ld%-8s",p->num,p->name); for(j=0;j<4;j++) printf("%-8d",p->score[j]); printf("%-8d",p->sum); printf("\n\n"); } printf("总分在60分到79分\n\n"); for(p=stu;p { if((p->sum)<79&&(p->sum)>=60) { printf("%-8ld%-8s",p->num,p->name); for(j=0;j<4;j++) printf("%-8d",p->score[j]); printf("%-8d",p->sum); printf("\n\n"); } } printf("总分在80分到89分\n\n"); for(p=stu;p { if((p->sum)<89&&(p->sum)>=80) { printf("%-8ld%-8s",p->num,p->name); for(j=0;j<4;j++) printf("%-8d",p->score[j]); printf("%-8d",p->sum); printf("\n\n"); } } printf("总分90分以上\n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 记录簿 设计 源程序