数据结构通讯录管理系统课程设计报告Word格式文档下载.docx

上传人:b****8 文档编号:22515998 上传时间:2023-02-04 格式:DOCX 页数:27 大小:423.02KB
下载 相关 举报
数据结构通讯录管理系统课程设计报告Word格式文档下载.docx_第1页
第1页 / 共27页
数据结构通讯录管理系统课程设计报告Word格式文档下载.docx_第2页
第2页 / 共27页
数据结构通讯录管理系统课程设计报告Word格式文档下载.docx_第3页
第3页 / 共27页
数据结构通讯录管理系统课程设计报告Word格式文档下载.docx_第4页
第4页 / 共27页
数据结构通讯录管理系统课程设计报告Word格式文档下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

数据结构通讯录管理系统课程设计报告Word格式文档下载.docx

《数据结构通讯录管理系统课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构通讯录管理系统课程设计报告Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。

数据结构通讯录管理系统课程设计报告Word格式文档下载.docx

工作计划及安排:

4小时复习相关的课程设计所需的内容,提出要求、提供选题并检索资料、确定设计项目

8小时数据类型定义、确定存储结构、算法设计

10小时算法实现

4小时编写课程设计报告

指导教师签字

年月日

课程设计(大作业)成绩

学号:

201211010214姓名:

******指导教师:

SSSSS

总结:

这个课题是设计一个通讯录系统,该通讯系统能够较好的管理好我们的通讯录记录,也拥有比较完善的功能,但是该系统依旧有漏洞,此程序必须按照系统提示的操作来执行,不然的话就会使程序进入死循环,比如,如果我输入字符串的长度过长的话,程序就会终止运行了,并且还没有提示;

后面的删除模块所用的方法是用空格替代,虽然可以删除,但达不到理想的效果。

在编写过程中,我逐步的了解了程序模块化设计的思想含义。

在整个程序设计的过程中语法的错误还是比较容易检查的,但是对于那些逻辑思维的问题方面的缺陷不易查出,因此常常出现系统提示没有错误但是仍然不能够正常运行的境况,尽管有很多不足之处,但我在整个系统程序设计的过程中,我可以感受到自己对C语言有了一定的掌握,对整体的把握度也提高了很多。

此外编程是一项高精度的工作,所以我们要有规范化,标准化的代码编写习惯,良好的编写习惯,不但有助于代码的纠错,也有助于不同人员之间的协作。

我们还要有模块化思维能力,模块化思维就是编程任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大的避免重复性的工作。

另外我们要重视程序的算法,在程序中,算法是灵魂,我们要努力学习各种先进的算法,提高自己的编程能力。

指导教师评语:

成绩:

填表时间:

指导教师签名:

一、数据结构及算法描述

1.数据类型定义

2.说明主要变量含义

3.说明数据输入的要求和格式----即输入数据的类型、值的范围及输入的形式

4.输出数据的类型、值的范围及输出的形式

5.确定存储结构

6.编写算法并实现

二、程序测试并运行通过

1.测试与分析、记录调试过程及结果

1添加通讯录记录

⑵显示通讯录记录

2按姓名方式查找

⑷按电话方式查找

⑸插入通讯录记录

⑹按姓名方式排序

⑺删除通讯录记录

⑻按记录保存文件

2.出现的问题、解决的方法、最终运行结果

三、源程序

\#include"

stdio.h"

#include"

stdlib.h"

string.h"

conio.h"

#definenull0

structrecord

{

charname[20];

charphone[20];

charadress[40];

charpostcode[10];

chare_mail[30];

}student[500];

structLinkList

structrecordUS;

structLinkList*next;

}a;

structLinkList*head=null;

intnum=0;

FILE*fp;

intmenu_select();

intadduser();

intlist();

intsearch();

intdisplay();

intadd();

intlistbyname();

intdele();

intsave();

intexit();

voidmain()

system("

cls"

);

for(;

;

{

switch(menu_select())

case0:

adduser();

break;

case1:

list();

case2:

search();

case3:

display();

case4:

add();

case5:

listbyname();

case6:

dele();

case7:

save();

case8:

exit(0);

}

}

menu_select()

chars[80];

inta;

color2f"

printf("

*_*pressanykeyentermenu!

*_*\n"

getch();

\t********************MENU***********************\n"

\t*||0.添加通讯录记录||*\n"

\t*||1.显示通讯录记录||*\n"

\t*||2.按姓名方式查找||*\n"

\t*||3.按电话方式查找||*\n"

\t*||4.插入通讯录记录||*\n"

\t*||5.按姓名方式排序||*\n"

\t*||6.删除通讯录记录||*\n"

\t*||7.按记录保存文件||*\n"

\t*||8.Quit||*\n"

\t***********************************************\n"

do{

\nEnteryouchoice(0~8):

"

scanf("

%s"

s);

a=atoi(s);

while(a<

0||a>

8);

returna;

adduser()

\n\t\t****************请输入用户信息****************\n"

\n\t\t输入姓名:

&

student[num].name);

\n\t\t输入电话号码:

student[num].phone);

