0


学生成绩管理系统(C语言版)

大一上学期实训项目总结(学生成绩管理系统)

大一刚接触这个计算机专业的相关知识,就觉得这个专业很有趣。最先接触的编程语言就是C语言,想必大多数人都是如此吧。我们这个学期末,也就是期末考试结束后,开始这个实训。我也是第一次听说实训这个东西,当然可能这个实训也主要针对我们计算机专业的学生。
我们这次实训历时5天,是由公司请来的专业人员给我们进行指导的。前面几天时进行C语言基础知识的复习与巩固,后面两天就是给每个组时间,进行实训项目的制作。我们组选择的是学生成绩管理系统,这个也是比较常见的项目,有些组选择的是贪吃蛇等等。
下面给图片展示我们组的实训项目图片:
1 登录界面(确实挺简陋的)
在这里插入图片描述
2 功能界面
在这里插入图片描述
3 录入学生信息图片

在这里插入图片描述

4 查询信息示例图片
在这里插入图片描述
5 显示学生信息示例图片
在这里插入图片描述
6 退出界面
在这里插入图片描述
最后上代码,这是我们组这几天的实训成果,希望点个赞,谢谢啦。

#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<dos.h>#include<string.h>#define LEN sizeof(struct student)#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf%-12.1f\n"#define DATA stu[i].num,stu[i].name,stu[i].cyy,stu[i].dlfx,stu[i].gs,stu[i].yy,stu[i].jdstruct student
{int num;char name[15];double cyy;double dlfx;double gs;double yy;double jd;};struct student stu[51];voiddenglujiemian();voidmenu1();voidmenu2();voidin();voidsearch();voiddel();voidmodify();voidinsert();voidorder();voidtotal();voidshow();voidflunk();voiddenglujiemian();intmain(){system("color e3\n");int n;char w;printf("***欢***迎***进***入***学***生***成***绩***管***理***系***统***");printf("请选择进入模式:\n如果选择老师模式请输入“A”,选择学生模式请按“B”。");scanf("%c",&w);if(w=='A'){menu2();scanf("%d",&n);while(n){switch(n){case1:in();break;case2:search();break;case3:del();break;case4:modify();break;case5:insert();break;case6:order();break;case7:total();break;case8:flunk();break;case9:show();break;default:break;}printf("输入任意键将返回主菜单\n");getch();menu2();scanf("%d",&n);}}elseif(w=='B'){menu1();scanf("%d",&n);while(n){switch(n){case1:search();break;case2:order();break;case3:total();break;case4:flunk();break;case5:show();break;default:break;}printf("输入任意键将返回主菜单\n");getch();menu1();scanf("%d",&n);}}else{printf("错误!!!请重新输入");}}voidin(){int i,m=0;char ch[2];
      FILE *fp;if((fp=fopen("data1.txt","a+"))==NULL){printf("文件不存在!\n");return;}while(!feof(fp)){if(fread(&stu[m],LEN,1,fp)==1){
              m++;}}fclose(fp);if(m==0){printf("文件中没有记录!\n");}else{show();}if((fp=fopen("data1.txt","ab+"))==NULL){printf("文件不存在!\n");return;}printf("输入学生信息(y/n):");scanf("%s",ch);while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){printf("学号:");scanf("%d",&stu[m].num);for(i=0;i<m;i++)if(stu[i].num==stu[m].num){printf("该序号已经存在了,按任意键继续!");getch();fclose(fp);return;}printf("姓名:");scanf("%s",stu[m].name);printf("C语言:");scanf("%lf",&stu[m].cyy);printf("电路分析:");scanf("%lf",&stu[m].dlfx);printf("高等数学:");scanf("%lf",&stu[m].gs);printf("大学英语:");scanf("%lf",&stu[m].yy);
         stu[m].jd=stu[m].cyy/10-5+stu[m].dlfx/10-5+stu[m].gs/10-5+stu[m].yy/10-5;if(fwrite(&stu[m],LEN,1,fp)!=1){printf("不能保存!");getch();}else{printf("%s 被保存!\n",stu[m].name);
             m++;}printf("继续?(y/n):");scanf("%s",ch);}fclose(fp);printf("OK!\n");}voidshow(){
    FILE *fp;int i,m=0;
      fp=fopen("data1.txt","rb");while(!feof(fp)){if(fread(&stu[m],LEN,1,fp)==1)
           m++;}fclose(fp);printf("学号    姓名          C语言       电路分析    高等数学    大学英语    总绩点\t\n");for(i=0;i<m;i++){printf(FORMAT,DATA);}}voidmenu2(){system("cls");printf("\n\n\n\n");printf("\t\t|---------------学生成绩管理系统---------------|\n");printf("\t\t|\t\t\t\t\t       |\n");printf("\t\t|\t\t 1. 录入学生成绩\t       |\n");printf("\t\t|\t\t 2. 查找学生信息\t       |\n");printf("\t\t|\t\t 3. 删除学生信息\t       |\n");printf("\t\t|\t\t 4. 修改学生信息\t       |\n");printf("\t\t|\t\t 5. 插入学生信息\t       |\n");printf("\t\t|\t\t 6. 按总绩点排序\t       |\n");printf("\t\t|\t\t 7. 统计学生总数\t       |\n");printf("\t\t|\t\t 8. 显示挂科学生信息\t       |\n");printf("\t\t|\t\t 9. 显示所有学生信息\t       |\n");printf("\t\t|\t\t 0. 退出系统\t\t       |\n");printf("\t\t|\t\t\t\t\t       |\n");printf("\t\t|----------------------------------------------|\n\n");printf("\t\t\t\t\t\t\t制作团队:第二组\n");printf("\t\t\t请选择(0-9):");}voidmenu1(){system("cls");printf("\n\n\n\n");printf("\t\t|---------------学生成绩管理系统---------------|\n");printf("\t\t|\t\t\t\t\t       |\n");printf("\t\t|\t\t 1. 查找学生信息\t       |\n");printf("\t\t|\t\t 2. 按总绩点排序\t       |\n");printf("\t\t|\t\t 3. 统计学生总数\t       |\n");printf("\t\t|\t\t 4. 显示挂科学生信息\t       |\n");printf("\t\t|\t\t 5. 显示所有学生信息\t       |\n");printf("\t\t|\t\t 0. 退出系统\t\t       |\n");printf("\t\t|\t\t\t\t\t       |\n");printf("\t\t|----------------------------------------------|\n\n");printf("\t\t\t\t\t\t\t制作团队:第二组\n");printf("\t\t\t请选择(0-5):");}voidorder(){
    FILE *fp;struct student t;int i=0,j=0,m=0;if((fp=fopen("data1.txt","r+"))==NULL){printf("文件不存在!\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)
          m++;fclose(fp);if(m==0){printf("文件中没有记录!\n");return;}if((fp=fopen("data1.txt","wb"))==NULL){printf("文件不存在!\n");return;}for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(stu[i].jd<stu[j].jd){
              t=stu[i];stu[i]=stu[j];stu[j]=t;}if((fp=fopen("data1.txt","wb"))==NULL){printf("文件不存在!\n");return;}for(i=0;i<m;i++)if(fwrite(&stu[i],LEN,1,fp)!=1){printf("%s 不能保存文件!\n");getch();}fclose(fp);printf("保存成功\n请返回选项9查看排名\n");}voiddel(){
    FILE *fp;int snum,i,j,m=0,n=0;char ch[2];if((fp=fopen("data1.txt","r+"))==NULL){printf("文件不存在!\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1) m++;fclose(fp);if(m==0){printf("文件中没有记录!\n");return;}printf("请输入学生学号");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==stu[i].num){printf("找到了这条记录,是否删除?(y/n)");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){for(j=i;j<m;j++)
                  stu[j]=stu[j+1];
                  m--;if((fp=fopen("data1.txt","wb"))==NULL){printf("文件不存在\n");return;}for(j=0;j<m;j++)if(fwrite(&stu[j],LEN,1,fp)!=1){printf("can not save!\n");getch();}fclose(fp);printf("删除成功!\n");}else{printf("找到了记录,选择不删除!");}break;}else{
            n++;}if(n==m)printf("没有找到记录!\n");}voidsearch(){
    FILE *fp;int snum,i,m=0;if((fp=fopen("data1.txt","rb"))==NULL){printf("文件不存在!\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)
      m++;fclose(fp);if(m==0){printf("文件中没有记录!\n");return;}printf("请输入学号:");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==stu[i].num){printf("学号    姓名          C语言       电路分析    高等数学    大学英语    总绩点\t\n");printf(FORMAT,DATA);break;}if(i==m)printf("没有找到这名学生!\n");}voidmodify(){
      FILE *fp;struct student t;int i=0,j=0,m=0,snum;if((fp=fopen("data1.txt","r+"))==NULL){printf("文件不存在!\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)
            m++;if(m==0){printf("文件中没有记录!\n");fclose(fp);return;}show();printf("请输入要修改的学生学号: ");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==stu[i].num){printf("找到了这名学生,可以修改他的信息!\n");printf("姓名:");scanf("%s",stu[i].name);printf("C语言:");scanf("%lf",&stu[i].cyy);printf("电路分析:");scanf("%lf",&stu[i].dlfx);printf("高等数学:");scanf("%lf",&stu[i].gs);printf("大学英语:");scanf("%lf",&stu[i].yy);printf("修改成功!");
              stu[i].jd=(stu[i].cyy+stu[i].dlfx+stu[i].gs+stu[i].yy)/10-20;if((fp=fopen("data1.txt","wb"))==NULL){printf("can not open\n");return;}for(j=0;j<m;j++)if(fwrite(&stu[j],LEN,1,fp)!=1){printf("can not save!");getch();}fclose(fp);break;}if(i==m)printf("没有找到这名学生!\n");}voidinsert(){
    FILE *fp;int i,j,k,m=0,snum;if((fp=fopen("data1.txt","r+"))==NULL){printf("文件不存在!\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)
         m++;if(m==0){printf("文件中没有记录!\n");fclose(fp);return;}printf("请输入要插入的位置(学号):\n");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==stu[i].num)break;for(j=m-1;j>i;j--)
               stu[j+1]=stu[j];printf("现在请输入要插入的学生信息.\n");printf("序号:");scanf("%d",&stu[i+1].num);for(k=0;k<m;k++)if(stu[k].num==stu[m].num){printf("该学号已经存在,按任意键继续!");getch();fclose(fp);return;}printf("姓名:");scanf("%s",stu[i+1].name);printf("C语言:");scanf("%lf",&stu[i+1].cyy);printf("电路分析:");scanf("%lf",&stu[i+1].dlfx);printf("高等数学:");scanf("%lf",&stu[i+1].gs);printf("大学英语:");scanf("%lf",&stu[i+1].yy);
          stu[i+1].jd=(stu[i+1].cyy+stu[i+1].dlfx+stu[i+1].gs+stu[i+1].yy)/10-20;printf("插入成功!按任意键返回主界面!");if((fp=fopen("data1.txt","wb"))==NULL){printf("不能打开!\n");return;}for(k=0;k<=m;k++)if(fwrite(&stu[k],LEN,1,fp)!=1){printf("不能保存!");getch();}fclose(fp);}voidtotal(){
    FILE *fp;int m=0;if((fp=fopen("data1.txt","r+"))==NULL){printf("文件不存在!\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)
              m++;if(m==0){printf("no record!\n");fclose(fp);return;}printf("这个班级一共有 %d 名学生!\n",m);fclose(fp);}voidflunk(){
    FILE *fp;int i,m=0;
    fp=fopen("data1.txt","rb");while(!feof(fp)){if(fread(&stu[m],LEN,1,fp)==1)
           m++;}fclose(fp);printf("学号    姓名          C语言       电路分析    高等数学    大学英语    总绩点\t\n");for(i=0;i<m;i++){if(stu[i].dlfx<60||stu[i].cyy<60||stu[i].gs<60||stu[i].yy<60)printf(FORMAT,DATA);}}
标签: c语言

本文转载自: https://blog.csdn.net/zhimingdaye/article/details/110784853
版权归原作者 Mr.wu123 所有, 如有侵权,请联系我们删除。

“学生成绩管理系统(C语言版)”的评论:

还没有评论