C语言||作业01

作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2019-2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10669)
我在这个课程的目标是 跟上大佬们的步伐
作业正文 https://www.cnblogs.com/znlkdsw/p/12788130.html
参考文献 百度

2.2.2 需求分析

通讯录要能记录,查询,删除,编辑,因为通讯录空间有限。

2.2.3 程序代码

2.2.3.1 源代码

#include 
#include 
#include 
#define N 50
int num = 0;
typedef struct {
	int num;
	char name[20];
	char tele[20];
}student;
student stu[N] = { 0 };
int menu();
int opreat();
void add(int numl);
void deletel();
int baibai();
void rewrite();
void sortl();
void detect();
int main()
{
	int chioce, m = 0;
	while (m >= 0)
	{
		system("cls");
		chioce = menu();
		switch (chioce)
		{
		case 1:add(num++); break;
		case 2:deletel(); break;
		case 3:rewrite(); break;
		case 4:sortl(); break;
		case 5:detect(); break;
		case 6:m = baibai(); break;
		default:printf("输入错误,请重新输入"); break;
		}
	}
}
int menu()
{
	int i;
	printf("==========通讯录============\n");
	for (i = 0; i <= num; i++)
	{
		if (stu[i].num != 0)
		{
			printf("编号:%d\t\t姓名:%s\t\t电话号码:%s\t\t\n", stu[i].num, stu[i].name, stu[i].tele);
		}
	}
	printf("===========首页=============\n");
	return opreat();
}
int opreat()
{
	int choice;
	printf("1.添加\t\t2.删除\t\t3.修改\t\t\n");
	printf("4.排序\t\t5.查找\t\t6.退出\t\t\n");
	printf("请输入你的选择:");
	scanf("%d", &choice);
	getchar();
	return choice;
}
void add(int numl)
{
	int num0;
	printf("请输入编号;");
	scanf("%d", &num0);
	getchar();
	if (num0 > 50)
	{
		printf("输入的编号超过最大值");
		system("pause");
		return;
	}
	else 
	{
		for (int p = 0; p < N; p++)
		{
			if (stu[p].num == num0)
			{
				printf("该编号联系人已经存在");
				system("pause");
					return;
			}
		}
		stu[numl].num = num0;
		printf("请输入姓名:");
		scanf("%s", &stu[numl].name);
		printf("请输入电话号码:");
		scanf("%s", &stu[numl].tele);
	}
}
void deletel()
{
	int num1;
	printf("请输入你要删除的编号;");
	scanf("%d", &num1);
	getchar();
	if (num1 > 50)
	{
		printf("输入的编号超过最大值");
		system("pause");
		return;
	}
		for (int p = 0; p < N; p++)
		{
			if (stu[p].num == num1)
			{
				stu[p].num = 0;
				printf("删除完毕\n");
				system("pause");
				return;
			}
		}
		printf("不存在该编号联系人\n");
		system("pause");
}
int baibai()
{
	int a;
	a = -1;
	return a;
}
void rewrite()
{
	int num2;
	char rename[20];
	char retele[20];
	printf("请输入你要修改的编号:");
	scanf("%d", &num2);
	getchar();
	if (num2 > 50)
	{
		printf("输入的编号超过最大值");
		system("pause");
		return;
	}
	for (int p = 0; p < N; p++)
	{
		if (stu[p].num == num2)
		{
			printf("请输入你要修改的姓名:");
			scanf("%s", &rename);
			strcpy(stu[p].name, rename);
			printf("请输入你要修改的电话号码:");
			scanf("%s", &retele);
			strcpy(stu[p].tele, retele);
			printf("修改完成\n");
			system("pause");
			return;
		}
	}
	printf("不存在编号联系人\n");
	system("pause");
}
void sortl() 
{
	int choice;
	printf("请问你要用什么排序\n");
	printf("1.编号\t\t2.姓名\t\t\n");
	printf("请选择;");
	scanf("%d", &choice);
	switch (choice)
	{
	case 1:int num3;
	int  k;
	for (int i = 0; i < N; i++)
	{
		num3 = stu[i].num;
		for (int j = i + 1; j < N - 1; j++)
		{
			if (stu[j].num < num3)
			{
				k = stu[j].num;
				stu[j].num = stu[i].num;
				stu[i].num = k;
			}
		}
	}
	return;
	break;
	case 2:
	char name1[20];
	char  g[20];
	for (int i = 0; i < N; i++)
	{
		strcpy(name1,stu[i].name);
		for (int j = i + 1; j < N - 1; j++)
		{
			if (strcmp(stu[j].name,name1)<0)
			{
				strcpy(g,stu[j].name);
				strcpy(stu[j].name,stu[i].name);
				strcpy(stu[i].name,g);
			}
		}
	}
	return; 
	break;
	default:return; break;
	}
	return;
}
void detect()
{
	
	int choice;
	printf("请问你要用什么查找\n");
	printf("1.编号\t\t2.姓名\t\t3.电话号码\t\t\n");
	printf("请选择;");
	scanf("%d", &choice);
	switch (choice)
	{
	case 1:
	int num4;
	printf("请输入你要查找的编号:");
	scanf("%d", &num4);
	if (num4 > 50)
	{
		printf("输入的编号超过最大值");
		system("pause");
		return;
	}
	for (int p = 0; p < N; p++)
	{
		if (stu[p].num = num4)
		{
			printf("编号:%d\t\t姓名:%s\t\t电话号码:%s\t\t\n", stu[p].num, stu[p].name, stu[p].tele);
			printf("查找完毕\n");
			system("pause");
			return;
		}
	}
	printf("不存在该编号联系人\n");
	system("pause");; 
	break;
	case 2:
	char name1[20];
	printf("请输入你要查找的姓名:");
	scanf("%s", &name1);
	for (int p = 0; p < N; p++)
	{
		if (strcmp(stu[p].name, name1) == 0)
		{
			printf("编号:%d\t\t姓名:%s\t\t电话号码:%s\t\t\n", stu[p].num, stu[p].name, stu[p].tele);
			printf("查找完毕\n");
			system("pause");
			return;
		}
	}
	printf("不存在该姓名联系人\n");
	system("pause");
	; 
	break;
	case 3:
	char telel[20];
	printf("请输入你要查找的电话号码:");
	scanf("%s", &telel);
	for (int p = 0; p < N; p++)
	{
		if (strcmp(stu[p].tele, telel) == 0)
		{
			printf("编号:%d\t\t姓名:%s\t\t电话号码:%s\t\t\n", stu[p].num, stu[p].name, stu[p].tele);
			printf("查找完毕\n");
			system("pause");
			return;
		}
	}
	printf("不存在该姓名联系人\n");
	system("pause");; 
	break;
	default:return; break;
	}
}

2.2.3.2 函数调用图与流程图

C语言||作业01_第1张图片

2.2.4 功能测试

C语言||作业01_第2张图片

C语言||作业01_第3张图片

C语言||作业01_第4张图片

C语言||作业01_第5张图片

C语言||作业01_第6张图片

C语言||作业01_第7张图片

2.2.5 应用集成

C语言||作业01_第8张图片

C语言||作业01_第9张图片

你可能感兴趣的:(C语言||作业01)