数据结构课程设计 通讯录的设计.docx
《数据结构课程设计 通讯录的设计.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计 通讯录的设计.docx(11页珍藏版)》请在冰豆网上搜索。
![数据结构课程设计 通讯录的设计.docx](https://file1.bdocx.com/fileroot1/2022-12/7/7e0f68cf-da61-4c4e-82ef-ffaced370720/7e0f68cf-da61-4c4e-82ef-ffaced3707201.gif)
数据结构课程设计通讯录的设计
中北大学
数据结构与算法课程设计
说明书
学院、系:
软件学院
专业:
软件工程
班级:
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;iif(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;iif(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数据结构是一门实用的编程科目,希望学校多多创造实训机会,增加我们与老师交流学习的机会。