课程设计——通讯录管理系统

课程设计——通讯录管理系统

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

整理了一下文件,找到了去年做课程设计的报告,保存一下代码,有一个说法:过了6个月再去看自己写的代码,假设认为写的不好,就说明有了一点进步;这样说明应该还是有那么一点点进步~

#include <stdio.h> #include <stdlib.h> #include <string.h> #include<conio.h>/*屏幕操作函数库*/ #define header1 "|***********************通讯录***********************|\n" #define header2 "| 编号 | 姓名 | 电话号码 | 地址 |\n" #define header3 "|---------|-----------------|-------------------------|-----------------------|\n" #define end "|-----------------------------------结束-----------------------------------|\n" int input(); int show(); void dele(); void save(); int change(); int cx(); int find1(); int find2(); int find3(); void quit(); ///////////结构体////////// struct telebook { int num; char name[20]; char phonenum[20]; char addr[30]; }; void printheader() /*格式化输出菜单头*/ { printf(header1); printf(header2); printf(header3); } /////////////////////////////////////// ///通讯信息录入////////////// ///////////////////////////////////// int input(struct telebook temp[]) { char sign,x[20]; int i=0; FILE *fp;/*定义文件指针*/ system("cls"); if((fp=fopen("telebook.txt","ab+"))==NULL)/* 若读写打开二进制文件telebook.txt失败,则显示出错信息 */ { printf("打开文件有误!"); exit(0); } while(sign!='n'&&sign!='N') { printf("\t编号:"); scanf("\t%d",&temp[i].num); printf("\t姓名:"); scanf("\t%s",temp[i].name); printf("\t电话号码:"); scanf("\t%s",temp[i].phonenum); printf("\t通讯住址:"); scanf("\t%s",temp[i].addr); gets(x); printf("\n\t是否继续加入�?(Y/N)"); scanf("\t%c",&sign); i++; } fwrite(&temp[i],sizeof(struct telebook),1,fp); fclose(fp); system("cls"); return 0; } //////////////////////////////////////// ///通讯信息显示/////////////// /////////////////////////////////////// int show(struct telebook temp[]) { int i; printheader(); for(i=0;i<100;i++) { if(temp[i].num=='\0') break; printf("%-10d%-20s%-20s%-20s\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].addr); } printf("-----------------------------------------------------\n"); system("pause"); system("cls"); return 0; } ////////////////////////////////////// ///通讯信息删除///////////// ///////////////////////////////////// void dele(struct telebook temp[]) { char s[20]; int i=0,j; show (temp); printf("\t请输入想删除记录中的名字:"); scanf("%s",s); for(i=0;i<100;i++) { if(strcmp(temp[i].name,s)==0) { for(j=i;j<20;j++) { temp[j]=temp[j+1]; } printf("\t\t\t已经成功删除!\n"); getch(); system("cls"); return ; } } printf("\t通讯录中没有此人!\n"); getch(); system("cls"); } //////////////////////////////////// ///通讯信息保存//////////// //////////////////////////////////// void save(struct telebook temp[]) { int i; FILE*fp; if((fp=fopen("telebook.txt","w"))==NULL) { printf("cannot open this file\n"); exit(0); } for (i=0;strlen(temp[i].name)!=0;i++) fprintf(fp,"%d%s%s%s\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].addr); fclose(fp); } //////////////////////////////////////// ///通讯信息改动/////////////// ///////////////////////////////////// int change(struct telebook temp[]) { char s[20];    int i=0;    show (temp); printf("\t请输入想改动的记录中的名字:"); scanf("%s",s); for(i=0;i<100;i++) {if(strcmp(temp[i].name,s)==0) { printf("\t编号:"); scanf("\t%d",&temp[i].num); printf("\t姓名:"); scanf("\t%s",temp[i].name); printf("\t电话号码:"); scanf("\t%s",temp[i].phonenum); printf("\t通讯住址:"); scanf("\t%s",temp[i].addr); printf("\t改动成功!"); getch(); system("cls"); return 0; } } {printf("\t通讯录中没有此人!\n"); return;} getch(); system("cls"); } /////////////////////////////////// ///通讯信息查询////////// ////////////////////////////////// int cx(struct telebook temp[]) { int n,flag=1; printf("你想通过什么方式查找?\n"); printf("\t1.编号\t\t2.姓名\t\t3.电话号码\t4.返回\n"); scanf("%d",&n); do{ if(n==1) {find1(temp);return;} if(n==2) {find2(temp);return;} if(n==3) {find3(temp);return;} if(n==4) { system("cls"); return ;} else{ flag=0; printf("输入不对,请又一次输入:"); scanf("%d",&n); } } while(flag==0); return 0; } ///////////////////////////////////////// ///按编号查询//////////////////// //////////////////////////////////////// int find1(struct telebook temp[]) { int i=0,s=0; printf("\t请输入想查询的编号:"); scanf("%d",&s); for(i=0;i<100;i++) { if(temp[i].num=s) { printheader(); printf("%-10d%-20s%-20s%-20s\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].addr); getch(); system("cls"); return 0; } } printf("\t通讯录中没有此人!\n"); getch(); system("cls"); return 1 ; } ////////////////////////////////////// ///按姓名查询//////////////// /////////////////////////////////// int find2(struct telebook temp[]) { char s[20]; int i=0; printf("\t请输入想查询的姓名:"); scanf("%s",s); for (i=0;i<100;i++) { if(strcmp(temp[i].name,s)==0) { printheader(); printf("%-10d%-20s%-20s%-20s\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].addr); getch(); system("cls"); return 0; } } printf("\t通讯录中没有此人!\n"); getch(); system("cls"); return 1; } /////////////////////////////////////// ///按电话号码查询/////////// ///////////////////////////////////// int find3(struct telebook temp[]) { char s[20]; int i=0; printf("\t请输入想查询的电话:"); scanf("%s",s); for (i=0;i<100;i++) { if(strcmp(temp[i].phonenum,s)==0) { printheader(); printf("%-10d%-20s%-20s%-20s\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].addr); getch(); system("cls"); return 0; } } printf("\t通讯录中没有此人!\n"); getch(); system("cls"); return 1; } ///////////////////// ////退出///////// void quit() { printf("\n"); printf("\n"); printf("\t\t★★★★★★★★★★★★★★★★★★★★★\n"); printf("\t\t★★★★★★★感谢您的使用★★★★★★★★\n"); printf("\t\t★★★★★★★欢迎再次使用★★★★★★★★\n"); printf("\t\t★★★★★★★★★谢谢★★★★★★★★★★\n"); exit(0); getch(); system("cls"); } /////////////////////////////////// ///主函数////////////////////// ////////////////////////////////// int main() { struct telebook mess[100]; char xx; system("color 2E");/*改变控制台颜色*/ while(1) { printf("\t ★☆★☆★【欢迎进入通讯录管理系统】★☆★☆★\n"); printf("\t\t******************menu********************\n"); printf("\t\t┌───────────────────┐\n"); printf("\t\t\t ●a、 通讯信息录入\n"); printf("\t\t\t ●b、 通讯信息显示\n"); printf("\t\t\t ●c、 通讯信息保存\n"); printf("\t\t\t ●d、 通讯信息删除\n"); printf("\t\t\t ●e、 通讯信息改动\n"); printf("\t\t\t ●f、 通讯信息查询\n"); printf("\t\t\t ◆Ⅰ、按编号查询\n"); printf("\t\t\t ◆Ⅱ、按姓名查询\n"); printf("\t\t\t ◆Ⅲ、按电话号码查询\n"); printf("\t\t\t ●g、 退出系统\n"); printf("\t\t└───────────────────┘\n"); printf("\t\t******************************************\n"); printf("请输入您的选择\n"); scanf("%c",&xx); getchar(); system("cls"); switch(xx) { case 'a':input(mess);break; case 'b':show(mess);break; case 'c':save(mess);break; case 'd':dele(mess);break; case 'e':change(mess);break; case 'f':cx(mess);break; case 'g':quit();break; default:return 0; } getchar(); } return 0; }

