C语言课程设计《通讯录管理系统》.docx

上传人:b****1 文档编号:3576379 上传时间:2023-05-06 格式:DOCX 页数:13 大小:35.36KB
下载 相关 举报
C语言课程设计《通讯录管理系统》.docx_第1页
第1页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第2页
第2页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第3页
第3页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第4页
第4页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第5页
第5页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第6页
第6页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第7页
第7页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第8页
第8页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第9页
第9页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第10页
第10页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第11页
第11页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第12页
第12页 / 共13页
C语言课程设计《通讯录管理系统》.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计《通讯录管理系统》.docx

《C语言课程设计《通讯录管理系统》.docx》由会员分享,可在线阅读,更多相关《C语言课程设计《通讯录管理系统》.docx(13页珍藏版)》请在冰点文库上搜索。

C语言课程设计《通讯录管理系统》.docx

C语言课程设计《通讯录管理系统》

 

湖南文理学院电信学院

课程设计报告

 

题目:

通讯录管理

 

姓名:

侯准

学院:

电气与信息工程学院

专业:

通信工程

班级:

三班

学号:

200916020319

指导教师:

张晓虎

完成日期:

2010年9月28日

 

课程设计任务书

题目

通讯录管理

课程设计内容要求:

1.在规定时间内完成“信息管理系统的设计。

主要功能有:

(1)通讯录管理系统

1)添加通讯录信息功能

2)查找通讯录信息功能

3)修改通讯录信息功能

4)删除通讯录信息功能

5)输出通讯录信息功能

2.在“信息管理系统”设计中运用C语言的结构体、函数调用、文件管理操作、指针、数组等知识来实现。

3.设计要饱和总体设计、算法分析、流程图。

4.用C语言实现系统。

5.系统要通过调试能够正常运行。

6.系统的各个功能模块要求用函数的形式实现。

7.完成设计任务并书写课程设计报告。

设计者姓名

指导教师意见:

指导教师签名:

 

目录

 

1.设计目的…………………………………(4)

2.概论………………………………………..(5)

3.算法分析…………………………………..(6)

4.程序源代码………………………………..(6)

5.测试及输出结果使用方法………………..(11)

6.心得体会……………………………..........(13)

7.参考文献……………………………………(14)

 

设计目的

通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识;C语言程序这门课程并不简单,是需要用心去学习,慢慢体会的,这一次的小程序让我学到了很多很多,使我对C语言有了更深的认识,虽然只学了一学期,然后就编了这个程序,是有点辛苦,但是我感觉最深的是我学习到了更多的知识,在这里我要感谢我的C语言老师李书涛老师以及指导老师谭忠兵老师,因为他们的指导我才能有如此大的进步。

 

概论

课程设计目的:

1.进一步掌握和利用C语言进行程序设计的能力;

2.进一步理解和运用结构化程序设计的思想和方法;

3.初步掌握开发一个小型实用系统的基本方法;

4.学会调试一个较长程序的基本方法;

5.学会利用流程图或N-S图表示算法;

6.掌握书写程设计开发文档的能力(书写课程设计报告)。

主要内容:

1.添加数据:

输入姓名、电话号码及地址,即可添加数据。

2.查找数据:

输入所要查找的姓名即可查询。

3.修改数据:

输入所要修改的姓名,进行修改,保存后即成功。

4.删除数据:

输入所要删除的姓名,确定后即成功。

5.输出数据:

点击后即可查看所有保存的通讯录数据。

0.退出程序。

 

算法分析:

此程序运用了forwhile语句、switch语句、break语句等。

知识有函数结构,函数的调用,指针等知识。

程序源代码:

#include

structperson

{

charname[8];

chartel[15];

charaddr[50];

};

charfilename[20];

FILE*fp;

voidcreat();

voidappend();

voidsearch();

voidmodify();

voiddelete1();

voidoutput();

main()

