C语言:通讯录管理系统
来源:互联网 发布:暗黑黎明官网老虎端口 编辑:程序博客网 时间:2024/06/05 06:59
/*软件名称:作者:宋琳浩版本:1.0*/// 序号排序 #include<stdio.h>#include<stdlib.h> //调用了system("cls")清屏和exit函数#include<string.h>#include<conio.h>//输入输出头文件 包含getch putch等不回显函数FILE *fp;//文件指针int n=0;struct ADDRESS{ char name[20];//姓名 char number[20];//号码 char danwei[30];//工作单位 char address[40];//住址}t[50];//创建通讯录void create(){ void menu_select(); system("color 2e"); if((fp=fopen("通讯录.txt","r"))==NULL) { printf("--------------无通讯录----------------\n\n"); printf("************正在创建,请稍后**********\n\n"); fp=fopen("通讯录.txt","w"); printf("------------按任意键继续--------------\n"); getch(); system("cls"); printf("*******************创建成功!***************\n\n"); printf("--------------通讯录管理系统:---------------\n\n"); printf(" □ \n"); printf(" □□□□□□□□□□□ \n"); printf(" □ □ □ \n"); printf(" □ □ □ \n"); printf(" □□ □ □□ \n"); printf(" □□□□□□ \n"); printf(" □ \n"); printf(" □ \n"); printf(" □□□□□□□□□□□ \n"); printf(" □ \n"); printf(" □ \n"); printf(" □□□□ \n\n"); printf("--------------按任意键进入主菜单------------\n\n"); getch(); system("cls"); menu_select(); } else { int i; for(i=0;i<50;i++) { if(fscanf(fp,"%s%s%s%s",t[i].name,t[i].number,t[i].danwei,t[i].address)==-1) { n=i; break; } } fclose(fp); printf("--------------通讯录管理系统:---------------\n\n"); printf(" □ \n"); printf(" □□□□□□□□□□□ \n"); printf(" □ □ □ \n"); printf(" □ □ □ \n"); printf(" □□ □ □□ \n"); printf(" □□□□□□ \n"); printf(" □ \n"); printf(" □ \n"); printf(" □□□□□□□□□□□ \n"); printf(" □ \n"); printf(" □ \n"); printf(" □□□□ \n\n"); printf("--------------按任意键进入主菜单------------\n\n"); getch(); system("cls"); menu_select(); }}//输入记录void get(){ void menu_select(); printf("***************请输入联系人信息***************\n"); loop: { printf("输入姓名:\n"); scanf("%s",t[n].name); if(t[n].name==" ") goto loop; } printf("输入号码:\n"); scanf("%s",t[n].number); printf("输入工作单位:\n"); scanf("%s",t[n].danwei); printf("输入住址:\n"); scanf("%s",t[n].address); n++; printf("***************是否继续添加(Y/N):***************\n"); if(getch()=='Y') get(); system("cls"); menu_select();}//显示全部记录void list(){ void menu_select(); int i; if(n!=0) { printf("---------------全部记录:----------------\n"); for(i=0;i<n;i++) { printf("***************************************\n"); printf("序号: %d\n",i); printf("姓名: %s\n",t[i].name); printf("号码: %s\n",t[i].number); printf("工作单位: %s\n",t[i].danwei); printf("住址: %s\n",t[i].address); printf("***************************************\n"); printf("---------------------------------------\n\n"); } printf("共%d个联系人\n\n",n); printf("**********按任意键返回主菜单...********\n"); getch(); system("cls"); menu_select(); } else printf("---------------无联系人----------------\n"); printf("**********按任意键返回主菜单...********\n"); printf("---------------------------------------\n"); getch(); system("cls"); //清屏 menu_select();}//按姓名查找显示记录void searchbyname(){ void menu_select(); int flag=0; int i=0; char mingzi[20]; printf("***************按姓名查找:***************\n"); printf("***************请输入姓名:***************\n"); scanf("%s",mingzi); for(i=0;i<n;i++) { if(strcmp(t[i].name,mingzi)==0) { printf("***************联系人信息如下:***************\n"); printf("序号: %d\n",i); printf("姓名: %s\n",t[i].name); printf("号码: %s\n",t[i].number); printf("工作单位: %s\n",t[i].danwei); printf("住址: %s\n",t[i].address); printf("*********************************************\n"); flag++; getch(); system("cls"); menu_select(); } } if(flag==0) { printf("***************输入信息有误,没有此联系人:*********\n\n\n"); printf("***************按任意键返回主菜单...***************\n"); getch(); system("cls"); menu_select(); }}//按姓名排序void sort()//用ASII码排序{ void menu_select(); int i,j,k; ADDRESS temp; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) { if(strcmp(t[k].name,t[j].name)>0) k=j; if(k!=i) { temp=t[i]; t[i]=t[k]; t[k]=temp; } } } printf("***************按姓名排序:***************\n"); for(i=0;i<n;i++) { printf("---------------------------------------------\n"); printf("序号: %d\n",i); printf("姓名: %s\n",t[i].name); printf("号码: %s\n",t[i].number); printf("工作单位: %s\n",t[i].danwei); printf("住址: %s\n",t[i].address); printf("---------------------------------------------\n"); } printf("************按任意键返回主菜单...*********\n"); getch(); system("cls"); menu_select();}//按序号查找显示记录void searchbyindex(){ void menu_select(); int i; printf("***************按序号查找:***************\n"); scanf("%d",&i); if(i<n) { printf("序号: %d\n",i); printf("姓名: %s\n",t[i].name); printf("号码: %s\n",t[i].number); printf("工作单位: %s\n",t[i].danwei); printf("住址: %s\n",t[i].address); printf("************按任意键返回主菜单...*********\n"); getch(); system("cls"); menu_select(); } else printf("***************没有这个纪录:***************\n"); printf("************按任意键返回主菜单...**********\n"); getch(); system("cls"); menu_select();}//总查找void init(){ void searchbyname(); void searchbyindex(); void menu_select(); char i; printf("---------------查找方式:----------------\n"); printf("***************a. 姓名:***************\n"); printf("***************b. 序号:***************\n"); printf("***************c. 返回:***************\n"); printf("----------------------------------------\n"); i=getch(); switch(i) { case 'a': searchbyname(); break; case 'b': searchbyindex();break; case 'c': { system("cls"); menu_select(); break; } default: menu_select(); }}//插入记录(按姓名)void add(){ void menu_select(); int i,j,k; ADDRESS temp; loop: { printf("输入姓名:\n"); scanf("%s",t[n].name); if(t[n].name==" ") goto loop; } printf("输入号码:\n"); scanf("%s",t[n].number); printf("输入工作单位:\n"); scanf("%s",t[n].danwei); printf("输入住址:\n"); scanf("%s",t[n].address); n++; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) { if(strcmp(t[k].name,t[j].name)>0) k=j; if(k!=i) { temp=t[i]; t[i]=t[k]; t[k]=temp; } } } printf("******************已插入*********************\n\n"); printf("************按任意键返回主菜单...************\n"); getch(); system("cls"); menu_select();}//删除全部记录void delall(){ void menu_select(); printf("-------------确认删除?(Y/N)-------------\n"); if(getch()=='Y') { fopen("通讯录.txt","w");//用w模式打开一个已有的文件 文件内容会被删除 以便程序以一个空文件开始操作 n=0; printf("----------------已经删除-----------------\n"); printf("************按任意键返回主菜单...**********\n"); getch(); system("cls"); menu_select(); } else system("cls"); menu_select();;}//删除姓名void delname(){ void menu_select(); int flag=0; int i=0; char mingzi[20]; printf("************请输入要删除的姓名:************\n"); scanf("%s",mingzi); for(i=0;i<n;i++) { if(strcmp(t[i].name,mingzi)==0) { flag++; printf("***************删除的信息如下:**************\n"); printf("序号: %d\n",i); printf("姓名: %s\n",t[i].name); printf("号码: %s\n",t[i].number); printf("工作单位: %s\n",t[i].danwei); printf("住址: %s\n",t[i].address); printf("***************是否要删除?(Y/N)**************\n"); printf("*********************************************\n"); if(getch()=='Y') { for(;i<n-1;i++) { t[i]=t[i+1]; } n=n-1; printf("******************已删除*****************\n"); getch(); system("cls"); menu_select(); } if(getch()=='N') { getch(); system("cls"); menu_select(); } } } if(flag==0) { printf("***************输入信息有误,没有此联系人:*********\n\n\n"); printf("***************按任意键返回主菜单...***************\n"); getch(); system("cls"); menu_select(); }}//删除void Delete(){ void menu_select(); void delname(); void delall(); char i; printf("---------------删除方式:----------------\n"); printf("*************a.按姓名删除:**************\n"); printf("***************b.全部删除:**************\n"); printf("***************c. 返回:***************\n"); i=getch(); switch(i) { case 'a': delname(); break; case 'b': delall(); break; case 'c': { system("cls"); menu_select(); break; } default: menu_select(); }}//退出void exit(){ int i=0; fp=fopen("通讯录.txt","w"); for(i=0;i<n;i++) { fprintf(fp,"%s ",t[i].name); fprintf(fp,"%s ",t[i].number); fprintf(fp,"%s ",t[i].danwei); fprintf(fp,"%s ",t[i].address); } fclose(fp); exit(0);}//主菜单函数void menu_select(){ void menu_select(); //主菜单函数 void init(); //查找记录 void create(); //创建记录 void list(); //显示全部记录 void searchbyname();//按姓名查找显示记录 void delall();//删除记录 void add();//插入记录 void get();//输入记录 void searchbyindex();//按序号查找显示记录 void sort();//按姓名排序 void exit();//退出并保存到文件 char c; system("color 9e"); printf("***************MENU*************** \n"); printf("0. Enter record /*输入记录*/ \n"); printf("1. list the file /*显示全部记录*/ \n"); printf("2. search record on name /*查找记录*/ \n"); printf("3. display record on order /*按序号查找显示*/ \n"); printf("4. delete a record /*删除记录*/ \n"); printf("5. add record /*插入记录*/ \n"); printf("6. sort by name /*按姓名排序*/ \n"); printf("7. quit /*退出并保存到文件中*/ \n"); printf("********************************** \n"); c=getch(); switch(c) { case '0': get(); break; case '1': list(); break; case '2': init(); break; case '3': searchbyindex(); break; case '4': Delete(); break; case '5': add(); break; case '6': sort(); break; case '7': exit(); break; default: menu_select(); } return;}//主函数void main(){ create(); menu_select(); }
阅读全文
0 0
- C语言通讯录管理系统
- C语言通讯录管理系统
- c语言通讯录管理系统
- C语言通讯录管理系统
- C语言:通讯录管理系统
- C语言通讯录管理系统【没看】
- 通讯录管理系统C语言课程设计
- C语言 电子通讯录管理系统
- C语言实现通讯录管理系统
- C语言通讯录系统
- 大一课设---C语言--通讯录管理系统
- C 语言课程设计 最终答辩版 学生通讯录管理系统
- 【C语言】通讯录管理系统(容量固定)
- 【C语言】通讯录管理系统(容量可变)
- C语言 学生电子通讯录管理系统(修正版)
- 通讯录管理系统(C语言版)
- c语言实现通讯录系统
- c语言实现的通讯录系统
- 关于Java的一些很小很小的知识
- 辗转相除法最简单最通俗证明
- img 图片下方2px缝隙解决方法
- python安装小结
- ros学习笔记--rviz的常见问题
- C语言:通讯录管理系统
- C#扩展方法
- 连续型随机变量
- ubuntu gitlab 升级/备份/恢复
- C++:学生考勤系统
- TensorFlow文本摘要生成
- HDU 2037 今年暑假不AC(贪心 最多不相交区间)
- C++:足球联赛积分系统
- 10部经典的官场小说