您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页数据结构课程设计个人电话号码查询系统Word版

数据结构课程设计个人电话号码查询系统Word版

来源:保捱科技网
传播优秀Word版文档 ,希望对您有帮助,可双击去除!

题目:专业:班级:姓名:指导教师:成绩: 2014-2015学年 第二学期

《数据结构》 课程设计报告

个人电话号码查询系统 、 、 、 、

计算机与信息工程系 2014 年 12月 15 日

学号

传播优秀Word版文档 ,希望对您有帮助,可双击去除! 目录

1设计内容及要求................................................................................................. 1

1.1课程设计目的.......................................................................................... 1 1.2设计内容及要求...................................................................................... 1 2概要设计............................................................................................................. 2

2.1设计功能.................................................................................................. 2 2.2个人电话号码查询系统功能说明图...................................................... 2 2.3个人电话号码查询各模块调用关系...................................................... 3 3设计过程或程序代码......................................................................................... 3

3.1管理系统功能模块设计.......................................................................... 3 3.2数据结构及各模块分析.......................................................................... 4

3.2.1 基本数据类型(结构体).......................................................... 4 3.2.2附助常量,变量........................................................................... 4 3.2.3函数............................................................................................... 4

4设计结果与分析................................................................................................. 5

4.1整体大纲.................................................................................................. 5 4.2启动程序截图,代码.............................................................................. 6

4.2.1代码分析....................................................................................... 6 4.3进入主菜单截图,代码.......................................................................... 8

4.3.1代码分析....................................................................................... 8 4.4新添记录截图,代码.............................................................................. 9

4.4.1 新添模块代码............................................................................ 10 4.5查找记录截图,代码............................................................................ 11

4.5.1代码分析..................................................................................... 12 4.6删除记录截图,代码............................................................................ 13

4.6.1代码分析..................................................................................... 13 4.7保存文件,不保存文件........................................................................ 16 4.8总结........................................................................................................ 16 5参考文献........................................................................................................... 17

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

1设计内容及要求

1.1课程设计目的

通过设计一个《个人电话号码查询系统》,进一步熟悉C中的概念、基本知识和技能利用所学的基本知识和技能解决简单的面向对象的程序设计问题。了解系统开发的需求分析、层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C的理解与Visual C++环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。

1.2设计内容及要求

编写一个个人电话号码查询系统把所学数据结构知识应用到实际软件开发中。

设计内容:本系统应完成一下几方面的功能: 1)输入信息enter(); 2)显示信息display( );

3)查找以姓名作为关键字search( ); 4)删除信息delete( ); 5)存盘save ( ); 6)装入load( ) ; 设计要求:

1)每条信息至包含 :姓名(NAME )电话(TELL)地址(CITY)QQ几项;

2)作为一个完整的系统,应具有友好的界面和较强的容错能力。 3)上机能正常运行,并写出课程设计报告。

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

2概要设计

2.1设计功能

A.添加:

系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名(name),电话(tell),城市(city),QQ。

B.删除:

首先由用户输入要删除的人员的姓名,然后调用删除函数,删除该人员的

所有相关资料.

C.显示所有人员信息:

该功能将显示已经保存的所有人员的姓名,街道,城市,邮编及国家. D.查询:

可由用户输入要查找的人员姓名,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息.

E:退出系统:

关闭通讯录管理系统。

2.2个人电话号码查询系统功能说明图

图 1

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

2.3个人电话号码查询各模块调用关系

图 2

3设计过程或程序代码

3.1管理系统功能模块设计

新添联系人模块 查询菜单模块 删除联系人模块 保存退出模块 不保存退出模块

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

3.2数据结构及各模块分析

3.2.1 基本数据类型(结构体) struct record //定义结构体record {

char name[20]; char tel[20]; char city[20]; char QQ[20];

}student[500];

struct slnode //定义一个双向链表 { };

3.2.2附助常量,变量

typedef slnode * linklist; //双向链表指针 linklist l;//定义链表

int num=0;//个人信息数量控制 FILE *fp;//文件指针,控制文件读写 3.2.3函数

void mainmenu();//主菜单 void searchmenu();查找记录菜单 void enter();//具体输入记录

record data; struct slnode *next; struct slnode *prior;

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

void search();//具体查找记录 void display();//具体显示记录 void load();//导入文件 void save();//保存文件 void delet();//删除记录 void listinsert();//插入链表 void initlist();//初始化

4设计结果与分析

4.1整体大纲

可以分成六大模块,对模块一一分析,采用,截图,代码解释进行说明,输入信息模块,显示信息模块,查找以姓名作为关键模块,删除信息模块,存盘模块,装入模块;

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

4.2启动程序截图,代码

图 3

4.2.1代码分析

void load() //从文件导入 {

