数据结构通讯录管理系统课程设计报告.docx

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

数据结构通讯录管理系统课程设计报告.docx

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

数据结构通讯录管理系统课程设计报告.docx

数据结构通讯录管理系统课程设计报告

数据结构通讯录管理系统课程设计报告

课程设计(大作业)报告

 

课程名称:

数据结构

设计题目:

通讯录信息管理系统

院系:

信息技术学院

班级:

12级计算机2班

设计者:

*******

学号:

201211010214

指导教师:

SSSSSS

设计时间:

2013.12.28—2013.12.31

 

昆明学院课程设计(大作业)任务书

姓名:

*******院(系):

信息技术学院

专业:

计算机科学与技术学号:

201211010214

任务起止日期:

2013/12/28

课程设计题目:

通讯录信息管理系统

 

课程设计要求:

(1)通讯录的建立

(2)通讯者的插入

(3)通讯者的删除

(4)通讯者的查询

(5)通讯录表的输出

多。

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

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

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

指导教师评语:

 

成绩:

 

填表时间:

指导教师签名:

课程设计(大作业)报告

一、数据结构及算法描述

1.数据类型定义

2.说明主要变量含义

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

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

5.确定存储结构

6.编写算法并实现

二、程序测试并运行通过

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

1添加通讯录记录

 

⑵显示通讯录记录

2按姓名方式查找

⑷按电话方式查找

⑸插入通讯录记录

⑹按姓名方式排序

⑺删除通讯录记录

⑻按记录保存文件

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

三、源程序

\#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#include"conio.h"

#include"stdlib.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();break;

case2:

search();break;

case3:

display();break;

case4:

add();break;

case5:

listbyname();break;

case6:

dele();break;

case7:

save();break;

case8:

exit(0);

}

}

}

menu_select()