写的有点简陋,仅仅是用来对比自己的学习状态,和曾经进行比較,看如今有没有进步~ 以自己的过去为镜,时时激励自己!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118563.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • uniapp,小程序上传图片

    uniapp,小程序上传图片html<image@click=”chooseImage”:src=”pic”class=”toux”mode=””></image>jschooseImage(){ var_this=this uni.chooseImage({ count:1,//默认9 sizeType:[‘original’,’compressed’],//可以指定是原图还是压缩图,默认二者都有 sourceType:[‘album’,’came

  • 打开网页直接添加QQ好友的代码

    <iframesrc=”tencent://AddContact/?fromId=45&fromSubId=1&subcmd=all&uin=360367488&fuin=%20&website=&Site=%E5%9C%A8%E7%BA%BF%E5%AE%A2%E6%9C%8D&Menu=yes”frameborder=0wi…

  • IDEA全局搜索汉字[通俗易懂]

    IDEA全局搜索汉字[通俗易懂]IDEA全局搜索指定汉字的方法,我还没找到,但有个间接的方法是:快捷键ctrl+shift+f,通过正则表达式找到所有汉字,之后再查找要找的汉字:正则表达式:[\u4e00-\u9fa5]

  • SQL语句创建索引_MySQL索引

    SQL语句创建索引_MySQL索引createindex[index_mode]on[cn_name]([car_mode]);index_mode自定义索引名cn_name表名car_mode列名

  • 汇编语言中AX寄存器(aoc32gx)

    目录1.上节回顾2.H2CSGDMA寄存器组2.1H2CSGDMA标识寄存器2.2H2CSGDMA描述符基地址寄存器2.3H2CSGDMA邻接描述符数量寄存器2.4H2CSGDMA描述符信用寄存器3.C2HSGDMA寄存器组4.下节内容1.上节回顾上节我们讲述了ConfigBlock寄存器组,我们今天来看H2CSGDMA/C2HSGDMA寄存器组,如下。H2CSGDMA/C2HSGDMA寄存器组主要是用来描述每个通道DMA描述符相关的一些

  • intellij idea 激活码2099【2022最新】

    (intellij idea 激活码2099)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlCJM5ZJBPHS-eyJsa…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号