手机名片系统 667.docx

上传人:b****6 文档编号:6521864 上传时间:2023-01-07 格式:DOCX 页数:13 大小:86.22KB
下载 相关 举报
手机名片系统 667.docx_第1页
第1页 / 共13页
手机名片系统 667.docx_第2页
第2页 / 共13页
手机名片系统 667.docx_第3页
第3页 / 共13页
手机名片系统 667.docx_第4页
第4页 / 共13页
手机名片系统 667.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

手机名片系统 667.docx

《手机名片系统 667.docx》由会员分享,可在线阅读,更多相关《手机名片系统 667.docx(13页珍藏版)》请在冰豆网上搜索。

手机名片系统 667.docx

手机名片系统667

通信工程C语言程序课程设计报告

 

学号:

姓名:

提交日期:

成绩:

评语:

教师签字:

东北大学秦皇岛分校电子信息系

 

名片管理程序

1、训练目的

a)C语言基本知识的巩固和综合运用。

基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体。

b)C语言高级编程。

链表基本操作、文件的基本操作、图形和声音制作。

c)程序的结构化设计。

d)编辑、设置、编译、调试、执行。

e)C语言结合实际问题的综合设计。

2、设计题目功能

通过计算机对数据文件的存储和读取,实现名片的输入,输出,查找,修改,删除,分类存储等功能。

最大可以管理300张名片

3、设计题目要求

名片信息至少包括姓名、工作单位、职务、电话、联系地址、email等基本信息。

具体要求包括:

命令行界面

有输入功能

有删除条目功能

有输出功能

有显示列表功能

有根据某一特点的查找功能

4、程序流程图

5、主要代码

#include

#include

#include

#include

#defineIDstructid

structid

{

charname[20];

chartele[20];

charemail[20];

charworkplace[20];

charaddress[20];

charposion[20];

ID*next;

};

intpc=0;

ID*creat()

