永发信息网

用C语言编写一个学生信息管理系统

答案:1  悬赏:30  手机版
解决时间 2021-04-28 12:17

主要功能包括信息的输入,显示,查询,统计等。

格式 :   学号   6个字符 、姓名   8个字符、高等数学   实数、英语  实数、计算机   实数;

各项功能:

1、添加:输入并保存学生信息;

2、显示:出现显示菜单,以供选择(按学号显示、按姓名显示、按成绩显示、推出显示);

3、删除:显示现有的学生信息,让操作者输入学号删除;

4、查询:出现查询子菜单(按学号查询、按姓名查询、按成绩查询<成绩是在分数范围内查找并显示学生信息>);

5、统计:统计并显示每门课程的优、良、中、及格、不及格人数,及格率、最高分、最低分、平均分

 

最佳答案

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
jiemian();


 struct student
 {
 char name[50];
 char sex[5];
 int age;
 char num[50];
 float score1;
 float score2;
    float score3;
 float sum;
 float ave;


 }stu[50],del;


void gn1()
{


 int i=0;
 char num1;
 for(i=0;i<50;i++)
 {
 printf("请输入要添加的学生资料:\n");
 printf("学号:");
 scanf("%s",stu[i].num);
 printf("姓名:");
 scanf("%s",stu[i].name);
 printf("性别:");
 scanf("%s",&stu[i].sex);
 
 printf("年龄:");
 scanf("%d",&stu[i].age);
 printf("请输入学生的三门成绩:\n");
 printf("语文:");
 scanf("%f",&stu[i].score1);
 printf("数学:");
 scanf("%f",&stu[i].score2);
 printf("英语:");
 scanf("%f",&stu[i].score3);
 printf("是否继续添加:y/n\n");
 scanf("%c",&num1);
 scanf("%c",&num1);
  if(num1=='N' || num1=='n')
  {
   system("cls");
   jiemian();
   
   
  }    }
 
}
void gn2()
{


 int i;
 char num[50];
 printf("请输入要查找的学生学号:\n");
 scanf("%s",num);
   for(i=0;i<50;i++)  
 if(strcmp(stu[i].num,num)==0)
 {    stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
  stu[i].ave=stu[i].sum/3;
 
   printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
break;
 }
  
   if(i==50)
  printf("查找不到!请重新输入!\n");


    getch();
   system("cls");
   jiemian();
   
   


}
void gn3()
{    char num1,i=0;
  printf("请输入要修改的学生学号:\n");
  scanf("%s",stu[i].num);
  printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);    printf("姓名:");    scanf("%s",stu[i].name);    printf("性别:");    scanf("%s",stu[i].sex);    printf("年龄:");    scanf("%d",&stu[i].age);    printf("请输入学生的三门成绩:\n");    printf("语文:");    scanf("%f",&stu[i].score1);    printf("数学:");    scanf("%f",&stu[i].score2);    printf("英语:");    scanf("%f",&stu[i].score3);    printf("是否继续修改:y/n?\n");
  scanf("%c",&num1);
  scanf("%c",&num1);
   if(num1=='N' || num1=='n')
   system("cls");
   jiemian();
  
}
void gn4()
{    int i;
  char num[50];
  printf("请输入要删除的学生学号:\n");
  scanf("%s",num);
  
  for(i=0;i<50;i++)
   if(strcmp(num,stu[i].num)==0)


   {    printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
      stu[i]=del;    printf("信息已删除,按任意键返回..\n");    break;
   }
   
    if(i==50)    printf("您输入的信息不存在!\n");
    getch();
    system("cls");
    jiemian();


 
}
void gn5()
{
 int i=0;
 stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
 stu[i].ave=stu[i].sum/3;
 printf("学号 \t姓名 \t性别 \t年龄 \t语文 \t数学 \t英语 \t总成绩 \t 平均成绩 \n");


 for(i=0;i<50;i++)
 {
  if(stu[i].age==0)
   break;
  printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);


 }    printf("按任意键返回...");
  getch();
  system("cls");
  jiemian();
}
void gn6()
{
 FILE *fp;
 int i;
 char filename[50];
 printf("\n");
 printf("\n");
 printf("请输入要保存的文件名:");
 scanf("%s",filename);
 if((fp=fopen(filename,"wb"))==NULL)
  printf("文件名为空,不能保存!\n");
 for(i=0;i<50;i++)
 {
  if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
   printf("文件保存失败!\n");
 }
 fclose(fp);
 printf("文件已保存!\n");
 printf("按任意键返回...\n");
 getch();
 system("cls");
 jiemian();
}
void gn7()
{
 FILE *fp;  
 int i=0;    //打开文件流
 char filename[50];
 printf("请输入文件名:");
 scanf("%s",filename);    //输入要载入的文件名
 if((fp=fopen(filename,"rb"))==0)    //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。
 {
  printf("文件不存在!\n");
  exit(0);
 }
 while(fread(&stu[i],sizeof(struct student),1,fp)!=0)//若存在,读取系统
 {
  i++;
 }
 fclose(fp);    //程序结束后,关闭流。
 printf("信息已载入!\n");
 printf("按回车键返回 ");
 getchar();
 getchar();
 system("cls");
 jiemian();


}
void gn8()
{
 printf("按任意键退出...");
 exit(0);
}
void xuanze()
{
 int num;
 scanf("%d",&num);
  switch(num)
 {
 case 1:system("cls");gn1();break;
 case 2:system("cls");gn2();break;
 case 3:system("cls");gn3();break;
 case 4:system("cls");gn4();break;
 case 5:system("cls");gn5();break;
 case 6:system("cls");gn6();break;
 case 7:system("cls");gn7();break;
 case 8:system("cls");gn8();break;    default:printf(" ");break;
  }
  
}
jiemian()
{
 printf("\t\t*****************学生档案管理系统*************\n");
 printf("\t\t1>添加学生信息");
 printf("\t\t\t2>查找学生信息\n");
 printf("\t\t3>修改学生信息");
 printf("\t\t\t4>删除学生信息\n");
 printf("\t\t5>显示学生信息");
 printf("\t\t\t6>保存学生信息\n");
 printf("\t\t7>载入学生信息");
 printf("\t\t\t8>退出系统\n");
 printf("\t\t**********************************************\n");
 printf("请从1-8中选择您的操作:\n");
    xuanze();
 


}


