数据结构课程设计 通讯录的设计.docx

上传人:b****5 文档编号:4606005 上传时间:2022-12-07 格式:DOCX 页数:11 大小:184.53KB
下载 相关 举报
数据结构课程设计 通讯录的设计.docx_第1页
第1页 / 共11页
数据结构课程设计 通讯录的设计.docx_第2页
第2页 / 共11页
数据结构课程设计 通讯录的设计.docx_第3页
第3页 / 共11页
数据结构课程设计 通讯录的设计.docx_第4页
第4页 / 共11页
数据结构课程设计 通讯录的设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据结构课程设计 通讯录的设计.docx

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

数据结构课程设计 通讯录的设计.docx

数据结构课程设计通讯录的设计

中北大学

数据结构与算法课程设计

说明书

 

学院、系:

软件学院

专业:

软件工程

班级:

13140A08

学生姓名:

学号:

设计题目:

通讯录的制作

起迄日期:

2015年1月12日-2015年1月29日

指导教师:

 

 

 

 2015年1月29日

 

1设计内容

软件(每条信息至包含:

姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项)最少要执行以下操作:

(1) 输入信息——enter();

(2) 显示信息———display();

(3) 查找以姓名作为关键字———search();

(4) 删除信息———delete();存盘———save();装入———load();

2设计要求

(1)符合课题要求,实现相应功能;

(2)要求界面友好美观,操作方便易行;

(3)注意程序的实用性、安全性。

3程序分析

使用switch语句将程序整合。

switch(表达式)

{

case常量表达式1:

语句1;

break;

case常量表达式2:

语句2;

break;

}

Switch

语句的执行流程是:

首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,

就执行此case后面的语句,执行后遇break语句就退出switch语句。

 

4.程序源代码

#include

#include

#include

#include

structcontacks

{charname[10];

charstreet[20];

charcity[10];

inteip;

charstate[10];

}con[50];

intk=0;

voidenter();

voiddisplay();

voidlookandchange();

voiddel();

voidsave();

intmain()

{

inta;

do

{

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

printf("*");printf("\t\t欢迎使用通讯录系统");printf("\t*");

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

printf("*");printf("\t1.录入信息");printf("\t\t\t\t\t*\n");

printf("*");printf("\t2.显示通讯录");printf("\t\t\t\t*\n");

printf("*");printf("\t3.查找并改写通讯录");printf("\t\t\t\t*\n");

printf("*");printf("\t4.删除信息");printf("\t\t\t\t\t*\n");

printf("*");printf("\t5.保存信息");printf("\t\t\t\t*\n");

printf("*");printf("\t6.结束");printf("\t\t\t\t\t*\n");

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

printf("输入你的选择:

");

scanf("%d",&a);

switch(a)

{

case1:

printf("\n");enter();break;

case2:

printf("\n");display();break;

case3:

printf("\n");lookandchange();break;

case4:

printf("\n");del();break;

case5:

printf("\n");save();break;

case6:

printf("\n");exit(0);break;

default:

printf("\n请选择1-6.\n");

}

}while(a!

=0);

}

voidenter()

{

charch[20];

printf("\n输入学生信息:

\n");

do

{printf("\n姓名:

");

scanf("%s",con[k].name);

printf("\n街道:

");

scanf("%s",con[k].street);

printf("\n城市:

");

scanf("%s",con[k].city);

printf("\n邮编:

");

scanf("%d",&con[k].eip);

printf("\n国籍:

");

scanf("%s",con[k].state);

k++;

printf("\n要继续录入学生信息吗?

(y/n):

");

scanf("%s",ch);

}

while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0);

display();

}

voiddisplay()

{inti;

printf("通讯录信息为下:

\n");

for(i=0;i

{printf("%10s%20s%10s%6d%10s",con[i].name,con[i].street,con[i].city,con[i].eip,con[i].state);

printf("\n");}

}

voidlookandchange()

{

inti;

chara[20],ch[10];

printf("\n请输入你想找信息的名字:

");

scanf("%s",a);

for(i=0;i

if(strcmp(con[i].name,a)==0)printf("%10s%20s%10s%6d%10s",con[i].name,con[i].street,con[i].city,con[i].eip,con[i].state);

printf("\n请输入你想改写信息的名字:

");

scanf("%s",a);

for(i=0;i

{

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

{printf("\n你确定要改变名字吗?

(y/n):

");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nname:

");scanf("%s",con[i].name);}

printf("\n你确定要改变街道吗?

(y/n):

");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nstreet");scanf("%s",con[i].street);}

printf("\n你确定要改变城市吗?

(y/n):

");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\ncity");scanf("%s",con[i].city);}

printf("\n你确定要改变邮编吗?

(y/n):

");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\neip");scanf("%d",&con[i].eip);}

printf("\n你确定要改变国籍吗?

(y/n):

");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nstate");scanf("%s",con[i].state);}

}

}

display();

}

voiddel()

{

inti,j;

charc[20];

printf("\n输入你想删除信息的名字:

\n");

printf("name:

");

scanf("%s",&c);

for(i=0;i

if(strcmp(c,con[i].name)==0)break;

for(j=i;j<=2;j++)

con[j]=con[j+1];

printf("\t\t\t已删除%s\n",c);

k--;

display();

}

voidsave()

{FILE*fp;inti;

if((fp=fopen("xinxi.txt","w"))==NULL)

{printf("无法保存信息\n");

exit(0);}

for(i=0;strlen(con[i].name)!

=0;i++)

fprintf(fp,"%s%s%s%d%s\n",con[i].name,con[i].street,con[i].city,con[i].eip,con[i].state);

fclose(fp);

}

5运行过程截图

主界面

录入信息

显示通讯录

查找并改写通讯录

删除信息

保存信息

结束

6程序的优点和不足

优点:

1可按任意顺序运行程序。

运行程序方便快捷。

2在case后,允许有多个语句,可以不用{}括起来。

不足:

1不能一次运行全部程序。

2在case后的各常量表达式的值不能相同,否则会出现错误。

7心得体会

1了解并掌握了数据结构与算法的设计方法,具备初步的独立分析和设计能力;

2初步掌握了软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

3提高了综合运用所学的理论知识和方法独立分析和解决问题的能力;

4数据结构是一门实用的编程科目,希望学校多多创造实训机会,增加我们与老师交流学习的机会。

 

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

当前位置:首页 > 高中教育 > 高中教育

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

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