#include <stdio.h>
#include <string.h>
#define NAME_LEN 64   /* 姓名字符数 */ typedef struct students {long studne_id;       /* 学号 */char name[NAME_LEN]; /* 姓名 */char sex[3];          /* 性别 */int age;              /* 年龄 */double height;        /* 身高 */long long telephone;  /* 联系电话 */
} Students;void select_studnet_all(Students std[], int count);   // 查询函数
int add_studnet_info(Students std[], int count);      // 添加函数
int find_Students_id(Students std[], long studne_id, int count);  // 查询学号函数
void update_studnet_info(Students std[], int count);   //  更新函数
int delete_studnet_info(Students std[], int count);  //  删除函数int main(void) {int num;int count = 5;Students student[] = {{202007131, "陈二", "男", 17, 177, 17100005963},{202007132, "张三", "男", 18, 175, 17200005912},{202007133, "李四", "女", 19, 168, 15100005934},{202007134, "王五", "男", 20, 180, 12300005463},{202007135, "赵六", "男", 21, 170, 11100002983},};while (1) {puts("----------欢迎进入学生管理系统----------");puts("|         1.查询学生信息               |");puts("|         2.添加学生信息               |");puts("|         3.更新学生信息               |");puts("|         4.删除学生信息               |");puts("|         5.退出系统                   |");puts("----------------------------------------");printf("请输入1至5选项:");scanf("%d", &num);switch (num) {case 1:select_studnet_all(student, count);break;case 2:count = add_studnet_info(student, count);break;case 3:update_studnet_info(student, count);break;case 4:count = delete_studnet_info(student, count);break;case 5:puts("系统结束运行!!");return 0;default:puts("输入错误,请重新输入!");break;}}return 0;
}void select_studnet_all(Students std[], int count) {int i;puts("  学号      姓名 性别  年龄   身高      联系电话");for (i = 0; i < count; i++) {printf("%ld   %-5s %s    %d  %6.1fcm  %lld\n", std[i].studne_id, std[i].name, std[i].sex, std[i].age, std[i].height, std[i].telephone);}puts("\n");
}int add_studnet_info(Students std[], int count) {long studne_id;       /* 学号 */char name[NAME_LEN]; /* 姓名 */char sex[3];          /* 性别 */int age;              /* 年龄 */double height;        /* 身高 */long long telephone;  /* 联系电话 */int index;printf("请输入学号:");scanf("%ld", &studne_id);index = find_Students_id(std, studne_id, count);printf("请输入姓名:");scanf("%s", name);printf("请输入性别:");scanf("%s", sex);printf("请输入年龄:");scanf("%d", &age);printf("请输入身高:");scanf("%lf", &height);printf("请输入联系电话:");scanf("%lld", &telephone);if (index == -1) {std[count].studne_id = studne_id;strcpy(std[count].name, name);strcpy(std[count].sex, sex);std[count].age = age;std[count].height = height;std[count].telephone = telephone;puts("已成功添加新的学生信息:");printf("%ld   %-5s %s    %d  %6.1fcm  %lld\n", studne_id, name, sex, age, height, telephone);count++;}else {puts("学号重复添加失败!");}return count;
}int find_Students_id(Students std[], long studne_id, int count) {int i;int index;for (i = 0; i < count; i++) {if (std[i].studne_id == studne_id) {index = i;break;}else {index = -1;}}return index;
}void update_studnet_info(Students std[], int count) {long studne_id;       /* 学号 */char name[NAME_LEN]; /* 姓名 */char sex[3];          /* 性别 */int age;              /* 年龄 */double height;        /* 身高 */long long telephone;  /* 联系电话 */int index;printf("请输入要修改的学生的学号:");scanf("%ld", &studne_id);index = find_Students_id(std, studne_id, count);if (index != -1) {puts("请进行修改操作!");printf("请输入学号:");scanf("%ld", &studne_id);printf("请输入姓名:");scanf("%s", name);printf("请输入性别:");scanf("%s", sex);printf("请输入年龄:");scanf("%d", &age);printf("请输入身高:");scanf("%lf", &height);printf("请输入联系电话:");scanf("%lld", &telephone);puts("已更新的学生信息:");printf("%ld   %-5s %s    %d  %6.1fcm  %lld\n", studne_id, name, sex, age, height, telephone);std[index].studne_id = studne_id;strcpy(std[index].name, name);strcpy(std[index].sex, sex);std[index].age = age;std[index].height = height;std[index].telephone = telephone;puts("修改成功!");}else {puts("没有查找到该学生!");}}int delete_studnet_info(Students std[], int count) {long studne_id;       /* 学号 */int i;printf("请输入要删除的学生的学号:");scanf("%ld", &studne_id);for (i = 0; i < count; i++) {if (std[i].studne_id == studne_id) {while (1) {if (i < count) {std[i] = std[i + 1];i++;}else {break;}}puts("删除成功!");count--;break;}}if (count == i) {puts("没有查找到该学生!");}return count;
}