if((fp=fopen(\"student.bin\打开文件进行读的操作 {

printf(\"\\n\\********************\\n\"); printf(\"\\n\\个人通讯录文件不存在\\n\"); printf(\"\\n\\********************\\n\"); printf(\"\\n\\n\");

if ((fp=fopen(\"student\ { }

printf(\"\\n\\**建立失败**\"); exit(0);

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

}

else { } exit(0);

printf(\" \\n\\正在建立.............\"); printf(\"\\n\");

printf(\"\\n\\个人通讯录文件建立完毕\"); printf(\"\\n\\按任意键进入主菜单\"); getch(); return;

fseek(fp,0,2); if (ftell(fp)>0) {

rewind(fp); for

(num=0;!feof(fp)

&&

fread(&student[num],sizeof(struct

record),1,fp);num++);

}

}

printf(\"\\n\\文件导入成功\");

printf(\"\\n\\通讯录文件中无任何纪录\"); printf(\"\\n\\按任意键返回主菜单\"); getch(); return;

printf(\"\\n\\文件导入成功\"); printf(\"\\n\\按任意键返回主菜单\"); getch(); return;

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

4.3进入主菜单截图,代码

图 4

4.3.1代码分析

void mainmenu()//主菜单 {

char choic; system(\"cls\");

printf(\"\\n\\***************欢迎进入个人通讯录查询系统

***************\");

printf(\"\\n\\******************1-新添记录 ******************\"); printf(\"\\n\\******************2-查找联系人 ****************\"); printf(\"\\n\\******************3-删除联系人 ***************\"); printf(\"\\n\\******************4-保存退出 *****************\");

printf(\"\\n\\******************5-不保存退出 ***************\"); printf(\"\\n\\************************************************\");

printf(\"\\n\\请选择:\");

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

}

choic=getch(); switch (choic) {

case '1':enter();break; case '2':searchmenu();break; case '3':delet();break; case '4':save();break; case '5':exit(0); default:mainmenu(); }

4.4新添记录截图,代码

图 5

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

4.4.1 新添模块代码 void enter()//添加纪录 {

printf(\"\\n\\****************

****************\\n\");

}

printf(\"\\n\\姓名:\");

scanf(\"%s\ printf(\"\\n\\号码:\");

scanf(\"%s\ printf(\"\\n\\地址:\");

scanf(\"%s\ printf(\"\\n\\QQ:\");

scanf(\"%s\ num++;

printf(\"\\n\\是否继续添加?(Y/N):\"); if (getch()=='y')

enter();

return;

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

4.5查找记录截图,代码

图 6

图 7

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

4.5.1代码分析 void display()//显示所有

{

int i; system(\"cls\"); if(num!=0) {

printf(\"\\n\\*************** 以下为个人通讯录所有信息

************\");

}

for (i=0;iprintf(\"\\n\\姓名: %s\ printf(\"\\n\\号码: %s\ printf(\"\\n\\地址: %s\ printf(\"\\n\\QQ: %s\ printf(\"\\\"); if (i+1printf(\"\\n\\__________________________\"); system(\"pause\"); }

printf(\"\\n\\************************************************\"); } else

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

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

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

4.6删除记录截图,代码

图 8

4.6.1代码分析 void delet() {

int a=0;

int findmark=0; int j;

int deletemark=0; int i;

char name[20];

printf(\"\\n\\请输入要删除联系人姓名:\"); scanf(\"%s\

for (i=a;i息?(y/n)\");

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

if (strcmp(student[i].name,name)==NULL) { printf(\"\\n\\以下是您要删除的联系人纪录:\"); findmark++;

printf(\"\\n\\________________________________\"); printf(\"\\n\\姓名: %s\ printf(\"\\n\\号码: %s\

printf(\"\\n\\地址: %s\

printf(\"\\n\\QQ: %s\

printf(\"\\n\\________________________________\"); printf(\"\\n\\是否删除?(y/n)\"); if (getch()=='y') { for (j=i;jstudent[j]=student[j+1];

num--; deletemark++;

printf(\"\\n\\删除成功\"); if((i+1)printf(\"\\n\\是否继续删除相同姓名的联系人信

if (getch()=='y') { a=i; continue;

}

}

printf(\"\\n\\是否继续删除?(y/n)\");

if (getch()=='y')

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

}

}

}

delet();

return;

if((i+1)printf(\"\\n\\是否继续删除相同姓名的联系人信息?(y/n)\"); if (getch()=='y') { }

a=i; continue;

else

continue;

if ((deletemark==0)&&(findmark==0)) { } else

if (findmark!=0) { }

printf(\"\\n\\没有该联系人的纪录\"); return;

printf(\"\\n\\没有重名信息\"); printf(\"\\n\\没有该联系人的纪录\"); return;

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

}

4.7保存文件,不保存文件

图 9

4.8总结

程序的编写应是三分编写,七分调试,程序编写之前需求分析,至关重要,将关系这整个项目的成败, 一名优秀程序员的成长,需要付出很多很多,编程是每天必做, 熟能生巧,这次在用指针处理双向链表时,以前对这块内容并不十分清楚,这次感觉很吃力,所以在今后的编程之中,尽可能把基本技能练习熟练,做软件最终是满足用户的需求,所以做软件时应一切应以用记为导向. 经过一周的努力我掌握了一些基本的C语言进行程序设计的技巧,更深的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,同时学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文档的能力。

传播优秀Word版文档 ,希望对您有帮助,可双击去除!

5参考文献

[1]朱毅,张涛,宋靖雁.未知环境下势场法路径规划的局部极小问题研究.自动化学报.2010,36(8): 1122~1130

[2]谭浩强,c程序设计(第四版),清华大学出版社,2010年6月第四版20~353 [3] 滕国文, 数据结构课程设计, 清华大学出版社, 2010年9月1日 [4] 李建学, 数据结构课程设计案例精编,, 清华大学出版社,2010年1月2日

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务