{

intm;

creat();

while

(1)

{

printf("\n\nappend,pleasepress1");/*添加,请按1*/

printf("\nsearch,pleasepress2");/*查找,请按2*/

printf("\nmodify,pleasepress3");/*修改,请按3*/

printf("\ndelete,pleasepress4");/*删除,请按4*/

printf("\noutput,pleasepress5");/*输出,请按5*/

printf("\nexit,pleasepress0\n");/*退出,请按6*/

scanf("%d",&m);

if(m>=0&&m<=5)

{

switch(m)

{

case1:

append();

break;

case2:

search();

break;

case3:

modify();

break;

case4:

delete1();

break;

case5:

output();

break;

case0:

exit();

}

printf("\n\nFinshpleasechooseagain!

");/*操作完毕,请再次选择*/

}

else

printf("\n\nYouchoosewrongpleasepressotherkey!

");/*选择错误,请再次选择*/

}

}

 

voidcreat()

{

structpersonone;

longs1;

printf("\nPleaseenterthenameofcommunicationbook:

");/*请输入通讯簿名*/

scanf("%s",filename);

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

{

printf("\nCan'tbuildupthecommunicationbook!

");/*不能建立通讯簿*/

exit();

}

fprintf(fp,"\n%-10s%-20s%-50s\n","name","telephone","address");

printf("\nPleaseinputthename,telephonenumberandaddresses(with0end)\n");/*请输入姓名、电话号码及住址(以0结束)*/

scanf("%s",one.name);

while(strcmp(one.name,"0"))

{

scanf("%s%s",one.tel,one.addr);

fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);

scanf("%s",one.name);

}

fclose(fp);

}

 

voidappend()

{

structpersonone;

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

{

printf("\nCan'topenthecommunicationbook!

");/*不能打开通讯簿*/

exit();

}

printf("\nPleasaenterthename,telephonenumberandadderssesthattoincrease\n");/*请输入添加的姓名、电话号码及住址*/

scanf("%s%s%s",one.name,one.tel,one.addr);

fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);

fclose(fp);

}

voidsearch()

{

intk=0;

charnamekey[8];

structpersonone;

printf("\nPleaseinputthename:

");

scanf("%s",namekey);

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

{

printf("\nCan'topenthecommunicationbook!

");

exit();

}

while(!

feof(fp))

{

fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

if(!

strcmp(namekey,one.name))

{

printf("\n\nHavealreadycheck,therecordis:

");/*已查到,记录为*/

printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);

k=1;

}

}

if(!

k)

printf("\n\nsorry,thispersonrecordisnotinthecommunicationbook.");/*对不起,通讯簿中没有此人的记录*/

fclose(fp);

}

voidmodify()

{

intm,k=0;

longoffset;

charnamekey[8];

structpersonone;

printf("\nPleaseinputthename:

");

scanf("%s",namekey);

if((fp=fopen(filename,"r+"))==NULL)

{

printf("\nCan'topenthecommunicationbook!

");/*不能打开通讯簿*/

exit();

}

while(!

feof(fp))

{

offset=ftell(fp);

fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

if(!

strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf("\nHavealreadycheck,therecordis:

");

printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);

printf("\nPleaseinputnewthename,telephonenumberandaddresses:

");/*请输入新姓名、电话号码及住址*/

scanf("%s%s%s",one.name,one.tel,one.addr);

fseek(fp,offset,SEEK_SET);

printf("%ld",ftell(fp));

fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);

}

else

printf("\nsorry,thispersonrecordisnotinthecommunicationbook.");/*对不起,通讯簿中没有此人的记录*/

fclose(fp);

}

voiddelete1()

{

intm,k=0,flag;

longoffset1,offset2;

charnamekey[8],valid[4];

structpersonone;

printf("\nPleaseinputthename:

");

scanf("%s",namekey);

if((fp=fopen(filename,"r+"))==NULL)

{

printf("\nCan'topenthecommunicationbook!

");

exit();

}

while(!

feof(fp))

{

offset1=ftell(fp);

fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

if(!

strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf("\nHavealreadycheck,therecordis:

");

printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);

printf("\nReallyneedtodelete,press1;don'tdelete,press0:

");/*确实要删除,按1;不删除,按0*/

scanf("%d",&m);

if(m)

{

fseek(fp,offset1,SEEK_SET);

fprintf(fp,"%-10s%-20s%-50s\n","","","");

}

}

else

printf("\nsorry,thispersonrecordisnotinthecommunicationbook.");

fclose(fp);

}

voidoutput()

{

structpersonone;

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

{

printf("\nCan'topenthecommunicationbook!

");/*不能打开通讯簿*/

exit();

}

printf("%20s\n","COMMUNICATIONBOOK");

while(!

feof(fp))

{

fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

printf("%-10s%-20s%-50s",one.name,one.tel,one.addr);

}

fclose(fp);

}

测试及输出结果使用方法:

1.添加数据

2.查找数据

3.修改数据

4.删除数据

5.输出数据

 

心得体会:

经过不到两个星期的课程设计,使我对C语言有了更进一步的认识和了解,要学好它要重在实践,要通过不断的上机操作才能更好的学习好它。

以前上课都是一些枯燥的东西,但是通过课程设计把所学的东西用在了实践上,设计出来一些有用的东西,这几天精力都放在了编程上,但是有好多次总是运行不了,找来找去只是一些小小的错误。

这几天深深地感到自己上机编程能力很不足,编的程序可读性不太好.以后要多多学习别人的经验,增强程序的可读性。

但经过这几天的改错,在查错方面也积累了一些经验。

这些天虽然是有点累,但是还是学到了许多没有学到的知识,我很开兴!

 

参考文献:

《C语言程序设计教程》 主编 李凤霞 主审 李书涛 北京理工大学出版社

C语言经典例题分析

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2