数据结构通讯录管理系统课程设计报告_第1页
数据结构通讯录管理系统课程设计报告_第2页
数据结构通讯录管理系统课程设计报告_第3页
数据结构通讯录管理系统课程设计报告_第4页
数据结构通讯录管理系统课程设计报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计(大作业)报告课程名称: 数据结构 设计题目: 通讯录信息管理系统 院 系: 信息技术学院 班 级: 12级计算机2班 设 计 者: * 学 号: 2 指导教师: SSSSSS 设计时间:2013.12.282013.12.31昆明学院课程设计(大作业)任务书姓 名:* 院(系): 信息技术学院专 业:计算机科学与技术学 号: 2任务起止日期:2013/12/28课程设计题目:通讯录信息管理系统课程设计要求:(1)通讯录的建立 (2)通讯者的插入 (3)通讯者的删除 (4)通讯者的查询 (5)通讯录表的输出工作计划及安排: 4小时 复习相关的课程设计所需的内容,提出要求、提供选题并检索

2、资料、确定设计项目 8小时 数据类型定义、确定存储结构、算法设计 10小时 算法实现 4小 时 编写课程设计报告指导教师签字 年 月 日 课程设计(大作业)成绩学号:2 姓名:* 指导教师:SSSSS课程设计题目:通讯录信息管理系统总结:这个课题是设计一个通讯录系统,该通讯系统能够较好的管理好我们的通讯录记录,也拥有比较完善的功能,但是该系统依旧有漏洞,此程序必须按照系统提示的操作来执行,不然的话就会使程序进入死循环,比如,如果我输入字符串的长度过长的话,程序就会终止运行了,并且还没有提示;后面的删除模块所用的方法是用空格替代,虽然可以删除,但达不到理想的效果。在编写过程中,我逐步的了解了程序

3、模块化设计的思想含义。在整个程序设计的过程中语法的错误还是比较容易检查的,但是对于那些逻辑思维的问题方面的缺陷不易查出,因此常常出现系统提示没有错误但是仍然不能够正常运行的境况,尽管有很多不足之处,但我在整个系统程序设计的过程中,我可以感受到自己对C语言有了一定的掌握,对整体的把握度也提高了很多。此外编程是一项高精度的工作,所以我们要有规范化,标准化的代码编写习惯,良好的编写习惯,不但有助于代码的纠错,也有助于不同人员之间的协作。 我们还要有模块化思维能力,模块化思维就是编程任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否

4、可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大的避免重复性的工作。另外我们要重视程序的算法,在程序中,算法是灵魂,我们要努力学习各种先进的算法,提高自己的编程能力。指导教师评语:成绩:填表时间:指导教师签名:课程设计(大作业)报告一、数据结构及算法描述1. 数据类型定义2. 说明主要变量含义3. 说明数据输入的要求和格式-即输入数据的类型、值的范围及输入的形式4. 输出数据的类型、值的范围及输出的形式5. 确定存储结构6. 编写算法并实现二、程序测试并运行通过1. 测试与分析、记录调试过程及结果1 添加通讯录记录显示通讯录记录2 按姓名方式查找按电话方式查找插入通讯录

5、记录按姓名方式排序删除通讯录记录按记录保存文件2. 出现的问题、解决的方法、最终运行结果三、源程序#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"#include "stdlib.h"#define null 0struct recordchar name20;char phone20;char adress40;char postcode10;char e_mail30;student500;s

