C语言设计.docx
- 文档编号:10292923
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:14
- 大小:16.25KB
C语言设计.docx
《C语言设计.docx》由会员分享,可在线阅读,更多相关《C语言设计.docx(14页珍藏版)》请在冰豆网上搜索。
C语言设计
#include
#include
#include
structstudent
{
intnum;
charname[100];
charsex[100];
intqsnum;
intdhnum;
}stu[100];//建立学生基本信息结构体
structStudent
{
intnum;
intkcnum;
charkcmc[100];
intxf;
intpscj;
intsycj;
intjmcj;
intzhcj;
floatsdxf;
}Stu[100];//建立学生课程情况结构体
voidSJLR()
{
inti=0,n=0;
char*s=0;
printf("请输入数据录入的人数\n");//确定录入学生人数,本程序为8人
scanf("%d",&n);
printf("请录入\n");
printf("学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分\n");
printf("------------------------------------------------------------------------\n");
for(i=0;i { scanf("%d",&Stu[i].num); scanf("%d",&Stu[i].kcnum); scanf("%s",Stu[i].kcmc); scanf("%d",&Stu[i].xf); scanf("%d",&Stu[i].pscj); scanf("%d",&Stu[i].sycj); scanf("%d",&Stu[i].jmcj); if(Stu[i].sycj==-1)//判断是否有实验成绩 Stu[i].zhcj=Stu[i].pscj*0.3+Stu[i].jmcj*0.7; elseStu[i].zhcj=Stu[i].sycj*0.15+Stu[i].pscj*0.15+Stu[i].jmcj*0.7;//根据录入情况计算综合成绩 if(Stu[i].zhcj<60) Stu[i].sdxf=Stu[i].xf*0; elseif(Stu[i].zhcj<70) Stu[i].sdxf=Stu[i].xf*0.6; elseif(Stu[i].zhcj<80) Stu[i].sdxf=Stu[i].xf*0.75; elseif(Stu[i].zhcj<90) Stu[i].sdxf=Stu[i].xf*0.8; elseif(Stu[i].zhcj<=100) Stu[i].sdxf=Stu[i].xf*1;//根据录入情况计算实得学分 printf("------------------------------------------------------------------------\n"); } } voidCR() { inti; FILE*fp;; fp=fopen("D: \\c语言任鹍\\学生基本信息.txt","r");//打开事先录入好的学生基本信息文本文件 if(! fp) printf("Openerror\n"); for(i=0;i<50&&! feof(fp);i++) fscanf(fp,"%d%s%s%d%d",&stu[i].num,stu[i].name,stu[i].sex,&stu[i].qsnum,&stu[i].dhnum);//将信息倒入学生基本信息结构体 } voidSearchJB() { inti=0; intk; printf("请输入要查找的学生学号: \n"); scanf("%d",&k); for(i=0;i<100;i++) if(stu[i].num==k)//查找与录入学号匹配的学生学号 printf("学号%d姓名%s性别%s宿舍号码%d电话号码%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].qsnum,stu[i].dhnum);//输出查询学生基本信息 else;//不执行语句 } voidSearchJB1() { inti=0; chark[100]; printf("请输入要查找的学生姓名: \n"); scanf("%s",k); for(i=0;i<100;i++) if(strcmp(stu[i].name,k)==0)//查找与录入姓名匹配的学生姓名 printf("学号%d姓名%s性别%s宿舍号码%d电话号码%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].qsnum,stu[i].dhnum);//输出查询学生基本信息 else;//不执行语句 } voidSearchJB2() { inti=0; intk; printf("请输入要查找的宿舍号码: \n"); scanf("%d",&k); for(i=0;i<100;i++) if(stu[i].qsnum==k)//查找与录入宿舍号码匹配的宿舍号码 printf("学号%d姓名%s性别%s宿舍号码%d电话号码%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].qsnum,stu[i].dhnum);//输出查询宿舍学生基本信息 else; } voidSearchKC() { inti=0,p=0; floatj=0; intk; printf("请输入要查找的学生学号: \n"); scanf("%d",&k); for(i=0;i<100;i++) {if(Stu[i].num==k)//查找与录入学号匹配的学生学号 {j+=Stu[i].sdxf;//累加实得学分 p++;//累加所学课程数目 printf("学号%d姓名%s\n",Stu[i].num,stu[i].name); printf("课程编号%d课程名称%s综合成绩%d实得学分%f\n",Stu[i].kcnum,Stu[i].kcmc,Stu[i].zhcj,Stu[i].sdxf);//输出查询学生课程情况 } else; } printf("共修%d科实得总学分为%f\n",p,j);//输出查询学生课程情况 } voidDelete() {inti,k,j; printf("请输入需要删除学生的学号: "); scanf("%d",&k); for(i=0;i<100;i++)//将需要删除的学生基本信息覆盖 { if(stu[i].num==k) for(j=i;j<100;j++) stu[j]=stu[j+1]; } } voidsave1() {FILE*fp; inti; freopen("学生基本信息.txt","w",stdout);//将需要的学生基本信息写入目标文本 return; for(i=0;i<100;i++) if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) printf("filewriteerror\n"); fclose(fp);//关闭文本 } voidDelete1() {inti,k,j; printf("请输入需要删除学生的学号: "); scanf("%d",&k); for(i=0;i<100;i++)//将需要删除的学生课程情况覆盖 { if(Stu[i].num==k) for(j=i;j<100;j++) Stu[j]=Stu[j+1]; } } voidsave2() {FILE*fp; inti; freopen("B.txt","w",stdout);//将需要的学生课程情况写入目标文本 return; for(i=0;i<100;i++) if(fwrite(&Stu[i],sizeof(structStudent),1,fp)! =1) printf("filewriteerror\n"); fclose(fp);//关闭文本 } voidOrder() {inti,j; for(i=0;i<8;i++) for(j=0;j<(8-i);j++) if(Stu[j].zhcj {Studenttemp=Stu[j]; Stu[j]=Stu[j+1]; Stu[j+1]=temp;//降序排列 } } voidOrder1() {inti,j; for(i=0;i<8;i++) for(j=0;j<(8-i);j++) if(Stu[j].sdxf {Studenttemp=Stu[j]; Stu[j]=Stu[j+1]; Stu[j+1]=temp;//降序排列 } } voidmenu() {intn,m,i,j;//作为if判断的几个变量 CR();//存入学生基本信息 printf("\n\n\n\n\n"); printf("**************************************************\n"); printf("*************欢迎使用学生学籍管理系统*************\n"); printf("*主菜单*\n"); printf("**\n"); printf("*1.数据录入功能*\n"); printf("*2.查询功能*\n"); printf("*3.删除基本信息功能*\n"); printf("*4.删除学习信息功能*\n"); printf("*5.排序功能*\n"); printf("*6.退出系统*\n"); printf("**\n"); printf("*制作: 任鹍05115121*\n"); printf("*张心宇05115122*\n"); printf("**************************************************\n"); printf("**************************************************\n"); printf("请输入选择项(1~5): "); scanf("%d",&n); if(n==1) {SJLR();//手动录入学生课程情况 printf("*1.返回*\n"); printf("*2.结束*\n"); printf("请输入选择项(1~2): "); scanf("%d",&j); if(j==1)menu();//返回菜单 if(j==2)exit(0);//退出 } if(n==2) {printf("*1.学号查基本信息*\n"); printf("*2.姓名查基本信息*\n"); printf("*3.宿舍号码查本室学生*\n"); printf("*4.学号查课程情况*\n"); printf("请输入选择项(1~4): "); scanf("%d",&m); if(m==1) {SearchJB();//学号查询学生基本信息 printf("*1.返回*\n"); printf("*2.结束*\n"); printf("请输入选择项(1~2): "); scanf("%d",&j); if(j==1)menu();//返回菜单 if(j==2)exit(0);//退出 } if(m==2) {SearchJB1();//姓名查询学生基本信息 printf("*1.返回*\n"); printf("*2.结束*\n"); printf("请输入选择项(1~2): "); scanf("%d",&j); if(j==1)menu();//返回菜单 if(j==2)exit(0);//退出 } if(m==3) {SearchJB2();//宿舍号码查询宿舍人员基本信息 printf("*1.返回*\n"); printf("*2.结束*\n"); printf("请输入选择项(1~2): "); scanf("%d",&j); if(j==1)menu();//返回菜单 if(j==2)exit(0);//退出 } if(m==4) {SearchKC();//学号查询学生课程情况 printf("*1.返回*\n"); printf("*2.结束*\n"); printf("请输入选择项(1~2): "); scanf("%d",&j); if(j==1)menu();//返回菜单 if(j==2)exit(0);//退出 } } if(n==3) {Delete();//删除学生基本信息 save1();//保存学生基本信息至文本文件 printf("学号姓名性别宿舍号码电话号码\n"); for(i=0;i<7;i++) {printf("%d%s%s%d%d",stu[i].num,stu[i].name,stu[i].sex,stu[i].qsnum,stu[i].dhnum); printf("\n"); } } if(n==4) {Delete1();//删除学生课程情况 save2();//保存学生课程情况至文本文件 printf("学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分\n"); for(i=0;i<7;i++) {printf("%d%d%s%d%d%d%d%d%f",Stu[i].num,Stu[i].kcnum,Stu[i].kcmc,Stu[i].xf,Stu[i].pscj,Stu[i].sycj,Stu[i].jmcj,Stu[i].zhcj,Stu[i].sdxf); printf("\n"); } } if(n==5) {printf("*1.按综合成绩排序*\n"); printf("*2.按实得学分排序*\n"); printf("请输入选择项(1~2): "); scanf("%d",&m); if(m==1) {Order();//按照综合成绩降序排列学生课程情况 for(i=0;i<8;i++) {printf("%d%d%s%d%d%d%d%d%f",Stu[i].num,Stu[i].kcnum,Stu[i].kcmc,Stu[i].xf,Stu[i].pscj,Stu[i].sycj,Stu[i].jmcj,Stu[i].zhcj,Stu[i].sdxf); printf("\n"); } printf("*1.返回*\n"); printf("*2.结束*\n"); printf("请输入选择项(1~2): "); scanf("%d",&j); if(j==1)menu();//返回菜单 if(j==2)exit(0);//退出 } if(m==2) {Order1();//按照实得学分降序排列学生课程情况 for(i=0;i<8;i++) {printf("%d%d%s%d%d%d%d%d%f",Stu[i].num,Stu[i].kcnum,Stu[i].kcmc,Stu[i].xf,Stu[i].pscj,Stu[i].sycj,Stu[i].jmcj,Stu[i].zhcj,Stu[i].sdxf); printf("\n"); } printf("*1.返回*\n"); printf("*2.结束*\n"); printf("请输入选择项(1~2): "); scanf("%d",&j); if(j==1)menu();//返回菜单 if(j==2)exit(0);//退出 } } if(n==6) exit(0);//退出 } intmain()//主函数(任鹍制作) {voidmenu();//菜单函数(张心宇制作) voidSJLR();//手动录入学生成绩函数(任鹍制作) voidCR();//将文本文件中学生基本数据导入结构体(任鹍制作) voidSearchJB();//学号查询学生基本信息(张心宇制作) voidSearchJB1();//姓名查询学生基本信息(张心宇制作) voidSearchJB2();//宿舍号码查询宿舍人员基本信息(张心宇制作) voidSearchKC();//学号查询学生课程情况(张心宇制作) voidDelete();//删除学生基本信息(任鹍制作) voidsave1();//保存学生基本信息至文本文件(张心宇制作) voidDelete1();//删除学生课程情况(任鹍制作) voidsave2();//保存学生课程情况至文本文件(张心宇制作) voidOrder();//按照综合成绩降序排列学生课程情况(任鹍制作) voidOrder1();//按照实得学分降序排列学生课程情况(任鹍制作) menu();//运行菜单函数 return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 设计