问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言课程设计 编程实现简单通讯录程序

发布网友 发布时间:2022-05-08 16:18

我来回答

1个回答

热心网友 时间:2024-01-25 21:02

下面这个你可以参考下

#include <stdio.h>
#include <stdlib.h> 
#include <string.h>
#include <iostream>
using namespace std;

#define maxlen 15
struct persons
{
    int num;     
    char name[20]; 
    char e_addr[20];
    char tel_no[15];
    char sim_no;
    char arch;
}persons[maxlen];

typedef struct lnode{ 
    int num;
    char name[20];
    char e_addr[20];
    char tel_no[15];
    char sim_no;
    char arch;
    struct lnode *next;
}listnode,*linklist;

linklist head=NULL,r=NULL; 
listnode *s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9;
int i;
char name1[10],ch;char tel_no1[15];char arch1;char sim_no1;char e_addr1[20];
char s1[20];
FILE *fp; 

void creat()

    int j;
    long k;
    fp=fopen("数据文件.txt","r t"); 
    if(fp!=NULL)
    {for(i=0;i<=maxlen;i++ )
    { j=fgetc(fp);
    if(j==EOF)
        return;
    k=i;
    fseek(fp,k*sizeof(struct persons),0); 
    fread(&persons[i],sizeof(struct persons),1,fp);

    s=(linklist)malloc(sizeof(listnode));
    s->num=persons[i].num;
    strcpy(s->name,persons[i].name);
    strcpy(s->e_addr,persons[i].e_addr);
    strcpy(s->tel_no,persons[i].tel_no);
    s->sim_no=persons[i].sim_no;
    s->arch=persons[i].arch;
    if(head==NULL) 
    {head=s;r=head;head->next=NULL;}
    else
    {r->next=s;
    r=s;r->next=NULL;
    }}fclose(fp);}
    else
    { fp=fopen("数据文件.txt","w"); 
    i=1;
    }
}
void ShowA()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='A')
{
    cout<<endl;
    cout<<p1->name<<endl;
    cout<<p1->tel_no<<endl;
    cout<<p1->sim_no<<endl;}
p1=p1->next;continue;}
}
void ShowB()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='B')
{
    cout<<endl;
    cout<<p1->name<<endl;
    cout<<p1->tel_no<<endl;
    cout<<p1->sim_no<<endl;}
p1=p1->next;continue;}
}
void ShowC()
{p1=head;

while(p1!=NULL)
{if(p1->arch=='C')
{
    cout<<endl;
    cout<<p1->name<<endl;
    cout<<p1->tel_no<<endl;
    cout<<p1->sim_no<<endl;}
p1=p1->next;continue;}
}
void Show()
{char ch1;
printf("                 Which arch do you want to show?\n");
cout<<"                  A:同学同事"<<"B:家人"<<"C:其他"<<endl;
cout<<"请选择:"<<endl;
cin>>ch1;
switch(ch1)
{case'A':ShowA();break;
case'B':ShowB();break;
case'C':ShowC();break;
default:cout<<"error"<<endl;
}
}

void Delete() 
{ printf("\n\n\t          请输入要删除用户的姓名:");

cin>>name1;
p4=head;
if(strcmp(p4->name,name1)==0)
{ p4=p4->next; 
head=p4;
}
else
{ while(strcmp(p4->next->name,name1)!=0)
p4=p4->next;
p5=p4->next;
p4->next=p5->next;
free(p5);
}

void Input() 
{ s=(linklist)malloc(sizeof(listnode));

printf("\n\n\t            请输入该用户的信息:");

cout<<"name:";
cin>>s->name;
cout<<"tel_no:";
cin>>s->tel_no;
cout<<"sim_no:";
cin>>s->sim_no;
cout<<"e_addr:";
cin>>s->e_addr;
cout<<"arch:";
cin>>s->arch;

if(head==NULL)printf("\n\n");
else
{p8=head;
while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!=0)
p8=p8->next;
if(p8!=NULL)
{printf("                 您添加的用户已存在!");
free(s);}}

if(head==NULL)
{head=s;head->next=NULL;}
else
{r->next=s;
r=s;r->next=NULL;}
}

