黑马程序员技术交流社区

标题: 【分享】【源代码】纯手动学生管理系统 [打印本页]

作者: FengLinHuoShan    时间: 2015-11-20 21:41
标题: 【分享】【源代码】纯手动学生管理系统
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 100
#define len 10

//编写一个学生管理系统程序,用来记录学生的信息(包括姓名、年龄、性别、学号、分数),提供增加、删除、查询学生信息的入口。(C语言)

//定义结构体记录学生基本信息
struct student{
    char name[len];
    unsigned int sno;
    float score;
};

struct student stu[N];

int totalNum = 0;
//查看所有学生信息
void doList(){
    if (totalNum==0) {
        printf("当前系统中不存在学生信息!\n");
    }else{
        printf("学号\t 姓名\t 成绩\t\n");
        for (int i=0; i<totalNum; i++) {
            printf("%d\t%s\t%.2f\n",stu.sno,stu.name,stu.score);
        }
    }
}
//修改学生
void doUpdate(){
    printf("请输入要修改的学生学号:\n");
    unsigned no;
    scanf("%u",&no);
    if (no>totalNum) {
        printf("不存在要查找的学生!");
    }else{
        printf("新的姓名:\n");
        scanf("%s",stu[no].name);
        printf("新的成绩:\n");
        scanf("%f",&stu[no].score);
    }

}
//增加学生
void doAdd(){
    printf("请输入学生学号:\n");
    scanf("%u",&stu[totalNum].sno);
    printf("请输入学生姓名:\n");
    scanf("%s",stu[totalNum].name);
    printf("请输入学生成绩:\n");
    scanf("%f",&stu[totalNum].score);
    totalNum++;
}
//删除学生
void dodelete(){
    doList();
    unsigned no;
    printf("请输入要删除的学生学号:\n");
    scanf("%u",&no);
    if (no==totalNum) {
        totalNum--;
    }else{
        for (int i=no; i<totalNum; i++) {
            stu[no-1] = stu[no];
        }
        totalNum--;
    }
}
//查询学生
void doSearch(){
    printf("请输入要查找的学生学号:\n");
    unsigned no;
    scanf("%u",&no);
    printf("学号\t 姓名\t 成绩\t\n");
    printf("%d\t%s\t%.2f",stu[no].sno,stu[no].name,stu[no].score);

}


//退出系统
int doExit(){
    printf("再见!祝您学业有成!");
    return 0;
}

int main(){
    //用户提示界面
    while (1) {
        printf("欢迎使用学生管理系统:\n 1、添加学生信息\n 2、删除学生信息\n 3、修改学生信息\n 4、搜索学生信息\n 5、查看所有学生信息\n 6、退出系统\n请输入:");
        int operate = 0;
        scanf("%d",&operate);
        switch (operate) {
            case 1:
                doAdd();
                break;
            case 2:
                dodelete();
                break;
            case 3:
                doUpdate();
                break;
            case 4:
                doSearch();
                break;
            case 5:
                doList();
                break;
            case 6:
                doExit();
                break;
            default:
                printf("输入有误!!");
                break;
        }

    }
    return 0;
}


作者: 呐小伟    时间: 2015-11-20 21:52
黑马 顶顶
作者: arhui    时间: 2015-11-20 22:24
搞得不错呀6666
作者: 指破苍穹    时间: 2015-11-20 22:42
研究了一下,不错,顶一下
作者: FengLinHuoShan    时间: 2015-11-24 21:46
有用链表的方式来实现的人不?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2