模拟实现通讯录的功能(静态版本)

通讯录的简易模拟实现 C语言 C语言对通讯录的简易模拟 阅读详情

在今天,我将为大家来来一个模拟实现通讯录的功能。





通讯录需要的文档

contact.h ---------- 头文件的引用和结构体的声明
contact.c ---------- 函数的实现
test.c ---------- 通讯录的检验



菜单的实现和函数的调用

#include "contact.h"

void Menu()
{
    printf("****************************************\n");
	printf("****** 1.add          2.del       ******\n");
	printf("****** 3.search       4.modify    ******\n");
	printf("****** 5.show         6.sort      ******\n");
	printf("****** 0.exit                     ******\n");
	printf("****************************************\n");
}
int main()
{
	int input = 0;
	struct contact con;
	InitContact(&con);
	do
	{
		Menu();
	    printf("请选择:>");
		scanf("%d",&input);
		switch(input)
		{
		case 1:
			AddContact(&con);
			break;
		case 2:
			DelContact(&con);
			break;			
		case 3:
			SearchContact(&con);
			break;
		case 4:
			ModifyContact(&con);
			break;			
		case 5:
			ShowContact(&con);
			break;
		case 6:
			SortContact(&con);
			break;		
		case 0:
			printf("退出通讯录\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	}while(input);
 
}

头文件的引用、参数的定义和函数的声明

#include<stdio.h>
#include<assert.h>
#include<string.h>
#include<stdlib.h>

#define Max 100
#define Max_name 20
#define Max_tele 12
#define Max_sex 5
#define Max_addr 30

//人的信息
struct people
{
    char name[Max_name];
	char tele[Max_tele];
	char sex[Max_sex];
	char addr[Max_addr];
	int age;
};

struct contact
{
    struct people data[Max];
	int sz;
};

//初始化通讯录
void InitContact(struct contact* pc);

//添加联系人到通讯录
void AddContact(struct contact* pc);

//删除通讯录的指定联系人
void DelContact(struct contact* pc);

//显示通讯录
void ShowContact(struct contact* pc);

//查找联系人
void SearchContact(struct contact* pc);

//修改联系人信息
void ModifyContact(struct contact* pc);

//排序联系人
void SortContact(struct contact* pc);



初始化结构体函数

void InitContact(struct contact* pc)
{
	pc->sz = 0;
    assert(pc != NULL);
	memset(pc->data,0,Max*sizeof(struct people));
}


增加联系人函数

void AddContact(struct contact* pc)
{
	assert(pc != NULL);

	if(pc->sz == Max)
	{
	    printf("通讯录已经满了\n");
		return;
	}

	printf("请输入联系人的姓名:>\n");
	scanf("%s",pc->data[pc->sz].name);
	printf("请输入联系人的电话:>\n");
	scanf("%s",pc->data[pc->sz].tele);
	printf("请输入联系人的地址:>\n");
	scanf("%s",pc->data[pc->sz].addr);
	printf("请输入联系人的性别:>\n");
	scanf("%s",pc->data[pc->sz].sex);
	printf("请输入联系人的年龄:>\n");
	scanf("%d",&(pc->data[pc->sz].age));

	pc->sz++;
	printf("成功添加新的联系人\n");
}


显示所有联系人函数

void ShowContact(struct contact* pc)
{
    int i = 0;
	printf("%-20s\t%-5s\t%-5s\t%-12s\t%-30s\n","姓名","性别","年龄","号码","地址");
	for(i=0;i<pc->sz;i++)
	{
	    printf("%-20s\t%-5s\t%-5d\t%-12s\t%-30s\n",pc->data[i].name,
			pc->data[i].sex,
			pc->data[i].age,
			pc->data[i].tele,
			pc->data[i].addr);
	}
}


删除联系人函数

int Findpeople(struct contact* pc,char name[])
{
    int i = 0;
	for(i=0;i<pc->sz;i++)
	{
	    if(0 == strcmp(pc->data[i].name,name))
		{
		    return i;
		}
	}
	return -1;
}
void DelContact(struct contact* pc)
{
    char name[Max_name];
	int ret = 0;
	int i = 0;
	printf("请输入你要删除的联系人的名字\n");
	scanf("%s",name);
	//查找该联系人
	ret = Findpeople(pc,name);
	if(ret == -1)
	{
	    printf("找不到该联系人\n");
	}
	else
	{
	    //删除
		for(i = ret;i<pc->sz-1;i++)
		{
		    pc->data[i] = pc->data[i+1];
		}
		pc->sz--;
		printf("指定联系人已经删除\n");
	}
}


查找联系人函数

void SearchContact(struct contact* pc)
{
	char name[Max_name];
	int ret = 0;
    printf("输入想要被查找的联系人\n");
	scanf("%s",&name);
	ret = Findpeople(pc,name);
	if(ret == -1)
	{
	    printf("找不到\n");
	}
	else
	{
		printf("%-20s\t%-5s\t%-5s\t%-12s\t%--30s\t\n","姓名","性别","年龄","电话","地址");
		printf("%-20s\t%-5s\t%-5d\t%-12s\t%-30s\t\n",pc->data[ret].name,
			  pc->data[ret].sex,
			  pc->data[ret].age,
			  pc->data[ret].tele,
			  pc->data[ret].addr);
	}
}


修改联系人函数

void ModifyContact(struct contact* pc)
{
    char name[Max_name];
	int ret = 0;
	printf("请输入要修改的联系人的名字\n");
	scanf("%s",&name);
	ret = Findpeople(pc,name);
	if(ret == -1)
	{
	    printf("不存在该联系人\n");
	}
	else
	{
	    printf("找到该联系人,请依次输入信息进行修改\n");

		printf("请输入该联系人的姓名:>\n");
		scanf("%s",pc->data[ret].name);
		printf("请输入该联系人的电话:>\n");
		scanf("%s",pc->data[ret].tele);
		printf("请输入该联系人的地址:>\n");
		scanf("%s",pc->data[ret].addr);
		printf("请输入该联系人的性别:>\n");
		scanf("%s",pc->data[ret].sex);
		printf("请输入该联系人的年龄:>\n");
		scanf("%d",&(pc->data[ret].age));

		printf("修改联系人成功\n");
	}
}


排序联系人函数

void menu()
{
    printf("*****************************************\n");
	printf("****** 1.name          2.sex       ******\n");
	printf("****** 3.age           4.addr      ******\n");
	printf("****** 5.tele          0.exit      ******\n");
	printf("*****************************************\n");
}

//以名字顺序排序
int com_by_name(const void* str1,const void* str2)
{
    return strcmp(((struct people*)str1)->name,((struct people*)str2)->name);
}

//以性别顺序排序
int com_by_sex(const void* str1,const void* str2)
{
    return strcmp(((struct people*)str1)->sex,((struct people*)str2)->sex);
}

//以电话顺序排序
int com_by_tele(const void* str1,const void* str2)
{
    return strcmp(((struct people*)str1)->tele,((struct people*)str2)->tele);
}

//以地址顺序排序
int com_by_addr(const void* str1,const void* str2)
{
    return strcmp(((struct people*)str1)->addr,((struct people*)str2)->addr);
}

//以年龄顺序排序
int com_by_age(const void* str1,const void* str2)
{
    return ((struct people*)str1)->age - ((struct people*)str2)->age;
}

void SortContact(struct contact* pc)
{
    int input = 0;
again:
	menu();
	printf("请选择以什么方式排序\n");
	scanf("%d",&input);
	switch(input)
	{
	case 1:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_name);
		break;
	case 2:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_sex);
		break;
	case 3:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_age);
		break;
	case 4:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_addr);
		break;
	case 5:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_tele);
		break;
	case 0:
		break;
	default:
		printf("选择错误,请重新选择\n");
		goto again;
		break;
	}
	if(input != 0)
	{
		printf("排序成功\n");
	}
	else
	{
	    printf("退出排序成功\n");
	}
}

