python通讯录管理系统 tk_通讯录管理系统
1.[文件]
课程设计.c ~ 9KB
下载(179)
#include
#include
#include
#include
#define MAX_SIZE 100
struct student
{
char name[15];
char num[15];
char addr[15];
}stu[MAX_SIZE];
FILE *fp;
int count;
int loadfile();//载入通讯录文件
void savefile();//保存所有联系人
void input();//添加联系人
void find();//查找联系人
void updata();//更新联系人
void deleteall();//删除所有联系人
void deletename();//按姓名删除单个联系人
void main()
{
int i;
char a;
char name[15];
loadfile();
do{
system("CLS");
printf("\n\n");
printf("\n\t\t┏━━━━━━━━━ 主菜单 ━━━━━━━━━┓");
printf("\n\t\t┃ ┃");
printf("\n\t\t┃**************** 1-新建联系人 ****************┃");
printf("\n\t\t┃ ┃");
printf("\n\t\t┃**************** 2-查找联系人 ****************┃");
printf("\n\t\t┃ ┃");
printf("\n\t\t┃**************** 3-更新联系人 ****************┃");
printf("\n\t\t┃ ┃");
printf("\n\t\t┃**************** 4-删除所有联系人 ************┃");
printf("\n\t\t┃ ┃");
printf("\n\t\t┃**************** 5-删除单个联系人 ************┃");
printf("\n\t\t┃ ┃");
printf("\n\t\t┃**************** 6- 退 出 ****************┃");
printf("\n\t\t┃ ┃");
printf("\n\t\t┗━━━━━━━━━━━━━━━━━━━━━━━┛");
printf("\n\t\t 请选择:");
a=getch();
switch(a)
{
case '1':
system("CLS");
input();
break;
case '2':
system("CLS");
find();
break;
case '3':
system("CLS");
updata();
break;
case '4':
system("CLS");
deleteall();
break;
case '5':
system("CLS");
deletename();
break;
case '6':
printf("6\n\t\t ");
exit(1);
break;
default:
printf("\n\n\t\t 错误,请重新输入\n\t\t ");
getch();
break;
}
}while(a!='6');
}
int loadfile()
{
if((fp=fopen("address_list.txt","rb"))==NULL) //判断是否已有通讯录
{
printf("\n\n\t\t\t通讯录未建立\n");
if((fp=fopen("address_list.txt","wb"))==NULL)
printf("\n\n\t\t\t通讯录建立失败\n\n");
else
{
printf("\n\t\t\t正在建立新通讯录,请稍等···");
getch();
printf("\n\n\t\t\t通讯录建立成功\n\n");
printf("\n\t\t\t按任意键继续······");
getch();
count=0;
return count;
}
}
fseek(fp,0,2);//获取通讯录成员数目
if(ftell(fp)>0)
{
rewind(fp);
for(count=0; !feof(fp)&&fread(&stu[count],sizeof(struct student),1,fp); count++);
return count;
}
else
{
count=0;
return count;
}
}
void savefile()
{
int i;
fp=fopen("address_list.txt","wb");
for(i=0;i
{
fwrite(&stu[i],sizeof(struct student),1,fp);
}
fclose(fp);
}
void input()
{
printf("\n\t\t\t输入联系人信息\n");
printf("\n\t\t\t**********************\n");
printf("\n\t\t\t姓 名:") ;
scanf("%s",stu[count].name);
printf("\n\t\t\t电话号码:");
scanf("%s",stu[count].num);
printf("\n\t\t\t家庭住址:");
scanf("%s",stu[count].addr);
printf("\n\t\t\t**********************\n");
count++;
savefile();
printf("\n\t\t\t是否继续添加联系人?(y/n)");
if(getch()=='y')
{
system("cls");
input();
}
return;
}
void find()
{
int j;
char name[15];
fp=fopen("address_list.txt","rb");
if(count==0)
{
printf("\n\n\n\t\t\t通讯录中没有任何记录,请先添加联系人");
printf("\n\n\t\t\t按任意键继续······");
getch();
return;
}
printf("\n\t\t\t输入查找的姓名:");//按姓名查找
scanf("%s",name);
for(j=0;!feof(fp);j++)
{
fread(&stu[j],sizeof(struct student),1,fp);
if(strcmp(name,stu[j].name)==0)
{
printf("\n\t\t\t**********************\n");
printf("\n\t\t\t 姓名:%s\n",stu[j].name);
printf("\n\t\t\t 电话号码:%s\n",stu[j].num);
printf("\n\t\t\t 地址:%s\n",stu[j].addr);
printf("\n\t\t\t**********************\n");
fclose(fp);
printf("\n\t\t\t按任意键继续······");
getch();
return;
}
}
printf("\n\t\t\t未找到联系人,请重新查找\n");
printf("\n\t\t\t按任意键继续······");
getch();
fclose(fp);
}
void updata()
{
int i;
char a,name[15];
fp=fopen("address_list.txt","rb");
if(count==0)
{
printf("\n\n\n\t\t\t通讯录中没有任何记录,请先添加联系人");
printf("\n\n\t\t\t按任意键继续······");
getch();
return;
}
printf("\n\t\t\t输入要更新的联系人姓名:");
scanf("%s",name);
for(i=0;!feof(fp);i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
if(strcmp(name,stu[i].name)==0)
{
printf("\n\t\t\t你要更新的联系人“%s”的信息如下:",name);
printf("\n\t\t\t****************************\n");
printf("\n\t\t\t 姓名:%s\n",stu[i].name);
printf("\n\t\t\t 电话号码:%s\n",stu[i].num);
printf("\n\t\t\t 地址:%s\n",stu[i].addr);
printf("\n\t\t\t****************************\n");
printf("\n\t\t\t是否继续(y/n)");
if(getch()!='y')
return;
system("CLS");
printf("\n\t\t\t选择你要更新的选项");
printf("\n\t\t\t\t1- 姓 名 ");
printf("\n\t\t\t\t2-电话号码");
printf("\n\t\t\t\t3- 地 址 ");
printf("\n\t\t\t\t4- 返 回 ");
printf("\n\t\t\t请选择:");
a=getch();
switch(a)
{
case '1':
printf("1\n\t\t\t姓 名:");
scanf("%s",stu[i].name);
break;
case '2':
printf("2\n\t\t\t电话号码:");
scanf("%s",stu[i].num);
break;
case '3':
printf("3\n\t\t\t地址:");
scanf("%s",stu[i].addr);
break;
case '4':
return;
break;
default:
return;
break;
}
system("cls");
printf("\n\t\t\t 您的修改结果为:");
printf("\n\t\t\t****************************\n");
printf("\n\t\t\t 姓名:%s\n",stu[i].name);
printf("\n\t\t\t 电话号码:%s\n",stu[i].num);
printf("\n\t\t\t 地址:%s\n",stu[i].addr);
printf("\n\t\t\t****************************\n");
printf("\n\t\t\t 确认修改?(y/n)");
if(getch()!='y')
return;
savefile();
fclose(fp);
printf("\n\n\t\t\t联系人更新完毕,按任意键返回······");
getch();
return;
}
}
printf("\n\t\t\t未找到联系人,请重新查找\n");
printf("\n\t\t\t按任意键继续······");
getch();
fclose(fp);
}
void deleteall()
{
fp=fopen("address_list.txt","rb");
if(count==0)
{
printf("\n\n\n\t\t\t通讯录中没有任何记录,不用再删除");
printf("\n\n\t\t\t按任意键继续······");
getch();
return;
}
printf("\n\n\t\t\t联系人删除后不能恢复\n\n\t\t\t是否继续删除所有联系人(y/n): ");
if(getch()!='y')
return;
fp=fopen("address_list.txt","wb");
count=0;
savefile();
printf("\n\n\t\t\t已删除通讯录中所有联系人");
printf("\n\n\t\t\t按任意键继续······");
getch();
fclose(fp);
}
void deletename()
{
int i,j;
char name[15];
fp=fopen("address_list.txt","rb");
if(count==0)
{
printf("\n\n\n\t\t\t通讯录中没有任何记录,不用再删除");
printf("\n\n\t\t\t按任意键继续······");
getch();
return;
}
printf("\n\t\t\t输入要删除的联系人姓名:");
scanf("%s",name);
for(i=0;!feof(fp);i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
if(strcmp(name,stu[i].name)==0)
{
printf("\n\t\t\t你要删除的联系人“%s”的信息如下:",name);
printf("\n\t\t\t****************************\n");
printf("\n\t\t\t 姓名:%s\n",stu[i].name);
printf("\n\t\t\t 电话号码:%s\n",stu[i].num);
printf("\n\t\t\t 地址:%s\n",stu[i].addr);
printf("\n\t\t\t****************************\n");
printf("\n\t\t\t是否删除(y/n): ");
if(getch()!='y')
return;
for(j=i;j
{
stu[j]=stu[j+1];
}
count--;
savefile();
printf("\n\n\t\t\t该联系人已经成功删除\n\n\t\t\t按任意键继续·····");
getch();
return;
}
}
printf("\n\t\t\t未找到该联系人,请返回重新输入\n");
printf("\n\t\t\t按任意键继续······");
getch();
}
python通讯录管理系统 tk_通讯录管理系统相关推荐
- python通讯录管理系统 tk_通讯录管理系统课程设计
按照惯例,一波课程设计走起~ 这次写的是通讯录管理系统,经过几番大修和N+1次小修之后BUG已经很少了~先来看看期间遇到的哪些问题吧: Qusetion 1:针对手机号的排序问题(即交换结构体) 2: ...
- MFC超市商品管理系统学生成绩管理系统学生信息管理系统通讯录管理系统图书管理系统
MFC超市商品管理系统学生成绩管理系统学生信息管理系统通讯录管理系统图书管理系统 序号 题目 数组保存数据 文件保存数据 数据库保存数据 1 超市商品管理系统 2 学生成绩管理系统 3 学生信息管理系 ...
- 【C语言】以通讯录为例理解宿舍管理系统,图书管理系统完成C语言期末作业。源代码见文章末尾
学完结构体来尝试写一个通讯录吧,以通讯录为例带你理解图书管理系统,宿舍管理系统解决C语言期末作业,需要基础的结构体与指针知识,基础的动态内存知识以及基础的文件操作知识. 源代码见文章末尾 1.理清思路 ...
- python管理系统pyqt_pyqt5图书管理系统(源码+安装说明+数据库)
[实例简介] pyqt5图书管理系统 python pyqt5搭建一个图书管理系统 终于第一个版本发布上来了,基本实现都比较简陋 ### 开始 #### 安装依赖 ```sh pip install ...
- 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...
详解用python实现基本的学生管理系统(文件存储版)(python3) 来源:中文源码网 浏览: 次 日期:2019年11月5日 详解用python实现基本的学生管理系统(文件存储版)( ...
- python学生管理系统界面-Python实现GUI学生信息管理系统
本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境: 软件环境: OS:RedHat6.3 Lib:Pygtk Language:Python S ...
- python实现简单的名字管理系统_python列表使用实现名字管理系统
python列表使用实现名字管理系统 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python列表使用实现名字管理系统.txt ] (友情提示:右键点上行tx ...
- python登录系统文件版_详解用python实现基本的学生管理系统(文件存储版)(python3)...
这个是升级的版本,比较进阶一点的,相对与之前的文件管理系统,数据只是存储到了内存中,而不是存储到硬盘上,我们想让文件存储到硬盘上的话,一个是存储到文件里,一个是存储到数据库中,存储到数据库中的版本会后 ...
- python大学生信息管理系统_基于Python的高等学校社团信息管理系统
基于 Python 的高等学校社团信息管理系统 王金龙 孙月兴 [摘 要] 摘要 : 首先 , 本文通过对高等学校大学生社团信息化管理存在的问题进 行了阐述 , 然后简要介绍了 Python 语言的基 ...
最新文章
- richTextBox设置选中的字体属性
- Maven-学习笔记05【基础-使用骨架创建Maven的Java工程】
- C语言keywordstatic的绝妙用途
- centos 安装jdk_新Jenkins实践-第2章 JENKINS SERVER的安装部署方式
- 写在国产接口管理工具ApiPost 5.2.5发布后的一些话
- 华为在推荐系统中的前沿技术研究与落地(附PPT下载链接)
- 中学计算机课程课时,初中信息技术基础教案设计(课时).doc
- C# List用法;用Exists判断是否存在符合条件的元素;判断是否存在
- 最全的【英语词根词缀思维导图总结】
- java migration_EF Add-Migration总结
- Unity UGUI Rect
- MATALB APP DESIGNER 回调函数创建及StartupFcn函数
- 必得沾福气卡两张,可沾花花卡、敬业福。(扫福攻略、扫福技巧)
- Pygame 实现一个简单画图板
- 生命是罐头,胆量是开罐器
- C语言求最大公约数,最小公倍数
- 微信小程序引入iconfont
- 全面认识OpenStack架构
- SDUT-2245 小学数学
- 360 so加壳动态脱壳方法
热门文章
- 如何使用H5+canvas实现简单的音频频谱图
- COJN 0486 800401反质数 呵呵呵呵呵
- 【神搜递归】统计问题
- HTML5进制转换,进制转换
- ubuntu php libzip安装 ./configure报错 checking for libzip... not found configure
- 本地应用通过Dblink查询,导致Weblogic的线程堵塞而垮掉
- 数字通信同步:锁相环路增益计算问题
- PyG利用GAT实现Cora、Citeseer、Pubmed引用论文节点分类
- win10装linux没有虚拟网卡,windows 10 64位系统安装虚拟网卡失败
- 1st Javascript Editor V3.8绝对完美破解版