void Alter() 
{

    printf("\n\n\t             请输入姓名:");

    cin>>name1;
    p3=head;
    while(p3!=NULL&&strcmp(name1,p3->name)!=0)
        p3=p3->next;
    if(p3==NULL)
        printf("\n\n\t             您选择的用户不存在!");
    else
    { printf("\n\n\t           请输入该用户的新信息!"); 

    cout<<"name:";
    cin>>name1;
    cout<<"tel_no:";
    cin>>tel_no1;
    cout<<"e_addr:";
    cin>>e_addr1;
    cout<<"sim_no:";
    cin>>sim_no1;
    cout<<"arch:";
    cin>>arch1;
    while(p9!=NULL&&strcmp(name1,p9->name)!=0&&strcmp(tel_no1,p9->tel_no)!=0)
        p9=p9->next;
    if(p9==NULL)
    {strcpy(p3->name,name1);
    strcpy(p3->tel_no,tel_no1);
    strcpy(p3->e_addr,e_addr1);
    p3->sim_no=sim_no1;
    p3->arch=arch1;
    }
    else
        printf("                    您添加的用户已存在!");

    }
}
void Dial()
{int a;char b;
cout<<"1.拨叫用户:"<<endl;
cout<<"2.使用单键拨号:"<<endl;
cin>>a;
p0=head;
if(a==1)
{cout<<"                    请输入拨叫用户的姓名:";
cin>>name1;
while(strcmp(name1,p0->name)!=0&&p0!=NULL)
p0=p0->next;
if(p0==NULL)
cout<<"                     您选择的用户不存在!";
else 
/*for(c=0;c<15;c++)
{cout<<endl;
cout<<(*p0).tel_no[c];}*/
{cout<<endl;
cout<<p0->tel_no;
cout<<endl;}
}
else 
{cout<<"请输入单键号码:";
cin>>b;
while(p0!=NULL&&b!=p0->sim_no)
p0=p0->next;
if(p0==NULL)
cout<<"                     您输入的单键号码不存在!";
else
{cout<<endl;
cout<<p0->name<<endl;
cout<<p0->tel_no;
cout<<endl;}
}
}

void Save() 
{ int j;
fp=fopen("数据文件.txt","w");
for(p2=head,j=0;p2!=NULL;j++ ,p2=p2->next)

    strcpy(persons[j].name,p2->name);
    strcpy(persons[j].tel_no,p2->tel_no);
    persons[j].sim_no=p2->sim_no;
    strcpy(persons[j].e_addr,p2->e_addr);
    persons[j].arch=p2->arch;
    fwrite(&persons[j],sizeof(struct persons),1,fp);
}
}

void main()
{ creat();
do
{
    printf("          **********************************************************");
    printf("\n\n\n\n\t                         欢迎来到通讯录!");
    printf("\n\n\t\t                  请选择操作:");
    printf("\n\t\t1.                显示通讯录");
    printf("\n\t\t2.                删除通讯录");

    printf("\n\t\t3.                添加通讯录");
    printf("\n\t\t4.                编辑通讯录");
    printf("\n\t\t5.                拨号功能");
    printf("\n\t\t6.                保存刚才的操作并退出\n");
    printf("          **********************************************************");
    printf("\n\n\n");
    printf("\t        选择您想要的操作:");
    cin>>ch;
    switch(ch)
    { case '1': Show(); 
    break;
    case '2': Delete();
        break;
    case '3': Input();
        break;
    case '4': Alter();
        break;
    case '5': Dial();
        break;
    case '6': Save();
        fclose(fp);
        exit(0);
        break;
    default:
        printf("\n\t*********************************\n");
        printf("\n\t The num should 1-6!!! \n");
        printf("\n\t**********************************");
        break;
    }
}while(1);
}
用C语言编写一个简单的通讯录软件,实现简单的 姓名 电话 邮箱 地址 的...