运行结果:

  1. 查询功能

  2. 添加功能:
    如果学号重复则添加失败:

    学号不重复:

  3. 更新功能:
    没有找到学号:

    找到学号:

  4. 删除功能:
    没有找到学号:

    找到学号:

  5. 退出系统

C语言 学生管理系统相关推荐

  1. c语言学生管理系统常见问题,关于C语言学生管理系统问题

    关于C语言学生管理系统问题 我弄了两天啦~就快疯掉啦~本来那个txt文件还可以储存的~但现在又不能啦~还有那个输出所有学生的信息~我不会弄啊~~望各位达人伸出援手啊~~小弟感激不尽 #include ...

  2. C语言学生管理系统(期末作业,超详细哟,拿走不谢!!!)

    C语言学生管理系统 前言 很多学校都选择C语言作为学生编程入门语言,许多老师都会布置C语言期末大作业,作业题目很多就是学生信息管理系统,以前都是练习小题目,几十行代码就能搞定,而完整的写完这个系统我用 ...

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

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

  4. C语言学生管理系统(开源)

    大一课设 - 一个不算糟糕的C语言学生管理系统(附报告书) 大一的时候可真美好啊,当时为了实现一个项目熬夜写一个星期都不觉得累,反而单人完成项目之后还异常兴奋,有种难言的喜悦感,也挺佩服当时的自己的, ...

  5. C语言学生管理系统心得

    心得: 10天基本完成了学生管理系统,任务很紧,还好坚持了下来.考核前一天改bug到凌晨三点多,虽然现在依然功能未能完善,逻辑上还有问题.但是总体的感受是,并没有想象中那样,困难到无法实现,收获真的很 ...

  6. C语言学生管理系统(将数据保存至TXT文档)附源码

    C语言学生管理系统(将数据保存至TXT文档) 在大一学习完C语言之后,回家遇到疫情,便有了用C语言写一个学生管理系统的想法,在家花费了一些时间,刚开始写了一点,后来可能是因为学艺不精就没写完,开学到现 ...

  7. c语言编程学生管理系统的代码,C语言学生管理系统源代码.doc

    C语言学生成绩管理系统源代码,保证能用-- #include "malloc.h" #include "stdio.h" #include "stdl ...

  8. 【1】C++语法与数据结构之C语言学生管理系统转C++学生管理系统

    从本文开始,后续将陆续发布C++语法与数据结构的相关内容,同样还是以学生管理系统来融汇贯通所有知识点. 接上篇博客[终极完美高效]C语言实用算法系列之学生管理系统_单向链表外排序_堆内数组存储链表节点 ...

  9. C语言学生管理系统项目

    这是学习C语言以来的第一个项目,花了我2周时间,前期基本上是在网上参考别人写的代码,然后自己尝试着创建链表,但是毕竟是第一个写的项目,还是挺累的,写完这个项目,从此有了信心写下面和以后所有的项目,自己 ...

  10. C语言 学生管理系统 c++ 学生管理系统

    这是在大一上学期写的课设,到大二才开始写csdn博客,花了四天时间从零到一,废话不多说,请欣赏下面的代码 c语言版 学生管理系统 #include<stdio.h> #include< ...

最新文章

  1. Uploadify_THINKPHP配置说明
  2. NPOI Excel 导出学习 一 (基础导出)
  3. 企业微信H5_网页jssdk调用 config和agentconfig的区别
  4. DICOM开发工具总结
  5. 定时休眠 linux,linux系统编程手册 定时器和休眠
  6. 洛谷 P1451【细胞】
  7. background 图片比例缩小_如何更精准控制背景图片?
  8. 解决两个WINDOWS10的卡死问题
  9. css摇杆,【宅家呗专题】Virtual Joystick虚拟摇杆插件教程
  10. 免安装版的Mysql安装与配置——详细教程
  11. php ansiix99mac,华擎推出X99E-ITX/ac主板,终于可以把Haswell-E装进小钢炮
  12. react中使用Route报错` A <Route> is only ever to be used as the child of <Routes> element, never rendered`
  13. echarts上加横线标线_Echarts地图添加引导线效果(labelLine)
  14. The Joel Test:Joel 用来评价软件开发团队成熟度的12个问题
  15. python网络编程——HTTP客户端
  16. line-height行高
  17. word使用Bibtex4word插入参考文献
  18. android 打包多个apk注意事项:
  19. sql 中or与in的查询效率对比
  20. 手机吃鸡语音服务器异常是怎么回事,《绝地求生》新版本里实用功能介绍 卡语音怎么解决...

热门文章

  1. CodeForces 597A Divisibility
  2. Swift和OC文件间的相互调用
  3. 项目托管至GitHub上
  4. API编程基本控件使用
  5. getAttribute与getParameter区别
  6. 使用python来访问Hadoop HDFS存储实现文件的操作
  7. NumPy-快速处理数据
  8. java实践源码--哈弗曼树
  9. 腾讯面试:滑动窗口最大值
  10. 口语学习Day7:今天聊聊美国超市的物价