当前位置:网站首页>C 学生管理系统 显示链表信息、删除链表
C 学生管理系统 显示链表信息、删除链表
2022-08-04 00:38: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 FreeLinkData();
//打印数据(链表)。
void ShowStuData();
//显示指令。
void ShowOrder();
int main()
{
int nOrder = -1;
char arrStuNum[10] = { '\0' };
char arrStuName[10] = { '\0' };
int iStuScore = -1;
int nFlag = 1;
//显示指令。
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 2:
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 FreeLinkData()
{ //记录节点。
STUNODE* pTemp = g_pHead;
while (g_pHead != NULL)
{//记录节点。
pTemp = g_pHead;
//向后移动一个。
g_pHead = g_pHead->pNext;
//删除节点。
free(pTemp);
}
}
//打印数据。
void ShowStuData()
{
STUNODE* pTemp = g_pHead;
while (pTemp != NULL)
{
printf("学号:%s,姓名:%s,成绩:%d\n", pTemp->arrStuNum, pTemp->arrStuName, pTemp->iStuScore);
//向下走一步。
pTemp = pTemp->pNext;
}
}
//显示指令。
void ShowOrder()
{
printf("*******************学生管理系统******************\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("***8、显示所有学生信息***\n");
printf("***9、退出系统***\n");
printf("*****************************************************\n");
}
边栏推荐
- ES6高级-迭代器与生成器的用法
- 因为一次bug的教训,我决定手撕Nacos源码(先撕客户端源码)
- A Preliminary Study of RSS Subscription to WeChat Official Account-feed43
- "Miscellaneous" barcode by Excel as a string
- typescript53-泛型约束
- 教你如何定位不合理的SQL?并优化之
- typescript56-泛型接口
- It will invest about 200 billion US dollars in the United States in 20 years, and Samsung Electronics looks so handsome
- jmeter跨平台运行csv等文件
- NLP resources that must be used for projects [Classified Edition]
猜你喜欢
建木DevOps流程的快速运用
Justin Sun was invited to attend the 36氪 Yuan Universe Summit and delivered a keynote speech
孙宇晨受邀参加36氪元宇宙峰会并发表主题演讲
typescript48-函数之间的类型兼容性
Jmeter cross-platform operation CSV files
MATLAB三维绘图命令plot3入门
Apple told Qualcomm: I bought a new campus for $445 million and may plan to speed up self-development of baseband chips
Using matlab to solve the linear optimization problem based on matlab dynamic model of learning notes _11 】 【
View the version number of CUDA, pytorch, etc.
c语言分层理解(c语言操作符)
随机推荐
孙宇晨:Web3.0和元宇宙将协助人类更加全面地进入网络世界
现货白银需要注意八大事项
微服务的简单介绍
typescript54 - generic constraints
typescript50-交叉类型和接口之间的类型说明
Shell编程之循环语句(for、while)
浅谈我国产业园区未来的发展方向
2022-08-03: What does the following go code output?A: 2; B: 3; C: 1; D: 0.package main import "fmt" func main() { slice := []i
如何通过单步调试的方式找到引起 Fiori Launchpad 路由错误的原因试读版
无代码7月热讯 | 微软首推数字联络中心平台;全球黑客马拉松...
Getting started with MATLAB 3D drawing command plot3
XSS - Bypass for loop filtering
typescript53 - generic constraints
outputBufferIndex = mDecode.dequeueOutputBuffer(bufferInfo, 0) 一直返回为-1
js中常用的几种遍历处理数据的方法梳理
Vant3—— 点击对应的name名称跳转到下一页对应的tab栏的name的位置
iframe通信
typescript58-泛型类
互斥锁、读写锁、自旋锁,以及原子操作指令xaddl、cmpxchg的使用场景剖析
【性能优化】MySQL性能优化之存储引擎调优