contact.h文档的全部代码

#include<stdio.h>
#include<assert.h>
#include<string.h>
#include<stdlib.h>

#define Max 100
#define Max_name 20
#define Max_tele 12
#define Max_sex 5
#define Max_addr 30

//人的信息
struct people
{
    char name[Max_name];
	char tele[Max_tele];
	char sex[Max_sex];
	char addr[Max_addr];
	int age;
};

struct contact
{
    struct people data[Max];
	int sz;
};

//初始化通讯录
void InitContact(struct contact* pc);

//添加联系人到通讯录
void AddContact(struct contact* pc);

//删除通讯录的指定联系人
void DelContact(struct contact* pc);

//显示通讯录
void ShowContact(struct contact* pc);

//查找联系人
void SearchContact(struct contact* pc);

//修改联系人信息
void ModifyContact(struct contact* pc);

//排序联系人
void SortContact(struct contact* pc);


contact.c文档的全部代码

#include "contact.h"

void InitContact(struct contact* pc)
{
	pc->sz = 0;
    assert(pc != NULL);
	memset(pc->data,0,Max*sizeof(struct people));
}

void AddContact(struct contact* pc)
{
	assert(pc != NULL);

	if(pc->sz == Max)
	{
	    printf("通讯录已经满了\n");
		return;
	}

	printf("请输入联系人的姓名:>\n");
	scanf("%s",pc->data[pc->sz].name);
	printf("请输入联系人的电话:>\n");
	scanf("%s",pc->data[pc->sz].tele);
	printf("请输入联系人的地址:>\n");
	scanf("%s",pc->data[pc->sz].addr);
	printf("请输入联系人的性别:>\n");
	scanf("%s",pc->data[pc->sz].sex);
	printf("请输入联系人的年龄:>\n");
	scanf("%d",&(pc->data[pc->sz].age));

	pc->sz++;
	printf("成功添加新的联系人\n");
}

