当前位置:网站首页>C学生数据库_读取文件中学生信息1。
C学生数据库_读取文件中学生信息1。
2022-08-07 07:17: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 ReadStuFromFile();
int main()
{
int nOrder = -1;
char arrStuNum[10] = { '\0' };
char arrStuName[10] = { '\0' };
int iStuScore = -1;
int nFlag = 1;
STUNODE* pTemp = NULL;
//读取学生信息表。
ReadStuFromFile();
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("输入学号:");
scanf("%s", arrStuNum);
//查找。
pTemp = FindStuByNum(arrStuNum);
//打印。
if (NULL != pTemp);
{
printf("学号:%s,姓名:%s,成绩:%d\n", pTemp->arrStuNum, pTemp->arrStuName, pTemp->iStuScore);
}
break;
case 3:
printf("输入需要修改的学号:");
scanf("%s", arrStuNum);
//查找。
pTemp = FindStuByNum(arrStuNum);
//打印。
if (NULL != pTemp);
{
//修改学号。
printf("输入修改后的学号:");
scanf("%s", arrStuNum);
strcpy(pTemp->arrStuNum, arrStuNum);
//修改姓名
printf("输入修改后姓名:");
scanf("%s", arrStuName);
strcpy(pTemp->arrStuName, arrStuName);
//修改分数。
printf("输入修改后分数:");
scanf("%d", &iStuScore);
}
break;
case 4:
SaveStuToFile();
//保存学生信息。
break;
case 5:
break;
case 6://删除指定学生节点。
printf("输入需要删除的学号:");
scanf("%s", arrStuNum);
//查找。
pTemp = FindStuByNum(arrStuNum);
//打印。
if (NULL != pTemp)
{
//调用删除学生的函数。
DeleteStuNode(pTemp);
}
break;
case 7:
break;
case 8://打印数据(链表)。
ShowStuData();
break;
case 9:
nFlag = 0;
break;
case 0:
//查看指令。
ShowOrder();
break;
default:
printf("输入的指令不对");
break;
}
}
//保存。
SaveStuToFile();
//释放链表。
FreeLinkData();
system("pause");
return 0;
}
//读取学生信息表。
void ReadStuFromFile()
{
FILE* pFile = fopen("dad.txt", "rb+");
char strBuf[30] = { 0 };
char strStuNum[10] = { 0 };
char strStuName[10] = { 0 };
int strScore[10] = { 0 };
int nCount = 0;
if (NULL == pFile)
{
printf("文件打开失败\n");
return;
}
//操作指针,读取函数。
while (fgets(strBuf, 30, pFile))// 一次读一行。
{
int i = 0;
int j = 0;
for (i = 0; strBuf[i] != '\r'; i++)
{
if (0 == nCount)//没到","
{
strStuNum[i] = strBuf[i];
if ("," == strBuf[i])
{
nCount++;
}
}
else if (1 == nCount)//到第一个"."。
{
strStuName[j] = strBuf[j];
j++;
if ("," == strBuf[i])
{
nCount++;
j = 0;
}
}
else//第二个","。
{
strScore[j] = strBuf[i];
j++;
}
}
}
fclose(pFile);
}
边栏推荐
- Completed - based on SSM online movie booking system
- FPGA开发第四弹:触摸按键控制LED灯实验
- Routing, network, Internet, Internet, public network private network IP, NAT technology
- DeFi Prospects: An Overview of Q2 Progress of Mainstream DeFi Protocols
- 地图加载wmts格式底图的配置
- Redis 定长队列的探索和实践
- 2022-08-07周总结
- LeetCode points to Offer 24. Reverse linked list
- Model fine-tuning transfer learning Finetune method Daquan
- 用户登录模块---Druid+JDBC+Servlet
猜你喜欢
随机推荐
5.PHPwhile,foreach和for循环
Graphical LeetCode - 1408. String Matching in Arrays (Difficulty: Easy)
如何搭建神经网络模型,多层全连接神经网络
【C语言】内存函数
强大的数
0-1背包问题
VoLTE Basic Self-study Series | Summary
servlet tutorial 2: return to the jsp page
The server gets the user ip
bp神经网络 损失函数,bp神经网络参数优化
排序---插入排序
剑指 Offer II 091. 粉刷房子
神经元细胞属于什么细胞,人体有多少神经元细胞
Gaussian Temporal Awareness Networks GTAN论文阅读笔记
LeetCode 1163. The last substring lexicographically
8 月数据库排行榜:Oracle 分数大跌,MySQL 上涨最多
家居江湖掀起「夺魁战」,红星美凯龙如何打造品牌增量场?
FPGA development fourth bullet: touch button to control LED light experiment
31. 了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?应对措施是什么
Swordsman Offer II 091. Paint the House









