1.作业头
2.需求分析
根据题目要求首先定义一个结构包含编号,姓名,号码;
要使用菜单,就要做到和寒假作业一样使用多个函数具体使用各个功能;
其中还要用到界面更新,这个东西在我写完之后都没有弄得原理;
3.程序代码
3.1源代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct people
{
int number;
char name[80];
char tel[100];
};
struct people t[50];
struct people tem;
int a=0,n=50;
void menu();//操作列表
void sort();//排序
void add();//添加
void del();//删除
void alt();//修改
void find();//查找
void error();//退出
int main ()
{
int N,i;
while(1)
{
system("cls");
printf("========== 通讯录 ==========");
printf("\n\n");
printf("========== 界面 ==========");
printf("\n人数: %d人 |剩余空间: %d\n",a,n);
for(i=0;i<a;i++)
{
printf("编号:%d|名字:%s|电话:%d\n",t[i].number,t[i].name,t[i].tel);
}
menu();
printf("\n");
printf("请输入操作:");
scanf("%d",&N);
switch(N)
{
case 1:sort();break;
case 2:add();break;
case 3:del();break;
case 4:alt();break;
case 5:find();break;
case 6:return 0;
default:error();break;
}
}
}
void menu()
{
printf("\n\n操作列表:\n");
printf("1)排序 2)添加 3)删除\n");
printf("4)修改 5)查找 6)退出程序\n");
}
void sort()
{
int i,j;
printf("请选择排序的方式\n1)编号排序 2)姓名排序");
int N;
scanf("%d",&N);
if(N==1)
{
if(a>=2)
{
for(i=0;i<50;i++)
{
for(j=i+1;j<50;j++)
{
if(t[i].number>t[j].number)S
{
tem=t[i];
t[i]=t[j];
t[j]=t[i];
}
}
}
}
}
else if(N==2)
{
if(a>=2)
{
for(i=0;i<50;i++)
{
for(j=i+1;j<50;j++)
{
if(t[i].tel>t[j].tel)
{
tem=t[i];
t[i]=t[j];
t[j]=t[i];
}
}
}
}
}
else
error();
}
void add()
{
int i,s=0;
if(n==0)
{
printf("人数已经满了\n");
system("pause");
}
else
{
printf("\n添加操作:\n请输入添加位置:");
scanf("%s",&t[a].number);
if(t[a].number>50||t[a].number<0)
{
printf("处理编号超过阈值");
system("pause");
}
else
{
for(i=0;i<a;i++)
{
if(t[i].number==t[a].number)
{
printf("此处已有数据\n");
system("pause");
s=1;
}
}
if(s==0)
{
printf("请输入联系人姓名:");
scanf("%s",&t[a].name);
printf("请输入联系人电话:");
scanf("%s",&t[a].tel);
a++;
n--;
}
}
}
}
void del()
{
int i,x,s=0;
printf("删除操作:\n请输入删除位置:");
scanf("%d",&x);
printf("\n\n");
if(x<50&&x>=0)
{
for(i=0;i<a;i++)
{
if(x==t[i].number)
{
t[i]=tem;
a--;
n++;
s=1;
}
}
if(s==0)
{
printf("此处无数据\n");
system("pause");
}
}
else
{
printf("处理编号超过阈值\n");
system("pause");
}
}
void alt()
{
int i,x,s;
printf("修改操作\n请输入修改位置:");
scanf("%d",&x);
if(x<50&&x>=0)
{
for(i=0;i<a;i++)
{
if(x=t[i].number)
{
printf("\n已擦除原有信息,请重新键入\n\n");
printf("请输入联系人姓名:");
scanf("%s",&t[i].name);
printf("请输入联系人电话");
scanf("%s",&t[i].tel);
s++;
}
}
if(s==0)
{
printf("此处无数据\n");
system("pause");
}
}
else
{
printf("处理编号超过阈值\n");
system("pause");
}
}
void find()
{
char c[20],i,s=0;
printf("请输入你要查找联系人的姓名或电话号码:");
scanf("%s",&c);
for(i=0;i<n;i++)
{
if(strcmp(t[i].name,c)==0||strcmp(t[i].tel,c)==0)
{
printf("编号:%d|名字:%s|电话:%d\n",t[i].number,t[i].name,t[i].tel);
s=1;
}
}
if(s==0)
{
printf("查无此人\n");
system("pause");
}
}
void error()
{
printf("Error!!!\n错误操作指令, 请重新输入\n");
system("pause");
}
3.2函数调用图与流程图
4.功能测试
5.应用集成
https://gitee.com/huang_yun/mail_list