fprintf ( stderr, "\nOptions:\n" );fprintf ( stderr, "%d: 显示所有已录入的通讯录\n", PRINT_CODE );fprintf ( stderr, "%d: 录入新纪录\n", ADD_CODE );fprintf ( stderr, "%d: 删除一条记录\n", DEL_CODE );fprintf ( stderr, "%d: 修改一条纪录\n", MOD_...

C语言程序设计——课程设计——通讯录管理系统

C语言程序设计课程设计任务书一、设计题目、内容及要求题目:通讯录程序设计设计一个实用的小型通讯录程序,具有查询和删除功能,并且能够打开或修改指定文件及将多个文件组成一个文件... C语言程序设计 课程设计任务书一、设计题目、内容及要求题目:通讯录程序设计设计一个实用的小型通讯录程序,具有查询和删除功能,并且能...

我用C语言写了一个小型通讯录,能保存不能查询、添加、删除,就大神帮助...

/*查找学生信息*/void main()/*主函数*/{ int n; menu(); scanf("%d",&amp;n);/*输入选择功能的编号*/ while(n) { switch(n) { case 1: input();break; case 2: search();break; case 3: show();break; case 4: del();break; default:break; } get...

C语言程序设计,通讯录管理系统

/*【用C语言编写具有数据插入、修改、删除、显示和查询功能的电话薄管理程序】1、数据包括:人名、工作单位、电话号码和E-mail地址。2、可对记录中的姓名和电话号码进行修改。3、可增加或删除记录。4、可显示所有保存的记录。5、可按人名或电话号码进行查询。另:采用结构体数组和文件系统实现。结构体包...

C语言程序设计:通讯录程序设计

printf("\n\t性别-Sex:%c",friends[j].sex);printf("\n\t联系电话-Telephone:%-13s",friends[j].telephone);printf("\n\t出生日期-Birthday:%4d-%2d-%3d",friends[j].birthday.year,friends[j].birthday.month,friends[j].birthday.day);printf("\n\t邮编-Postnum:%-10s",friends[j]...

求c语言编程制作一个班级通讯录,用结构定义通讯录,包括姓名,学号,手机...

int i;void prt(){ for(i=5;i&lt;8;i++) printf("%c",'*');printf("\t");} main(){ for(i=5;i&lt;=8;i++) prt();} / include include&lt;stdio.h&gt; include&lt;conio.h&gt; include &lt;stdlib.h&gt; define MAX 50 void input();void sort();void display();void insert();void de...

C语言,编写一个简单的通讯录管理系统??

实现一个通讯录管理系统;通讯录管理系统可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 1...

C语言课程设计:个人通讯录管理程序

case 11:exit(0); /*如返回值为11则程序结束*/ } } } /*菜单函数,函数返回值为整数,代表所选的菜单项*/ menu_select(){ char s[80];int c;gotoxy(1,25);/*将光标定为在第25行,第1列*/ printf("press any key enter menu...\n");/*提示压任意键继续*/ getch(); /*读入...

c语言编写一个通讯录系统 用简单一点的c

c语言编写一个通讯录系统用简单一点的c(1)查看功能:①当输入某类时,显示出此类所有数据中的姓名和电话号码;②当输入某人姓名时,显示出此人的姓名、电话号码所在类;③... c语言编写一个通讯录系统用简单一点的c(1)查看功能:① 当输入某类时,显示出此类所有数据中的姓名和电话号码;② 当输入某人姓名...

C语言设计个人通讯录管理系统

1、创建学生社团管理系统的欢迎界面,该欢迎界面以图片的方式呈现,系统启动时再屏幕中居中显示。2、再创建用户登录窗口,用户通过文本框输入用户名和密码,单击“登录”按钮后,在窗体中显示登录是否成功;单击“重置”按钮后,清空文本框信息。3、创建“社团成员信息管理”窗体,用户可以对成员信息进行浏览...

湖南工程学院C语言课程设计通讯录 C语言课程设计通讯录系统 C语言课程设计手机通讯录 通讯录管理系统课程设计C语言 c语言通讯录课程设计 c语言通讯录课程设计报告 c语言个人通讯录程序设计 c语言通讯录设计报告 用c语言设计通讯录
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
五年级语文知识点复习 十二指肠溃疡引起腹泻吃什么药好得快? 纯真岁月剧情简介 纯真岁月分集剧情 实用新型专利能赚多少钱? 丢失的护照已补办,现需要补签证,可以随到随签吗?(韩国签证) 别董大诗的意思 重装系统后,装软件一直装不上 新冠期间如何安全、合理的进行锻炼? 【2024择校分析】中国海洋大学计算机考研 C语言程序设计 建立通信录 用C语言设计一个通讯录系统 C语言的课程设计,做的是全班同学通讯录,然而我并不懂程序是怎样调用的 C语言课程设计:编写程序,建立班级通讯录 求c语言编程制作一个班级通讯录,用结构定义通讯录,包括姓名,学号,手机号,email地址,QQ。 C语言编程 为班里同学设计一份班级通讯录。编写功能菜单。记录每一位同学的学号,姓名,性别,手机号码 用C语言做一个班级通讯录,要求有学号、姓名、性别、手机号码、QQ号、电子邮件、MSN、家庭住址、办公地址 如何在初中英语教学中培养学生核心素养 iphone里有三个小麦色皮肤人头,中间人在吐舌头的图标是什么软件? 百度手机输入法里面现在还有泡泡表情包吗? 万科A的经营范围 新闻报道万科主营业务收入今年超过千亿元 而前三季度的报表只显示为223.8亿元 怎么回事?(请用心帮忙) 万科A为什么不涨原因?万科A股票一季度报表?万科A主要的业务有哪些? 万科A能持有吗?万科A主营业务和业绩?万科A 股票怎么跌跌不休呀? 万科A股票走势怎么样?万科A主营业务分析?000002万科A股价? 360抢票王云抢票,怎么收到订票成功短信在12306上查不到,还多出了30块 ipod touch自带的耳机和专卖店卖的ipod原装耳机效果一样吗? 国寿鸿运少儿两全保险分红型升级 想学做几个家常菜、比如炒鸡蛋什么的。做法说下、谢谢咯 孩子因为有了虚荣心,盲目攀比,家长应该怎么办呢? c语言通讯录程序设计大神们帮帮忙 用C语言设计本班同学通讯录设计(以本班同学的具体数据为背景) C语言程序设计 --通讯录系统 C语言程序设计:简单的同学通讯录程序设计 急需,这几天就要交这个课程设计 大餐过后,用什么办法可以避免长胖? 每到过节的时候就会胖三斤,有什么好的办法可以防止肥胖? 每逢佳节胖三斤,节假日该怎么避免长胖? 预防肥胖有什么办法吗? 到了中年以后很容易发胖,那有什么办法可以避免呢? 什么方法可以控制不会长胖 年轻人股骨头坏死的保健常识有哪些 股骨头坏死有什么好的治疗方法和保养方法 我这还算股骨头坏死初期,如果保守治疗的话,服药多久才能见效呢? 股骨颈骨折股骨头坏死会引想软肋骨炎吗? 股骨头坏死三期患者已出现塌陷腿变短肌肉萎缩如何保养 股骨头坏死会自愈吗 股骨经断裂首先引起的股骨头坏死手术完成后按照大夫的n交代好好调养好股骨头 早期股骨头坏死能治愈吗 股骨头坏死有什么科学的护理方法呢? 股骨头坏死早期治疗的话能治好吗?