| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1833 人关注过本帖
标题:c语言编程 学生成绩管理系统求助!
只看楼主 加入收藏
a2427471447
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-12-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
c语言编程 学生成绩管理系统求助!
图片附件: 游客没有浏览图片的权限,请 登录注册
程序要求如图, 求高手帮忙编译一个!!!!
搜索更多相关主题的帖子: c语言 编程 学生 成绩 管理系统 
2017-12-25 21:10
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
搜索一下“学生成绩管理”应该有不少
2017-12-25 21:21
a2427471447
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-12-25
收藏
得分:0 
回复 2楼 吹水佬
没有类似的
2017-12-25 23:49
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用a2427471447在2017-12-25 23:49:51的发言:

 没有类似的

可参考的总有吧?变通一下就可以。
变来变去无非也是几个动作:添加(创建、读入)、编辑(修改)、查找(搜索)、索引(排序)、显示(列印)和保存
2017-12-26 06:15
ming46494583
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2017-12-25
收藏
得分:10 
#include<stdio.h>
#include<windows.h>
 #include<string.h>
 #include<stdlib.h>
#include<conio.h>
 #include<time.h>
 
#define LEN sizeof(struct student)/*student 结构体所占字节数*/
 #define DATA stu[i].num,stu[i].name,stu[i].c,stu[i].m,stu[i].sum/*设置显示内容*/
 #define FORMAT "%d  %s  %.2lf   %.2lf   %.2lf   %.2lf\n"/*设置显示格式*/
#define N 39
 
float Fc,Fm,Fe;/*全局变量:C 语言成绩,高数成绩,英语成绩*/ struct student
 
{     int num;/*学号*/     char name[39];/*姓名*/     double c;/*C 语言课程成绩*/     double m;/*高数课程成绩*/     double e;/*英语课程成绩*/     double sum;/*总分*/ }stu[N]; char mi[6]="123567";/*此变量用于存储登陆密码,后期可根据具体情况进行完善*/
 
void in();/*录入学生成绩信息*/ void color();/*设置界面颜色*/ void show();/*显示学生信息*/ void order();/*按总分排序*/ void del();/*删除学生成绩信息*/ void modify();/*修改学生成绩信息*/ void menu();/*主菜单*/ void total();/*计算总人数*/ void search();/*查找学生信息*/
 
 
void main() {  int c,m;/*根据该变量选择主菜单的命令*/  char s[6];  /*获取输入的密码,用于验证和登陆密码是否相同*/  int flag=0;  /*通过该变量判断是否达到指定的次数*/  int n=3; /*限定输入错误的次数是 3 次*/  do  {
  printf("请您输入界面登录密码:\n");   scanf("%s",&s);   if(!strcmp(s,mi))/*若密码正确*/   {    printf("恭喜你成功登陆了\n\n\n");    flag=1;       break; /*密码正确登陆成功,退出循环*/   }   else    {    printf("输入有错误请重新输入:\n");    n--;   }  }while(n>0);
 
 if(!flag) /*判断 flag 标志判断是否超过指定的猜测次数*/  {   printf("请与开发人联系!\n");
 
  getch();   exit(0);  }
 
 color();     menu();     scanf("%d",&m);/*输入选择功能的编号*/     while(m)     {         switch(m)         {             case 1:in();break;             case 2:search();break;             case 3:del();break;             case 4:modify();break;             case 5:order();break;             case 6:total();break;             default:break;         }         menu();/*执行完成功能再次显示菜单界面*/         scanf("%d",&m);     } }
 

 
 
void menu()/*自定义函数实现菜单功能*/
 
{     system("cls");/*清屏函数*/  system("title csj");     printf("\n\n\n\n\n");     printf("\t\t*****************学生管理系统****************\n");     printf("\t\t*\t1. 录入学生成绩信息                 *\n");     printf("\t\t*\t2. 查询学生成绩信息                 *\n");     printf("\t\t*\t3. 删除学生成绩信息                 *\n");     printf("\t\t*\t4. 修改学生成绩信息                 *\n");     printf("\t\t*\t5. 学生成绩排序                     *\n");     printf("\t\t*\t6. 统计信息数量                     *\n");     printf("\t\t*\t0. 退出                             *\n");     printf("\t\t*********************************************\n\n");     printf("\t\t\t 请选择(0-6):");   }
 
