黑马程序员-通讯录
来源:互联网 发布:ssh 命令行带端口号 编辑:程序博客网 时间:2024/06/05 09:18
------- android培训、java培训、期待与您交流! ----------
这是黑马视频的一个小程序,关于c语言的,简单,但是很强大,可以看看,很棒,很适合初学者。简单,完整,使用的代码,不好找哇
//// main.c// con2//// Created by cqycomputer on 15/7/8.// Copyright (c) 2015年 cqycomputer. All rights reserved.//#include <stdio.h>#include <stdio.h>#include <string.h>#define LEN 100#define NAMELEN 22#define TELLEN 12/** *打印功能的函数 */void interface(){ printf("**************************\n"); printf("****** 欢迎使用通讯录 ******\n"); printf("****** 1、添加联系人 ******\n"); printf("****** 2、删除联系人 ******\n"); printf("****** 3、修改联系人 ******\n"); printf("****** 4、查看所有联系人 ****\n"); printf("****** 5、搜索联系人 ******\n"); printf("****** 6、退出系统 ******\n"); printf("**************************\n\n");}//定义结构体说明联系人信息typedef struct{ char name[NAMELEN]; char tel[TELLEN];}Person;Person per[LEN];//文件指针哦FILE * fp=NULL;int totel,num;//遍历结构体数组哈void con(){ for(int i=0;i<totel;i++) printf("%d\t%s\t\t%s\t\n",i+1,per[i].name,per[i].tel);}void doAdd(){ char a[NAMELEN],b[TELLEN]; int x; printf("请输入联系人姓名..\n"); getchar(); fgets(a,NAMELEN,stdin); if(a[strlen(a)-1]=='\n') a[strlen(a)-1]='\0'; printf("请输入联系人电话号..\n"); fgets(b,TELLEN,stdin); if(b[strlen(b)-1]=='\n') b[strlen(b)-1]='\0'; printf("1.确认 2.取消\n"); scanf("%d",&x); if(x==1){ strcpy(per[totel].name,a); strcpy(per[totel].tel,b); fp=fopen("contact.date","wb+"); totel++; fwrite(&totel,4,1,fp); fwrite(per,sizeof(Person)*totel,1,fp); fclose(fp); printf("添加成功!\n"); }}void doDelete(){ con(); printf("选择要删除的联系人编号..\n"); int x,y; scanf("%d",&x); if(x>0&&x<=totel){ printf("要删除 %s 吗?1.确定 2.取消\n",per[x-1].name); scanf("%d",&y); if(y==1){ for(int i=x;i<totel;i++) per[i-1]=per[i]; totel--; fp=fopen("contact.date","wb+"); fwrite(per,sizeof(Person)*totel,1,fp); fwrite(&totel,4,1,fp); fclose(fp); } }else{ printf("已取消删除!\n"); }}void doRevise(){ con(); int x,y; char a[NAMELEN],b[TELLEN]; printf("请选择要修改的联系人编号..\n"); scanf("%d",&x); if(x>0&&x<=totel){ printf("请输入新的姓名..\n"); scanf("%s",a); printf("请输入新的电话号..\n"); scanf("%s",b); printf("要修改联系人%s吗? 1.确定 2.取消\n",per[x-1].name); scanf("%d",&y); if(y==1){ strcpy(per[x-1].name,a); strcpy(per[x-1].tel,b); fp=fopen("contact.date","wb+"); fwrite(per,sizeof(Person)*totel,1,fp); fwrite(&totel,4,1,fp); fclose(fp); printf("修改成功!\n"); } }else{ printf("已取消修改!\n"); }}void doSearch(){ printf("请输入要查找的联系人姓名..\n"); char a[NAMELEN]; scanf("%s",a); int i=0; for(;i<totel;i++){ if(strcpy(per[i].name,a)==0){ printf("查找信息如下..\n"); printf("%d\t%s\t\t%s\t\n",i+1,per[i].name,per[i].tel); break; } } if(i==totel) printf("查无此人!\n");}int main(int argc, const char * argv[]) { //定义变量,结构体,文件指针 interface(); //将文件写入结构体 fp=fopen("contact.date","r"); if(fp!=NULL){ fread(&totel,4,1,fp); fread(per,sizeof(Person)*totel,1,fp); rewind(fp); fclose(fp); } printf("请输入操作!\n"); //用循环来执行用户操作 while(1){ //接受用户操作,并判断是否合法 scanf("%d",&num); if(num<1||num>6){ printf("操作错误!\n"); continue; } switch(num){ case 1: doAdd(); break; case 2: doDelete(); break; case 3: doRevise(); break; case 4: con(); break; case 5: doSearch(); break; case 6: printf("系统已退出!\n"); return 0; } interface(); } return 0;}
0 0
- 黑马程序员-通讯录
- 黑马程序员-c语言通讯录
- 黑马程序员---c语言 通讯录的实现
- 黑马程序员-c语言-通讯录的实现
- 黑马程序员-C语言下的通讯录
- 黑马程序员——c语言综合运用:通讯录
- 黑马程序员——C语言基础---通讯录
- 黑马程序员——C基础---简易通讯录的实现
- 【黑马程序员】C语言—通讯录系统的实现
- 黑马程序员——C基础之通讯录
- 黑马程序员--C语言自学笔记---15C语言版通讯录
- 黑马程序员-----C语言学习之通讯录应用的代码实现
- 黑马程序员-----------C语言基础-----------C语言实战(C语言版通讯录)
- 黑马程序员----C语言学习笔记之学习总结《通讯录》程序实现
- 黑马程序员--函数
- 黑马程序员--继承
- 黑马程序员--异常
- 黑马程序员--多线程
- Android Studio使用技巧
- 内部类相关2
- 内存分配与回收策略
- 师者 自省者也
- 面试题15:链表中倒数第k个结点
- 黑马程序员-通讯录
- Kernel Density Estimation Toolbox for MATLAB---问题记录
- 英语学习
- NSRunloop的简单认识
- 我们该用i++还是i--来进行循环?
- 如何设置通过PMU的gpio来唤醒系统
- 政府采购电子办公系统总结-思路篇
- java多线程之阻塞队列BlockingQueue的简单应用
- spring mvc 数据绑定 400错误