void main()
{
 
 
    jiemian();



}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请教电脑高手,怎么可以给某个硬盘分区上锁
8位89开头QQ34级 会员VIP6 黄钻7 红钻7 绿钻3
我跟迪迦奥特曼比赛虚虚谁更厉害?
口袋吧绿宝石386中的炎帝 水君 雷皇 超梦在哪
来利超市地址有知道的么?有点事想过去
teaches english的原型是什么
十字绣湿掉了怎么办
我在瑞安莘塍丢了新的电瓶车,能找回来吗,怎
手机可以打通的号码,为什么座机打不通?
网络k歌需要什么东西
跪求魔兽世界亡灵术士升级最快路线
上完厕所没纸了,怎么办?
x5的月老红线可以买吗
谁玩过地下城,说明新职业怎么玩可以转什么职
举例说明我国商业银行是如何实现经营目标的协
推荐资讯
大家帮我查查479977526DNF的号被缝了多长时间
篮球群!!
校园墙上的标语,校园里墙壁上有哪些标语??
人怎么会有思想的?
手机QQ图标为什么不亮
新爱丽舍说明书上的影响装置怎么跟实际的不一
求《我在追杀美女的日子里》全文
QQ空间个人档的共同好友什么意思
很想知道歌的名字
各位大大都来说说明年世界杯的三甲…
QQ空间里的QQ农场这个场景怎样得??如图
转租别人的门面时 交了订金也没有要求开票据
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?