通讯录管理系统-创新互联

通讯录管理系统源代码文件资源传送门:

成都创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为兴宾企业提供专业的网站设计制作、做网站兴宾网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

(1条消息) 通讯录管理系统源代码文件-C++文档类资源-文库.

1、课程设计目的

C语言程序设计课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C语言的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C语言程序设计这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。

2、课程设计任务与要求:

本次课程设计利用《C语言程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。

要求:

1、对系统进行功能需求分析

2、设计合理的数据结构和系统框架

3、编程简练,程序功能齐全,能正确运行

4、说明书、流程图要清楚

5、课题完成后必须按要求提交课程设计报告

任务:

以本班同学的具体数据为背景,设计一个本班同学通讯录。

实现功能:

1) 通讯录编辑(添加、删除)。

2) 按不同的项进行查找。

3) 对已存在的通讯录按不同的项排序。

4) 将通讯录写入文件

5)从文件读入通讯录

备注:通讯录至少应该有以下数据项:

姓名,地址,电话,邮编,E-mail。

概要设计

(1)人数不定,每输入一个人编号。

(2)记录每位同学的姓名、电话号码、地址、邮编和E-mail。

(3)可对记录中的姓名和电话号码等进行修改。

(4)可增加或删除记录

(5)加入查询功能,通过姓名或电话号码查询到同学的条目。

(6)在开始画面加入简单的菜单便于选择功能。

(7)将信息保存在文件。

(2)系统功能需求:

<1>记录功能:记录每位同学的姓名、电话号码、地址、邮编和E-mail

<2>查找功能:按不同方式查找信息

<3>添加功能:添加信息

<4>排序功能:将信息按照姓名排序

<5>删除功能:删除指定的信息

<6>保存在文件:将做完的信息保存在文件

<7>结束:结束程序

(3)函数说明

选择功能函数

void next()

{

void show();

void seek();

void add();

void sort();

void out();

void keep();

int end();

int b;

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

printf("\t请选择接下来的操作:");

scanf("%d",&b);

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

switch(b)

{

case 1 :show();break;

case 2 :seek();break;

case 3 :add();break;

case 4 :sort();break;

case 5 :out();break;

case 6 :keep();break;

case 7 :end();break;

}

}

输入函数

void write()

