C语言||作业01 结构 通讯录

2.2.1作业头 这个作业属于哪个课程 | 2019计科1班 |: : 这个作业要求在哪里 | C语言II作业01 结构:通讯录 这个作业的目标 | 做一个通讯录,然后可以实现最基本的功能 作业正文 | 作业正文 其他参考文献 | C语言下的清屏函数 详解宏定义( define) 2.2.2需求分析

include<stdio.h>

include<string.h>

include<stdlib.h>

void menu();
void rank();
void add();
void del();
void amend();
void seek();
int find(int x);

int del_count=0;
int people_rem=50,people_num=0;
int j = 1;
int menu_flag=1,rank_num_flag=0,rank_name_flag=0;

struct phone
{
int location;
char name[20];
char phonenum[11];
}people,man[51],*p,man_rank[51],temp;

int main(void)
{
int num;

A:
{	
	menu();	
	printf("\n\n");
	printf("操作列表:\n");
	printf("1)排序\t\t2)添加\t\t3)删除\n\n");
	printf("4)修改\t\t5)查找\t\t6)退出\n");
	printf("请输入操作:"); 
	scanf("%d",&num);
	switch(num)
	{
		case 1:rank();system("pause");system("cls");goto A;
		case 2:add();system("pause");system("cls");goto A;
		case 3:del();system("pause");system("cls");goto A;
		case 4:amend();system("pause");system("cls");goto A;
		case 5:seek();system("pause");system("cls");goto A;
		case 6:break;
		default:printf("错误操作指令, 请重新输入\n");goto A;
	}
}
int number;
printf("\n=========感谢您的使用!=========\n\n");
printf("非常满意请扣1---满意请扣2---不满意请扣眼珠子\n\n");
printf("请输入您对此通讯录的满意程度:"); 
scanf("%d",&number); 
if(number==1)
	printf("感谢亲的认同!\n");
else if(number==2)
	printf("我会继续努力改进!\n");
else
	printf("您在放屁呢 亲!\n");

return 0;

}
void menu()//首界面
{
printf("========== 通讯录 \n\n");
printf("
界面 ====\n");
printf("\n人数:%d人\t| 剩余空间:%d人\n",people_num-del_count,people_rem+del_count);
if(menu_flag
1)
{
for(j = 1;j <= people_num;j ++)
if(man[j].location!=0)
printf("\n编号:%2d |姓名:%s\t|电话:%s",man[j].location,man[j].name,man[j].phonenum);
}
else if(rank_num_flag
1)
{
for(int i=1;i<=50;i++)
if(man_rank[i].location!=0)
printf("编号:%2d |姓名:%s\t|电话:%s\n",man_rank[i].location,man_rank[i].name,man_rank[i].phonenum);
}
else if(rank_name_flag
1)
{
int m,n;
for(m=1;m<50;m++)
{
for(n=0;n<49;n++)
if(man[n].location!=0&&man[n+1].location!=0)
if(strcmp(man[n].name,man[n+1].name)>0)
{
temp=man[n];
man[n]=man[n+1];
man[n+1]=temp;
}
}
for(int i=1;i<=50;i++)
if(man_rank[i].location!=0)
printf("编号:%2d |姓名:%s\t|电话:%s\n",man_rank[i].location,man_rank[i].name,man_rank[i].phonenum);
}

}
void rank()//排序操作
{
int num,i;
printf("\n排序操作:\n");
printf("1)编号排序\t2)姓名排序\n");
printf("请选择排序方式:");
scanf("%d",&num);
if(num1)
{
menu_flag=0;
rank_num_flag=1;
rank_name_flag=0;
}
else
{
menu_flag=0;
rank_num_flag=0;
rank_name_flag=1;
}
}
void add()//添加操作
{
printf("\n添加操作:\n");
printf("请输入添加位置:");
scanf("%d",&people.location);
if(j
50)
printf("通讯录已满\n");
else if(people.location>50)
printf("处理编号超过阈值\n");
else if(find(people.location)1)
printf("此处已有数据\n");
else
{
printf("请输入联系人姓名:");
scanf("%s",&people.name);
printf("请输入联系人电话:");
scanf("%s",&people.phonenum);
man[j]=people;
man_rank[people.location]=people;
people_num++;
people_rem--;
}
}
void del()//删除操作
{
printf("\n删除操作:\n");
printf("请输入删除位置:");
scanf("%d",&people.location);
if(people.location>50)
printf("处理编号超过阈值\n");
else if(man[people.location].location
0)
printf("此处无数据\n");
else
{
man[people.location]=man[0];
del_count++;
}
}
void amend()//修改操作
{
printf("\n修改操作:\n");
printf("请输入修改位置:");
scanf("%d",&people.location);
if(people.location>50)
printf("处理编号超过阈值\n");
else if(find(people.location)0)
printf("此处无数据\n");
else
{
p=&man[people.location];
*p=man[0];
p->location=people.location;
printf("已擦除原有信息,请重新键入\n\n");
printf("请输入联系人姓名:");
scanf("%s",&p->name);
printf("请输入联系人电话:");
scanf("%s",&p->phonenum);
printf("修改完毕!\n");
}
}
void seek()//查找操作
{
int num,i;
printf("\n查找操作:\n");
printf("1)姓名查找\t2)电话号码查找\n");
printf("请选择查找方式:");
scanf("%d",&num);
if(num
1)
{
printf("请输入姓名:");
scanf("%s",&people.name);
for(i = 1;i <= 50;i ++)
{
if(strcmp(people.name,man[i].name)0)
{
printf("已为您找到:\n");
printf("编号:%d\t\t|姓名:%s\t|电话:%s\n",man[i].location,man[i].name,man[i].phonenum);
break;
}
if(i
50)
printf("查无此人\n");
}
}
else
{
printf("请输入电话号码:");
scanf("%s",&people.phonenum);
for(int i = 1;i <= 50;i ++)
{
if(strcmp(people.phonenum,man[i].phonenum)0)
{
printf("已为您找到:\n");
printf("编号:%2d |姓名:%s\t|电话:%s\n",man[i].location,man[i].name,man[i].phonenum);
break;
}
if(i
50)
printf("查无此人\n");
}
}
}
int find(int x)//检测编号是否重复
{
for(int i = 1;i <= people_num;i ++)
{
if(x==man[i].location)
return 1;
}
return 0;
}

posted on 2020-04-30 14:01  SCY090218  阅读(251)  评论(0)    收藏  举报

导航