精华内容
下载资源
问答
  • 学生成绩管理系统C语言课程设计
  • 学生成绩管理系统 C语言课程设计,很多人都要做的这个系统课程设计,供大家参考。
  • 14:歌手比赛系统 对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的...2、显示主菜单如下:1)输入选手数据 2)评委打分 3)成绩排序(按平均分)4)数据查询 5)追加学生数据 6)写入数据文件7)退出系统
  • 包含一个头文件和一个源程序,课程设计是用c语言编写的学生成绩管理系统,在tc2.0的环境下通过,无错误。
  • c++ c 课程设计 学生成绩管理系统 c语言课程设计 菜单驱动 用C语言实现的学生成绩管理系统,基于数组设计。采用菜单驱动。对于计算机专业及非计算机专业课程设计都很有帮助,对于专业人员也有参考价值。
  • C语言课程设计设计报告制作人:学号:指导老师:时间:一、设计内容和设计要求1、设计内容题目:学生成绩管理系统设计该系统包含20个学生姓名和成绩信息,可对成绩进行排序,并实现由姓名查找成绩及由成绩查找姓名。...

    ????????????????????????????????????????????????????????????????????????????????????????????????C语言课程设计

    制作人:

    学号:

    指导老师:

    时间:

    一、设计内容和设计要求

    1、设计内容

    题目:学生成绩管理系统设计

    该系统包含20个学生姓名和成绩信息,可对成绩进行排序,

    并实现由姓名查找成绩及由成绩查找姓名。

    2、设计要求

    1)由键盘输入20个学生(姓名)的某门课程的学习成 绩60~99分。

    2)将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。

    3) 用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)。

    4 )*对分搜索法检索某个学生的成绩(输入成绩,显示姓名)。

    设计思路

    首先是要建立20个学生信息,即学生姓名和学生成绩,使用子函数input输入,学生成绩使用一维数组,学生姓名使用二维数组。然后分别定义四个子函数,即直接排序法、冒泡排序法和线性查找法、对分查找法。在两个排序法中,用字符串拷贝函数来实现姓名的交换,另外,在用成绩查找姓名时,可以用直接查找,也可以用对分查找法,在这里我两种方法都使用了。最后在主函数中来设计人机界面,用switch函数来实现操作选择,对应的情况中就调用之前定义的子函数来完成排序或查找。

    程序设计流程图

    1、程序总体流程

    开始

    输入学生姓名和成绩

    主菜单

    排序 退出 查找

    直接排序 冒泡排序 查找成绩 查找姓名

    展开全文
  • 这是一个C语言课程设计 学生成绩管理系统 主要用到了结构体和链表来实现本系统 主要实现的功能有:添加学生资料、删除学生资料、查询学生资料、修改学生资料、显示全部学生记录、按总分排序、保存学生资料到文本...
  • C语言课程设计 设 计 报 告 制作人 学号 指导老师 时间 一设计内容和设计要求 1设计内容 题目学生成绩管理系统设计 该系统包含20个学生姓名和成绩信息可对成绩进行排序 并实现由姓名查找成绩及由成绩查找姓名 2设计...
  • 教学般的学生成绩管理系统课程设计,分析每一段源代码,非常适合初学者。
  • 记一次课程设计作业学生成绩管理系统#include#include#include#include/*学生成绩管理系统介绍2017C语言课程设计2021609361.支持将数据保存到文件并从文件中读取已有数据2.支持添加、删改数据3.支持按学号或姓名查询...

    记一次课程设计作业 Fun3K5cjZ-g3vII6W0gxoHy34h9w学生成绩管理系统#include

    #include

    #include

    #include

    /*

    学生成绩管理系统介绍

    2017C语言课程设计  202160936

    1.支持将数据保存到文件并从文件中读取已有数据

    2.支持添加、删改数据

    3.支持按学号或姓名查询、删除、修改数据

    4.支持简单统计,包括 不及格人数、最高分、最低分

    5.支持按总分排序整理数据

    */

    struct student

    {

    char num[10];

    char name[20];

    int cgrade;

    int sxgrade;

    int yygrade;

    int total;

    float ave;

    };

    struct node

    {

    struct student data;

    struct node *next;

    }*head,*last;

    int Add(int i)//执行增加学生记录操作

    {

    struct node *tmp;

    int loop=1;

    while (loop)

    {

    printf("请按以下格式输入数据:\n");

    tmp=(struct node *)malloc(sizeof (struct node));

    printf("学号姓名 C语言成绩 数学成绩 英语成绩\n");

    scanf("%s %s %d %d %d",tmp->data.num,tmp->data.name,&tmp->data.cgrade,&tmp->data.sxgrade,&tmp->data.yygrade);

    tmp->data.total=tmp->data.cgrade+tmp->data.sxgrade+tmp->data.yygrade;

    tmp->data.ave=tmp->data.total/3.0;

    if (last!=NULL)

    {

    last->next=tmp;

    last=last->next;

    }

    else

    {

    head=last=tmp;

    }

    last->next=NULL;

    i++;

    printf("添加成功!输入1继续录入,输入0终止录入  ");

    int t;

    scanf("%d",&t);

    if (t==0)

    loop=0;

    }

    return i;

    }

    int Del(int i)//执行删除学生记录操作

    {

    char tmpname[20];

    char tmpnum[10];

    int find=0,way;

    struct node *tmp=head,*tmpbak=head;

    printf("请选择删除依据:  1.学号  2.姓名 \n ");

    scanf("%d",&way);

    switch (way)

    {

    case 1:printf("请输入学号:");

    scanf("%s",tmpnum);

    while ((tmp!=NULL)&&(!find))

    {

    if (!strcmp(tmpnum,tmp->data.num))

    {

    find=1;

    break;

    }

    tmpbak=tmp;

    tmp=tmp->next;

    }

    if (!find)

    {

    printf("抱歉,学号 %s未查到相关数据!\n",tmpnum);

    }

    else

    {

    if (tmpbak==tmp)

    {

    head=head->next;

    printf("删除成功!\n");

    i--;

    return i;

    }

    else

    {

    tmpbak->next=tmp->next;

    printf("删除成功!\n");

    i--;

    return i;

    }

    }

    case 2:printf("请输入姓名:");

    scanf("%s",tmpname);

    while ((tmp!=NULL)&&(!find))

    {

    if (!strcmp(tmpname,tmp->data.num))

    {

    find=1;

    break;

    }

    tmpbak=tmp;

    tmp=tmp->next;

    }

    if (!find)

    {

    printf("抱歉,姓名 %s未查到相关数据!\n",tmpname);

    }

    else

    {

    if (tmpbak==tmp)

    {

    head=head->next;

    printf("删除成功!\n");

    i--;

    return i;

    }

    else

    {

    tmpbak->next=tmp->next;

    printf("删除成功!\n");

    i--;

    return i;

    }

    }

    default:printf("选择错误,查询失败!\n");

    }

    }

    void Edit(struct node* tmp)//执行修改学生记录操作

    {

    printf("请输入修改后的信息:\n");

    printf("学号姓名 C语言成绩 数学成绩 英语成绩\n");

    scanf("%s %s %d %d %d",tmp->data.num,tmp->data.name,&tmp->data.cgrade,&tmp->data.sxgrade,&tmp->data.yygrade);

    tmp->data.total=tmp->data.cgrade+tmp->data.sxgrade+tmp->data.yygrade;

    tmp->data.ave=tmp->data.total/3.0;

    printf("修改成功! \n");

    printf("*************************************\n");

    }

    void Query()//执行查询学生记录操作

    {

    char tmpname[20];

    char tmpnum[10];

    int find=0,way,change=0;

    struct node *tmp=head;

    printf("请选择查询方式:  1.学号   2.姓名 \n ");

    scanf("%d",&way);

    switch (way)

    {

    case 1:printf("请输入学号:");

    scanf("%s",tmpnum);

    while ((tmp!=NULL)&&(!find))

    {

    if (!strcmp(tmpnum,tmp->data.num))

    {

    find=1;

    printf("找到以下数据!\n");

    printf("学号姓名 C语言成绩 数学成绩 英语成绩 总分 平均分 \n");

    printf("%s %s%d%d%d%d%.2f \n",tmp->data.num,tmp->data.name,tmp->data.cgrade,tmp->data.sxgrade,tmp->data.yygrade,tmp->data.total,tmp->data.ave);

    printf("*************************************\n");

    printf("是否修改数据? 输入1修改,输入0取消 ");

    scanf("%d",&change);

    if (change)

    Edit(tmp);

    }

    tmp=tmp->next;

    }

    if (!find)

    {

    printf("抱歉,学号 %s未查到相关数据!\n",tmpnum);

    }

    break;

    case 2:printf("请输入姓名:");

    scanf("%s",tmpname);

    while ((tmp!=NULL)&&(!find))

    {

    if (!strcmp(tmpname,tmp->data.name))

    {

    find=1;

    printf("找到以下数据!\n");

    printf("学号姓名 C语言成绩 数学成绩 英语成绩 总分 平均分 \n");

    printf("%s %s%d%d%d%d%.2f \n",tmp->data.num,tmp->data.name,tmp->data.cgrade,tmp->data.sxgrade,tmp->data.yygrade,tmp->data.total,tmp->data.ave);

    printf("*************************************\n");

    printf("是否修改数据? 输入1修改,输入0取消 ");

    scanf("%d",&change);

    if (change)

    Edit(tmp);

    }

    tmp=tmp->next;

    }

    if (!find)

    {

    printf("抱歉,姓名 %s未查到相关数据!\n",tmpname);

    }

    break;

    default:printf("选择错误,查询失败!\n");

    }

    }

    void Tongji()//执行统计学生记录操作

    {

    struct node *tmp=head;

    int cbjg=0,sxbjg=0,yybjg=0,avebjg=0,cmax=0,sxmax=0,yymax=0,avemax=0,cmin=100,sxmin=100,yymin=100,avemin=100;

    printf("正在统计数据,请稍候...\n");

    while (tmp!=NULL)

    {

    if (tmp->data.cgrade<60)

    cbjg++;

    if (tmp->data.cgrade>cmax)

    cmax=tmp->data.cgrade;

    if (tmp->data.cgrade

    cmin=tmp->data.cgrade;

    if (tmp->data.sxgrade<60)

    sxbjg++;

    if (tmp->data.sxgrade>sxmax)

    sxmax=tmp->data.sxgrade;

    if (tmp->data.sxgrade

    sxmin=tmp->data.sxgrade;

    if (tmp->data.yygrade<60)

    yybjg++;

    if (tmp->data.yygrade>yymax)

    yymax=tmp->data.yygrade;

    if (tmp->data.yygrade

    yymin=tmp->data.yygrade;

    if (tmp->data.ave<60)

    avebjg++;

    if (tmp->data.ave>avemax)

    avemax=tmp->data.ave;

    if (tmp->data.ave

    avemin=tmp->data.ave;

    tmp=tmp->next;

    }

    printf("****************************\n统计完成,数据如下:\n");

    printf("C语言不及格人数:%d 最高分:%d 最低分:%d \n",cbjg,cmax,cmin);

    printf("数学不及格人数:%d 最高分:%d 最低分:%d \n",sxbjg,sxmax,sxmin);

    printf("英语不及格人数:%d 最高分:%d 最低分:%d \n",yybjg,yymax,yymin);

    printf("平均分不及格人数:%d 最高分:%d最低分:%d \n",avebjg,avemax,avemin);

    printf("**********************************\n");

    }

    void Sort(int n)//执行按降序进行排列学生记录的操作

    {

    int i,j;

    struct node *tmp=head,*tmpbak=head->next,*bak;

    bak=(struct node *)malloc(sizeof (struct node));

    for(i = 0; i 

    {

    for(j = 0; i + j 

    {

    if(tmpbak->data.total> tmp->data.total)

    {

    bak->data =tmp->data;

    tmp->data = tmpbak->data;

    tmpbak->data = bak->data;

    }

    tmp=tmp->next;

    tmpbak=tmpbak->next;

    }

    tmp=head;

    tmpbak=head->next;

    }

    printf("排序完成!\n");

    }

    int Save()//执行存盘操作stuinfo.dat

    {

    if(!head) return 0;

    FILE *fp=fopen("stuinfo.dat","wb");

    int i=0;

    while(head)

    {

    fwrite(&head->data,sizeof(student),1,fp);

    i++;

    head=head->next;

    }

    fclose(fp);

    return i;

    }

    int load()    //从文件stuinfo.dat中载入数据

    {

    FILE *fp=fopen("stuinfo.dat","rb");

    if(!fp)

    {

    printf("Can not open the file!\n");

    return 0;

    }

    struct node *tmp;

    fseek(fp,0,SEEK_END);

    long end=ftell(fp);

    fseek(fp,0,SEEK_SET);

    int i=0;

    if(ftell(fp)==end)

    {

    printf("无记录!\n");

    return 0;

    }

    while(ftell(fp)!=end)

    {

    tmp=(struct node*)malloc(sizeof(struct node));

    tmp->next=NULL;

    fread(&tmp->data,sizeof(struct student),1,fp);

    i++;

    if (last!=NULL)

    {

    last->next=tmp;

    last=last->next;

    }

    else

    {

    head=last=tmp;

    }

    last->next=NULL;

    }

    fclose(fp);

    return i;

    }

    void Display()//执行将学生记录以表格形式打印输出至屏幕的操作

    {

    struct node *tmp=head;

    printf("学号姓名 C语言成绩 数学成绩 英语成绩 总分 平均分 \n");

    while (tmp!=NULL)

    {

    printf("%s %s%d%d%d%d%.2f",tmp->data.num,tmp->data.name,tmp->data.cgrade,tmp->data.sxgrade,tmp->data.yygrade,tmp->data.total,tmp->data.ave);

    tmp=tmp->next;

    printf("\n");

    }

    }

    void Wrong()//给出按键错误提示

    {

    printf("输入错误,请重新输入! \n");

    }

    int Quit()//存盘且退出

    {

    Save();

    return 0;

    }

    int Menu()//操作选单

    {

    int i;

    printf("========================================================\n");

    printf("欢迎使用学生成绩管理系统!\n");

    printf(" 0: 存盘并退出\n");

    printf(" 1:增加学生记录\n");

    printf(" 2:删除学生记录\n");

    printf(" 3:查询/修改学生记录\n");

    printf(" 4:统计学生记录\n");

    printf(" 5:按降序进行排列学生记录\n");

    printf(" 6:将学生记录以表格形式打印输出至屏幕\n");

    printf("========================================================\n");

    printf("请选择你需要的操作:");

    scanf("%d",&i);

    printf("\n");

    return i;

    }

    void main()

    {

    int i,choice,loop=1;

    i=load();

    printf("从stuinfo.dat导入了%d条数据\n\n",i);

    while (loop)

    {

    choice=Menu();

    switch (choice)

    {

    case 0:loop=Quit();break;

    case 1:i=Add(i);break;

    case 2:i=Del(i);break;

    case 3:Query();break;

    case 4:Tongji();break;

    case 5:Sort(i);break;

    case 6:printf("共有%d条数据!\n",i);Display();break;

    default:Wrong();

    }

    }

    }

    展开全文
  • C语言课程设计 学生成绩管理系统 C语言课程设计 学生成绩管理系统
  • C语言课程设计学生成绩管理 系统设计 c语言课程设计报告一学生成绩管理系统 c语言课程设计报告一学生成绩管理系统 21 C C语言课程设计报告一学生成绩管理系统 c c语言课程设计报告学生成绩管理系统 c c语言课程设计...
  • 学生成绩管理系统 C语言 课程设计 C 工程
  • c语言课程设计_学生成绩管理系统c语言课程设计_学生成绩管理系统
  • 学生成绩管理系统 c语言 课程设计 学生成绩管理系统 c语言
  • c语言课程设计报告学生成绩管理系统c语言课程设计报告学生成绩管理系统
  • 学生成绩管理系统_C语言课程设计_源代码 程序中包括学生成绩查询、修改、等主要功能
  • 好东西又要上货了哦,亲~内涵需求...设计一个学生成绩管理系统,使之能提供以下功能: 1) 录入学生成绩信息并保存 2) 查询学生成绩信息 3) 删除学生成绩信息 4) 修改学生成绩信息 5) 排序学生成绩信息 6) 统计学生人数
  • C语言 课程设计 学生成绩管理系统 源代码 C语言 课程设计 学生成绩管理系统 源代码 C语言 课程设计 学生成绩管理系统 源代码
  • C语言模块化程序设计方法为基础,以VC++ 6.0集成开发环境为工具,实现学生成绩管理系统设计和开发。 学生成绩管理系统要求实现如下功能: 1、学生信息的录入。如:学生编号、学生姓名、学生成绩。 2、学生信息的...
  • c语言 课程设计_学生成绩管理系统1c语言 课程设计_学生成绩管理系统1
  • 基于C语言学生成绩管理系统课程设计,有仿真源文件
  • C语言学生成绩管理系统课程设计
  • c++ c 数据结构 课程设计 学生成绩管理系统 数组 c语言课程设计 c++课程设计 数据结构课程设计 菜单驱动 基于数组设计 用C语言实现的学生成绩管理系统 基于数组设计。采用菜单驱动。对于计算机专业及非计算机专业...
  • C语言课程设计_学生成绩管理系统

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,133
精华内容 2,053
关键字:

学生成绩管理系统c语言课程设计

c语言 订阅