6、truct LinkList struct record US; struct LinkList *next;a; struct LinkList *head=null;int num=0;FILE *fp;int menu_select();int adduser();int list();int search();int display();int add();int listbyname();int dele();int save();int exit();void main() system("cls"); for(;) switch(menu_select() c

7、ase 0:adduser();break; case 1:list();break; case 2:search();break; case 3:display();break; case 4:add();break; case 5:listbyname();break; case 6:dele();break; case 7:save();break; case 8:exit(0); menu_select() char s80; int a; system("color 2f"); printf("*_* press any key enter menu!

8、*_* 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("

9、;t* | 5. 按姓名方式排序 | *n"); printf("t* | 6. 删除通讯录记录 | *n"); printf("t* | 7. 按记录保存文件 | *n"); printf("t* | 8. Quit | *n"); printf("t*n"); do printf("n Enter you choice(08):"); scanf("%s",s); a=atoi(s); while (a<0|a>8); return a;adduse

10、r() printf("ntt* 请输入用户信息 *n"); printf("ntt输入姓名:"); scanf("%s",&); printf("ntt输入电话号码:"); scanf("%s",&studentnum.phone); printf("ntt输入地址:"); scanf("%s",&studentnum.adress); printf("ntt输入邮编:"); sc

11、anf("%s",&studentnum.postcode); printf("ntt输入e-mail:"); scanf("%s",&studentnum.e_mail); num+; printf("ntt是否继续添加?(Y/N):");if (getch()='y') adduser();return(0); list() int i; system("cls"); if(num!=0) printf("ntt* 以下为通讯录所有信息*"

12、); for (i=0;i<num;i+) printf("ntt姓名: %s",); printf("ntt电话: %s",studenti.phone); printf("ntt地址: %s",studenti.adress); printf("ntt邮编: %s",studenti.postcode); printf("ntte-mail:%s",studenti.e_mail); printf("tt"); if (i+1<num

13、) printf("ntt_"); system("pause"); printf("ntt*"); else printf("ntt通讯录中无任何纪录"); printf("ntt按任意键返回主菜单:"); getch(); return(0);search() int mark=0; int i; int a=0; printf("ntt* 按姓名查找 *"); char name20; printf("ntt请输入姓名:"); scanf("

14、;%s",name); for(i=a;i<num;i+) if (strcmp(,name)=0) printf("ntt* 以下是您查找的用户信息 *"); printf("ntt姓名: %s",); printf("ntt电话: %s",studenti.phone); printf("ntt地址: %s",studenti.adress); printf("ntte-mail:%s",studenti.e_mail);

15、printf("ntt*"); mark+; if (i+1)<num) printf("ntt是否继续查找相同名字的用户信息:(y/n)"); if (getch()='y') a=i; continue; else return(0); else printf("ntt按任意键返回主菜单"); getch(); return(0); if(mark!=0) printf("ntt没有相同姓名的用户纪录"); printf("ntt按任意键返回主菜单"); getch()

16、; return(0); else printf("ntt没有相同姓名的用户纪录"); printf("ntt按任意键返回主菜单"); getch(); return(0); display()int mark=0;int i;int a=0;printf("ntt* 按电话查找 *");char phone10;printf("ntt请输入电话号码:");scanf("%s",phone);for(i=0;i<num;i+) if (strcmp(studenti.phone,phone

17、)=0) printf("ntt* 以下是您查找的用户信息 *"); printf("ntt姓名: %s",); printf("ntt电话: %s",studenti.phone); printf("ntt地址: %s",studenti.adress); printf("ntte-mail:%s",studenti.e_mail); printf("ntt*"); printf("ntt按任意键返回主菜单:"); mark+;

18、 getch(); return(0); if (mark=0) printf("ntt没有改用户的信息"); printf("ntt按任意键返回主菜单"); getch(); return(0);return(0);add() int i; if (fp=fopen("student.bin","wb")=NULL) printf("ntt文件打开失败"); for (i=0;i<num;i+) if (fwrite(&studenti,sizeof(struct record)

19、,1,fp)!=1) printf("ntt写入文件错误!n"); printf("ntt* 请输入用户信息 *n"); printf("ntt输入姓名:"); scanf("%s",&); printf("ntt输入电话号码:"); scanf("%s",&studentnum.phone); printf("ntt输入地址:"); scanf("%s",&studentnum.a

20、dress); printf("ntt输入邮编:"); scanf("%s",&studentnum.postcode); printf("ntt输入e-mail:"); scanf("%s",&studentnum.e_mail); num+; printf("ntt是否继续添加?(Y/N):"); if (getch()='y') adduser(); return(0); fclose(fp); printf("ntt通讯录文件已保存")

21、; printf("ntt按任意键退出程序ntt"); exit(0); return(0);void deletebyphone()int i,j;int deletemark=0;char phone20; printf("ntt请输入要删除用户电话号码:"); scanf("%s",phone); if(num=0) printf("ntt对不起,文件中无任何纪录"); printf("ntt按任意键返回主菜单"); getch(); return; for (i=0;i<num;i

22、+) if (strcmp(studenti.phone,phone)=NULL) printf("ntt以下是您要删除的用户纪录:"); printf("ntt姓名: %s",); printf("ntt电话: %s",studenti.phone); printf("ntt地址: %s",studenti.adress); printf("ntte-mail:%s",studenti.e_mail); printf("ntt是否删除?(y/n)"

23、); if (getch()='y') for (j=i;j<num-1;j+) studentj=studentj+1; num-; deletemark+; printf("ntt删除成功"); printf("ntt是否继续删除?(y/n)"); if (getch()='y') deletebyphone(); return; else return; continue; if (deletemark=0) printf("ntt没有该用户的纪录"); printf("ntt是否

24、继续删除?(y/n)"); if (getch()='y') deletebyphone(); return; void deletebyname()int a=0;int findmark=0;int j;int deletemark=0;int i;char name20; printf("ntt请输入要删除用户姓名:"); scanf("%s",name);for (i=a;i<num;i+) if (strcmp(,name)=NULL) printf("ntt以下是您要删除的用

25、户纪录:"); findmark+; printf("ntt_"); printf("ntt姓名: %s",); printf("ntt电话: %s",studenti.phone); printf("ntt地址: %s",studenti.adress); printf("ntte-mail:%s",studenti.e_mail); printf("ntt_"); printf("ntt是否删除?(y/n)"); i

26、f (getch()='y') for (j=i;j<num-1;j+) studentj=studentj+1; num-; deletemark+; printf("ntt删除成功"); if(i+1)<num) printf("ntt是否继续删除相同姓名的用户信息?(y/n)"); if (getch()='y') a=i; continue; printf("ntt是否继续删除?(y/n)"); if (getch()='y') deletebyname(); ret

27、urn; if(i+1)<num) printf("ntt是否继续删除相同姓名的用户信息?(y/n)"); if (getch()='y') a=i; continue; elsecontinue;if (deletemark=0)&&(findmark=0) printf("ntt没有该用户的纪录"); printf("ntt是否继续删除?(y/n)"); if (getch()='y') deletebyphone(); return; return;else if (findmark!=0) printf("ntt没有重名信息"); printf("nt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论