{

ID*p1,*p2,*head;

charstr[20];

p1=p2=head=NULL;

printf("\t\t\t开始输入记录(姓名#结束)!

\n");

while

(1)

{

printf("请输入姓名:

\n");scanf("%s",str);getchar();

if(strcmp(str,"#")==0)break;

p1=(ID*)malloc(sizeof(ID));

strcpy(p1->name,str);

printf("请输入电话号码:

\n");scanf("%s",p1->tele);getchar();

printf("请输入邮件:

\n");scanf("%s",p1->email);getchar();

printf("请输入工作单位:

\n");scanf("%s",p1->workplace);getchar();

printf("请输入地址:

\n");scanf("%s",p1->address);getchar();

printf("请输入职位:

\n");scanf("%s",p1->posion);getchar();

if(head==NULL)

{

head=p1;

p2=p1;

}

else

{

p2->next=p1;

p2=p1;

}

pc++;

}

p2->next=NULL;

return(head);

}

/*输入/添加记录*/

ID*insert(ID*head)

{

ID*temp,*p1,*p2;

printf("插入操作开始!

!

!

\n");

temp=(ID*)malloc(sizeof(ID));

printf("请输入姓名:

\n");scanf("%s",temp->name);getchar();

printf("请输入电话号码:

\n");scanf("%s",temp->tele);getchar();

printf("请输入邮件:

\n");scanf("%s",temp->email);getchar();

printf("请输入工作单位:

\n");scanf("%s",temp->workplace);getchar();

printf("请输入地址:

\n");scanf("%s",temp->address);getchar();

printf("请输入职位:

\n");scanf("%s",temp->posion);getchar();

if(head==NULL)

{

head=temp;

temp->next=NULL;

}

else

{

p1=head;

while(p1!

=NULL)

{

p2=p1;

p1=p1->next;

}

p2->next=temp;

temp->next=p1;

}

printf("插入成功!

!

");

pc++;

return(head);

}

/*删除记录*/

ID*delet(ID*head)

{

ID*p1,*p2;

charstr[20];

printf("请输入要删除的姓名:

");scanf("%s",str);getchar();

p1=head;

if(head==NULL)

{

printf("没有记录\n");

gotoend;

}

while(p1!

=NULL&&strcmp(p1->name,str))

{

p2=p1;p1=p1->next;

}

if(p1==NULL)

printf("未找到符合记录!

\n");

elseif(strcmp(p1->name,str)==0)

{

if(p1==head)

head=p1->next;

else

p2->next=p1->next;

printf("\t删除成功!

!

!

\n");

pc--;

}

end:

returnhead;

}

/*查找记录*/

ID*search(ID*head)

{

ID*p1,*p2;

intflag=0;

charc[10];

printf("请输入姓名的首字母:

");scanf("%s",c);getchar();

p1=head;

while(p1!

=NULL)

{

if(p1->name[0]==c[0])

{

printf("姓名:

%s\t电话号码:

%s\temail:

%s\t工作单位:

%s\t职位:

%s\t地址:

%s\n",p1->name,p1->tele,p1->email,p1->workplace,p1->posion,p1->address);

flag=1;

}

p2=p1;p1=p1->next;

}

if(flag==0)printf("未找到符合记录!

\n");

returnhead;

}

/*修改记录*/

ID*modify(ID*head)

{

ID*p1,*p2;

intmode;

charstr[20];

printf("请输入要修改记录的姓名:

");scanf("%s",str);getchar();

p1=head;

while(p1!

=NULL)

{

if(strcmp(p1->name,str)==0)

{

printf("1.姓名:

%s\t2.电话号码:

%s\t3.工作单位:

%s\t4.地址:

%s\t5.职位:

%s\n",p1->name,p1->tele,p1->workplace,p1->address,p1->posion);

printf("请选择要修改选项:

\n");

scanf("%d",&mode);getchar();

if(mode==1)

{

printf("请输入修改后的姓名\n");

scanf("%s",p1->name);getchar();

}

elseif(mode==2)

{

printf("请输入修改后的电话号码\n");

scanf("%s",p1->tele);getchar();

}

elseif(mode==3)

{

printf("请输入要修改的工作单位\n");

scanf("%s",p1->workplace);

}

elseif(mode==4)

{

printf("请输入要修改的地址\n");

scanf("%s",p1->address);

}

elseif(mode==5)

{

printf("请输入要修改的职位\n");

scanf("%s",p1->posion);

}

else

printf("输入有误!

\n");

break;

}

p2=p1;p1=p1->next;

}

if(p1==NULL)printf("未找到符合要求的记录!

\n");

returnhead;

}

/*显示结果函数*/

voidprint(ID*head)

{

ID*p;

p=head;

printf("\t\t\t*****************\n");

printf("显示结果是:

\n");

printf("姓名\t电话号码\temail\t工作单位\t地址\t职位\n");

if(head!

=NULL)

do

{

printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->name,p->tele,p->email,p->workplace,p->address,p->posion);

p=p->next;

}

while(p!

=NULL);

}

intmain()

{

ID*head=NULL;

intchoise;

printf("\t\t\t****C语言课设****\n");

while

(1)

{

printf("\t\t手机名片管理系统\n");

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("\t\t1.输入\n");

printf("\t\t2.显示\n");

printf("\t\t3.查找\n");

printf("\t\t4.插入\n");

printf("\t\t5.删除\n");

printf("\t\t6.修改\n");

printf("\t\t7.名片目前人数\n");

printf("\t\t0.退出\n");

printf("\n");

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("请选择(0-7):

");

scanf("%d",&choise);

switch(choise)

{

case1:

head=creat();

break;

case2:

print(head);

break;

case3:

head=search(head);

break;

case4:

head=insert(head);

break;

case5:

head=delet(head);

break;

case6:

head=modify(head);

break;

case7:

printf("目前人数为:

%d\n",pc);

break;

case0:

exit(0);

break;

default:

printf("输入错误,请重新输入!

\n");

}

}

}

6、强化训练心得体会

通过这几周的课程设计,我们大体对C语言基本知识有进一步的理解。

其中包括基本数据类型(像整型,字符型)、基本控制结构(包括基本的顺序结构,选择结构和循环结构,有时还涉及到goto语句)、而且中用最多还是数组、指针、函数、结构体和共用体,并在更深层理解它们的结构,和具体运用环境等。

我们也接触到一些高级C编程,了解了C语言高级编程,包括链表基本操作,和它基本的一些算法,虽然其中有很多困难和苦恼,刚开始接触时,我们大部分不懂,有时都想放弃,但是一切都通过不断学习迎刃而解了。

我们对程序的结构化设计也有全面的认识,也有个大致的掌握,实在令人欣慰啊。

其中传统程序流程图的绘制,也对我们是个很大挑战,我们整整花了几天才有大体的认识和思路。

在整个的课程设计中最有趣的大家在一起调程序,大家一起探讨、分析,不断总结,总之那时的氛围真的很互动和融洽,也是在那时学会熟练的使用开发工具。

包括编辑、编译、调试、执行,每一次看到预期的结果,都是我们最快乐日子。

在这次手机名片管理系统的课程设计,也是一次对C语言综合运用,很好锻炼和巩固我们解决实际问题的能力。

整个过程的收获和体悟,感觉课程设计是一个很好的平台。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1