| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2978 人关注过本帖
标题:帮我看一下这个“学生成绩管理程序”要怎么做?
只看楼主 加入收藏
jiangleji
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-18
收藏
 问题点数:0 回复次数:7 
帮我看一下这个“学生成绩管理程序”要怎么做?
帮我看一下这个“学生成绩管理成绩”要怎么做?

编写程序完成如下功能(数组完成):
1、从键盘输入35个学生的成绩
2、从键盘输入一个成绩,并进行查找是都存在此成绩
3、求全班同学的平均分;
4、将成绩从小到大进行排序;
5、输出所有学生的成绩;
6、求全班成绩的最高分;
要求:要有合理友好的界面,有菜单选择。

界面部分的代码我写好了,但是其它部分不知道怎么做,然后连接起来。
#include<stdio.h>
#include<stdlib.h>
void luru()
{
    printf("等待录入...");
}
void main()
/*系统菜单的友好界面*/
{
    int choice;
    while(1)
    {
        printf("\n");
        printf("************************************\n");
        printf("\n");
        printf("-------学生成绩录入和浏览程序-------\n");
        printf("+         1.成绩录入               +\n");
        printf("+         2.查找                   +\n");
        printf("+         3.排序                   +\n");
        printf("+         4.平均值                 +\n");
        printf("+         5.最高分                 +\n");
        printf("+         6.显示成绩               +\n");
        printf("+         7.退出                   +\n");
        printf("------------------------------------\n");
        scanf("%d",&choice);
        switch(choice)
        {
        case 1:printf("等待录入...");break;
        case 2:printf("等待查找...");break;
        case 3:printf("等待排序...");break;
        case 4:printf("平均值...");break;
        case 5:printf("最高分...");break;
        case 6:printf("显示成绩...");break;
        case 7:printf("感谢使用,再见!\n");exit(0);break;
        default:printf("输入错误");
        }
    }
}

