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

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

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

整理了一下文件,找到了去年做课程设计的报告,保存一下代码,有一个说法:过了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;
}

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 贪吃蛇(源代码)[通俗易懂]

    python 贪吃蛇(源代码)[通俗易懂]#话不多说,直接上代码,有需要的小伙伴可以直接拿去用importpygameimportrandomimportsysimporttimefrompygame.localsimport*#从pygame模块导入常用的函数和常量#定义颜色变量black_colour=pygame.Color(0,0,0)white_colour=pygame.Color(255,255,255)red_colour=pygame.Color(255,0,0.

    2022年8月10日
    10
  • 扫描web漏洞的工具_系统漏洞扫描工具有哪些

    扫描web漏洞的工具_系统漏洞扫描工具有哪些十大Web漏洞扫描工具AcunetixWebVulnerabilityScanner[(简称AwVS)AwVS是一款知名的Web网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。a)、自动的客户端脚本分析器,允许对Ajax和Web2.0应用程序进行安全性测试b)、业内最先进且深入的SQL注入和跨站脚本测试c)、高级渗透测试工具,例如HTTPEditor和HTTPFuzzerd)、可视化宏记录器帮助您轻松测试web表格和受密码保护的区域e)、支持含有CAPT

    2022年9月3日
    8
  • Kali安装教程(VMWare)「建议收藏」

    Kali安装教程(VMWare)「建议收藏」1.下载镜像及相关1.1下载镜像文件下载链接:https://www.kali.org/downloads/选择自己需要的版本下载,根据经验先下载种子文件(torrent)再用迅雷下载网速是最有

    2022年8月5日
    3
  • 全套电商ERP源代码出售,电商ERP管理系统、电商仓储管理系统、电商分销管理系统[通俗易懂]

    全套电商ERP源代码出售,电商ERP管理系统、电商仓储管理系统、电商分销管理系统[通俗易懂]技术架构:后端C#.net4.5ORMWEBAPI分布式REDIS,前端:VUEAntDesignAggrid(前后端完全分离)1,产品定位:电商ERP管理系统、电商仓储管理系统、电商分销管理系统2,对接了淘宝天猫、京东、拼多多等主流电商平台50+3,多租户4,分布式5,单客户日均100万数据处理能力6,完整导入导出方案7,前端界面自动生成(表格、搜索条件、编辑字段)8,完整开放平台9,微信小程序10,高度可定制的打印方案11,核心功能模块:订单管

    2022年9月20日
    0
  • 如何在git中删除指定的文件和目录

    如何在git中删除指定的文件和目录

    2021年10月23日
    86
  • git基本使用(超详细)[通俗易懂]

    git基本使用(超详细)[通俗易懂]git基本使用一:Git是什么?Git是目前世界上最先进的分布式版本控制系统。二:SVN与Git的最主要的区别?1.SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。2.Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个

    2022年9月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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