整理个人通讯录管理系统课程设计报告.docx
- 文档编号:5315974
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:41
- 大小:221.30KB
整理个人通讯录管理系统课程设计报告.docx
《整理个人通讯录管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《整理个人通讯录管理系统课程设计报告.docx(41页珍藏版)》请在冰点文库上搜索。
整理个人通讯录管理系统课程设计报告
C语言程序设计
课程设计报告
个人通讯录管理系统设计
专业__网络工程________班级___(3)班___________
学号__3148119322姓名__吴道金_
学号_3148119319_姓名_林东垚___
学号_3148119359_姓名__林家勇__
学号__3149119349__________姓名___上官景铨___________
福建工程学院软件学院
2015年月日
(正文部分)
一、需求分析
建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
功能要求
(1)通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。
(2)输入功能:
可以一次完成若干条信息的输入。
(3)显示功能:
完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)
(4)查找功能:
可以按姓名等多种方式查找通讯信息
(5)增加、删除、修改功能:
完成通讯录信息的多种更新
二、总体设计
三、详细设计
voidmenu();/*菜单*/
voidAdd();/*添加记录*/
voidprint();/*输出记录*/
voidFind();/*查找记录(按姓名)*/
voidDelete();/*删除记录*/
voidSaveFree();/*保存到文件*/
voidCreat();/*打开文件*/
四、程序源代码
#include
#include
#include
structlist
{
charname[20];
charaddr[20];
charnum[20];
charqq[10];
charphnum[20];
charemail[30];
structlist*next;
};
typedefstructlistLIST;
LIST*head=NULL;
voidmenu();/*菜单*/
voidAdd();/*添加记录*/
voidprint();/*输出记录*/
voidFind();/*查找记录(按姓名)*/
voidDelete();/*删除记录*/
voidSaveFree();/*保存到文件*/
voidCreat();/*打开文件*/
voidmain()
{
charc;
Creat();/*打开文件*/
while
(1)
{
menu();/*显示菜单*/
scanf("%c",&c);
switch(c)
{
case'1':
Add();break;/*添加记录*/
case'2':
print();break;/*输出条目*/
case'3':
Find();break;/*查找条目1.按姓名*/
case'4':
Delete();/*删除信息*/
print();break;/*输出删除后的结果*/
case'0':
SaveFree();/*保存并释放内存*/
exit(0);/*退出*/
break;
default:
printf("选择错误!
");
break;
}
}
}
/*菜单*/
voidmenu()
{
printf("\n*****************通讯录系统*********************\n");
printf("***********\t1.添加记录*******************\n");
printf("***********\t2.输出记录*******************\n");
printf("***********\t3.查询记录*****************\n");
printf("***********\t4.删除记录*******************\n");
printf("***********\t0.保存并退出!
****************\n");
printf("************************************************\n");
printf("\t请选择将要进行的操作:
\n");
}
/*添加记录*/
voidAdd()
{
LIST*p1=NULL,*p2=NULL;
p1=(LIST*)malloc(sizeof(LIST));/*申请结点*/
printf("输入姓名:
\n");/*添加信息*/
scanf("%s",p1->name);
printf("输入地址:
\n");
scanf("%s",p1->addr);
printf("输入学号:
\n");
scanf("%s",p1->num);
printf("请输入qq号:
\n");
scanf("%s",p1->qq);
printf("输入电话:
\n");
scanf("%s",p1->phnum);
printf("请输入email:
\n");
scanf("%s",p1->email);
p1->next=NULL;/*保存到链表*/
if(head==NULL)
{
head=(LIST*)malloc(sizeof(LIST));/*申请空间*/
head->next=p1;
}
else
{
for(p2=head;p2->next!
=NULL;p2=p2->next);/*找到结点尾*/
p2->next=p1;
}
printf("此记录已添加!
");
}
/*输出学生信息*/
voidprint()
{
LIST*p=NULL;
if(head==NULL)
{
printf("这是一个新记录,请添加记录\n");
return;
}
printf("**************通讯录系统*********************\n");/*输出信息*/
printf("姓名\t\t地址\t学号\t\tqq\t\t电话\t\temail\n");
for(p=head->next;p!
=NULL;p=p->next)
printf("%s\t\t%s\t%s\t%s\t%s\t%s\n",p->name,p->addr,p->num,p->qq,p->phnum,p->email);
}
/*查找信息1.按姓名、2、按学号*/
voidFind()
{
LIST*p;
charname1[20],num1[20];
inti;
printf("请输入查找方式1、按姓名;2、按学号");
scanf("%d",&i);
if(i==1)
{
printf("请输入要查找的姓名:
\n");
scanf("%s",name1);
printf("**************通讯录系统*********************\n");
printf("姓名\t\t地址\t学号\tqq\t电话\t\temail\n");
for(p=head->next;p!
=NULL;p=p->next)
{
if(strcmp(p->name,name1)==0)
printf("%s\t\t%s\t%s\t%s\t%s\t%s\n",p->name,p->addr,p->num,p->qq,p->phnum,p->email);
}
}
elseif(i==2)
{
printf("请输入要查找人的学号:
\n");
scanf("%s",num1);
printf("**************通讯录系统*********************\n");
printf("姓名\t\t地址\t学号\tqq\t电话\temail\n");
for(p=head->next;p!
=NULL;p=p->next)
{
if(strcmp(p->num,num1)==0)
printf("%s\t\t%s\t%s\t%s\t%s\t%s\n",p->name,p->addr,p->num,p->qq,p->phnum,p->email);
}
}
else
printf("请选择1和2两哥数字\n");
}
/*删除信息*/
voidDelete()
{
charname1[20];/*先查找后删除*/
LIST*p=head->next,*pr=head->next;
printf("请输入要删除的姓名:
\n");
scanf("%s",name1);
if(head->next==NULL)
{
printf("无此节点!
\n");
return;
}
while((strcmp(p->name,name1)!
=0)&&p->next!
=NULL)
{
pr=p;
p=p->next;
}
if(strcmp(name1,p->name)==0)/*输出删除信息*/
{
printf("%s\t\t%s\t%s\t%s\t%s\t%s\n",p->next->name,p->next->addr,
p->next->num,p->next->qq,p->next->phnum,p->next->email);
if(p==head->next)
head->next=p->next;
else
pr->next=p->next;
free(p);
}
printf("此记录已删除!
");
}
/*保存链表信息到文件并释放内存空间*/
voidSaveFree()
{
LIST*p=NULL;
FILE*fp;
char*Book="list.txt";
if(head==NULL)
{
printf("\n记录为空!
\n");
return;
}
else
p=head->next;
if((fp=fopen(Book,"wb+"))==NULL)
{
printf("\n打不开文件!
\n");
return;
}
while(p!
=NULL)/*保存信息*/
{
fwrite(p,sizeof(LIST),1,fp);
p=p->next;
}
printf("保存完毕!
");
fclose(fp);
/*****释放链表空间*****/
for(;head->next!
=NULL;)
{
p=head->next;
head->next=head->next->next;
free(p);
}
free(head);
}
/*文件信息输出到链表*/
voidCreat()
{
FILE*fp;
LIST*p1=NULL,*p2=NULL,*temp=NULL;
if((fp=fopen("addresslist.txt","rb+"))==NULL)
{
printf("\n****************这是一个新的通讯录管理系统******************\n");
return;
}
head=(LIST*)malloc(sizeof(LIST));
head->next=NULL;
temp=p2=head;
while(!
feof(fp))/*循环读取*/
{
p1=(LIST*)malloc(sizeof(LIST));
temp=p2;
p2->next=p1;
p2=p1;
fread(p1,sizeof(LIST),1,fp);
}
temp->next=NULL;
fclose(fp);/*关闭文件*/
}
五、程序运行结果测试
六、结论与心得
通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。
同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。
通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等
吴道金:
文本排版及构图
林家勇:
程序程序运行测试
林东垚:
程序分析
上官景铨:
程序注释
这本被一个叫“慧”的女孩珍藏十多年的书,是“我”相当熟悉和喜欢的,因为一个偶然的机会,成了“我”枕边的读本,给“我”带来了许多美好的感13.受。
以此来凸现阅读的愉悦和充实,从而表现“邂逅”的,来表现阅读内容的丰富)或多方面的呈现(以精练的语言,的语言来表现阅读环境的优美)或生动(以形象14.美丽。
)因对“慧”弃书原因的猜测,产生忧虑(遗憾、惋惜)的感情。
2()因对“慧”爱书形象的猜想,产生了欣赏(喜爱、赞美)的感情;1(15.,静心读书。
)希望人们能爱书(珍惜书)1(16.)希望人们能守住自己的精神家园,通过读书来提升个人的思想境界和修养。
2()希望我们的社会形成全民读书的良好风气,以振兴我们的国家和民族。
3()分(13题。
17-21阅读下面的文章,完成文后第)四(湖北黄石:
葱青青小白的雪,青的葱,红红的是她的小手。
她总是这么静静地站着,低着头,眼睛朝下看,扎两条小辫,穿一身红底儿蓝花的棉袄棉裤,一双黑布棉鞋羞涩地卧在白雪中,脸蛋儿红红的,那双小手也是红红的。
看不到那双眼,那眼睛一定很美,很清澈?
?
白白的雪轻轻地盖在小街和屋顶上,只有那小葱是青青的。
说不清从什么时候起,这个小集市上有了她。
她的小葱总是那么嫩,那么青,像她自己一样。
她从不吆喝,从不抬价。
换了别人,这样好的葱,一定会“几毛几“几斤几两”“要多少”放声叫好,定会编出许多诸如“小葱拌豆腐——一青(清)二白”等诱人的词句。
她极少说话。
说,也是奶声奶气的几个字:
。
只有她说话的时候,才偶尔看对方一眼。
啊,这眼睛真美!
它不光清澈,还蕴涵着一丝忧伤,但忧伤中分明显露出善良和期望。
分”小镇上的人都吃她的小葱。
没有人跟她讨价还价,连老太太都如此。
姑娘太小,那双手太小。
她是集市上的小妹妹,大家都爱护她。
菜主们对镇上的人“我的葱不如小妹妹的,买她的吧。
镇子上哪来恁好的葱?
”没有人一个子买好多的葱。
大家都知道,她的小葱天天有,一年四季都不断,价格也好,便说:
宜。
啊,天真冷。
她把两只小手放在嘴边,用热气哈一哈,然后,给一位大姐姐称葱,帮大姐姐放在篮子里。
她依然不说话,朝下看。
地上的雪真白,只是没有太阳,要不,它会耀眼的。
”大姐姐把钱递给她。
她轻轻地摇摇头。
“小妹妹,给你钱。
左胸那枚“吉阳镇中学”的校徽上,声音有些激动,“大姐姐,俺?
?
”她抬起头来,目光在大姐姐的脸上扫了一下,迅速落在“为啥?
”大姐姐一怔。
”“俺娘说,等过两年,弟弟初中毕业了,就让俺继续上学。
也带着几分憧憬。
“?
?
””说着,她迅速地从菜篓底下取出两个用塑料“大姐姐,俺不要钱。
俺知道你是老师,常来买葱,俺想求你帮俺看看这个。
这是俺看弟弟的书做的作业。
ZXXK]学科网:
来源[袋包着的小本子,递给女老师。
子,一下子惊呆了,本子上工工整整写着初中作业。
她不知说什么才好。
女老师接过本“小妹妹,多大啦,你是哪村的?
”“俺今年十五啦,住杏树湾。
俺还有一个弟弟、一个妹妹,弟弟正上初中呢。
”“爹娘呢?
””天黑路滑,跌到沟里腿断了,不能动了,娘在家服侍爹,还管园子。
爹好的时候,俺也上学哩!
“爹病了。
两年前,爹从城里卖菜回去老师嘴唇动了几下,想说什么,但没有说出来,只是眼圈发红、发潮,她一下子将小妹妹搂在怀里,紧紧地握住那两只小手。
冰凉的小手,她想把它女暖热,永远地热下去。
“好妹妹,你来我班里上学吧?
”“不?
?
俺不上。
俺还要卖菜呢,俺上了,弟弟就上不成了。
俺娘说?
?
”女老师把小妹妹搂得更紧了。
太阳出来了,那雪更白了,那葱更青了。
两年后,小妹妹考上了县师范。
临走时,她给女老师送去一篮子小葱。
那葱洗得真干净,扎得整整齐齐。
多嫩的小葱呀!
她俩没有说话,都哭了?
?
啊,小葱青青?
?
)分?
(2“小葱”在文章中多次出现,请简要说说它在刻画人物和结构上的作用本文人物形象鲜明,结构浑然一体。
17.刻画人物上:
结构上:
(3.作者在描写人物时非常注重写人物的眼睛,阅读文中划线句子“看不到那双眼,那眼睛一定很美、很清澈?
?
”结合文意,谈谈你对这句话的理解。
18)分)分(2请摘录原句回答。
?
你能试着找出两处吗文章已有多处铺垫。
其实在她向女教师讲述前,例如关于小妹妹辍学的事,善于铺垫,这篇小说构思精巧,19..小说倒数第三段说:
“两年后,小20)分(3妹妹考上了县师范。
”请你根据上下文,简单说说这两年间发生了哪些事。
.这篇小说展示了自然景物美、人物心灵美、社会环境美,富有艺术感染力,读完全文,令人回味思索。
作品结尾的省略号包含了作者丰富的思想感情,21分)3(请你结合全文说说其中有哪些内容。
(三)2分,共1(每点,结构上:
小说的线索。
、刻画人物:
衬托人物(是小妹妹形象的化身)17分)、眼睛是心灵的窗户,眼睛很美,很清澈,其实说的是心灵美好纯真:
做买卖诚信,辍学承担家务,期盼早日上学。
18)她的小葱总是那么嫩,那么青,像她自己一样。
1(、19)姑娘太小,那双手太小。
2()它不光清澈,还带着一丝忧伤,但忧伤中分明显露出善良和期盼。
3()她抬起头,目光在大姐姐的脸上扫视了一下,迅速地落在左胸那枚“吉阳镇中学”的校徽上,声音有些激动,也带有几多憧憬。
4()她依然不说话,朝下看。
5(分,答出任意两句得满分)1分,每点2(共小妹妹边承担家庭重担边学习,女教师热情无偿辅导,弟弟毕业。
、答案提示:
应准确全面把握相关内容,突出重点,应包含如下方面内容20)对小妹妹纯真善良心灵和不懈追求精神的赞美;1(、21)对小妹妹心愿终于实现的喜悦;2()“对女教师奉献爱心的赞颂”亦可,因为女教师是社会环境的代表。
(。
)对充满阳光的社会环境的期望(欣慰)3(分)1分,每点3(共湖北荆州分)散文阅读(12五、荡里莲花]学科网:
来源[当马家荡千亩莲塘倏然跃入眼帘时,那一刻洋溢于心底的喜悦,只化作低低的倾诉:
原来你在这里!
莲塘的上面,天,蔚蓝的,像刚出水的芙蓉,清新怡人。
偶尔一两只小鸟,在这蔚蓝的天空下,扑腾着翅膀,随风而去。
我站立的地方,是一弯碧水萦绕的莲塘,莲塘很宽,水面上布满了荷叶,举目望去,绿浪一层一层的直向对岸压去,诗人笔下“接天莲叶无穷碧”的壮观画面,此时就在我的眼前慢慢展开。
莲叶似少女打着皱摺的裙裾,在微风中轻轻摇曳;又似一柄柄张开的绿伞,在艳阳下欢快地舞蹈。
莲叶上的晨露,似顽皮的孩子在打着滚儿。
而点缀在这万顷碧涛之上的朵朵白莲花,便是这大片风景画中当仁不让的主角了。
这洁白如玉,大如团扇的莲花纤尘不染,大汤匙般的花瓣三片一层,一朵莲花一般由四层花瓣错落有致组合而成。
被花瓣层层包围的莲心羞答答不肯露面,流苏般的黄色花蕊众星捧月般将她呵护,这嫩黄的莲蓬等到花瓣凋零时,便会披上深绿色的外衣脱颖而出,吟唱属于她的主题曲等侯前来收获的主人。
凑上前去,莲花的香气让我顿觉神清气爽,暑气尽消。
这清新中带着淡淡药香的气味,不张扬,不媚惑,让人遐想,令人沉静。
最妙的要数那些即将盛开的莲花了,一枝枝从绿伞之中挺身而出,像一支支花剑直指长空,对着这神秘的大地凝望。
这些花苞的表层如少女,娇面含春,呈现一派羞色。
微风过处,到处是芳香弥漫。
白色的莲花掩映于莲叶之间,粉红的朵儿,则探着脑袋,露于莲叶之外。
无数洁白粉红的花儿朵儿,在水面上漫卷开来,像晚霞,像云彩,像少女那一抹不经意飘起的红晕。
掐一茎莲叶,茎儿竟丝丝缕缕牵扯着不愿分开。
不由得联想起莲藕,不也是人们常说的藕断丝连么?
莲真的恍若一位美丽多情的绝世佳人,是那么的重、莲茎、莲藕的气味都那么的相似。
兴起,淡的甘甜。
莲茎笔直,中有通孔,将莲上下相连。
难怪莲叶情重意。
轻嗅,莲叶和花茎都有着淡淡的香味,还有淡将硕大的莲叶挑一枝扣在头上,顿觉一片清凉,绿意弥漫眼底心间。
]学科网:
来源[?
你不愿我在莲的身旁驻足留连,轻轻的靠近一朵刚探出头的花蕾,柔柔地告诉她:
在你最美丽的时候,我来看你了,你眼中的我,也是同样的美丽吗做肤浅的美人,植根于淤泥,却摒弃一切尘念,借清水滋养得一身净骨,头顶烈日骄阳傲然盛开。
你通身是宝,将一生无私地奉献给了人类。
莲心、莲房、莲须、莲叶、莲梗、莲花、莲藕、藕节都有极高的药用价值,莲子和莲藕更是餐桌上备受欢迎的美味佳肴。
页39第
二、给孩子刚刚洗完澡,怀抱婴儿面带微笑的母亲:
三、在海滩上筑起了一座沙堡的顽童,望着自己的劳动成果。
备选的答案是:
写完了小说最后一个字的作家。
不是什么人闲来无事,编造出来博人一笑的恶作?
⒊消息入眼,我的第一个反应仿佛被人在眼皮上涂了辣椒油,然而十分怀疑它的真实性。
这可能吗还有几分惶惑和恼怒,在心扉最深处,是震惊和不知所措。
?
剧吧是的是的,我都明白,可心!
再说,这正是大多数人对幸福的理解,不是别有用心或是哗众取宠啊?
⒋也许有人说,我没看出这消息有什么不对头的啊中还是惶惶不安。
当我静下心来,细细梳理思绪,才明白自己当时的反应,是一种深入骨髓的悲哀。
原来我是一个幸福盲。
说来惭愧,答案中的四种情况,在某种程度上,我都一定程度地拥有了。
我是一个母亲,给婴儿洗澡的事几乎是早年间每日的必修。
我曾?
⒌为什么呢是一名医生,手起刀落,给很多病人做过手术,目送着治愈了的病人走出医院的大门的情形,也经历过无数次了。
儿时调皮,虽然没在海滩上筑过繁复的沙贝?
之类的工程,肯定是经手过了。
另外,在看到上述消息的时候,我,但在附近建筑工地的沙堆上挖个洞穴藏个?
宝)这大概和那个国家四面环水有关(堡已发表过几篇作品,因此那个在备选答案中占据一席之地的?
作家完成最后一字?
之感,也有幸体验过了。
⒍我集这几种公众认为幸福的状态于一身,可我不曾感到幸福,这真是莫名其妙而又痛彻的事情。
我发觉自己出了问题,不是小问题,是大问题。
这个问题如果不解决,我所有的努力和奋斗,犹如沙上建塔。
从最乐观的角度来说,即使是对别人
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 个人 通讯录 管理 系统 课程设计 报告