标题:分享:我用c写的简单学生管理系统
取消只看楼主
yanhaolang
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2007-3-12
 问题点数:0 回复次数:1 
分享:我用c写的简单学生管理系统
#include "stdio.h"
#include "stdlib.h"
#define M 10
struct student
{
    int num;
    char name[20];
    float score[3];
    float avg;
};
int input(struct student a[]);//函数声明
void output(struct student a[],int);
void sort(struct student a[],int);
int insert(struct student a[],int);
int del(struct student a[],int);
void main()
{
    int m,count=0;
    struct student stu[M];
    do
    {
    printf("\n\n\t***************************************\n");
    printf("\t\t学 生 成 绩 管 理 系 统 \n");
    printf("\t***************************************\n");
    printf("\t1、录入\t2、输出\t3、排序\t4、插入\t5、删除\n\n");
    scanf("%d",&m);

    switch(m)
    {
    case 1:
    count=input(stu);
    break;
    case 2:
   //sort(stu,count);
    output(stu,count);
    break;
    case 3:
    sort(stu,count);
    output(stu,count);
    break;
    case 4:
    sort(stu,count);
    count=insert(stu,count);
    break;
    case 5:
    count=del(stu,count);
    break;
    default:
    exit(0);
    }
    }while(m!=0);
}
int input(struct student a[])
{
 int count=0;char c;
    do
    {
        printf("请输入学号:\n");
        fflush(stdin);
        scanf("%d",&a[count].num);
        printf("请输入姓名:\n");
        fflush(stdin);
        gets(a[count].name);
        printf("请输入成绩1:\n");
        fflush(stdin);
        scanf("%f",&(a[count].score[0]));
        printf("请输入成绩2:\n");
        fflush(stdin);
        scanf("%f",&(a[count].score[1]));
        printf("请输入成绩3:\n");
        fflush(stdin);
        scanf("%f",&(a[count].score[2]));        
        a[count].avg=(a[count].score[0]+a[count].score[1]+a[count].score[2])/3;
        count++;        
        if(count>M)
        break;
        printf("你还要继续输入吗?(y/Y或n/N)\n");
        fflush(stdin);
        c=getchar();
    }while(c=='y'||c=='Y');
    return count;
}
void output(struct student a[],int count)
{
    printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩\n");
    for(int i=0;i<count;i++)
    {
      printf("%d\t%s\t%4.1f\t%4.1f\t%4.1f\t%4.1f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].avg);
    }
}
void sort(struct student a[],int count)
{
    struct student temp;
    for(int i=0;i<count;i++)
        for(int j=0;j<count-i-1;j++)
            if(a[j].avg<a[j+1].avg)
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
}
int insert(struct student a[],int count)
{
    struct student temp;float sum=0;
    printf("请输入你要插入的学生的信息:\n");
    printf("学号:");
    scanf("%d",&temp.num);
    printf("姓名:");
    scanf("%s",temp.name);
    for(int i=0;i<3;i++)
    {
        printf("第%d门课成绩:\n",i+1);
        scanf("%f",&temp.score[i]);
        sum+=temp.score[i];
    }
    temp.avg=sum/3;
    for(i=0;i<count;i++)
    {
        if(temp.avg>a[i].avg)
        {
                for(int j=count-1;j>=i;j--)
                {
                    a[j+1]=a[j];
                }
                a[i]=temp;
                break;
        }
    }
    if(i==count)
    a[count]=temp;
    count++;
    return count;
}
int del(struct student a[],int count)
{
    int tempnum;
    printf("请输入你要删除的学员的学号:\n");
    scanf("%d",&tempnum);
    for(int i=0;i<count;i++)
    {
        if(tempnum==a[i].num)
        {
            for(int j=i;j<count-1;j++)
                a[j]=a[j+1];
        //    count--;
            break;
        }
    }
    if(i==count)
       printf("对不起,找不到你要删除的学员!\n");
    else
    {
        count--;
        printf("删除成功!\n");
    }
    return count;
}

以前写的,大家共同学习,多多指正。。。

[[it] 本帖最后由 yanhaolang 于 2008-2-8 17:54 编辑 [/it]]
搜索更多相关主题的帖子: int student struct quot 系统 
2008-02-08 17:42
yanhaolang
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2007-3-12
得分:0 
我主要做java开发,c没有深入学习,是以前学的时候写的。我学c是为了学java做基础。。
2008-02-10 19:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-199624-1-1.html




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

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