void ShowContact(struct contact* pc)
{
    int i = 0;
	printf("%-20s\t%-5s\t%-5s\t%-12s\t%-30s\n","姓名","性别","年龄","号码","地址");
	for(i=0;i<pc->sz;i++)
	{
	    printf("%-20s\t%-5s\t%-5d\t%-12s\t%-30s\n",pc->data[i].name,
			pc->data[i].sex,
			pc->data[i].age,
			pc->data[i].tele,
			pc->data[i].addr);
	}
}

int Findpeople(struct contact* pc,char name[])
{
    int i = 0;
	for(i=0;i<pc->sz;i++)
	{
	    if(0 == strcmp(pc->data[i].name,name))
		{
		    return i;
		}
	}
	return -1;
}
void DelContact(struct contact* pc)
{
    char name[Max_name];
	int ret = 0;
	int i = 0;
	printf("请输入你要删除的联系人的名字\n");
	scanf("%s",name);
	//查找该联系人
	ret = Findpeople(pc,name);
	if(ret == -1)
	{
	    printf("找不到该联系人\n");
	}
	else
	{
	    //删除
		for(i = ret;i<pc->sz-1;i++)
		{
		    pc->data[i] = pc->data[i+1];
		}
		pc->sz--;
		printf("指定联系人已经删除\n");
	}
}

void SearchContact(struct contact* pc)
{
	char name[Max_name];
	int ret = 0;
    printf("输入想要被查找的联系人\n");
	scanf("%s",&name);
	ret = Findpeople(pc,name);
	if(ret == -1)
	{
	    printf("找不到\n");
	}
	else
	{
		printf("%-20s\t%-5s\t%-5s\t%-12s\t%--30s\t\n","姓名","性别","年龄","电话","地址");
		printf("%-20s\t%-5s\t%-5d\t%-12s\t%-30s\t\n",pc->data[ret].name,
			  pc->data[ret].sex,
			  pc->data[ret].age,
			  pc->data[ret].tele,
			  pc->data[ret].addr);
	}
}

void ModifyContact(struct contact* pc)
{
    char name[Max_name];
	int ret = 0;
	printf("请输入要修改的联系人的名字\n");
	scanf("%s",&name);
	ret = Findpeople(pc,name);
	if(ret == -1)
	{
	    printf("不存在该联系人\n");
	}
	else
	{
	    printf("找到该联系人,请依次输入信息进行修改\n");

		printf("请输入该联系人的姓名:>\n");
		scanf("%s",pc->data[ret].name);
		printf("请输入该联系人的电话:>\n");
		scanf("%s",pc->data[ret].tele);
		printf("请输入该联系人的地址:>\n");
		scanf("%s",pc->data[ret].addr);
		printf("请输入该联系人的性别:>\n");
		scanf("%s",pc->data[ret].sex);
		printf("请输入该联系人的年龄:>\n");
		scanf("%d",&(pc->data[ret].age));

		printf("修改联系人成功\n");
	}
}

void menu()
{
    printf("*****************************************\n");
	printf("****** 1.name          2.sex       ******\n");
	printf("****** 3.age           4.addr      ******\n");
	printf("****** 5.tele          0.exit      ******\n");
	printf("*****************************************\n");
}

//以名字顺序排序
int com_by_name(const void* str1,const void* str2)
{
    return strcmp(((struct people*)str1)->name,((struct people*)str2)->name);
}

//以性别顺序排序
int com_by_sex(const void* str1,const void* str2)
{
    return strcmp(((struct people*)str1)->sex,((struct people*)str2)->sex);
}

//以电话顺序排序
int com_by_tele(const void* str1,const void* str2)
{
    return strcmp(((struct people*)str1)->tele,((struct people*)str2)->tele);
}

//以地址顺序排序
int com_by_addr(const void* str1,const void* str2)
{
    return strcmp(((struct people*)str1)->addr,((struct people*)str2)->addr);
}