{

void next();

void write1();

printf("\t请输入信息(每次输入1时继续输入,输入2时停止输入)\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

write1();

}

void write1()

{

void next();

void write2();

int a;

printf("是否输入:");

scanf("%d",&a);

printf("\n");

switch(a)

{

case 1 :write2();break;

case 2 :next();break;

}

}

void write2()

{

void write1();

j=i+1;

printf("%d\t",j);

scanf("%s%d%s%d%s",stu[i].name,&stu[i].phone,stu[i].adress,&stu[i].postcode,stu[i].e_mail);

i=i+1;

write1();

}

1.输出函数

void show()

{

void next();

int s=0;

printf("\t下面将会显示输入的数据:\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

for(i=0;i

{

s=s+1;

printf("%d\t%s\t%d\t%s\t%d\t%s\n",s,stu[i].name,stu[i].phone,stu[i].adress,stu[i].postcode,stu[i].e_mail);

}

printf("\t显示结束\n");

next();

}

2.查找函数

void seek()

{

int q;

void numberseek();

void nameseek();

printf("\t请选择搜索方式:1~按名字查找\n\t 2~按家庭电话号码查找\n");

printf("\t请选择查找方式:");

scanf("%d",&q);

switch(q)

{

case 1 :nameseek();break;

case 2 :numberseek();break;

}

}

void nameseek()

{

void next();

char d[5];

printf("\t请输入要查找学生的名字:");

scanf("%s",d);

for(i=0;i

{

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

{

printf("\t你要查找的学生信息为:\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

printf("\t%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].phone,stu[i].adress,stu[i].postcode,stu[i].e_mail);

break;

}

else

continue;

}

next();

}

void numberseek()

{

void next();

int e;

printf("\t请输入要查找的电话号码:");

scanf("%d",&e);

for(i=0;i

{

if(e==stu[i].phone)

{

printf("\t你要查找的学生信息为:\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

printf("\t%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].phone,stu[i].adress,stu[i].postcode,stu[i].e_mail);

break;

}

else

continue;

}

next();

}

3.添加函数

void add()

{

void next();

void write1();

i=j;

printf("\t请输入信息(每次输入1时继续输入,输入2时停止输入)\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

write1();

}

4.排序函数

void sort()

{

void next();

void show();

int h,g,x;

char temp;

for(i=0;i<(j-1);i++)

{

h=i;

for(g=i+1;g

{

if(strcmp(stu[h].name,stu[g].name)==0)

h=g;

if(h!=i)

{

strcpy(temp,stu[i].name);strcpy(stu[i].name,stu[h].name);strcpy(stu[h].name,temp);

x=stu[i].phone;stu[i].phone=stu[h].phone;stu[h].phone=temp;

strcpy(temp,stu[i].adress);strcpy(stu[i].adress,stu[h].adress);strcpy(stu[h].adress,temp);

x=stu[i].postcode;stu[i].postcode=stu[h].postcode;stu[h].postcode=temp;

strcpy(temp,stu[i].e_mail);strcpy(stu[i].e_mail,stu[h].e_mail);strcpy(stu[h].e_mail,temp);

}

}

}

printf("排序成功\n");

show();

}

5.删除函数

void out()

{

void next();

int t,h,v;

printf("\t请输入要删除的学生编号:");

scanf("%d",&t);

h=i;

for(v=t-1;v

{

strcpy(stu[v].name,stu[v+1].name);

stu[v].phone=stu[v+1].phone;

strcpy(stu[v].adress,stu[v+1].adress);

stu[v].postcode=stu[v+1].postcode;

strcpy(stu[v].e_mail,stu[v+1].e_mail);

}

j=j-1;

printf("\t删除完毕\n");

next();

}

6.保存函数

void keep()

{

void next();

FILE *fp;

int v=0;

char filename[10];

printf("请输入要保存的文件名:");

scanf("%s",filename);

if((fp=fopen(filename,"w"))==NULL)

{

printf("文件无法打开\n");

exit(0);

}

fprintf(fp,"\t姓名\t电话号\t地址\t邮编\tE-mail\n");

for(i=0;i

{

v=v+1;

fprintf(fp,"%d\t%s\t%d\t%s\t%d\t%s\n",v,stu[i].name,stu[i].phone,stu[i].adress,stu[i].postcode,stu[i].e_mail);

}

fclose(fp);

printf("已经保存在文件%s中",filename);

next();

}

7.结束函数

int end()

{

void next();

int g;

printf("\t是否关闭程序:\n1:是\t2:否\n");

printf("\t请输入你的选择:");

scanf("%d",&g);

switch(g)

{

case 1 :return 0;

case 2 :next();

}

return 0;

}

遇到的问题

  1. 输入数据时出错,解决方法:每次输入都进行判断是否输入

  1. 添加时编号出错,解决方法:注意”<=”与”<”之间的差别

  1. 排序事出错,解决方法:翻书p342,上网查找

4.课程设计成果

程序源代码

#include

#include

#include

struct Student

{

char name[20];

int long phone;

char adress[40];

int postcode;

char e_mail[30];

}stu[100];

int j=0,i=0;

void next()

{

void show();

void seek();

void add();

void sort();

void out();

void keep();

int end();

int b;

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

printf("\t请选择接下来的操作:");

scanf("%d",&b);

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

switch(b)

{

case 1 :show();break;

case 2 :seek();break;

case 3 :add();break;

case 4 :sort();break;

case 5 :out();break;

case 6 :keep();break;

case 7 :end();break;

}

}

void write()

{

void next();

void write1();

printf("\t请输入信息(每次输入1时继续输入,输入2时停止输入)\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

write1();

}

void write1()

{

void next();

void write2();

int a;

printf("是否输入:");

scanf("%d",&a);

printf("\n");

switch(a)

{

case 1 :write2();break;

case 2 :next();break;

}

}

void write2()

{

void write1();

j=i+1;

printf("%d\t",j);

scanf("%s%d%s%d%s",stu[i].name,&stu[i].phone,stu[i].adress,&stu[i].postcode,stu[i].e_mail);

i=i+1;

write1();

}

void show()

{

void next();

int s=0;

printf("\t下面将会显示输入的数据:\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

for(i=0;i

{

s=s+1;

printf("%d\t%s\t%d\t%s\t%d\t%s\n",s,stu[i].name,stu[i].phone,stu[i].adress,stu[i].postcode,stu[i].e_mail);

}

printf("\t显示结束\n");

next();

}

void seek()

{

int q;

void numberseek();

void nameseek();

printf("\t请选择搜索方式:1~按名字查找\n\t 2~按家庭电话号码查找\n");

printf("\t请选择查找方式:");

scanf("%d",&q);

switch(q)

{

case 1 :nameseek();break;

case 2 :numberseek();break;

}

}

void nameseek()

{

void next();

char d[5];

printf("\t请输入要查找学生的名字:");

scanf("%s",d);

for(i=0;i

{

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

{

printf("\t你要查找的学生信息为:\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

printf("\t%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].phone,stu[i].adress,stu[i].postcode,stu[i].e_mail);

break;

}

else

continue;

}

next();

}

void numberseek()

{

void next();

int e;

printf("\t请输入要查找的电话号码:");

scanf("%d",&e);

for(i=0;i

{

if(e==stu[i].phone)

{

printf("\t你要查找的学生信息为:\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

printf("\t%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].phone,stu[i].adress,stu[i].postcode,stu[i].e_mail);

break;

}

else

continue;

}

next();

}

void add()

{

void next();

void write1();

i=j;

printf("\t请输入信息(每次输入1时继续输入,输入2时停止输入)\n");

printf("\t姓名\t家庭电话\t地址\t邮编\tE-mail\n");

write1();

}

void sort()

{

void next();

void show();

int h,g,x;

char temp;

for(i=0;i<(j-1);i++)

{

h=i;

for(g=i+1;g

{

if(strcmp(stu[h].name,stu[g].name)==0)

h=g;

if(h!=i)

{

strcpy(temp,stu[i].name);strcpy(stu[i].name,stu[h].name);strcpy(stu[h].name,temp);

x=stu[i].phone;stu[i].phone=stu[h].phone;stu[h].phone=temp;

strcpy(temp,stu[i].adress);strcpy(stu[i].adress,stu[h].adress);strcpy(stu[h].adress,temp);

x=stu[i].postcode;stu[i].postcode=stu[h].postcode;stu[h].postcode=temp;

strcpy(temp,stu[i].e_mail);strcpy(stu[i].e_mail,stu[h].e_mail);strcpy(stu[h].e_mail,temp);

}

}

}

printf("排序成功\n");

show();

}

void out()

{

void next();

int t,h,v;

printf("\t请输入要删除的学生编号:");

scanf("%d",&t);

h=i;

for(v=t-1;v

{

strcpy(stu[v].name,stu[v+1].name);

stu[v].phone=stu[v+1].phone;

strcpy(stu[v].adress,stu[v+1].adress);

stu[v].postcode=stu[v+1].postcode;

strcpy(stu[v].e_mail,stu[v+1].e_mail);

}

j=j-1;

printf("\t删除完毕\n");

next();

}

void keep()

{

void next();

FILE *fp;

int v=0;

char filename[10];

printf("请输入要保存的文件名:");

scanf("%s",filename);

if((fp=fopen(filename,"w"))==NULL)

{

printf("文件无法打开\n");

exit(0);

}

fprintf(fp,"\t姓名\t电话号\t地址\t邮编\tE-mail\n");

for(i=0;i

{

v=v+1;

fprintf(fp,"%d\t%s\t%d\t%s\t%d\t%s\n",v,stu[i].name,stu[i].phone,stu[i].adress,stu[i].postcode,stu[i].e_mail);

}

fclose(fp);

printf("已经保存在文件%s中\n",filename);

next();

}

int end()

{

void next();

int g;

printf("\t是否关闭程序:\n1:是\t2:否\n");

printf("\t请输入你的选择:");

scanf("%d",&g);

switch(g)

{

case 1 :return 0;

case 2 :next();

}

return 0;

}

int main()

{

int ch;

printf("\t********************开始*********************\n\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***********************************************\n");

printf("\t请先输入信息\n");

write();

return 0;

}

5.课程设计心得

通过为期一周的课程设计,我对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章题目:通讯录管理系统-创新互联
分享网址:http://hbruida.cn/article/dcoghj.html