区号查询系统

#include<stdio.h> 
#include<malloc.h>
#include<string.h>
typedef struct{
	char chengS[10];//城市 
	char quH[10];//区号 
}stu;
stu s;
int caiD()//菜单主界面 
{
	int i;
 printf("**************欢迎使用区号查询系统**************\n\n");  

 printf("\n");  
 printf("    1.创建区号系统。(更改数据存储的文件)\n");  
 printf("    2.插入信息。\n"); 
 printf("    3.查询记录\n");  
 printf("    4.修改记录\n");  
 printf("    5.删除记录!\n"); 
 printf("    6.显示所有记录\n");  
 printf("    0.退出区号查询\n"); 
 printf("      请输入0~6     \n");
 scanf("%d",&i);
 return i; 
}
void chuangJ(char a[],FILE * fp)//创建一个新文件 (更改数据存储的文件)
{
	
	printf("输入路径与文件名,如c:\\ccc\\ece.txt");
	scanf("%s",a);
	fopen(a,"w+");
	fclose(fp);
	fp=fopen(a,"a+");
	
}
void shuR(stu *ssss)//输入一个城市的区号 
{
	printf("输入城市");
	scanf("%s",ssss->chengS);
	printf("输入区号");
	scanf("%s",ssss->quH);
}
void chaR(FILE *fp)//插入一个数据 
{
	stu *ssss;
	ssss=(stu *)malloc(sizeof(stu));
	shuR(ssss);
	fseek(fp,0,2);
	fwrite(ssss,sizeof(stu),1,fp);
	free(ssss); 
}
void chaX(FILE *fp)//查询 
{
	int i=0;
	char a[10];
	
	printf("输入城市名");
	scanf("%s",a); 
	rewind(fp);
	while(!feof(fp))
	{
		fseek(fp,i*sizeof(stu),0);
		fread(&s,sizeof(stu),1,fp);
		if(!strcmp(s.chengS,a))
		{
			printf("城市名:%s\n区号:%s\n",s.chengS,s.quH);
				return ; 
		}
		else 
		i++;
		 
	 } 
	if(feof(fp))
	printf("没有"); 
 } 
 void shaC(FILE *fp)//删除 
{
	
	int i=0;
	char a[10];
	
	printf("输入城市名");
	scanf("%s",a); 
	rewind(fp);
	while(!feof(fp))
	{
		fseek(fp,i*sizeof(stu),0);
		fread(&s,sizeof(stu),1,fp);
		if(!strcmp(s.chengS,a))
		{
			printf("城市名:%s\n区号:%s\n",s.chengS,s.quH);
			fseek(fp,-sizeof(stu),1);  /*位置指针移动到该数据块首位*/
			fwrite("sss",sizeof(stu),1,fp);
			//fwrite("111",sizeof(s.chengS),1,fp);
			return ;
		}
		else 
		i++;
		 
	 } 
	if(feof(fp))
	printf("没有"); 
 }
void xianS(FILE *fp)
 {
 	fseek(fp,0*sizeof(stu),0); 
 	fread(&s,sizeof(stu),1,fp);
 	printf("城市名:%s\n区号:%s\n",s.chengS,s.quH);
 }
int main()
{
	int i=1;
	FILE * fp;
	char a[30];
	fp=fopen("E:\\qqq.dat","rb+");
	while(i)
	{
		switch(caiD()){
		
		case 1:fclose(fp);chuangJ(a,fp);break;
		case 2:chaR(fp);break;
		case 3:chaX(fp);break;
		case 0:i--;break;
		case 5:shaC(fp);break;
		case 6:xianS(fp);break;
		}
			    
	}
	fclose(fp);
 } 

 

posted @   JackieDYH  阅读(24)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示