//以年龄顺序排序
int com_by_age(const void* str1,const void* str2)
{
    return ((struct people*)str1)->age - ((struct people*)str2)->age;
}

void SortContact(struct contact* pc)
{
    int input = 0;
again:
	menu();
	printf("请选择以什么方式排序\n");
	scanf("%d",&input);
	switch(input)
	{
	case 1:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_name);
		break;
	case 2:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_sex);
		break;
	case 3:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_age);
		break;
	case 4:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_addr);
		break;
	case 5:
		qsort(pc->data,pc->sz,sizeof(struct people),com_by_tele);
		break;
	case 0:
		break;
	default:
		printf("选择错误,请重新选择\n");
		goto again;
		break;
	}
	if(input != 0)
	{
		printf("排序成功\n");
	}
	else
	{
	    printf("退出排序成功\n");
	}
}


test.c文档的全部代码

#include "contact.h"

void Menu()
{
    printf("****************************************\n");
	printf("****** 1.add          2.del       ******\n");
	printf("****** 3.search       4.modify    ******\n");
	printf("****** 5.show         6.sort      ******\n");
	printf("****** 0.exit                     ******\n");
	printf("****************************************\n");
}
int main()
{
	int input = 0;
	struct contact con;
	InitContact(&con);
	do
	{
		Menu();
	    printf("请选择:>");
		scanf("%d",&input);
		switch(input)
		{
		case 1:
			AddContact(&con);
			break;
		case 2:
			DelContact(&con);
			break;			
		case 3:
			SearchContact(&con);
			break;
		case 4:
			ModifyContact(&con);
			break;			
		case 5:
			ShowContact(&con);
			break;
		case 6:
			SortContact(&con);
			break;		
		case 0:
			printf("退出通讯录\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	}while(input);
 
}

今天,通讯录的代码实现就分享到这里,关注点一点,防止丢失。

手机通讯录的实现——C语言(静态版本) 阅读详情

相关推荐

【C语言进阶】C语言实现通讯录(简易版)

通讯录可以用来存储1000个人的信息 每个人的信息包括: 姓名、电话、性别、住址、年龄 功能: 新增联系人 查找联系人 删除联系人 修改联系人 查看所有联系人 清空所有联系人 以名字排序所有联系人 ...

HyDraZya的博客 2万+

模拟实现通讯录

这里显示了之前增加的四个联系人分别是 牛爷爷,壮壮,胡英俊,胡图图,并将他们显示出来。1.完成对菜单和通讯录功能基本循环的实现。3.初始化成功后开始实现通讯录的功能。这里修改了牛爷爷的 年龄和住址。这里是按照名字的首字母顺序排序的。模拟一个通讯录有以下条件和功能。2.创建通讯录并对其初始化。这里查找的联系人是胡英俊。在这里删除了联系人壮壮。contact.h文件。contact.c文件。3.2显示所有联系人。

hwb00的博客 1199

python模拟通讯录的数据添加功能

1.描述 模拟通讯录的数据添加功能。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬ 通讯录中信息包括:姓名,电话,所在学院。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬ 字典的初始化信息及用户界面函数:(直接复制到程序中)‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬ def menu(): p

weixin_42241770的博客 3981

通讯录的模拟实现

通讯录的模拟实现(增删查改,清空,排序)

shylyly_的博客 1132

python模拟通讯录的数据删除功能

通讯录(删除) 描述 模拟通讯录的数据删除功能。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ 通讯录中

m0_53296167的博客 9229

android 获取手机通讯录联系人,模拟通讯录显示

主要是获取手机通讯录,模拟手机通讯录的搜索、字母排序显示;

u011622479的博客 8712

模拟通讯录(详解通讯录排序qsort,strcmp)

学习了C语言结构体、联合体、枚举等,就可以写一个通讯录来强化自己对结构体的理解学习。顺便提升大家的基本功!!通讯录菜单的打印:关于菜单的打印在这里不再进行强调。如果大家在switch的时候选择太多,都是数字不知道是什么意思,此时大家可以利用枚举常量,把这些数字与含义联系到一起。ADD 表示1;DEL 表示2;SEARCH 表示 3;MODIFY 表示4;SHOW 表示5;

多敲代码防脱发的博客 1343

通讯录管理模拟系统

实现个人通信录管理,主要包括 1、通讯录的编辑:增加、删除、修改; 2、查询:实现常规的关键词检索,如按姓名查询、按电话号码查询、按部门查询等; 3、要求界面友好,综合应用各种界面元素(如菜单、工具栏等),功能完善(如鼠标或键盘的操作)。 4、本设计可以分小组开发,每组不超过2人,但设计报告独立完成并提交(写本人完成的部分)

Contact的C语言实现(静态版本+改进后的动态文件版本)

Contact的C语言实现(静态版本+改进后都动态文件版本)

wanchen_Gabby的博客 6155

模拟通讯录

ios平台模拟通讯录,ios6可用。代码简单,适合初学者看看,简单上手。

Android模拟手机联系人app

该app为采用首选项以及SQLite技术实现的一个简单联系人应用

用python模拟通讯录功能

闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 接下来就按照这个流程实现各个模块的功能 一. 定义一个类,并初始化 import json import time class Contact(object): def __init__(self): with open("contact.txt", 'r', encodi.........

乙壳虫的博客 3万+

模拟手机通讯录 C++

模拟手机通讯录 用的C++ 具有添加 删除 查找 模糊查找 拨号 显示系统时间 等等基本手机通讯录功能 代码有注释 适合广大新手使用借鉴学习

C语言进阶——通讯录模拟实现

C语言进阶——通讯录:本文采取结构体来实现基本的通讯录,有图有码,讲解详细,干货满满,不容错过的好文!

麦麦的博客 1万+

个人通讯录 (虚拟理想)

个人通讯录 外观非常简单适合我等菜鸟观摩欢迎来网站做客:http:/www.videa.cn第三方控件:VclSkin 2.6

Localizing LabVIEW Application to Different Languages

本文探讨了LabVIEW应用程序的多语言本地化实现方案。文章首先分析了LabVIEW对多语言的支持现状,指出其默认仅支持ANSI编码,对Unicode支持有限,且仅适配中英法德日韩六种语言。然后重点介绍了JKISimpleLocalization工具包的使用方法,该工具能导出/导入JSON词典文件,实现界面语言的实时切换。文章还结合实际工程案例,分析了该方案的局限性:部分控件不可翻译、切换速度较慢(33个界面需50秒)、小语种支持不足等。最后提供了完整的应用流程和工具包附件,包括词典文件转换工具和工程案例。

2301_80383260的博客 1408

【C++实战小项目】通讯录(三)数组模拟实现通讯录三大功能

哈喽大家好,我是iecne,本期为大家带来的是CPP/C++【C++实战小项目】实现基本通讯录模拟详解分析。包教包会,快来看看吧!今天我们实现了通讯录的教程,至此该课示例的思想博主已经真真切切彻彻底底分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下,包教包会。若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!原创不易,还希望各位大佬支持一下评论,你的意见是我进步的财富!iecne的博客若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

iecne的博客 1777

数通基础(基本网络通信原理、IP地址如何配置、DHCP、DNS域名系统、路由技术基础、静态路由 、TCP和UDP、vlan虚拟局域网、trunk、三层交换)

我们知道了1、电脑开机,通过dhcp获取ip地址2、电脑输入域名,www.baidu.com电脑把www.baidu.com发到自己的dns服务器3、dns服务器把域名解析成对应的ip地址4、电脑向百度服务器发送一个请求。

qq_53235556的博客 6477

通讯录模拟实现(静态加动态加存储数据)

通讯录模拟实现(静态+动态+数据存储)

weixin_69939913的博客 2672

树莓派c语言串口通讯程序

在网上搜了很多关于树莓派串口通讯的例子,但是都是用python写的,虽然python很有名,而且最近也在学习这门语言, 但是还是想用c语言实现一下,因为需要用到整套系统里,其他内容都是用c语言写的。但是网上没有找打现成的。 还好,之前做过天嵌2440开发板的串口程序(参照天嵌工程师提供的代码),发现串口程序其实是通用的, 驱动层屏蔽了硬件细节,个人猜测,几乎所有移植好的系统的串口,都可以用一

realank的专栏 1万+

从询价到回款:一篇讲透 SAP SD 销售与分销的实战入门指南

摘要: SAP SD(Sales and Distribution)模块是SAP ERP中管理销售与分销的核心组件,贯穿从订单到回款(Order-to-Cash)的全流程。其核心价值在于将销售业务结构化,通过主数据(客户、物料、定价)和交易单据(订单、交货、发票)实现流程可审计、可自动化。SD模块与物流(MM)、生产(PP)、财务(FI)深度集成,涵盖定价策略、信用控制、发运管理、国际贸易等复杂场景。关键设计包括条件技术(Condition Technique)实现灵活定价,单据流(Document Flo

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 258
上一篇: strstr函数的介绍,BF算法、KMP算法模拟实现strstr函数(含对KMP算法的详细解读)
下一篇: strtok函数的使用说明和模拟实现,strerror函数、字符分类函数、字符转换函数的介绍
GD_small_bit
博客等级 码龄4年 804粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值