#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define XMXH 10//姓名的范围
#define N 1000//定义为1000名的学生
void BXXHXM();//按照学号进行排序
void menu();//菜单
void del();//删除某人信息;
void insert();//插入函数
void seek();//查找函数
void help();
void shuru();
//使用说明
//先定义一个结构体来存储学生的信息
struct student
{char StudentXh[XMXH + 1];char StudentName[XMXH + 1];
};//定义一个结构体来存储
typedef struct student student;
student stu[N];
int k = 1, n = 0, m = 0;
//主函数
int main()
{while (k){menu();}system("pause");return 0;
}
//查找学生的信息   查
void seek()
{int i, n, m;char c[20];printf("\t--------------------------------\n");printf("\t\t\t1 按照学号进行查找\n");printf("\t\t\t2 按照姓名进行查找\n");printf("\t\t\t3 退出查找模式\n");printf("\t--------------------------------\n");while (1)//用1进入循环{printf("请选择您要选择的功能:");char n;scanf("%s", &n);m = 0;while (n < 0 || n >4){while (getchar() != '\n');printf("请输入1--3之间的数字:\n");scanf("%d", &n);}switch (n){case 1:printf("请输入要查询学生的学号:\n");scanf("%s", &c);for (i = 0; i < n; i++)if (strcmp(c, stu[i].StudentXh) == 0){m = 1;printf("学生学号\t\t学生姓名\t\t\n");printf("-----------------------------------------------------\n");printf("%s\t\t%s\t\t\n", stu[i].StudentXh, stu[i].StudentName);}if (0 == m)printf("该学号不存在,如果您要退出请按3退出键\n");break;case 2:printf("请输入要查找的学生姓名:\n");scanf("%s", c);for (i = 0; i < n; i++)if (strcmp(stu[i].StudentName, c) == 0){m = 1;printf("\t---------------------------\n");printf("学生学号\t\t学生姓名\t\t\\n");printf("-----------------------------\n");printf("%s\t\t%s\t\t", stu[i].StudentXh, stu[i].StudentName);}//这个地方不用在加break了 之前加入后会导致一直在循环中出不来,执行完后退出if (0 == m)printf("该姓名不存在!\n");case 3:return;defaault: printf("请在1--3之间选择\n");}}
}
//按照学号对学生进行删除   删
void del()
{int i, j, h = 0;char c[XMXH + 1];printf("请输入要删除的学号");scanf("%s", c);for (i = 0; i < n; i++){if (strcmp(stu[i].StudentXh, c) == 0){h = 1;for (j = i; j < n - 1; j++)//前面的删除后将后面的加一{stu[j] = stu[j + 1];}}}if (0 == h)//用h来判断情况{printf("学号不存在请重新输入\n");}if (1 == h){printf("删除成功!");n--;}system("pause");}////添加学生的  增
void insert()
{int i = n, j, h;int  m;printf("请输入要插入的学生的数量:\n");scanf("%d", &m);while (m < 0 || m >20){while (getchar() != '\n');printf("输入错误或添加学生过多请重新输入:");scanf("%d", &m);}if (m > 0){do{h = 1;while (h)//进入循环{h = 0;//再将h=0用来直接退出printf("请输入第%d位学生的学号:\n", i + 1);    scanf("%s", stu[i].StudentXh);while(1){if(strspn(stu[i].StudentXh,"abcdefjhijklmnopqrstuvwsyz!@#$%^&{}+_=-*()<>:")==strlen(stu[i].StudentXh)){printf("输入违规字符,重新输入\n");scanf("%s", stu[i].StudentXh);}else{break;    }}        for (j = 0; j < i; j++){if (strcmp(stu[i].StudentXh, stu[j].StudentName) == 0){printf("该学号已经存在了,请重新输入\n");h = 1;break;}}printf("请输入第%d个学生的姓名:\n", i + 1);scanf("%s", stu[i].StudentName);if(0==h){i++;}}    }while (i < n + m);n += m;printf("学生信息增加完毕!!!\n");system("pause");//暂停窗口
}
}//查询一共多少人
void QBxinxi()//全部信息    输出当前存储的全部信息
{int i;printf("共有%d位学生的信息:\n", n);if (0 != n){printf("---------学生学号--------学生姓名------\n");printf("---------------------------------------\n");for (i = 0; i < n; i++){printf("\t %s  \t\t%s\n", stu[i].StudentXh, stu[i].StudentName);}}system("pause");
}
//BXXHXM
void BXXHXM()//排序姓名与 学号进行选择
{student tmp;char t[XMXH];int i, j, k;char m;printf("\t---------------------------------------------------------\n");printf("\t\t\t1 按照学号进行排序\n");printf("\t\t\t2 按照姓名进行排序\n");printf("\t\t\t3 退出排序模式\n");printf("\t----------------------------------------------------------\n");while (m < 0 || m >4){while (getchar() != '\n');printf("输入错误,请在1-3进行选择");scanf("%d", &m);}while (1){printf("请在1--3进行选择");int m;scanf("%d", &m);switch (m){for (i = 0; i < n - 1; i++){for (j = n - 1; j > i; j--)if (strcmp(stu[j - 1].StudentXh, stu[j].StudentXh) > 0){strcpy(t, stu[j - 1].StudentXh);strcpy(stu[j - 1].StudentXh, stu[j].StudentXh);strcpy(stu[j].StudentXh, stu[j].StudentName);strcpy(t, stu[j - 1].StudentName);strcpy(stu[j - 1].StudentName, stu[j].StudentName);strcpy(stu[j].StudentName, t);}}case 1:printf("\t------------------------------------------------------------------------------------\n");printf("\t\t        学生学号--\t\t        学生姓名--\n");for (i = 0; i < n ; i++)printf("\t\t\t % s\t\t\t % s\n", stu[i].StudentXh, stu[i].StudentName);m = 0;break;case 2:printf("\t-----------------------------------------------------------------------------------\n");printf("\t\t        学生姓名--\t\t        学生学号--\n");for (i = 0; i < n - 1; i++) {for (j = 0; j < n - 1 - i; j++) {if (strcmp(stu[j].StudentName, stu[j + 1].StudentName) > 0) {tmp = stu[j];stu[j] = stu[j + 1];stu[j + 1] = tmp;}}}for (i = 0; i < n; i++)printf("\t\t\t%s \t\t\t %s\n", stu[i].StudentName, stu[i].StudentXh);m = 0;case 3:return;}break; }
}
//说明
void help()//使用说明
{printf("\t---------------------------------------------\n");printf("       1.欢迎使用功能说明 \n");printf("       2.在使用之前请先使用功能1添加学生的信息  \n");printf("       3.然后在进行任意操作\n");printf("       4.祝您使用愉快\n");printf("\t----------------------------------------------\n");
}
//菜单
void menu()   // 界面
{
int  num;printf(" \n\n                    ");printf("                                    学生管理系统                \n");printf("\t*************************************************************************************************\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");printf("\t**********************************************************************************************\n");printf("请选择菜单编号");scanf("%s",&num);while (num<0||num>9){while (getchar() != '\n');printf("请输入1--7之间的数字:\n");scanf("%d", &num);}switch (num){case 1:insert(); break;case 2:del(); break;case 3:seek(); break;case 4:BXXHXM(); break;case 5:QBxinxi(); break;case 6:help(); break;case 7:k = 0;printf("即将退出程序!\n");break;default:printf("请在0--8之间选择");}
}

优点

1 实现了对数据的处理,学号为英文时会报错。

实现的功能

1: 增加学生信息 

2:删除学生信息  

3:查找学生信息    

4:学生信息排序    

5:输出所有信息    

6:使用说明       

7: 退出           

学生管理系统(C语言)简单版相关推荐

  1. 学生管理系统——C语言版

    文章目录 学生管理系统--C语言版 主函数 录入学生信息 删除学生信息 修改学生信息 查找学生信息 打印学生信息 保存学生信息 读取学生信息 求班级成绩的平均值 学生管理系统--C语言版 主函数 in ...

  2. 学生管理系统 C语言 动态链表 结构体 文件操作 设置密码 输入密码回显星号

    C语言 学生管理系统代码 实现功能 功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名.学号.专业.  性别.年龄.   电话.家庭住址.还可以继续拓展 系统要求实现以下功能: 1.输入功能: ...

  3. 南京邮电大学c语言程序设计平台,程序设计报告-南京邮电大学-学生管理系统-c语言.doc...

    程序设计报告-南京邮电大学-学生管理系统-c语言.doc 程序设计报告 题 目: 学生信息管理系统 专 业 电子信息科学与技术 学 生 姓 名 孟祥熙 班 级 学 号 指 导 教 师 王蔚 指 导 单 ...

  4. 南京邮电大学c语言程序报告,程序设计报告南京邮电大学学生管理系统 c语言.doc...

    程序设计报告南京邮电大学学生管理系统 c语言 程序设计报告 题 目: 学生信息管理系统 专 业 电子信息科学与技术 学 生 姓 名 孟祥熙 班 级 学 号 指 导 教 师 王蔚 指 导 单 位 南京邮 ...

  5. C语言学生管理系统图文超详细版(拷贝即用)

    花哥哥的瞎扯: 大一的课设学生管理系统,因为学也学不精,望各位大神轻点骂,多指点一下吖.注释写得相对的仔细,认真看玩就没有不会的!哈哈哈加油! 实现功能: 建立学生结点之后再弄一个链表,用尾插法的方式 ...

  6. 学生管理系统c#语言代码,基于C#语言的学生管理系统的设计(ASP.NET2.0)

    摘  要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.学生管理系统是学校管理中不可少的一部分.而基于B/S架构的学生管 ...

  7. c语言实现学生管理系统,C语言学生管理系统源代码

    <C语言学生管理系统源代码>由会员分享,可在线阅读,更多相关<C语言学生管理系统源代码(12页珍藏版)>请在人人文库网上搜索. 1.C语言学生成绩管理系统源代码,保证能用#in ...

  8. 学生管理系统 c语言 课程作业(链表实现)

    学生管理系统 源码: GitHub地址:https://github.com/du2693742095/Student_Management_System 功能: 1. 登录界面: 提供登录接口和注册 ...

  9. 用C语言写的学生管理系统,C语言实现简单的学生成绩管理系统

    最近在问答上帮提问者回答问题,有遇到求C语言实现学生管理成绩系统,需求非常简单,就顺手码了下代码.我觉得这种比较小的系统,可以收录起来,做一个C语言基础学习目录也是不错的主意. 因为当时的问题已经找不 ...

  10. 学生管理系统c语言的作用,C语言实现学生信息管理系统(文件版)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 下面是我自己用写的学生信息管理系统,为了增加数据的利用率,分为学生端和教师端,同时实现账号密码登录,以文件的形式将其 ...

最新文章

  1. Grails通过sessionId获取session对象
  2. 苹果iphone手机上input的button按钮颜色显示有问题,安卓却没问题
  3. SpringBoot私人学习笔记
  4. android中include标签使用详解
  5. python 网络设备巡检_python写的一个服务器自动巡检工具
  6. MyCat重要概念以及基础配置详解
  7. 对集成电路的认识以及集成电路的重要性
  8. 解析SSH和SSM两大框架的组成及其区别
  9. 洛谷p1330 封锁阳光大学-二分图染色
  10. CRM客户管理系统-SSM框架项目实战教程
  11. ubuntu截图快捷方式
  12. Django中select_related的作用和用法
  13. 2022年身份证号码信息查询API接口分享
  14. Spring Boot系列——日志配置
  15. react中文文档、英文文档及JavaScript相关文档及web前端相关资料
  16. unraid个人服务器使用指南——持续更新中
  17. btcpool之Stratum协议
  18. 山地剝 (易經大意 韓長庚)
  19. Reference定义(PhantomReference,Cleaner)
  20. CSS组件_0 燕尾

热门文章

  1. 八款你不得不知的开源前端JS框架
  2. 《HiWind企业快速开发框架实战》(2)使用HiWind创建自己的项目
  3. Ubuntu 14.04 LTC 有线网络--网线不识别,灯不亮问题
  4. Android学习分享:执行某ViewGroup的动画时,子控件太多导致动画执行卡顿的问题...
  5. js中得call()方法和apply()方法的用法
  6. XHTML下css+div编写
  7. Nexus 4 成功线刷Android 4.3 Jelly Bean
  8. 【转】[演讲口才]成功沟通100招
  9. 一张有转折意义的神秘地图
  10. 禁用Dropbear中DNS反向查询连接客户端地址补丁