| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2264 人关注过本帖
标题:使用线性数据结构(C语言)实现一个“学生成绩管理系统”
只看楼主 加入收藏
大香蕉
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-6-20
结帖率:0
收藏
已结贴  问题点数:15 回复次数:5 
使用线性数据结构(C语言)实现一个“学生成绩管理系统”
使用线性数据结构(C语言)完成一个“学生成绩管理系统”,能实现下述功能:
1)能录入至少10名学生基本信息
2)能录入学生至少3门课程成绩
3)能求每个学生的总分和平均分
4)能按照总分进行排序
5)能删除某个指定学生信息
6)程序应包含主菜单功能
7)对学生进行查找
8)能修改学生信息
可以自由选用链式结构或顺序结构。
搜索更多相关主题的帖子: C语言 课程 管理系统 信息 
2016-06-20 10:01
大香蕉
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-6-20
收藏
得分:0 
..........
2016-06-23 09:54
lx398134
Rank: 1
等 级:新手上路
帖 子:3
专家分:8
注 册:2015-11-24
收藏
得分:8 
。。。

[此贴子已经被作者于2016-6-27 09:12编辑过]

2016-06-23 20:30
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:8 
网上百度搜去。各式代码让你目不转睛。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-06-23 22:38
大香蕉
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-6-20
收藏
得分:0 
#include <stdio.h>
#define M 50
 struct student{
    int num;
    char name[10];
    int chinese,english,math;
    int sum;
    double average;
     };
 void new_student(struct student students[]);
 void search_student(struct student students[],int num);
 void row_student(struct student students[]);
 void delete_student(struct student students[],int num);
 int count=0;

int main(void)
 {
  int choice,num,num1;
  struct student students[M];
    printf("                            学生成绩管理系统\n");
     printf("     *********************************************************\n");
    printf("     *                                                       *\n");
    printf("     *  **********************请选择**************************\n");
    printf("     *1:输入学生信息                                         *\n");
    printf("     *2:查询成绩                                             *\n");
    printf("     *3:成绩排序                                             *\n");
    printf("     *4:删除成绩                                             *\n");
    printf("     *0:退出系统                                             *\n");
    printf("     *********************************************************\n");
    printf("\n");
  do{   
    printf("     *   1:输入   2:查询  3:排序   4:删除    0:退出     *\n");
    scanf("%d",&choice);
    switch(choice){
        case 1:new_student(students);break;
        case 2:printf("请输入查询学生的学号num\n");
               scanf("%d",&num);
               search_student(students,num);
               break;
        case 3:row_student(students);break;
        case 4:printf("请输入要删除学生的学号\n");
               scanf("%d",&num1);
               delete_student(students,num1);
               break;
        case 0:break;
        }
    }while(choice!=0);  
  printf("结束\n");
 return 0;
}


void new_student(struct student students[])
{
    struct student s;
    if(count==M){
        printf("已满\n");
        return;
        }
    printf("请输入第%d个学生学号,姓名,语文,英语,数学成绩:\n",count+1);
    scanf("%d%s%d%d%d",&s.num,s.name,&s.chinese,&s.english,&s.math);
    s.sum=s.chinese+s.english+s.math;
    s.average=s.sum/3.0;
    students[count]=s;
    count++;
}


void search_student(struct student students[],int num)
{
    int i;
    for(i=0;i<count;i++)
    {
      if(students[i].num==num)
      {
      printf("该学生总分是:%d\n",students[i].sum);   
      printf("该学生平均分是:%.2f\n",students[i].average);
      break;
      }
      if(i==count-1) printf("无此学生信息\n");
    }
}


void row_student(struct student students[])
{
    int i,j,index;
    struct student temp;
    for(i=0;i<count-1;i++)
  {
   index=i;
   for(j=i+1;j<count;j++)
    {
     if(students[j].sum>students[index].sum)
     {
        index=j;
        temp=students[index];
        students[index]=students[i];
        students[i]=temp;
     }
    }
  }
    printf("成绩排序如下:\n");
    printf ("学号   姓名   语文   英语    数学    总分\n");
    for(i=0;i<count;i++)
    printf("%-8d%-8s%-8d%-8d%-8d%-8d\n",students[i].num,students[i].name,students[i].chinese,students[i].english,students[i].math,students[i].sum);
}


void delete_student(struct student students[],int num)
{
    int i;
    for(i=0;i<count;i++)
    {
      if(students[i].num==num)
      printf("删除成功\n");
      do
      {
      students[i]=students[i+1];
      i++;
      }while(i<count-1);
    }
[b]}
8)能修改学生信息这个部分不会
2016-06-29 14:03
凌霄之誌
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:145
专家分:895
注 册:2016-6-14
收藏
得分:0 
000

因为有悔,所以披星戴月;因为有梦,所以奋不顾身!!!
2016-06-29 14:37
快速回复:使用线性数据结构(C语言)实现一个“学生成绩管理系统”
数据加载中...
 
   



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

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