weixin_51375860 2020-12-30 21:06 采纳率: 0%
浏览 5

请问怎么解决有关void的问题

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
struct record
{
	char name[20];
	char age[20];
	char phone[20];
	char e_mail[20]; 
}
contact[500];
int NO=0;
FILE *fp;
void mainmenu(); 
void newrecord();
void browsemenu();
void searchmenu();
void searchname();
void searchphone();
void modifymenu();
void deletemenu();
void deleteall();
void deletesingle();
void deletename();
void deletephone();
int loadfile();
void savefile();

void main()
{
	printf("\n\t\t     :) 欢迎使用通讯录管理系统");
	printf("\n\t\t 文件导入中......请稍后......\n\n\n\n\n");
	system("cls");  
	loadfile();
	while(1)
	{
		mainmenu();
	}
}


void mainmenu()
{
	char choice;
	system("cls");
	printf("\n\t\t         主菜单         ");
	printf("\n\t\t         1-新建菜单     ");
	printf("\n\t\t         2-浏览菜单     ");
	printf("\n\t\t         3-查找菜单     ");
	printf("\n\t\t         4-修改菜单     ");
	printf("\n\t\t         5-删除菜单     ");
	printf("\n\t\t         6-退出         ");
	printf("\n\t\t************************");
	printf("\n\t\t 请选择: ");
	choice=getch();
	switch (choice)
	{
		case '1':newrecord();break;//61
		case '2':browsemenu();break;
		case '3':searchmenu();break;
		case '4':modifymenu();break;
		case '5':deletemenu();break;
		case '6':exit(0);
		default:mainmenu();
	}
}


void newrecord()
{
	printf("\n\t\t     请输入联系人信息     \n");
	printf("\n\t\t 输入姓名:");
	scanf("%s" ,&contact[NO].name);
	printf("\n\t\t 输入年龄:");
	scanf("%s" ,&contact[NO].age);
	printf("\n\t\t 输入电话号码:");
	scanf("%s" ,&contact[NO].phone);
	printf("\n\t\t 输入电子邮件:");
	scanf("%s" ,&contact[NO].e_mail);
	NO++;
	savefile();
	printf("\n\t\t  是否继续添加?(y/n)");
	if (getch()=='y')
		newrecord();
	return;
}


void browsemenu()
{
	int i;
	system("cls" );
	if(NO!=0)
	{
		printf("\n\t\t     以下为通讯录所有信息     ");
	for(i=0;i<NO;i++)
	{
	    printf("\n\t\t姓名: %s",contact[i].name);
		printf("\n\t\t年龄: %s",contact[i].age);
	    printf("\n\t\t电话号码: %s",contact[i].phone);
		printf("\n\t\t电子邮件: %s",contact[i].e_mail);
		printf("\t\t");

	if(i+1<NO)
	{
		printf("\n\t\t______________");
		system("pause");
	}
	}
	printf("\n\t\t            ");
}
else
printf("\n\t\t 通讯录中无任何纪录");
printf("\n\t\t 按任意键返回主菜单: ");
getch();
return;
}


void searchmenu()
{
	char choice; //130
	system("cls");
	printf("\n\t\t   查找菜单   ");
	printf("\n\t\t  1-按姓名查找 ");
	printf("\n\t\t  2-按电话查找 ");
	printf("\n\t\t  3-返回主菜单 ");
	printf("\n\t\t                ");
	printf("\n\t\t 请选择:");
	choice=getch();
	switch (choice)//144
	{
		case '1':searchname();break;
		case '2':searchphone();break;
		case '3':mainmenu();break;
	}
}


void searchname() 
{
	int mark=0;
	int i;
	int a=0;
	char name[20];
	printf("\n\t\t  按姓名查找 ");
	printf("\n\t\t请输入姓名:");
	scanf("%s",name);
	for(i=a;i<NO;i++)
	{
		if(strcmp(contact[i].name,name)==0)//163
		{
			 printf("\n\t\t   以下是你查找的联系人信息   ");
			 printf("\n\t\t姓名: %s",contact[i].name);
			 printf("\n\t\t年龄: %s",contact[i].age);
		     printf("\n\t\t电话号码: %s",contact[i].phone);
		     printf("\n\t\t电子邮件: %s",contact[i].e_mail);
		     printf("\n\t\t      ");
             printf("\n\t\t 按任意键返回主菜单: ");
			 mark++;
			 getch();
			 return;
			 return;
		}
	}
	if(mark==0)
	{
		printf("\n\t\t没有该姓名的联系人纪录");
		printf("\n\t\t按任意键返回主菜单");//182
		getch();
		return; 
	}
}


