C语言||作业01

作业头

问题 答案
这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10669
这个作业要求在哪里 https://i-beta.cnblogs.com/posts/edit
这个作业的目标 学会制作菜单程序
作业正文 ....
其他参考文献 百度

2.2.2 需求分析

根据我的要求,编写你的需求分析
1 满足最基本的通讯录功能。
2 读出功能。可以列出所有联系人。
3 修改功能。可以修改联系人中的任意一项
4 增加功能。
5 删除功能。

2.2.3 程序代码

2.2.3.1 源代码
你的代码截图

include<stdio.h>

include<stdlib.h>

include<string.h>

typedef struct Linklist{

char name[50];//存放名字
char num[10];//存放电话号码
struct Linklist *next;

}Linklist,*LNode;
//创建链表
void create(Linklist *L){
char flag='y';
Linklist p,s;
p=L;
puts("--------创建一个通讯录:---------\n帮助信息\n您需要输入命令代号来进行操作\n1------- 输出------\n2------ 修改--------\n3------- 删除--------\n4 ----插入-----\n0---- 退出------\n ");
printf("首先您需输入第一个联系人!\n");
while(flag'Y'||flag'y'){

	s=(LNode)malloc(sizeof(Linklist));
	
	printf("姓名:");
	scanf("%s",s->name);
	printf("号码:");
	scanf("%s",s->num);
	
	s->next=NULL;
	p->next=s;
	p=s;
	
	getchar();
	printf("继续输入?(y/n)");
	scanf("%c",&flag);		
}

}
//输出链表

void output(Linklist *L){
Linklist *p;
p=L->next;
puts("编号\t姓名\t号码");//表头
puts("\t\t====");//华丽的分割线
int count=1;
while(p){
printf("%d\t%s\t%s\n",count,p->name,p->num);
p=p->next;
count++;
}
}

void update(Linklist *L){
Linklist *p;
p=L;
int n;
puts("需要修改哪一项?");
scanf("%d",&n);
for(int i=1;i<n+1;i++){
p=p->next;
}
if(p==NULL){
puts("没有这项!");
}
else{
printf("姓名:");
scanf("%s",p->name);
printf("号码:");
scanf("%s",p->name);
printf("姓名:");
scanf("%s",p->name);
printf("号码:");
scanf("%s",p->name);

}

}

void insert(Linklist *L){
Linklist p,s;
p=L;
while(p->next){
p=p->next;
}

s=(LNode)malloc(sizeof(Linklist));
printf("姓名:");
scanf("%s",s->name);
printf("号码:");
scanf("%s",s->num);

s->next=NULL;
p->next=s;

}

void del(Linklist *L){
Linklist p,q;
p=L;
int n;
puts("需要删除哪一项?");
scanf("%d",&n);

for(int i=1;i<n;i++){
	p=p->next;
}
if(p==NULL){
	puts("没有这项!");
}
else{
	q=p->next;
	p->next=q->next;
	free(q);
}

}

int main(void){
Linklist *L;
int i=255;
L=(LNode)malloc(sizeof(Linklist));
L->next=NULL;
create(L);
while(i!=0){
	printf("请选择功能(用序号)!"); 
	scanf("%d",&i);
	switch(i){
	case 1:
		output(L);
		break;
	case 2:
		update(L);
		break;
	case 3:
		del(L);
		break;
	case 4:
		insert(L);
		break;
	
		
	}
}

}

2.2.3.2 函数调用图与流程图

2.2.4 功能测试




2.2.5 应用集成

Gitee上传截图与链接

猜你喜欢

转载自www.cnblogs.com/Aa123456/p/12774072.html
今日推荐