\n\t\t输入地址:

student[num].adress);

\n\t\t输入邮编:

student[num].postcode);

\n\t\t输入e-mail:

student[num].e_mail);

num++;

\n\t\t是否继续添加?

(Y/N):

if(getch()=='

y'

adduser();

return(0);

list()

inti;

if(num!

=0)

\n\t\t***************以下为通讯录所有信息************"

for(i=0;

i<

num;

i++)

{

\n\t\t姓名:

%s"

student[i].name);

\n\t\t电话:

student[i].phone);

\n\t\t地址:

student[i].adress);

\n\t\t邮编:

student[i].postcode);

\n\t\te-mail:

student[i].e_mail);

\t\t"

if(i+1<

num)

\n\t\t__________________________"

pause"

\n\t\t************************************************"

else

\n\t\t通讯录中无任何纪录"

\n\t\t按任意键返回主菜单:

return(0);

search()

intmark=0;

inta=0;

\n\t\t*****************按姓名查找*******************"

charname[20];

\n\t\t请输入姓名:

name);

for(i=a;

if(strcmp(student[i].name,name)==0)

\n\t\t*************以下是您查找的用户信息***********"

mark++;

if((i+1)<

\n\t\t是否继续查找相同名字的用户信息:

(y/n)"

if(getch()=='

a=i;

continue;

\n\t\t按任意键返回主菜单"

if(mark!

\n\t\t没有相同姓名的用户纪录"

display()

intmark=0;

inti;

inta=0;

printf("

\n\t\t******************按电话查找******************"

charphone[10];

\n\t\t请输入电话号码:

scanf("

phone);

for(i=0;

if(strcmp(student[i].phone,phone)==0)

\n\t\t**************以下是您查找的用户信息**********"

if(mark==0)

\n\t\t没有改用户的信息"

add()

if((fp=fopen("

student.bin"

"

wb"

))==NULL)

\n\t\t文件打开失败"

if(fwrite(&

student[i],sizeof(structrecord),1,fp)!

=1)

\n\t\t写入文件错误!

\n"

fclose(fp);

\n\t\t通讯录文件已保存"

\n\t\t按任意键退出程序\n\t\t"

exit(0);

voiddeletebyphone()

inti,j;

intdeletemark=0;

\n\t\t请输入要删除用户电话号码:

if(num==0)

\n\t\t对不起,文件中无任何纪录"

return;

if(strcmp(student[i].phone,phone)==NULL)

\n\t\t以下是您要删除的用户纪录:

\n\t\t是否删除?

for(j=i;

j<

num-1;

j++)

student[j]=student[j+1];

num--;

deletemark++;

\n\t\t删除成功"

\n\t\t是否继续删除?

deletebyphone();

if(deletemark==0)

\n\t\t没有该用户的纪录"

voiddeletebyname()

intfindmark=0;

intj;

\n\t\t请输入要删除用户姓名:

for(i=a;

if(strcmp(student[i].name,name)==NULL)

findmark++;

\n\t\t________________________________"

j++)

if((i+1)<

\n\t\t是否继续删除相同姓名的用户信息?

deletebyname();

else

continue;

if((deletemark==0)&

&

(findmark==0))

elseif(findmark!

\n\t\t没有重名信息"

dele()

charchoic;

\n\t\t1-按电话号码删除2-按姓名删除"

\n\t\t请选择:

choic=getch();

switch(choic)

case'

1'

:

deletebyphone();

2'

deletebyname();

listbyname()

inti,j;

structrecordtmp;

for(i=1;

if(strcmp(student[i].name,student[i-1].name)<

0)

tmp=student[i];

j=i-1;

do

student[j+1]=student[j];

j--;

}while((strcmp(tmp.name,student[j].name)<

0&

j>

=0));

student[j+1]=tmp;

\n\t\t排序成功,是否显示?

list();

save()

intj;

FILE*fp;

fp=fopen("

student.txt"

w"

if(fp==NULL)

can'

topenthefile."

for(j=0;

fwrite(student,sizeof(student),1,fp);

保存成功!

}

四、参考文献

选择是难,更何况是心灵选择。

高渐离为了荆轲,他选择了死;

马本斋母亲为了革命,她选择了牺牲;

祝英台为了真挚爱情,她选择了化蝶。

在这友情、亲情与爱情之间选择,他们是这样做

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

当前位置:首页 > 自然科学 > 物理

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

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