void searchphone()
{
	int mark=0;
	int i;
	int a=0;
	char phone[10];
	printf("\n\t\t  按电话查找 ");
	printf("\n\t\t请输入电话:");
	scanf("%s",phone);
	for(i=0;i<NO;i++)
	{
		if(strcmp(contact[i].phone,phone)==0)
		{
			printf("\n\t\t 以下是您查找的联系人信息 ");
			printf("\n\t\t姓名: %s",contact[i].name);
			printf("\n\t\t年龄: %s",contact[i].age);
			printf("\n\t\t电话号码: %s",contact[i].phone);
			printf("\n\t\t电子邮件: %s",contact[i].e_mail);
			printf("\n\t\t      ");
			printf("\n\t\t 按任意键返回主菜单: ");
			mark++;
			getch();
			return;
		}
	}
	if(mark==0)
	{
		printf("\n\t\t没有该联系人信息");
		printf("\n\t\t按任意键返回主菜单");
		getch();
		return; 
	}
}


void modifymenu()
{
	int mark=0;
	int a=0;
    int i,k;
	int t=0;
	char choice;char name[20];
	struct record modify;
	system("cls");
	printf("\n\t\t 请输入您要修改的姓名:");
	scanf("%s" ,name);
	for(i=a;i<NO;i++)
	{
		if (strcmp(contact[i].name,name)==0)
		{ 
			k=i;mark=1;
			modify=contact[i];
			printf("\n\t\t   以下是您将修改的联系人信息    ");
			printf("\n\t\t姓名: %s",contact[i].name);
			printf("\n\t\t年龄: %s",contact[i].age);//246
			printf("\n\t\t电话号码: %s",contact[i].phone);
			printf("\n\t\t电子邮件: %s",contact[i].e_mail);
			printf("\n\t\t 是否继续? (y/n)    ");
 
		if(getch()=='n')
			modifymenu();
		else
		{
			printf("\n\t\t 选择您要修改的选项:");
			printf("\n\t\t(1).姓名");
			printf("\n\t\t(2).年龄");
			printf("\n\t\t(3).电话号码");
			printf("\n\t\t(4).电子邮件");
			printf("\n\t\t(5).返回");
			printf("\n\t\t 请选择:");
			choice=getch();
			switch(choice)
			{ 
				case '1': printf("姓名:"); scanf("%s",contact[i].name); break;//270
				case '2': printf("年龄:"); scanf("%s" ,contact[i].age); break;
				case '3': printf("电话号码:"); scanf("%s" ,contact[i].phone); break;
				case '4': printf("电子邮件:"); scanf("%s" ,contact[i].e_mail); break;
				case '5': mainmenu(); break;
				default: modifymenu();
			}
		printf("\n\t\t 您的修改结果为:");
		printf("\n\t\t 姓名: %s",contact[i].name);
		printf("\n\t\t年龄: %s",contact[i].age);
		printf("\n\t\t 电话号码: %s",contact[i].phone);
		printf("\n\t\t电子邮件: %s" ,contact[i].e_mail);
		printf("\n\t\t确认修改? (y/n)");
		if(getch()=='n')
		{
			contact[i]=modify;
			printf("\n\t\t修改未保存!");
		}
		else 
			printf("n\t\t修改未保存!");
			savefile();
			mark=0;
			printf("\n\t\t 是否继续修改?(y/n)");
		if (getch()=='y')
			modifymenu();
		}
	}
}
	if (mark==0)
	{
		printf("\n\t\t没有该联系人纪录");
		printf("\n\t\t 是否继续修改?(y/n)"); 
	if (getch()=='y')
		modifymenu();
	}
return;
}