{

chars[80];

inta;

system("color2f");

printf("*_*pressanykeyentermenu!

*_*\n");

getch();

system("cls");

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

printf("\t*||0.添加通讯录记录||*\n");

printf("\t*||1.显示通讯录记录||*\n");

printf("\t*||2.按姓名方式查找||*\n");

printf("\t*||3.按电话方式查找||*\n");

printf("\t*||4.插入通讯录记录||*\n");

printf("\t*||5.按姓名方式排序||*\n");

printf("\t*||6.删除通讯录记录||*\n");

printf("\t*||7.按记录保存文件||*\n");

printf("\t*||8.Quit||*\n");

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

do{

printf("\nEnteryouchoice(0~8):

");

scanf("%s",s);

a=atoi(s);

}

while(a<0||a>8);

returna;

}

adduser()

{

printf("\n\t\t****************请输入用户信息****************\n");

printf("\n\t\t输入姓名:

");

scanf("%s",&student[num].name);

printf("\n\t\t输入电话号码:

");

scanf("%s",&student[num].phone);

printf("\n\t\t输入地址:

");

scanf("%s",&student[num].adress);

printf("\n\t\t输入邮编:

");

scanf("%s",&student[num].postcode);

printf("\n\t\t输入e-mail:

");

scanf("%s",&student[num].e_mail);

num++;

printf("\n\t\t是否继续添加?

(Y/N):

");

if(getch()=='y')

adduser();

return(0);

}

list()

{

inti;

system("cls");

if(num!

=0)

{

printf("\n\t\t***************以下为通讯录所有信息************");

for(i=0;i

{

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\t邮编:

%s",student[i].postcode);

printf("\n\t\te-mail:

%s",student[i].e_mail);

printf("\t\t");

if(i+1

{

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

system("pause");

}

}

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

}

else

printf("\n\t\t通讯录中无任何纪录");

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

");

getch();

return(0);

}

search()

{

intmark=0;

inti;

inta=0;

printf("\n\t\t*****************按姓名查找*******************");

charname[20];

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

");

scanf("%s",name);

for(i=a;i

{

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

{

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

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

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

mark++;

if((i+1)

{

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

(y/n)");

if(getch()=='y')

{

a=i;

continue;

}

else

return(0);

}

else

{

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

}

}

if(mark!

=0)

{

printf("\n\t\t没有相同姓名的用户纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

else

{

printf("\n\t\t没有相同姓名的用户纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

}

display()

{

intmark=0;

inti;

inta=0;

printf("\n\t\t******************按电话查找******************");

charphone[10];

printf("\n\t\t请输入电话号码:

");

scanf("%s",phone);

for(i=0;i

{

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

{

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

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

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

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

");

mark++;

getch();

return(0);

}

}

if(mark==0)

{

printf("\n\t\t没有改用户的信息");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

return(0);

}

add()

{

inti;

if((fp=fopen("student.bin","wb"))==NULL)

{

printf("\n\t\t文件打开失败");

}

for(i=0;i

{

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

=1)

{

printf("\n\t\t写入文件错误!

\n");

}

printf("\n\t\t****************请输入用户信息****************\n");

printf("\n\t\t输入姓名:

");

scanf("%s",&student[num].name);

printf("\n\t\t输入电话号码:

");

scanf("%s",&student[num].phone);

printf("\n\t\t输入地址:

");

scanf("%s",&student[num].adress);

printf("\n\t\t输入邮编:

");

scanf("%s",&student[num].postcode);

printf("\n\t\t输入e-mail:

");

scanf("%s",&student[num].e_mail);

num++;

printf("\n\t\t是否继续添加?

(Y/N):

");

if(getch()=='y')

adduser();

return(0);

}

fclose(fp);

printf("\n\t\t通讯录文件已保存");

printf("\n\t\t按任意键退出程序\n\t\t");

exit(0);

return(0);

}

voiddeletebyphone()

{

inti,j;

intdeletemark=0;

charphone[20];

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

");

scanf("%s",phone);

if(num==0)

{

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

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

for(i=0;i

{

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

{

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

");

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

printf("\n\t\t是否删除?

(y/n)");

if(getch()=='y')

{

for(j=i;j

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

num--;

deletemark++;

printf("\n\t\t删除成功");

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')

deletebyphone();

return;

}

else

return;

}

continue;

}

if(deletemark==0)

{

printf("\n\t\t没有该用户的纪录");

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')

deletebyphone();

return;

}

}

voiddeletebyname()

{

inta=0;

intfindmark=0;

intj;

intdeletemark=0;

inti;

charname[20];

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

");

scanf("%s",name);

for(i=a;i

{

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

{

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

");

findmark++;

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

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

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

printf("\n\t\t是否删除?

(y/n)");

if(getch()=='y')

{

for(j=i;j

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

num--;

deletemark++;

printf("\n\t\t删除成功");

if((i+1)

{

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

(y/n)");

if(getch()=='y')

{

a=i;

continue;

}

}

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')

deletebyname();

return;

}

if((i+1)

{

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

(y/n)");

if(getch()=='y')

{

a=i;

continue;

}

}

}

else

continue;

}

if((deletemark==0)&&(findmark==0))

{

printf("\n\t\t没有该用户的纪录");

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')

deletebyphone();

return;

return;

}

elseif(findmark!

=0)

{

printf("\n\t\t没有重名信息");

printf("\n\t\t没有该用户的纪录");

printf("\n\t\t是否继续删除?

(y/n)");

if(getch()=='y')

deletebyphone();

return;

return;

}

}

dele()

{

charchoic;

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

printf("\n\t\t请选择:

");

choic=getch();

switch(choic)

{

case'1':

deletebyphone();break;

case'2':

deletebyname();break;

}

return(0);

}

listbyname()

{

inti,j;

structrecordtmp;

for(i=1;i

{

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;

}

}

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

(y/n)");

if(getch()=='y')

list();

return(0);

}

save()

{

intj;

FILE*fp;

fp=fopen("student.txt","w");

if(fp==NULL)

printf("can'topenthefile.");

if(num!

=0)

{

for(j=0;j

{

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

}

}

printf("保存成功!

");

fclose(fp);

return(0);

}

四、参考文献

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

当前位置:首页 > 表格模板 > 调查报告

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

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