资源简介
首先,逐行读取指定文件中的数据,并进行解析后保存在顺序表中。其中,文件中每行数据格式为“学号,姓名,年龄”,比如“SA10225048,[yyw1] 张三,24”。
(提示:采用顺序表结构时,顺序表中每个表元素包含三类信息:学号,姓名,和年龄;采用单链表结构时,单链表中每个结点的数据域包含三类信息:学号,姓名,和年龄。)
再,根据键盘输入进行相关操作(查找,删除和插入)。比如,若键盘输入为“P3”,则表示打印出第3项的信息(注意:采用顺序表结构时,第3项数据对应下标为2的表元素;采用单链表结构时,第3项数据对应链表中第3个结点的信息;);若键盘输入为“D3”,则表示删除第3个表元素;若键盘输入为“I3,SA10225038,张四,24”,则表示在第3项前插入一个学生的信息(SA10225038,张四,24)。
代码片段和文件信息
#include
#include
#include
#include
typedef struct ListNode { //定义结构体
char *id;
char *name;
char *age;
ListNode *Next; // 指向下一个链表节点
}Node *PNode;
void readfile(PNode L int *m){
PNode p q;
q = L;
int i;
FILE *fp;
char buffer[30]; //buffer数组存放读取文件的每一条信息
q = L; //读入第一条数据
if ((fp = fopen(“Lab1test.DAT“ “r“)) == NULL) // 打开文件并且让fp指向文件
{
printf(“Can not open file\n“);
}
while (!feof(fp)){ //当文件未结束时执行
p = (PNode)malloc(sizeof(Node));
if (fgets(buffer 30 fp) == NULL)
break;
buffer[strlen(buffer) - 1] = ‘\0‘;
int count = 0;
for (i = 0; buffer[i] != ‘‘; i++){ //count记录每个结点应该分配的大小
count++;
}
p->id = (char*)malloc(sizeof(char)*(count + 1));
buffer[i++] = ‘\0‘;
strcpy(p->id buffer);
count = 0;
for (; buffer[i] != ‘‘; i++){
count++;
}
p->name = (char*)malloc(sizeof(char)*(count + 1));
buffer[i++] = ‘\0‘;
strcpy(p->name &buffer[i - count - 1]);
p->age = (char*)malloc(sizeof(char)*(count + 1));
strcpy(p->age &buffer[i]);
q->Next = p; //将p插入链表的末尾
q = q->Next; //q指针后移
(*m)++; //信息条数+1
}
q->Next = NULL;
}
void PrintList(PNode L){
PNode p;
p = L->Next;
int count = 1;
//printf(“%-15s%-10s%-5s\n“ “学号“ “姓名“ “年龄“);
while (p != NULL){
printf(“第%d项:学号%s 姓名%s年龄%s\n“ countp->id p->name p->age);
count++;
p = p->Next;
}
}
void DelNode(PNode L int c){
PNode p q;
p = L;
for (int i = 0; i {
p = p->Next;
}
q = p->Next;
p->Next = p->Next->Next;
free(q);
PrintList(L);
}
void InsertNode(PNode L int c){
int i count=0;
PNode p q;
p = L;
char a[30];
//printf(“请输入插入信息:\n“);
scanf(“%s“ a);
q
- 上一篇:基于锁相环的角度观测器C语言实现
- 下一篇:C语言五子棋实验报告.docx
相关资源
- 永磁同步电机的FOC控制算法
- Proteus仿真:PID算法输出.rar
- 一个模糊PID温度控制算法源代码
- 经典滤波算法
- KMP算法C语言程序
- SVM算法实现(源码+文档)
- 算法A律U律实现
- 人工蜂群算法.docx
- BlowFish加密算法
- C语言常用算法源代码
- c++数组快排算法
- 算法表达式求值.cpp
- PID算法.c
- QR二维码C++源码 算法实现
- 基于opencv漫水填充算法综合
- 信息学奥赛一本通——算法部分
- 银行家算法分配资源的模拟实现(m
- C语言程序设计50例.docx
- 常见排序算法比较.cpp
- 烟花优化算法(c语言版)
- c++常用游戏算法及数据结构设计
- 深度学习算法地图
- 扫描线多边形填充算法实现
- 基于改进的fcm算法的图像分割vc++
- TLV解析算法
- 《Data Structures and Algorithm Analysis in C
- TOA/AOA定位算法C语言代码
- 算法帝国pdf
- 算法_C语言的实现完整版
- 数值分析算法程序设计 C++实现
评论
共有 条评论