图片1.jpg (38.18 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


图片2.jpg (39.31 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


图片3.jpg (36.04 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


图片4.jpg (39.07 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


图片5.jpg (40.47 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


图片6.jpg (39.37 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 学生 管理 
2008-12-09 12:38
龙乘霹雳
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-12-9
收藏
得分:0 
建个链表吧,我要去上课了、,没时间仔细看,给你传个我以前做的链表,先自己琢磨琢磨
2008-12-09 15:36
龙乘霹雳
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-12-9
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#define ERROR 0
#define OK 1
#define OVERFLOW -1
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
struct STU{
   char name[20];
   char stuno[10];
   int age;
   int score1;
   int score2;
   int score3;
};

typedef struct STU ElemType;
struct LIST
{
  ElemType *elem;
  int length;
  int listsize;
};
typedef struct LIST List;
int init(List *L)//构造一个空的线性表L
{
   L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
   if(!L->elem) exit(OVERFLOW);
   L->length=0;
   L->listsize=LIST_INIT_SIZE;
   return OK;
}
int ListLength(List *L)
{
  return  L->length;
}


int Insert_SqList(List *va, int i,ElemType x)
{
    ElemType *p,*q, *newbase;
   if(i<1||i>va->length+1) return ERROR;
   if(va->length>=va->listsize){
   newbase=(ElemType *)realloc(va->elem,(va->listsize+LISTINCREMENT)*sizeof(ElemType));
   if(!newbase)  exit(OVERFLOW);                                 
  va->elem=newbase;
  va->listsize+=LISTINCREMENT;
   }
   q=&(va->elem[i-1]);
   for(p=&(va->elem[va->length-1]);p>=q;--p) *(p+1)=*p;
   *q=x;
   ++va->length;
   return OK;
}
int Delete_SqList(List *va, int i, ElemType *x)
{
    ElemType *p,*q;
    if(i<1||i>va->length) return ERROR;  
    p=&(va->elem[i-1]);
    x=p;
    q=va->elem+va->length-1;
    for(++p;p<=q;++p)*(p-1)=*p;
    --va->length;
    return OK;
}
void printlist(List *L)

{
    int i;
    for(i=0;i<L->length;i++)
    {
        printf("第%d个学生的信息:\n",i+1);
        printf("姓名  :%s\n学号  :%s\n年龄:%d\n语文成绩:%d\n数学成绩:%d\n英语成绩:%d\n",L->elem[i].name,L->elem[i].stuno,L->elem[i].age,L->elem[i].score1,L->elem[i].score2,L->elem[i].score3);  
    }

}
void main()
{ int i,w,n;
int j=1;
  List list;
  ElemType stu,k;
  init(&list);
  printf("输入要建立的线性表的长度:\n",n);
  scanf("%d",&n);

  for(i=1;i<=n;i++)
 {
   
     printf("输入第%d个学生的信息:\n",i);
     printf("输入第%d个学生的姓名:\n",i);
      scanf("%s",list.elem[i-1].name);
     printf("输入第%d个学生的学号:\n",i);
      scanf("%s",list.elem[i-1].stuno);
     printf("输入第%d个学生的年龄:\n",i);
         scanf("%d",&list.elem[i-1].age);

     printf("输入第%d个学生的语文成绩:\n",i);
     scanf("%d",&list.elem[i-1].score1);
      printf("输入第%d个学生的数学成绩:\n",i);
      scanf("%d",&list.elem[i-1].score2);
      printf("输入第%d个学生的英语成绩:\n",i);
      scanf("%d",&list.elem[i-1].score3);
     list.length++;
    }    
      printlist(&list);
     while(1)
     {
        printf("请选择您要进行的操作 1. 插入2. 删除3. 退出\n");
     scanf("%d",&i);
     if(i==1)
     {
    
         printf("输入要插入的学生的信息:\n");
         printf("输入要插入的学生的姓名:\n");
         scanf("%s",stu.name);
         printf("输入要插入的学生的学号:\n");
         scanf("%s",stu.stuno);
         printf("输入要插入的学生的年龄:\n");
         scanf("%d",&stu.age);
         printf("输入这个学生的语文成绩:\n");
         scanf("%d",&stu.score1);
    
         printf("输入这个学生的数学成绩:\n");
         scanf("%d",&stu.score2);
    
         printf("输入这个学生的英语成绩:\n");
         scanf("%d",&stu.score3);

         printf("输入要插入的位置:\n");
         scanf("%d",&w);
       Insert_SqList(&list,w,stu);
         printf("插入一个学生后的学生的信息:\n");
         printlist(&list);
     }
     else if(i==2)
     {
        printf("删除一个学生的信息:\n");
        printf("输入要删除的元素在线性表中的位置:\n");
        scanf("%d",&n);
        Delete_SqList(&list,n,&k);
        printf("删除一个学生后的学生的信息:\n");
        printlist(&list);
     }
     else if(i==3)
         exit(0);
     }
}
2008-12-09 15:37
jiangleji
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-18
收藏
得分:0 
谢谢。有时间帮我看看,急需你的帮助,谢谢。

[[it] 本帖最后由 jiangleji 于 2008-12-9 16:09 编辑 [/it]]
2008-12-09 16:06
nomoredie
Rank: 1
来 自:渤海之巅
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-14
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>

const int MAX = 35; //设置数组最大值
int chengji[MAX];

void luru() //成绩录入
{
    printf("*****************************************************************************\n");
    int i;
    for (i=0; i!=MAX; ++i)
    {
        printf("请输入第 %d 个学生的成绩:",i+1);
        scanf("%d",&chengji[i]);
    }
    printf("\n\n输入完毕!\n\n");
    printf("*****************************************************************************\n");
}

void chazhao() //成绩查找
{
    printf("*****************************************************************************\n");
    int score;
    bool isfind = false; //标志位显示是否找到
    printf("请输入要查找的成绩:");
    scanf("%d",&score);
    printf("\n");
    int i;
    for (i=0; i!=MAX; i++)
    {
        if (chengji[i] == score)
        {
            printf("你查找的成绩是第%d个学生的成绩\n",i+1);
            isfind = true; //如查询到,则置标志位为true
        }
    }
    if (isfind == false)
        printf("\n没有找到需要查询的成绩!\n");

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

}

void swap(int &a,int &b) //交换两个变量的值
{
    int tmp;
    tmp = a;
    a = b;
    b = tmp;
}

void paixu() //成绩排序
{
    printf("*****************************************************************************\n");
    int i,j;
    for (i=0;i!=MAX-1;i++)
    {
        for (j=i+1;j!=MAX;j++)
        {
            if (chengji[i] > chengji[j])
            {
                swap(chengji[i],chengji[j]);
            }
        }
    }
    printf("\n排序完毕!\n");
    printf("*****************************************************************************\n");

}

void pingjun() //求平均值
{
    printf("*****************************************************************************\n");
    int sum=0;
    double average;
    int i;
    for (i=0;i!=MAX;++i)
    {
        sum+=chengji[i];
    }
    average = (double)sum/MAX;
    printf("全班平均分为:%3.6f \n",average);
    printf("*****************************************************************************\n");

}

void zuigao() //求最高分
{
    printf("*****************************************************************************\n");
    int max=0;
    int i;
    for (i=0; i!=MAX; ++i)
    {
        max = max>chengji[i]?max:chengji[i];
    }
    printf("全班最高分为:%d",max);
    printf("\n\n");
    printf("*****************************************************************************\n");
} 

void print() //输出成绩
{
    printf("*****************************************************************************\n");
    printf("学生成绩为:\n\n");
    int i;
    for (i = 0 ; i != MAX; i++)
    {
        printf ("%d",chengji[i]);
        if ((i+1)%10 == 0)
            printf("\n");
        else
            printf ("\t");
    }
    printf("\n\n");
    printf("*****************************************************************************\n");
}

int main(int argc, char* argv[])
{
    int choice;
    while(1)
    {
        printf("\n");
        printf("----------学生成绩管理系统----------\n");
        printf("+         1.成绩录入               +\n");
        printf("+         2.查找                   +\n");
        printf("+         3.排序                   +\n");
        printf("+         4.平均值                 +\n");
        printf("+         5.最高分                 +\n");
        printf("+         6.显示成绩               +\n");
        printf("+         7.退出                   +\n");
        printf("------------------------------------\n");
        scanf("%d",&choice);
        switch(choice)
            {
            case 1:
                printf("\n\n欢迎使用学生成绩管理系统,你现在的操作是:输入学生成绩:\n\n");
                luru();
                break;
            case 2:
                printf("\n\n欢迎使用学生成绩管理系统,你现在的操作是:查找:\n\n");
                chazhao();
                break;
            case 3:
                printf("\n\n欢迎使用学生成绩管理系统,你现在的操作是排序:\n\n");
                paixu();
                break;
            case 4:
                printf("\n\n欢迎使用学生成绩管理系统,你现在的操作是求平均值:\n\n");
                pingjun();
                break;
            case 5:
                printf("\n\n欢迎使用学生成绩管理系统,你现在的操作是求最高分:\n\n");
                zuigao();
                break;
            case 6:
                printf("\n\n欢迎使用学生成绩管理系统,你现在的操作是显示成绩:\n\n");
                print();
                break;
            case 7:
                printf("\n\n谢谢使用本系统软件,欢迎下次光临!\n");
                exit(0);
                break;
            default:
                printf("\n\n输入错误,请重新输入\n\n");
            }

    }

    return 0;
}
2008-12-09 18:34
jiangleji
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-18
收藏
得分:0 
非常感谢你啊,楼上的朋友。
2008-12-09 18:45
jiangleji
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-18
收藏
得分:0 
回复 第5楼 nomoredie 的帖子
朋友,排序那里有点问题,没有显示排序啊。

谢谢你。
2008-12-09 20:07
cneagle
Rank: 1
等 级:新手上路
威 望:1
帖 子:10
专家分:4
注 册:2009-10-12
收藏
得分:0 
非常感谢


为生存!
2009-10-12 16:23
快速回复:帮我看一下这个“学生成绩管理程序”要怎么做?
数据加载中...
 
   



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

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