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 + -
显示快捷键?