main.c
来自「LINUX下POS收银系统,可以对货物及工作人员进行管理.近本实现增删改查的功能」· C语言 代码 · 共 167 行
C
167 行
/*
链表测试文件
*/
#include <stdio.h>
#include <string.h>
#include "link.h"
typedef struct _stu_
{
char sno[4];
char name[21];
int age;
float score[5];
}STU;
int compareTowString(NODE *node,char * no);
/*
void printOneNode(NODE *node);
void printAllNode(NODE *node,int *count);*/
int (*fp1)(NODE *node,char * no)=compareTowString;
/*
int (*fp2)(NODE *node)=printOneNode;
int (*fp3)(NODE *node,int *count)=printAllNode;*/
int counts=18;
STU stu[30]={
{"001","aaaaa",12,90,98,78,67,56},
{"002","bbbbb",12,90,98,78,67,56},
{"003","ccccc",12,90,98,78,67,56},
{"004","ddddd",12,90,98,78,67,56},
{"005","eeeee",12,90,98,78,67,56},
{"006","fffff",12,90,98,78,67,56},
{"007","ggggg",12,90,98,78,67,56},
{"008","hhhhh",12,90,98,78,67,56},
{"009","iiiii",12,90,98,78,67,56},
{"010","jjjjj",12,90,98,78,67,56},
{"011","kkkkk",12,90,98,78,67,56},
{"012","lllll",12,90,98,78,67,56},
{"013","mmmmm",12,90,98,78,67,56},
{"014","nnnnn",12,90,98,78,67,56},
{"015","ooooo",12,90,98,78,67,56},
{"016","ppppp",12,90,98,78,67,56},
{"017","qqqqq",12,90,98,78,67,56},
{"018","rrrrr",12,90,98,78,67,56}
};
//初始化一个链表
int InitLink(LINK *link,STU *s,int num)
{
int n = 0;
for (n; n<num; ++n)
{
link->insert_front(link, &s[n], sizeof(STU));
}
return 1;
}
int main()
{
LINK *stuLink;
int count=0;
printf("创建链表...\n\n");
stuLink=new_link();
if(stuLink!=NULL)
printf("创建链表成功!\n");
else
{ printf("创建链表失败!\n");
exit(0);
}
printf("\n对链表进行初始化... ");
if(InitLink(stuLink,stu,counts))
printf("初始化链表成功!\n");
else
printf("初始化链表失败!\n");
/*
printf("\n打印链表内容...\n");
PrintLink(stuLink,PrintStuInfo);
printf("\n查找第一条001记录:");
PrintNodeByKey(stuLink,"001",PrintStuInfo);
printf("\n查找第十条010记录:");
PrintNodeByKey(stuLink,"010",PrintStuInfo);
printf("\n查找最后一条018记录:");
PrintNodeByKey(stuLink,"018",PrintStuInfo);
*//**/
/* printf("\n删除第一条001记录:");
if(stuLink->del_node_by_key(stuLink,"001",fp1))
printf("删除成功!\n");
else
printf("删除失败!\n");
printf("\n删除第一条010记录:");
if(stuLink->del_node_by_key(stuLink,"010",fp1))
printf("删除成功!\n");
else
printf("删除失败!\n");
printf("\n删除第一条018记录:");
if(stuLink->del_node_by_key(stuLink,"018",fp1))
printf("删除成功!\n");
else
printf("删除失败!\n");*/
printf("\n删除第一条001记录:");
if(stuLink->del_node_by_index(stuLink,1))
printf("删除成功!\n");
else
printf("删除失败!\n");
printf("\n删除第一条010记录:");
if(stuLink->del_node_by_index(stuLink,10))
printf("删除成功!\n");
else
printf("删除失败!\n");
printf("\n删除第一条018记录:");
if(stuLink->del_node_by_index(stuLink,16))
printf("删除成功!\n");
else
printf("删除失败!\n");
count=stuLink->len(stuLink);
printf("总共有记录%d条!\n",count);
printf("\n删除链表...\n");
stuLink->del_all_data(stuLink);
printf("删除成功!\n");
printf("\n删除整个链表...\n");
stuLink->del_all(&stuLink);
printf("删除成功!\n");
return 0;
}
int compareTowString(NODE *node,char * no)
{
if (strcmp(((STU *)(node->data))->sno,no)==0)
{
return 1;
}
else
{
return 0;
}
}
/*
void printAllNode(NODE *node,int *count)
{
int i=0;
float avg=0;
NODE *temp=NULL;
temp=node;
for (i=0;i<*count;i++)
{
avg=(((STU *)(temp->data))->score[0]+((STU *)(temp->data))->score[1]+((STU *)(temp->data))->score[2]+((STU *)(temp->data))->score[3]+((STU *)(temp->data))->score[4])/5;
printf("NO:%s,NAME:%s,AVG:%f\n",((STU *)(temp->data))->sno,((STU *)(temp->data))->name,avg);
temp=temp->next;
}
}
*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?