有戏

 找回密码
 立即注册
简历下载
搜索
热搜: 活动 交友 discuz
查看: 1150|回复: 1

学生信息管理系统

[复制链接]

1000

主题

1002

帖子

25万

积分

论坛元老

Rank: 8Rank: 8

积分
251951
发表于 2015-1-17 18:15:29 | 显示全部楼层 |阅读模式
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
    char choice;
    char name[50][40];//所有学生的姓名  第i个学生  name[i]
    int  current = 0;//当前学生数目   : 0  ----->  current - 1
    int i;
    int hasfound = 0;
    char qname[40];
    while(1)
    {
        printf("学生信息管理系统,版本1.0,版权所有2010-2020\n\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("                0:退出程序\n");
        printf("\n");
        fflush(stdin);//清空输入缓冲区
        choice = getch();
        switch(choice)
                {
                        case '1':
                                /*此处添加录入学生的处理代码*/
                                if(current >= 50 )
                                {
                                    printf("人数已满,不可录入\n");
                                    return 0;
                                }
                                printf("请输入学生姓名:");
                                gets(name[current]);
                                //scanf("%s",name[current]);
                                current++;
                                break;
                        case '2':
                                 /*此处添加查询学生的处理代码*/
                                 printf("请输入需要查询的学生的姓名:");
                                 gets(qname);
                                 for(i=0;i<current;i++)
                                 {
                                     if ( strcmp(qname, name[i]) == 0)
                                     {
                                         printf("找到了该学生,学号 : %d  姓名 : %s \n", i+1 , name[i]  );
                                         hasfound = 1;
                                         //break;
                                     }
                                 }
                if( hasfound == 0)
                    printf("没有找到该学生\n");
                                 break;
                        case '3':
                                 /*此处添加修改学生信息的处理代码*/        break;
                        case '4':
                                 /*此处添加删除学生信息的处理代码*/        break;
                        case '5':
                                 /*此处添加列出学生信息的处理代码*/
                                 for(i=0;i<current;i++)
                    printf("第%d个学生的姓名: %s \n",i+1,name[i]);
                                 break;
                        case '6':
                                /*此处添加保存学生信息的处理代码*/        break;
                        case '7':
                                /*此处添加加载学生信息的处理代码*/        break;
                        case '0':
                                return 0;
                        default:
                                printf("非法选择,请重新选择\n");
                }
        }
        return 0;    //程序返回
}


大家好
回复

使用道具 举报

2

主题

2

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14390
发表于 2015-12-3 10:37:34 | 显示全部楼层
新增:

修改学生信息,删除学生信息。






#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
    char choice;
    char name[50][40];//班级的学生姓名数组  name  :  下标为i的学生 的姓名 的数组名
    int current = 0; //当前班级学生的数目   0--->current-1
    char qname[40];
    int i;
    int hasfound = 0;
    while(1)
    {
        printf("学生信息管理系统,版本1.0,版权所有2010-2020\n\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("                0:退出程序\n");
        printf("\n");
        fflush(stdin);//清空输入缓冲区
        choice = getch();
        switch(choice)
                {
                        case '1':
                if(current >= 50)
                {
                    printf("不可以录入,人数已满\n");
                    return 0;
                }
                printf("请输入学生姓名 : ");
                //gets(name[current]);
                scanf("%s",name[current]);
                current++;
                                break;
                        case '2':
                                 /*此处添加查询学生的处理代码*/
                                 //strcmp
                                 hasfound = 0;
                printf("请输入学生姓名 :");
                gets(qname);
                for(i=0;i<current;i++)
                {
                    if( strcmp(qname, name) == 0  )
                    {
                        hasfound = 1;
                        printf("找到该学生\n 学号 : %d 姓名 : %s \n", i+1 , qname);
                        //break;
                    }
                }
                if(hasfound == 0)
                    printf("没有找到该学生\n ");
                                 break;
                        case '3':
                                 /*此处添加修改学生信息的处理代码*/
                                 hasfound = 0;
                printf("请输入需要修改的学生姓名 :");
                gets(qname);
                for(i=0;i<current;i++)
                {
                    if( strcmp(qname, name) == 0  )
                    {
                        hasfound = 1;
                        printf("找到该学生\n 学号 : %d 姓名 : %s \n", i+1 , qname);
                        printf("请输入该学生新姓名:");
                        gets(name);
                        printf("修改成功!!\n");
                        //break;
                    }
                }
                if(hasfound == 0)
                    printf("没有找到该学生\n ");
                                 break;
                        case '4':
                                 /*此处添加删除学生信息的处理代码*/
                hasfound = 0;
                printf("请输入需要删除学生姓名 :");
                gets(qname);
                for(i=0;i<current;i++)
                {
                    if( strcmp(qname, name) == 0  )
                    {
                        hasfound = 1;
                        printf("找到该学生\n 学号 : %d 姓名 : %s \n", i+1 , qname);

                        //删除  name 数组元素

                        //  memmove (目标地址, 源地址, 字节数n);
                        memmove(name, name[i+1] ,  (current - 1 - i )*40);
                        current--;
                        printf("删除成功!!\n");
                        //break;
                    }
                }
                if(hasfound == 0)
                    printf("没有找到该学生\n ");
                                 break;
                        case '5':
                                 /*此处添加列出学生信息的处理代码*/
                                 printf("学号             姓名\n");
                                 printf("======================\n");
                                 for(i=0;i<current;i++)
                    printf("%2d            %6s \n",i+1,name);
                                 break;
                        case '6':
                                /*此处添加保存学生信息的处理代码*/        break;
                        case '7':
                                /*此处添加加载学生信息的处理代码*/        break;
                        case '0':
                                return 0;
                        default:
                                printf("非法选择,请重新选择\n");
                }
        }
        return 0;    //程序返回
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|有戏 粤ICP备2020111303号

GMT+8, 2025-12-6 13:05 , Processed in 0.080863 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表