void color()/*自定义函数实现颜色变化*/ {  system("color 5E"); } void in()/*自定义函数实现录入学生成绩信息*/ {     int i,m=0;/*m 是记录的条数*/     char ch[2];     FILE*fp;/*定义文件指针*/     if((fp=fopen("data","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
    {         system("cls");         show();/*调用 show 函数,显示原有信息*/     }     if((fp=fopen("data","a+"))==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("请输入学生姓名:");                {getchar();}     gets(stu[m].name);/*输入学生姓名*/          //scanf("s",stu[m].name )                 printf("C 语言:");                     scanf("%lf",&stu[m].c);/*输入 C 语言成绩*/                 printf("高数:");                 scanf("%lf",&stu[m].m);/*输入高数成绩*/                 printf("英语:");                 scanf("%lf",&stu[m].e);/*输入英语成绩*/                 stu[m].sum=stu[m].c+stu[m].m+stu[m].e;/*计算出总成绩*/                 if(fwrite(&stu[m],LEN,1,fp)!=1)/*将新录入的信息写入指定的磁盘文件*/                 {                     printf("系统出错,请与开发人联系!!");                 }                 else                 {                     printf("%s 成绩录入成功!\n",stu[m].name);                     m++;                 }
                printf("是否继续录入?(y/n):");/*询问是否继续*/                 scanf("%s",ch);                 }     fclose(fp); } void show()/*自定义函数实现显示学生成绩信息*/ {         FILE *fp;     int i,m=0;     fp=fopen("data","r");     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);/*将信息按指定格式打印*/
 
    } }   
 
void del()/*删除学生成绩信息*/ {     FILE *fp;     int snum,i,j,m=0;     char ch[2];     if((fp=fopen("data","a+"))==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)                 break;          if(i==m)             {             printf("对不起,没有您要删除的学生信息!");             getchar();             return;             }             printf("find the student,delete?(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--;/*记录的总个数减 1*/                     printf("删除成功!\n");                 }                 if((fp=fopen("data","w"))==NULL)                 {                      printf("系统出错,请与开发人联系!\n");                     return;                 }               for(j=0;j<m;j++)/*将更改后的记录重新写入指定的磁盘文件中*/                     if(fwrite(&stu[j] ,LEN,1,fp)!=1)                     {                          printf("更新失败,请与开发人联系!\n");                         getch();                     }                     fclose(fp);                  } void modify()/*修改学生成绩信息*/ {      FILE *fp;     int i,j,m=0,snum;     if((fp=fopen("data","a+"))==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;             if(i<m)             {                 printf("姓名:\n");                 scanf("%s",stu[i].name);/*输入名字*/                 printf("\nC 语言成绩:");                 scanf("%lf",&stu[i].c);/*输入 C 语言程序设计成绩*/                 printf("\n 高数:");                 scanf("%lf",&stu[i].m);/*输入高数成绩*/                 printf("\n 英语");                 scanf("%lf",&stu[i].e);/*输入英语成绩*/                 stu[i].sum=stu[i].c+stu[i].m+stu[i].e;             }             else              {                 printf("没有您要修改的学生信息!");                 getchar();                 return;             }             if((fp=fopen("data","w"))==NULL)             {                 printf("系统出错,请与开发人联系!\n");                 return;             }             for(j=0;j<m;j++)/*将新修改的信息写入指定的磁盘文件中*/                 if(fwrite(&stu[j] ,LEN,1,fp)!=1)                 {                      printf("更新失败,请与开发人联系!!");                      getch();                  }                 fclose(fp); }
void search()/*自定义查找函数*/ {      FILE *fp;     int snum,i,m=0;     char ch[2];     if((fp=fopen("data","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)                  { printf("学号   姓名   C 语言   高数   英语   总分\t\n");       printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/                     break;                 }                 else                     return;             }                if(i==m)                  printf("未找到您要要查找的信息\n");/*未找到要查找的信息*/             getch(); } void order()/*自定义函数实现学生成绩排序*/ {     FILE *fp;     struct student t;     int i=0,j=0,m=0;
    if((fp=fopen("data","a+"))==NULL)     {         printf("系统出错,请与开发人联系!");         return;     }     while(!feof(fp))         if(fread(&stu[m],LEN,1,fp)==1)             m++;         fclose(fp);         if(m==0)         {             printf("无记录!\n");             getch();             return;         }     for(i=0;i<m-1;i++)         for(j=i+1;j<m;j++)/*双重循环实现成绩比较并交换*/             if(stu[i].sum<stu[j].sum)             {                 t=stu[i];                 stu[i]=stu[j];                 stu[j]=t;             }             if((fp=fopen("data","w"))==NULL)             {                 printf("系统出错,请与开发人联系!");                 getch();                 return;             }             for(i=0;i<m;i++)/*将重新排号顺序的内容重新书写入指定的磁盘文件中*/                 if(fwrite(&stu[i],LEN,1,fp)!=1)                 {                     printf("更新失败,请与开发人联系!\n");                 }                 fclose(fp);                 show();                 getch(); } void total() {      FILE *fp;     int m=0;     if((fp=fopen("data","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("本系统有%d 条记录!\n",m);/*将统计的个数输出*/         getch();         fclose(fp); }
2017-12-26 13:03
快速回复:c语言编程 学生成绩管理系统求助!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017898 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved