大一新生C语言 有很多错误真的不会改了 希望各位帮帮我 真的很着急!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//联系人信息结构体
struct address
{
char name[15];
char units[20];
char phone[15];
};
typedef struct adress PY;
//主函数
int main()
{
void menu(); //功能函数的调用声明
void in(); //添加
void delet(); //删除
void updet(); //查找
void select(); //修改
void save(); //保存
menu();
int n;
printf("请选择功能(1-5):\n");
scanf("%d",&n);
while(n)
{
if(n>=1&&n<=5)
{
switch(n)
{
case 1:in();break;
case 2:delet();break;
case 3:updet();break;
case 4:select();break;
case 5:save();break;
}
if(n==5)
{
menu();
}
printf("\n");
printf("请选择功能(1-5):");
scanf("%d",&n);
}
else
{
printf("\n");
printf("请重新输入:");
scanf("%d",&n)
}
}
return 0;
}
//菜单界面
void menu()
{
printf("\n\n\n");
printf("\t\t\t\t****************************************\n");
printf("\t\t\t\t*************通讯录管理系统*************\n");
printf("\t\t\t\t========================================\n");
printf("\t\t\t\t* 1.添加联系人信息 *\n");
printf("\t\t\t\t* 2.删除联系人信息 *\n");
printf("\t\t\t\t* 3.查找联系人信息 *\n");
printf("\t\t\t\t* 4.修改联系人信息 *\n");
printf("\t\t\t\t* 5.保存联系人信息 *\n");
printf("\t\t\t\t========================================\n");
printf("\t\t\t\t****************************************\n");
printf("\t\t\t\t 请选择(1-5):");
}
//录入朋友信息
void in()
{
int n;
printf("\t\t\t\t 请输入添加的人数:");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("\t\t\t\t 姓名 单位 电话\n");
printf("\t\t\t\t ");
scanf("%s %s %s",PY[i].name,PY[i].units,PY[i].phone);
}
printf("\t\t\t\t 添加成功!!\n\n");
}
//删除朋友信息
void delet(int n)
{
int name, i;
char ch;
printf("删除朋友的记录\n");
printf("请输入朋友姓名\n");
scanf("%s", &name);
for(i=0;i<n;i++)
{
if(name == adress[i].name)
{
getchar();
printr("找到朋友信息如下:\n");
scanf("%s,%s,%s",&name,&unit,&phone);
printf("是否删除?(Y/N)\n");
scanf("%c",&ch);
if(ch == 'Y' || ch == 'y');
{
for(i=0;i<n,i++)
adress[i] = adress[i++];
n--;
printf("删除成功!\n");
}
return;
}
}
printf("没有找到朋友记录\n");
}
//查找朋友信息
void search()
{
char name[15];
int num, n=0;
int i;
printf("查找朋友信息\n");
printf("请输入朋友姓名:");
scanf("%s",&name);
for (i=0;i<n;i++)
{
if(strcmp(name,PY[i].name)==0)
{
printf("找到改朋友的信息,如下所示\n");
printf("姓名\t单位\t电话\n");
printf("%s %s %s",PY[i].name,PY[i].unit,PY[i].phone);
return;
}
}
printf("没有找到朋友的记录\n");
}
//修改朋友信息
void modify()
{
char name[15],ch;
char unit[15];
char phone[15];
int num,num=n;
printf("修改朋友信息\n");
printf("请输入朋友姓名:");
scanf("%s",name);
for(int i=0;i<n;i++)
{
if(strcmp(name,PY[i].name) == 0)
{
getchar();
printf("找到朋友记录如下:\n");
scanf("%s,%s,%s",&name,&unit,&phone);
printf("是否修改?(Y/N)\n");
scanf("%c",&ch);
if(ch == 'Y' || ch == 'y');
{
getchar();
printf("姓名: 单位: 电话: \n");
scanf("%s %s %s",PY[i].name,PY[i].unit,PY[i].phone);
printf("修改完成\n");
}
return;
}
}
printf("没有找到朋友记录\n");
}
//保存朋友信息
void save()
{
int n;
FILE*fp;
fp=fopen("C:\\Users\\Lenovo-PC\\Desktop\\C\\QM.cpp","w+");
fprintf(fp,"\t\t\t\t 姓名 单位 电话\n");
for(int i=0;i<n;i++)
{
fprintf(fp,"\t\t\t\t %s %s %s\n",&PY[i].name,&PY[i].units ,&PY[i].phone );
}
fclose(fp);
printf("\t\t\t\t 保存成功!!\n");
}
麻烦发一下完整的代码呢,不要用图
修改如下,改动处见注释,供参考:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//联系人信息结构体
struct address
{
char name[15];
char units[20];
char phone[15];
};
typedef struct address Py;//修改 struct adress PY
Py PY[100]; //修改
int num = 0; //修改 总人数
//主函数
int main()
{
void menu(); //功能函数的调用声明
void in(); //添加
void delet(); //删除
void search(); //void updet(); //修改
void modify(); //void select(); //修改
void save(); //保存
int n=1;
while(n)
{
menu();
printf("请选择功能(1-5):\n");
scanf("%d",&n);
//if(n>=1 && n<=5)
//{
switch(n)
{
case 1:in();break;
case 2:delet();break;
case 3:search();break; //updet();break; 修改
case 4:modify();break; //case 4:select();break; 修改
case 5:save();break;
case 6:n=0;break;
default:break;
}
//if(n==5)
//{
// menu();
//}
//printf("\n");
//printf("请选择功能(1-5):");
//scanf("%d",&n);
//}
//else
//{
// printf("\n");
// printf("请重新输入:");
// scanf("%d",&n);
//}
}
return 0;
}
//菜单界面
void menu()
{
printf("\n\n\n");
printf("\t\t\t\t****************************************\n");
printf("\t\t\t\t*************通讯录管理系统*************\n");
printf("\t\t\t\t========================================\n");
printf("\t\t\t\t* 1.添加联系人信息 *\n");
printf("\t\t\t\t* 2.删除联系人信息 *\n");
printf("\t\t\t\t* 3.查找联系人信息 *\n");
printf("\t\t\t\t* 4.修改联系人信息 *\n");
printf("\t\t\t\t* 5.保存联系人信息 *\n");
printf("\t\t\t\t* 6.退出系统 *\n");
printf("\t\t\t\t========================================\n");
printf("\t\t\t\t****************************************\n");
printf("\t\t\t\t 请选择(1-6):");
}
//录入朋友信息
void in()
{
int n;
printf("\t\t\t\t 请输入添加的人数:");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("\t\t\t\t 姓名 单位 电话\n");
printf("\t\t\t\t ");
scanf("%s %s %s",PY[i].name,PY[i].units,PY[i].phone);
}
num = n; //修改
printf("\t\t\t\t 添加成功!!\n\n");
}
//删除朋友信息
void delet() //void delet(int n) 修改
{
int i, j; //name, 修改
char ch, name[15];
printf("删除朋友的记录\n");
printf("请输入待删除朋友姓名:");
scanf("%s", name); //scanf("%s", &name); 修改
for(i=0;i<num;i++) //for(i=0;i<n;i++) 修改
{
if (strcmp(PY[i].name, name) == 0)
//if(name == address[i].name) // adress[i].name 修改
{
//getchar();
printf("找到朋友信息如下:\n"); //printr 修改
printf("%s %s %s\n", PY[i].name, PY[i].units, PY[i].phone);
//scanf("%s,%s,%s",&name,&unit,&phone); 修改
printf("是否删除?(Y/N)\n");
scanf(" %c",&ch);
if(ch == 'Y' || ch == 'y');
{
for(j=i;j<num-1;j++) //for(i=0;i<n;i++) 修改
PY[j] = PY[j+1]; //adress[i] = adress[i++]; 修改
num--; //n--; 修改
printf("删除成功!\n");
}
return;
}
}
printf("没有找到朋友记录\n");
}
//查找朋友信息
void search()
{
char name[15];
int n= num; //修改
int i;
printf("查找朋友信息\n");
printf("请输入朋友姓名:");
scanf("%s",name); //scanf("%s",&name);
for (i=0;i<n;i++)
{
if(strcmp(name,PY[i].name)==0)
{
printf("找到改朋友的信息,如下所示\n");
printf("姓名\t单位\t电话\n");
printf("%s\t%s\t%s\n",PY[i].name,PY[i].units,PY[i].phone); //PY[i].unit 修改
return;
}
}
printf("没有找到朋友的记录\n");
}
//修改朋友信息
void modify()
{
char name[15],ch;
//char units[15];
//char phone[15];
int n=num;
printf("修改朋友信息\n");
printf("请输入朋友姓名:");
scanf("%s",name);
for(int i=0;i<n;i++)
{
if(strcmp(name,PY[i].name) == 0)
{
//getchar();
printf("找到朋友记录如下:\n");
printf("%s %s %s\n", PY[i].name, PY[i].units, PY[i].phone); //修改
//scanf("%s,%s,%s",&name,&unit,&phone);
printf("是否修改?(Y/N)\n");
scanf(" %c",&ch);
if(ch == 'Y' || ch == 'y');
{
//getchar(); 修改
printf("姓名: 单位: 电话: \n");
scanf("%s %s %s",PY[i].name,PY[i].units,PY[i].phone); //PY[i].unit
printf("修改完成\n");
}
return;
}
}
printf("没有找到朋友记录\n");
}
//保存朋友信息
void save()
{
int n=num; //修改
FILE*fp;
fp=fopen("D:\\QM.txt","w+");
fprintf(fp,"\t\t\t\t 姓名 单位 电话\n");
for(int i=0;i<n;i++)
{
fprintf(fp,"\t\t\t\t %s %s %s\n",PY[i].name,PY[i].units,PY[i].phone );
//fprintf(fp,"\t\t\t\t %s %s %s\n",&PY[i].name,&PY[i].units ,&PY[i].phone );
}
fclose(fp);
printf("\t\t\t\t 保存成功!!\n");
}