通讯录管理系统课程设计报告.docx

上传人:b****8 文档编号:10938600 上传时间:2023-02-23 格式:DOCX 页数:18 大小:83.86KB
下载 相关 举报
通讯录管理系统课程设计报告.docx_第1页
第1页 / 共18页
通讯录管理系统课程设计报告.docx_第2页
第2页 / 共18页
通讯录管理系统课程设计报告.docx_第3页
第3页 / 共18页
通讯录管理系统课程设计报告.docx_第4页
第4页 / 共18页
通讯录管理系统课程设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

通讯录管理系统课程设计报告.docx

《通讯录管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

通讯录管理系统课程设计报告.docx

通讯录管理系统课程设计报告

设计课题题目

一、课程设计目的与要求

1.课程设计目的

(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。

(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。

2.课程设计要求

制作一个通讯录系统。

(1)该程序具有查找、添加、修改、删除功能。

(2)通讯录包括:

姓名、电话、街道、城市、省、邮编等。

二、总体设计

根据系统的要求,系统总体设计如图1所示。

 

三、详细设计

1、数据结构设计

#include/*标准输入输出函数库*/

#include/*标准函数库*/

#include/*字符串函数库*/

#defineFILENAME"phone.dat"

structdate//定义一个结构体类型数组

{charname[10];/*姓名*/

charphone[12];/*电话*/

charemail[20];/*邮箱*/

charQQ[20];/*QQ*/

}per[10];

intmenu()//主菜单选择函数

2.函数说明

(1)主函数

main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。

(2)其他各功能函数包括

函数名

功能

intInput(structdateper[10],intn)

输入记录

voidQuery_a_record(structdateper[10],intn)

信息查询

voidDisplay(structdateper[10],intn)

信息展示

voidwriteToFile(structdateper[10],intn)

记录保存为文件

intDelete_a_record(structdateper[10],intn)

信息删除

intmenu_select();

voidChange(structdateper[10],intn)

voidWritetoText(structdateper[10],intn)

主菜单函数

修改信息

信息增加

四、程序清单

1、头文件

#include/*标准输入输出函数库*/

#include/*标准函数库*/

#include/*字符串函数库*/

#defineFILENAME"phone.dat"

2、主函数

voidmain()//主函数

{

intn=0,i;

while

(1)

{switch(menu())

{case1:

{printf("\n\t通讯信息录入\n");//信息录入

n=Input(per,n);

}

break;

case2:

printf("\n\t\t\t通讯录记录表\n");//显示记录

Display(per,n);

break;

case3:

printf("\n\t保存功能\n");

WritetoText(per,n);//保存数据

printf("\t");

system("pause");//操作完成后进行暂停

break;

case4:

printf("\n\t从通讯录中删除记录\n");

n=Delete_a_record(per,n);//删除记录

printf("\t");

system("pause");

break;

case5:

printf("\n\t修改通讯录中的记录\n");

Change(per,n);//修改数据

printf("\t");

system("pause");

break;

case6:

printf("\n\t添加记录到通讯录\n");//添加记录

n=Input(per,n);

break;

case7:

printf("\n\t在通讯录中查找记录\n");

Query_a_record(per,n);//查找记录

printf("\t");

system("pause");//从程序里调用”pause”命令

break;

case0:

printf("\n\t\t谢谢使用,再见!

\n");//结束程序

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

system("pause");

exit(0);

}

五、总程序和分工执行结果

#include/*标准输入输出函数库*/

#include/*标准函数库*/

#include/*字符串函数库*/

#defineFILENAME"phone.dat"

structdate//定义一个结构体类型数组

{charname[10];/*姓名*/

charphone[12];

charemail[20];/*邮箱*/

charQQ[20];

}per[10];

intmenu()//主菜单选择函数

{intc;//定义一个整型变量

do{

system("cls");//清屏

printf("\t*******通讯录*******\n");

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

printf("\t1、通讯信息录入\n");

printf("\t2、通讯信息显示\n");

printf("\t3、通讯信息保存\n");

printf("\t4、通讯信息删除\n");

printf("\t5、通讯信息修改\n");

printf("\t6、通讯信息增加\n");

printf("\t7、通讯信息查询\n");

printf("\t0.退出\n");

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

printf("\t请您选择(0-7):

");

scanf("%d",&c);

}while(c>7&&c<0);

return(c);

}

intInput(structdateper[10],intn)

{inti=0;

charsign,x[10];

while(sign!

='n'&&sign!

='N')

{printf("\t姓名:

");

scanf("%s",per[n+i].name);

printf("\t电话号码:

");

scanf("%s",per[n+i].phone);

printf("\t电子邮箱:

");

scanf("%s",per[n+i].email);

printf("\tQQ:

");

scanf("%s",per[n+i].QQ);

gets(x);

printf("\n\t是否继续添加?

(Y/N)");

fflush(stdin);//清空缓存

scanf("%c",&sign);

i++;

}

return(n+i);

}

voidwriteToFile(structdateper[10],intn)

{FILE*fp=NULL;

inti=0;

fp=fopen("phone.dat","wb");

if(fp==NULL)

{printf("打开文件出错!

\n");

exit(0);

}

for(i=0;i<10;i++)

fwrite(&per[i],sizeof(per),1,fp);//把字节为1的信息写入文件

fclose(fp);

}

voidDisplay(structdateper[10],intn)

{inti;

printf("----------------------------------------------------------------------\n");//格式/

printf("姓名电话号码QQ电子邮箱\n");

printf("----------------------------------------------------------------------\n");

for(i=1;i

{

printf("%-15s%-14s%-14s%-14s\n",per[i-1].name,per[i-1].phone,per[i-1].QQ,per[i-1].email);

if(i>1&&i%10==0)

{printf("\t-----------------------------------\n");

printf("\t");

system("pause");

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

}

}

printf("----------------------------------------------------------------------\n");

system("pause");

}

intDelete_a_record(structdateper[10],intn)

{chars[20];

inti=0,j;

printf("\t请输入想删除记录中的名字:

");

scanf("%s",s);

while(strcmp(per[i].name,s)!

=0&&i

if(i==n)

{printf("\t通讯录中没有此人!

\n");

return(n);

}

for(j=i;j

{strcpy(per[j].phone,per[j+1].phone);

strcpy(per[j].name,per[j+1].name);

strcpy(per[j].QQ,per[j+1].QQ);

strcpy(per[j].email,per[j+1].email);

}

printf("\t\t\t已经成功删除!

\n");

return(n-1);

}

 

voidQuery_a_record(structdateper[10],intn)

{intm;

printf("\t\n请选择查询方式:

\n");

printf("\t┌──────┐\n");

printf("\t│1------姓名│\n");

printf("\t│2------电话│\n");

printf("\t│3------返回│\n");

printf("\t└──────┘\n");

printf("请选择:

");

scanf("%d",&m);

while(m!

=1&&m!

=2&&m!

=3&&m!

=4)

{

printf("输入错误,请重新选择:

");

scanf("%d",&m);

}

if(m==1)

{chars[20];

inti=0;

printf("\t请输入想查询的姓名:

");

scanf("\t%s",s);

while(strcmp(per[i].name,s)!

=0&&i

if(i==n)

{

printf("\t通讯录中没有此人!

\n");

return;

}

printf("\t此人QQ:

%s\n",per[i].QQ);

printf("\t电话号码:

%s\n",per[i].phone);

printf("\t电子邮箱:

%s\n",per[i].email);

};

if(m==2)

{chars[20];

inti=0;

printf("\t请输入想查询的电话:

");

scanf("\t%s",s);

while(strcmp(per[i].phone,s)!

=0&&i

if(i==n)

{

printf("\t通讯录中没有此人!

\n");

return;

}

printf("\t此人姓名:

%s\n",per[i].name);

printf("\t此人QQ:

%s\n",per[i].QQ);

printf("\t电子邮箱:

%s\n",per[i].email);

};

}

voidChange(structdateper[10],intn)

{chars[20];

inti=0;

printf("\t请输入想修改的记录中的名字:

");

scanf("%s",s);

while(strcmp(per[i].name,s)!

=0&&i

if(i==n)

{printf("\t通讯录中没有此人!

\n");

return;

}

printf("姓名:

");

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

printf("电话号码:

");

scanf("%s",per[i].phone);

printf("QQ:

");

scanf("%s",per[i].QQ);

printf("电子邮箱:

");

scanf("%s",per[i].email);

printf("\n修改成功!

");

}

voidWritetoText(structdateper[10],intn)

{inti=0;

FILE*fp;//定义文件指针

charfilename[20];//定义文件名

printf("\t保存到文件\n");//输入文件名

if((fp=fopen("phone.dat","w"))==NULL)

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

system("pause");

return;

}

fprintf(fp,"***************************************通讯录********************************\n");

fprintf(fp,"姓名电话号码QQ电子邮箱\n");

fprintf(fp,"-----------------------------------------------------------------------------\n");

while(i

{fprintf(fp,"%-10s\t%-3s\t%-20s\t%-20s\n",per[i].name,per[i].phone,per[i].QQ,per[i].email);

i++;

}

fprintf(fp,"-------------------------------------------------------------------------\n");

fprintf(fp,"********************************共有%d条记录***************************\n",n);

fclose(fp);//关闭文件

printf("保存成功!

\n");

}

voidmain()//主函数

{intn=0,i;

while

(1)

{switch(menu())

{case1:

{printf("\n\t通讯信息录入\n");//信息录入

n=Input(per,n);

}

break;

case2:

printf("\n\t\t\t通讯录记录表\n");//显示记录

Display(per,n);

break;

case3:

printf("\n\t保存功能\n");

WritetoText(per,n);//保存数据

printf("\t");

system("pause");//操作完成后进行暂停

break;

case4:

printf("\n\t从通讯录中删除记录\n");

n=Delete_a_record(per,n);//删除记录

printf("\t");

system("pause");

break;

case5:

printf("\n\t修改通讯录中的记录\n");

Change(per,n);//修改数据

printf("\t");

system("pause");

break;

case6:

printf("\n\t添加记录到通讯录\n");//添加记录

n=Input(per,n);

break;

case7:

printf("\n\t在通讯录中查找记录\n");

Query_a_record(per,n);//查找记录

printf("\t");

system("pause");

break;

case0:

printf("\n\t\t谢谢使用,再见!

\n");//结束程序

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

system("pause");

exit(0);

}

}

}

 

图1通讯录主菜单结果

 

图2信息录入

图3通讯信息显示

 

图4通讯信息保存

 

五、调试与测试

所谓程序调试是对程序的查错和排错。

对此程序我们进行了以步骤:

人工检查,即静态检查。

此过程我们对于写好的程序进行了排查,并且进行了注释。

上机调试。

通过上机调试发现的错误为动态检查,这时发现了许多错误和警告,我们根据提示逐一改正。

运行程序。

这一步骤我们逐一检查每个菜单是否运行正常与正确,在这个过程中我们出现了许多格式不正确,我们细心的进行修改。

总之,在我们对程序进行了细心的调试和测试之后,我们的程序正常运行了,但是其中还是有很多不足的地方。

比如我们的修改成绩这一向就是不完善的,要是程序里出现了不同班但学号相同时这个问题就没有解决,在以后我们会进行改善。

六、结语

心得体会:

通过这一周的课程设计,我对一些专业知识和程序设计有了更深的了解,同时也尝试着,去应用自己的所掌握的知识。

本次高级程序课程设计主要是对本学年学习的C程序知识,同时加上基础知识,设计一些课题。

经过几天的奋战,我感受很深。

在设计的过程中不可避免的遇到了很多的问题.尤其是在调试过程中,会因为某些原因出不来结果,也会因为个别错误而导致运行不出来,在这个过程中,遇到问题是不可避免的,但是在遇到困难是我们不退缩。

在老师和同学的帮助与指导下,我们顺利的完成了本次课程设计,并调试出结果。

在调试结果出来时,我更是无比的兴奋,无比的自豪。

总之,通过这次高级程序课程设计,我对自己的知识有了更好的掌握和应用,在以后的学习和生活中受用终身。

在以后的学习中我们更多的要投身于实践中,多动手,多动脑,才能更好的把学习学好。

七、参考文献

[1]袁志祥主编数据结构(C语言版)例题详解与课程设计指导第二版中国科技大学出版社

[2]刘甫迎刘光会王蓉主编程序设计教程(第二版)北京电子工业出版社2008

[3]郭胜主编程序设计清华大学出版社2002

[4]施燕妹陈培陈发吉主编C#语言程序设计教程中国水利水电出版社2001

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

当前位置:首页 > 法律文书 > 调解书

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

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