void deletemenu()
{
	char choice;
	if(NO==0)
	{
		printf("\n\t\t对不起,文件中无任何纪录");
		printf("\n\t\t 按任意键返回主菜单");
		getch();
		return;
	}
	system("cls");
	printf("\n\t\t***************删除菜单***************");
	printf("\n\t\t************** 1-删除所有*************");
	printf("\n\t\t************** 2-删除单个*************");
	printf("\n\t\t************** 3-返回主菜单***********");
	printf("\n\t\t***********************************");
	printf("\n\t\t 请选择: ");
	choice=getch();
	switch(choice)
	{
		case '1':deleteall();break;
		case '2':deletesingle();break;
		case '3':mainmenu();break;
		default:mainmenu();
	}
}
void deleteall()
{
	printf("\n\t\t确认删除?(y/n)");
if(getch()=='y')
{
if((fp=fopen("contact","w"))==0)
{
printf("\n\t\t不能打开文件,删除失败");
loadfile();
}

NO=0;//341
printf("\n\t\t 纪录已删除,按任意键返回主菜单");
getch();
fclose(fp);
return;
}
else
return;
}
void deletesingle()
{
char choice;
printf("\n\t\t 1-按姓名删除");
printf("\n\t\t 2-按号码删除");
printf("\n\t\t 3-返回删除菜单");
printf("n\t\t 请选择: ");
choice=getch();
switch (choice)
{
case '1':deletename();break;
case '2':deletephone();break;
case '3':deletemenu();break;
}
}
void deletename()
{
	int i,j;
	int mark=0;
	char name[20];//369
printf("\n\t\t 请输入要删除联系人姓名: ");
scanf("%s",name);
if(NO==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return; 
}

for(i=0;i<NO;i++)
{
	if (strcmp(contact[i].name,name)==0)
	{ 
printf("\n\t\t   以下是您将删除的联系人信息    ");
 printf("\n\t\t姓名: %s",contact[i].name);
		printf("\n\t\t年龄: %s",contact[i].age);
	    printf("\n\t\t电话号码: %s",contact[i].phone);
		printf("\n\t\t电子邮件: %s",contact[i].e_mail);
		printf("\n\t\t 是否删除? (y/n)     ");
if(getch()=='y')
{
for (j=i;j<NO-1;j++)
contact[j]=contact[j+1]; 
NO--;
mark++;//395
printf("\n\t\t 删除成功");
savefile();
printf("\n\t\t是否继续删除?(y/n)");
if(getch()=='y')
deletename();//400
return;
}
else
return;
	}
continue;
}
if (mark==0)
{
printf("\n\t\t 没有该联系人的纪录");
printf("\n\t\t 是否继续删除?(y/n)");
if (getch()=='y')
deletename();
return;//414
}
}
void deletephone()
{
int i,j;
int mark=0;
char phone[20];
printf("\n\t\t请输入要删除电话号码: ");
scanf("%s",phone);
if(NO==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t 按任意键返回主菜单");
getch();
return;
}
for (i=0;i<NO;i++)
{
if (strcmp(contact[i].phone,phone)==0)
{
	printf("\n\t\t 以下是您要删除的联系人纪录: ");
	printf("\n\t\t姓名: %s",contact[i].name);
	printf("n\t\t 年龄: %s" ,contact[i].age);
	printf("n\t\t 电话号码: %s",contact[i].phone);//440
	printf("\n\t\t电子邮件: %s",contact[i].e_mail);
	printf("\n\t\t 是否删除? (y/n)     ");
if(getch()=='y')
{
for (j=i;j<NO-1;j++)
contact[j]=contact[j+1]; 
NO--;
mark++;
printf("\n\t\t 删除成功");
savefile();
printf("\n\t\t是否继续删除?(y/n)");
if(getch()=='y')
deletephone();
return;
}
else
return;
}
continue;
}//460
if (mark==0)
{
printf("\n\t\t 没有该联系人的纪录");
printf("\n\t\t 是否继续删除?(y/n)");
if (getch()=='y')
deletename();
return;
}
}
int loadfile()
{
int NO=0;
FILE*fp;

if((fp=fopen("contact.txt","t"))==0)

{
printf( "n\n\n\n\n\t\t电话簿文件不存在");
if((fp=fopen("contact.txt","wb"))==0)
{
	printf("\n\t\t\t\t 建立失败");
	exit(0);
}//483
else
{
printf("\n\t\t\t电话簿已建立");
printf("\n\t\t\t按任意键进入主菜单");
getch();
return(NO);
}
exit(0);
}
fseek(fp,0,2);if(ftell(fp)>0)
{
rewind(fp);
for(NO=0;!feof(fp) && fread(&contact[NO],sizeof(struct record),1 ,fp);NO++);
printf("\n\n\n\n\t\t\t :) 文件导入成功");
printf("\n\t\t\t\t按任意键返回主菜单");
getch();
return(NO);//500
}
printf("\n\n\n\n\t\t\t\t  :)文件导入成功");
 printf("\n\t\t\t电话簿文件中无任何纪录");
 printf("\n\t\t\t按任意键返回主菜单");
 getch();
return(NO); 
}
void saefile()
{
	int i;
if ((fp=fopen("student.txt","wb"))==0)
{
printf("\n\t\t文件打开失败!n");
}
for (i=0;i<NO;i++)
{
if (fwrite(&contact[i],sizeof(struct record),1,fp)!=1)
{
printf("\n\t\t写入文件错误!\n");
}
}
printf("\n\t\t已成功保存至文件!n");fclose(fp); 
}


 

 

  • 写回答

1条回答 默认 最新

  • huhuren12 2020-12-31 08:52
    关注

    在你定义的每个函数的参数列表中如果没有参数就写void就不会警告了,比如

    void mainmenu();改成void mainmenu(void),void newrecord();改成void newrecord(void)等等,自己每个函数和函数声明都修改下就ok了

    评论

报告相同问题?

悬赏问题

  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 机器学习简单问题解决
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写