C语言——教师信息管理系统

1.教师信息添加.h

void InputTeacher()
{int c = 0;system("cls");printf("\t\t*************************************************\n");printf("\t\t********    欢迎来到教师信息添加系统   **********\n");printf("\t\t*************************************************\n");printf("\t\t********    1.确定添加教师信息         **********\n");printf("\t\t********    2.放弃添加教师信息         **********\n");printf("\t\t*************************************************\n");printf("请输入您的选项:\n");scanf("%d", &c);getchar();switch (c){case 1:{int i;//动态内存 分配返回值为void型指针(新开辟一个节点用来保存输入的值)Node* pNewNode = (Node*)malloc(sizeof(Node));pNewNode->pNext = NULL;//头插法if (g_pHead == NULL)//如果第一个节点为空,则新开辟的节点就是头{g_pHead = pNewNode;}else//如果第一个节点不为空 则把新开辟的节点插到头结点之前 使新开辟的节点成为头(先让新节点的指针域指向{pNewNode->pNext = g_pHead;//原来的头 然后再让他成为新的头)g_pHead = pNewNode;}printf("请输入教师姓名:\n");scanf("%s", pNewNode->teach.T_name);//将新添加的数据存到新开辟的节点里getchar();printf("请输入教师性别:\n");scanf("%s", pNewNode->teach.T_sex);getchar();printf("请输入教师年龄:\n");scanf("%d", &pNewNode->teach.T_age);getchar();printf("请输入教师积分:\n");scanf("%d", &pNewNode->teach.T_score);getchar();printf("请输入教师住址:\n");scanf("%s", pNewNode->teach.T_addr);getchar();//进度读取条{i = 6;printf("\t\t玩命加载数据中:");while (i-- > 0){printf(".");Sleep(500);}printf("\n");}printf("教师信息添加成功!\n");system("pause");system("cls");break;}case 2:system("pause");system("cls");break;}
}

2. 教师信息显示.h

void PrintfTeacher()
{int c = 0;system("cls");printf("\t\t*************************************************\n");printf("\t\t********    欢迎来到教师信息显示系统   **********\n");printf("\t\t*************************************************\n");printf("\t\t********    1.确定显示教师信息         **********\n");printf("\t\t********    2.放弃显示教师信息         **********\n");printf("\t\t*************************************************\n");printf("请输入您的选项:\n");scanf("%d", &c);getchar();switch (c){case 1:{system("cls");printf("\t\t*************************************************\n");printf("\t\t********        所有教师信息如下       **********\n");printf("\t\t*************************************************\n");printf("\t\t** 姓名      性别      年龄      积分     住址 **\n");printf("\t\t*************************************************\n");//遍历链表Node* p = g_pHead;while (p != NULL){printf("\t\t%s\t\t%s\t%d\t%d\t%s\n",p->teach.T_name,p->teach.T_sex,p->teach.T_age,p->teach.T_score,p->teach.T_addr);p = p->pNext;}system("pause");system("cls");break;}case 2:system("pause");system("cls");break;}
}

3.教师信息修改.h

void AfterTeacher()
{int c = 0;system("cls");printf("\t\t*************************************************\n");printf("\t\t********    欢迎来到教师信息修改系统   **********\n");printf("\t\t*************************************************\n");printf("\t\t********    1.确定修改教师信息         **********\n");printf("\t\t********    2.放弃修改教师信息         **********\n");printf("\t\t*************************************************\n");printf("请输入您的选项:\n");scanf("%d", &c);getchar();switch (c){case 1:{char XGname[20] = { 0 };printf("请输入您要修改的教师的姓名:\n");scanf("%s", XGname);getchar();//遍历链表Node* p = g_pHead;while (p != NULL){if (strcmp(p->teach.T_name, XGname) == 0){printf("请输入您将要修改的教师姓名:\n");scanf("%s", p->teach.T_name);getchar();printf("请输入您将要修改的教师性别:\n");scanf("%s", p->teach.T_sex);getchar();printf("请输入您将要修改的教师年龄:\n");scanf("%d", &p->teach.T_age);getchar();printf("请输入您将要修改的教师积分:\n");scanf("%d", &p->teach.T_score);getchar();printf("请输入您将要修改的教师住址:\n");scanf("%s", p->teach.T_addr);getchar();printf("教师信息修改成功!\n");}else if (p == NULL)//strcmp(p->teach.T_name, XGname) != 0){printf("没有查询到此人!\n");}p = p->pNext;}system("pause");system("cls");break;}case 2:system("pause");system("cls");break;}
}

4.教师信息删除.h

void DeleteTeacher()
{int c = 0;system("cls");printf("\t\t*************************************************\n");printf("\t\t********    欢迎来到教师信息删除系统   **********\n");printf("\t\t*************************************************\n");printf("\t\t********    1.确定删除教师信息         **********\n");printf("\t\t********    2.放弃删除教师信息         **********\n");printf("\t\t*************************************************\n");printf("请输入您的选项:\n");scanf("%d", &c);getchar();switch (c){case 1:{char SCname[20];printf("请输入您要删除的教师的姓名:\n");scanf("%s", SCname);getchar();Node* p1, * p2;//判断是不是头结点if (strcmp(g_pHead->teach.T_name, SCname) == 0){int m = 0;printf("您是确定要删除此人?(1-确定,2-再想想)\n");scanf("%d", &m);getchar();if (m == 1){p1 = g_pHead;g_pHead = g_pHead->pNext;free(p1);printf("删除成功!\n");system("pause");system("cls");}else if (m == 2){exit(0);}}//不是头结点Node* p = g_pHead;while (p->pNext != NULL){if (strcmp(p->pNext->teach.T_name, SCname) == 0){int m = 0;printf("您是确定要删除此人?(1-确定,2-再想想)\n");scanf("%d", &m);if (m == 1){p2 = p->pNext;p->pNext = p->pNext->pNext;free(p2);printf("删除成功!\n");system("pause");system("cls");}else if (m == 2){system("pause");system("cls");}}p = p->pNext;if (p->pNext == NULL){break;}}if (p->pNext == NULL){printf("查无此人!\n");}system("pause");system("cls");break;}case 2:system("pause");system("cls");break;}
}

5.教师信息查询.h

Node* FindTeacher()
{int c = 0;system("cls");printf("\t\t*************************************************\n");printf("\t\t********    欢迎来到教师信息保存系统   **********\n");printf("\t\t*************************************************\n");printf("\t\t********    1.确定保存教师信息         **********\n");printf("\t\t********    2.放弃保存教师信息         **********\n");printf("\t\t*************************************************\n");printf("请输入您的选项:\n");scanf("%d", &c);getchar();switch (c){case 1:{//验证系统indentifying_Code();char teachName[20] = { 0 };printf("请输入您要查询的名称或姓氏:\n");scanf("%s", teachName);getchar();//遍历链表Node* p = g_pHead;while (p != NULL){if (strcmp(p->teach.T_name, teachName) == 0)//                      如果输入的名称存在则显示该教师信息{printf("姓名:%s\t性别:%s\t年龄:%d\t积分:%d\t住址:%s\n",p->teach.T_name,p->teach.T_sex,p->teach.T_age,p->teach.T_score,p->teach.T_addr);}else if (p == NULL)//strcmp(p->teach.T_name, teachName) != 0{printf("查无此人!\n");}p = p->pNext;//移动指针}system("pause");system("cls");return NULL;break;}case 2:system("pause");system("cls");break;}
}

6.菜单界面.h

//菜单界面
void showmenu()
{printf("\t\t*******************************************\n");printf("\t\t*****    欢迎使用教师信息管理系统   *******\n");printf("\t\t*******************************************\n");printf("\t\t***        教师信息管理系统       *********\n");printf("\t\t*******************************************\n");printf("\t\t***      1.教师信息添加           *********\n");printf("\t\t***      2.教师信息显示           *********\n");printf("\t\t***      3.教师信息保存           *********\n");printf("\t\t***      4.教师信息读取           *********\n");printf("\t\t***      5.教师信息查询           *********\n");printf("\t\t***      6.教师信息修改           *********\n");printf("\t\t***      7.教师信息删除           *********\n");printf("\t\t***      8.教师信息排序           *********\n");printf("\t\t***      9.教师信息积分计算       *********\n");printf("\t\t***      0.退出程序               *********\n");printf("\t\t*******************************************\n");printf("请按任意键进行操作:\n");
}

7.教师积分计算.h

void AddScoreTeacher()
{char ADDname[20] = { 0 };int ADDscore = 0;printf("请输入将要增加积分的教师名称:\n");scanf("%s", ADDname);getchar();printf("请输入将要添加的积分:\n");scanf("%d", &ADDscore);getchar();//遍历链表Node* p = g_pHead;while (p != NULL){if (strcmp(p->teach.T_name, ADDname) == 0)                     //如果输入的人名存在则把第二次的分数加到第一次的分数上(进行累加){p->teach.T_score = p->teach.T_score + ADDscore;}else if (p == NULL){printf("没有查询到此人!\n");}p = p->pNext;}system("pause");system("cls");
}

8.教师信息读取.h

void ReadTeacher()
{int c = 0;system("cls");printf("\t\t*************************************************\n");printf("\t\t********    欢迎来到教师信息读取系统   **********\n");printf("\t\t*************************************************\n");printf("\t\t********    1.确定读取教师信息         **********\n");printf("\t\t********    2.放弃读取教师信息         **********\n");printf("\t\t*************************************************\n");printf("请输入您的选项:\n");scanf("%d", &c);getchar();switch (c){case 1:{//打开文件FILE* fp = fopen("txt文本路径", "a+");//a+追加/读取打开文本文件 文件不存在时 建立新文件 存在时在原有文件后追加if (fp == NULL){printf("文件打开失败!\n");exit(0);}//读文件Teacher Teach;Node* p = g_pHead;while (fread(&Teach, sizeof(Teacher), 1, fp)){//创建一个新的节点Node* pNewNode = (Node*)malloc(sizeof(Node));pNewNode->pNext = NULL;memcpy(pNewNode, &Teach, sizeof(Teacher));//头插法if (g_pHead == NULL){g_pHead = pNewNode;}else{pNewNode->pNext = g_pHead;g_pHead = pNewNode;}}//关闭文件fclose(fp);printf("信息读取成功!\n");system("pause");system("cls");break;}case 2:system("pause");system("cls");break;}
}

9.教师信息保存.h

void SaveTeacher()
{int c = 0;system("cls");printf("\t\t*************************************************\n");printf("\t\t********    欢迎来到教师信息保存系统   **********\n");printf("\t\t*************************************************\n");printf("\t\t********    1.确定保存教师信息         **********\n");printf("\t\t********    2.放弃保存教师信息         **********\n");printf("\t\t*************************************************\n");printf("请输入您的选项:\n");scanf("%d", &c);getchar();switch (c){case 1:{//打开文件FILE* fp = fopen("txt文本路径", "wb");//r只读,如果文件不存在,文件打开失败if (fp == NULL){printf("文件打开失败!\n");exit(0);}//遍历链表Node* p = g_pHead;while (p != NULL){fwrite(&p->teach, sizeof(Teacher), 1, fp);p = p->pNext;}//关闭文件fclose(fp);printf("\n数据保存成功!\n");system("pause");system("cls");break;}case 2:system("pause");system("cls");break;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的进程,线程、协程

python进程的实现 #coding:utf-8 from multiprocessing import Process import timedef run(name):print(%s is running % name)time.sleep(3)print(%s finished his run % name)if __name__ __main__:p Process(targetrun, args(XWenXiang,)) # 创建一个进程对象p.start()…

Luogu P3388 【模板】割点(割顶) 题解 Tarjan/割点

题目链接:Luogu P3388 【模板】割点(割顶) 题目描述: 给定一张无向图,输出割点个数以及割点编号。 割点的定义:删除一个点及其连接的边后,若能使图的联通块数量增加,那么被删除的这个…

怎么在bash shell中操作复杂json对象

怎么在bash shell中操作复杂json对象 在bash shell中操作复杂JSON对象,jq可以帮助我们在bash环境下轻松地处理这类数据,本文将详细介绍如何使用jq在bash中操作复杂的JSON对象。 jq是一个轻量级且灵活的命令行JSON处理器,它允许你以非常高效的…

学习数据结构和算法的第3天

常数循环的复杂度 计算Func4的时间复杂度 voidFunc4(int N) { int count 0; for (int k 0; k < 100; k) { count; } printf("%d\n", count); }O&#xff08;1&#xff09; 不是代表算法运行一次&#xff0c;是常数次 strchar的时间复杂度 #include<stdi…

k8s版本升级到1.24.x

每个版本升级都有对应的文档,以1.23升级到1.24为例。 1.24.6版本后,k8s不再依赖于docker。需要先切换到使用containerd。 可以查看栏目的k8s安装文档。 确定要升级到哪个版本 使用操作系统的包管理器找到最新的补丁版本 Kubernetes 1.24: yum list --showduplicates kub…

Redis(十二)Bigkey

文章目录 游标案例生成100万测试数据key生产上限制keys */flushdb/flushall等危险命令不使用keys *&#xff1a;scan Biigkey案例多大算大发现bigkey渐进式删除生产调优示例问题 游标案例 生成100万测试数据key shell: for((i1;i<100*10000;i)); do echo "set k$i v…

Nicn的刷题日常之调整奇数偶数顺序

目录 1.题目描述 2.解题思路 3.解题 1.题目描述 输入一个整数数组&#xff0c;实现一个函数&#xff0c; 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分&#xff0c; 所有偶数位于数组的后半部分。 2.解题思路 1. 给定两个下标left和right&#xff…

编程笔记 html5cssjs 073 JavaScript Object数据类型

编程笔记 html5&css&js 073 JavaScript Object数据类型 一、创建 Object二、Object 类型的属性与方法三、示例四、参考小结 JavaScript 中的 Object 数据类型是该语言中最复杂也最灵活的数据类型之一&#xff0c;它是其他所有内置对象和用户自定义对象的基础。在 JavaS…

网课:机器翻译——牛客(题解)

题目描述 小晨的电脑上安装了一个机器翻译软件&#xff0c;他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单&#xff0c;它只是从头到尾&#xff0c;依次将每个英文单词用对应的中文含义来替换。对于每个英文单词&#xff0c;软件会先在内存中查找这个单词的中文含…

手拉手spring-boot-starter-mail实现发送QQ邮箱

技术栈 springbootmybatis-plusmysql 软件 版本 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3.1 mybatis-plus 3.5 spring-boot-starter-mail Springboot版本 spring boot对mail的封装支持非常好&#xff0c;方便&#xff0c;几行代码就可以把邮件集成进来…

5 个 JavaScript 代码优化技巧

在本文中&#xff0c;将介绍 5 个代码优化的技巧&#xff0c;有助于编写更高效、更优雅的代码。这些技巧包括使用扩展运算符简化代码到使用 async/await 处理异步代码等。 1. 使用扩展运算符解构对象和数组 扩展运算符由三个点 ... 表示&#xff0c;可用于对象和数组的解构。…

调用Gensim库训练Word2Vec模型

一、前期工作&#xff1a; 1. 安装Gensim库 pip install gensim 2.安装chardet库 pip install chardet 3. 对原始语料分词 选择《人民的名义》的小说原文作为语料&#xff0c;先采用jieba进行分词 import jieba import jieba.analyse import chardet jieba.suggest_freq…

Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(三)

原文&#xff1a;Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第六章&#xff1a;决策树 决策树是多功能的机器学习算法&#xff0c;可以执行分类和回归任务&#xff0c;甚至多输出任务。它们…

麻雀搜索算法|Sparrow Search Algorithm(SSA)

在麻雀群体智慧、觅食和反捕食行为的启发下&#xff0c;提出了一种新的群体优化方法&#xff0c;即麻雀搜索算法&#xff08;SSA&#xff09;。 1、简介 在麻雀搜索算法中包含三种类型的麻雀个体&#xff0c;即发现者、跟随者和侦察者&#xff0c;三种类型对应三种行为。发现…

GM8775C——DSI 转双通道 LVDS 发送器

1 产品概述 GM8775C 型 DSI 转双通道 LVDS 发送器产品主要实现将 MIPI DSI 转单 / 双通道 LVDS 功能&#xff0c; MIPI 支持 1/2/3/4 通道可选&#xff0c;每通道最高支持 1Gbps 速率&#xff0c;最大支持 4Gbps 速率。 LVDS 时钟频率高达 154MHz &#xff…

【Eclipse平台】1Eclipse平台总体概览

Eclipse平台总览 欢迎来到【Eclipse平台系列】,本文介绍Eclipse平台的总体概览 文章目录 Eclipse平台总览1. 什么Eclipse开放的架构2. 如何下载Eclipse3. Eclipse的命名规则3. Eclipse的构成3.1 Workbench1. 什么Eclipse Eclipse是一个流行的集成开发环境(Integrated Devel…

Postgresql体系结构

client连接PostgreSQL过程&#xff1a; 1、客户端发起请求 2、主服务postmaster进程负责服务器是否接受客户端的host通信认证&#xff0c;服务器对客户端进行身份鉴别 3、主服务进程为该客户端单独fork一个客户端工作进程postgres 4、客户端与postgres进程建立通信连接&#xf…

ensp实验合集(三)

实验11 无线网设备配置.......................................................... - 97 - 实验12 单臂路由器配置........................................................ - 106 - 实验13 防火墙配置.............................................................…

langgraph学习--创建基本的agent执行器

本文介绍如何使用langgraph创建一个基本的Agent执行器&#xff0c;主要包括下面几个步骤&#xff1a; 1、定义工具 2、创建langchain Agent&#xff08;由LLM、tools、prompt三部分组成&#xff09; 3、定义图形状态 传统的LangChain代理的状态有几个属性: &#xff08;1&#…

centos7 linux 不小心把根目录的内容移到别的目录了

在根目录不小心执行了如下命令&#xff0c;然后发现大部分常用命令不能用了。都在报错 mv * /data/software从网上找了好多帖子&#xff0c;命令都不好使。有的是用/data/software/lib64/ld-linux-x86-64.so.2&#xff0c;/data/software/lib64就不是个目录,只是个软连接&…