当前位置:网站首页>C学生管理系统 指定位置插入学生节点
C学生管理系统 指定位置插入学生节点
2022-08-05 02:05:00 【joker_0030】
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
//学生节点。
typedef struct _STU
{
char arrStuNum[10];
char arrStuName[10];
int iStuScore;
struct _STU* pNext;//指向下一个节点。
}STUNODE;
//申明链表的头和尾。
STUNODE* g_pHead = NULL;
STUNODE* g_pEnd = NULL;
//指定位置添加学生信息。
void InSertNod(STUNODE* pTemp, char* arrStuNum[10], char arrStuName[10], int iStuScore);
int main()
{
int nOrder = -1;
char arrStuNum[10] = { '\0' };
char arrStuName[10] = { '\0' };
int iStuScore = -1;
int nFlag = 1;
STUNODE* pTemp = NULL;
//显示指令。
ShowOrder();
while (nFlag)
{
printf("请输入操作指令(0为查看指令)\n");
scanf("%d", &nOrder);
switch (nOrder)
{
case 1://添加一个学生信息。
printf("输入学号:");
scanf("%s", arrStuNum);
printf("输入姓名:");
scanf("%s", arrStuName);
printf("输入分数:");
scanf("%d", &iStuScore);//取地址。
AddStuMSG(arrStuNum, arrStuName, iStuScore);
break;
case 10://头添加。
printf("输入学号:");
scanf("%s", arrStuNum);
printf("输入姓名:");
scanf("%s", arrStuName);
printf("输入分数:");
scanf("%d", &iStuScore);//取地址。
AddStuMSGToLinkHead(arrStuNum, arrStuName, iStuScore);
break;
case 11://指定位置添加。
printf("输入需要查找的学号:");
scanf("%s", arrStuNum);
pTemp = FindStuByNum(arrStuNum);
if (NULL != pTemp);
{
//插入。
printf("输入学号:");
scanf("%s", arrStuNum);
printf("输入姓名:");
scanf("%s", arrStuName);
printf("输入分数:");
scanf("%d", &iStuScore);
InSertNod(pTemp, arrStuNum, arrStuName, iStuScore);
}
break;
case 2:
printf("请输入学生学号/姓名");
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8://打印数据(链表)。
ShowStuData();
break;
case 9:
nFlag = 0;
break;
case 0:
//查看指令。
ShowOrder();
break;
default:
printf("输入的指令不对");
break;
}
}
//释放链表。
FreeLinkData();
system("pause");
return 0;
}
//指定位置添加学生信息。
void InSertNod(STUNODE* pTemp, char* arrStuNum[10], char arrStuName[10], int iStuScore)
{
//创建节点。
STUNODE* pNewTemp = malloc(sizeof(STUNODE));
//成员赋值。
strcpy(pNewTemp->arrStuNum, arrStuNum);//因为数组做参数传入时则完全是一个指针。
strcpy(pNewTemp->arrStuName, arrStuName);//因为数组做参数传入时则完全是一个指针。
pNewTemp->iStuScore = iStuScore;
pNewTemp->pNext = NULL;
if (pTemp == g_pEnd)//是尾节点。
{
g_pEnd->pNext = pNewTemp;//尾结点下一个指向pNewTmep。
g_pEnd = pNewTemp;//尾结点变成pNewTmep。
}
else//中间节点。
{
pNewTemp->pNext = pTemp->pNext;
pTemp->pNext = pNewTemp;
}
}
边栏推荐
- Understand the recommendation system in one article: Recall 06: Two-tower model - model structure, training method, the recall model is a late fusion feature, and the sorting model is an early fusion
- 网络安全与元宇宙:找出薄弱环节
- 使用SuperMap iDesktopX数据迁移工具迁移ArcGIS数据
- 【Unity入门计划】2D游戏中遮挡问题的处理方法&伪透视
- Live preview | 30 minutes started quickly!Look at credible distributed AI chain oar architectural design
- 程序员失眠时的数羊列表 | 每日趣闻
- 一文看懂推荐系统:召回06:双塔模型——模型结构、训练方法,召回模型是后期融合特征,排序模型是前期融合特征
- 如何模拟后台API调用场景,很细!
- SuperMap支持的国产环境汇总
- 如何看待自己的羞愧感
猜你喜欢
1349. 参加考试的最大学生数 状态压缩
使用SuperMap iDesktopX数据迁移工具迁移地图文档和符号
HOG特征学习笔记
刷爆朋友圈,Alibaba出品亿级并发设计速成笔记太香了
source program in assembly language
<开发>实用工具
Transfer Learning - Distant Domain Transfer Learning
使用OpenVINO实现飞桨版PGNet推理程序
Understand the recommendation system in one article: Recall 06: Two-tower model - model structure, training method, the recall model is a late fusion feature, and the sorting model is an early fusion
线性表的查找
随机推荐
树表的查找
leetcode-对称二叉树
Opencv - video frame skipping processing
直播预告|30分钟快速入门!来看可信分布式AI链桨的架构设计
迁移学习——Distant Domain Transfer Learning
直播回放含 PPT 下载|基于 Flink & DeepRec 构建 Online Deep Learning
开篇-开启全新的.NET现代应用开发体验
CPDA|运营人如何从负基础学会数据分析(SQL)
PHP技能评测
【PyQT5 绑定函数的传参】
迁移学习——Joint Geometrical and Statistical Alignment for Visual Domain Adaptation
Three handshake and four wave in tcp
leetcode-另一棵树的子树
力扣-二叉树的最大的深度
Greenplum Database Fault Analysis - Can a Soft Connection Be Made to the Database Base Folder?
Methods commonly used interface automation test framework postman tests
How to create an rpm package
Residential water problems
Greenplum Database Fault Analysis - Why Does gpstart -a Return Failure After Version Upgrade?
【日常训练】1403. 非递增顺序的最小子序列