C语言程序设计课程设计.docx

上传人:b****2 文档编号:2555594 上传时间:2023-05-04 格式:DOCX 页数:16 大小:104.78KB
下载 相关 举报
C语言程序设计课程设计.docx_第1页
第1页 / 共16页
C语言程序设计课程设计.docx_第2页
第2页 / 共16页
C语言程序设计课程设计.docx_第3页
第3页 / 共16页
C语言程序设计课程设计.docx_第4页
第4页 / 共16页
C语言程序设计课程设计.docx_第5页
第5页 / 共16页
C语言程序设计课程设计.docx_第6页
第6页 / 共16页
C语言程序设计课程设计.docx_第7页
第7页 / 共16页
C语言程序设计课程设计.docx_第8页
第8页 / 共16页
C语言程序设计课程设计.docx_第9页
第9页 / 共16页
C语言程序设计课程设计.docx_第10页
第10页 / 共16页
C语言程序设计课程设计.docx_第11页
第11页 / 共16页
C语言程序设计课程设计.docx_第12页
第12页 / 共16页
C语言程序设计课程设计.docx_第13页
第13页 / 共16页
C语言程序设计课程设计.docx_第14页
第14页 / 共16页
C语言程序设计课程设计.docx_第15页
第15页 / 共16页
C语言程序设计课程设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计课程设计.docx

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

C语言程序设计课程设计.docx

C语言程序设计课程设计

通信录管理系统

         ―――《C语言程序设计课程设计》

 

 

 

 

 

 

 

 

 

学院名称:

贵州航天职业技术学院

学生姓名:

郑平

专业班级:

08计网

指导老师:

陈美成

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

完成时间:

2010年1月11日

设计题目:

通信录管理系统

课程设计摘要:

C语言是一种计算机程序设计的一种语言,它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。

也正因为这样,C语言得到飞速的发展,也成为最受欢迎的程序设计语言之一。

通过对C语言的学习,并将运用所学的知识与现实的生活联系起来,通过对通信录管理系统的开发来更深刻地理解C语言强大的功能。

关键词:

输入记录,显示记录,删除记录,保存记录。

一.引言

对于现代社会而言,人与人的交往越来越多,通信录就是方便个人或企业联系时的一种简单的、实用的记事载体。

而现在而言,对于以往的纸质的通信录使用起来,在查找信息,管理各个方面,都远远不能满足需求了。

因此,需要去开发新的类型的通信录,如电子通信录、手机通信录和网络通信录。

而电子通信录可以利用C语言来编写。

通过对C语言的学习,这样就有必要与现实生活联系起来,设计一个通信录管理系统,对通信录进行必要的管理,为实现快速查询、插入、排序等功能提供方便。

二.实现原理

1.算法分析:

对于主函数main()来说,使用了一个do····while循环语句,用来在屏幕上显示主菜单,这里提供了用户输入数字选择要做的操作,这样做能达到简单方便的效果。

Enter()这个函数是用来初始记录的输入的,输入的记录按照一行一条的格式输入,每个数据之间用空格键隔开,较为清晰,且能反应数据之间的关系.本来在这里可以使用for语句来循环n次,但我却直接使用输入·输出函数来实现,这样也有一点好处,可以对输入的记录数不受限制,可以无限地地输下去。

Del()函数是用来删除记录的,这里需要调用现示函display(),还要调用search()函数来对查询显示出的记录进行删除,接着就会显示确认删除的选择,Y表示“是”,N表示“否”。

如果输入Y,则确认删除这条记录。

删除数组中的某一条记录,实际所做的操作是将其后的记录依次前移一条,所以删除第j条记录,即从第j+1开始,依次将每个字段拷贝到前一条记录的相应的字段,即覆盖了前一条记录,达到迁移的目的,知道最后一条记录。

这里只要使用一个for循环控制语句就行了。

Save()函数是用来对输入的数据进行保存的,先定义一个指向文件的指针,提示用户输入一个文本文件名及路径,按照“wb”写的方式打开该文件。

文件名可以自己定义的。

如果文件不存在的话,系统会自动创建该文件。

然后确定文件的打开方式,如果文件不能正常打开,则退出程序。

Modify()函数是用来对记录进行修改的,首先要打开记录所保存的文件,这里主要就是使用if的判断语句,并嵌套一个while循环语句来实现对文件打开与保存。

2.实现这个算法的技术的难点:

主函数的设计主要是用来实现主菜单的界面,在菜单中选择各种选项,首先要使用输出函数printf来输出菜单上的各种选项,再使用的是switch····case来控制菜单选项的具体功能。

刚开始的时候,总是会造成死循环。

到后来慢慢地调试,把这种情况解决了,当使用for(;;)这样是无限循环下去。

3.流程图:

主菜单的流程图:

输入模块:

修改模块:

 

删除模块:

 

保存模块:

4.数据字典:

首先要定义一个结构体变量,如下:

structcontacks

{charname[20];

charmobile[15];

charunits[30];

charEmail[20];

charstreet[20];

}con[105];

这些是用在整个程序之中的,用来对通信录里的详细信息的保存,这个结构体变量是整个程序数据的核心,也是该程序的生命。

没有这个,整个程序都无法运行。

定义几个全局变量intm,k=0;longoffset;和字符数组charnamekey[8];并定义FILE*fp;,指针来对文件的打开以及保存。

在主函数main()中,定义局部变量a来对输入项进行选择,来选择菜单上的项目,

在enter()函数中,定义字符数组charch[20]判断信息的输入以及确定最终的输入。

5.开发环境:

作为中国人的我们,当然是使用win-TC了,这样使用起来方便多了,检查错误的时候也知道是什么错误啊。

三.小结:

把每一个函数模块连接起来,组装起来,对函数各项功能的运行情况进行测试,观察运行结果是否正确。

最终做成了这个简单的通信录管理系统,实现了最基本的输入,显示,删除,修改及保存等功能。

通过这个系统的开发过程,对C语言有了更深的了解,也对C语言的强大功能进一步的了解,实现了学习的C语言与生活实际相结合的理念。

是一次非常有意义的过程。

对于这个系统存在的问题需要改善,考虑一下几个方面:

1.本系统现在暂时只能在dos环境下运行,要把它转换成windows环境下会显得更加一目了然,更加简便,但由于现在水平有限,暂时还转换不过来。

2.本系统对输入的记录数也是有一定的限度,如果要增加输入记录数,要有一点的改进,如果要设计对记录数没有限制,仅受存储容量的限制,应该如何改进,主要考虑记录的存储方式。

3.目前每条记录的存储信息比较少,如何改进,增加更多的存储信息。

4.目前一条记录只能存储一个人的一个电话,如何解决可以存储一个人的多种联系方式。

5.用户界面现在还不够完美,如何对这个系统的界面进行美化。

经过一个多星期的精心策划,收集资料,最终完成了这个简易的通信录管理系统的开发,虽然结果往往不是十分令人满意,但过程确实十分艰辛的,也是十分有意义的,我也为自己的付出感到无比的欣慰,任何一科的学习,经过实际的运用,就会觉得学有所用,这样的学习才是充满意义的。

通过这次的课程设计,对C语言的一些基本知识,一些最基本的函数,对整个系统的开发过程都有了更深刻的理解,并学会了一个系统的开发需要划分若干个模块,并且能多人合作完成一个项目的开发,最终组合起来进行整体测试。

在开发过程中也得到多个同学以及老师的精心帮助,才可以完成这个艰巨的任务。

在此也对他们表示衷心的感谢!

如今终于告别这个艰巨而又有意义的过程,觉得此时非常的轻松,同时也意味着一个学期结束了,学校的生活暂时告一段落,但学习并未停止,在以后的日子中还有更多的学习任务等着我们。

希望大家都不要放弃,继续努力,以图更大的发展。

最后,预祝老师和同学们能过一个愉快的寒假!

三.参考文献:

书名作者出版社期刊号

C语言程序设计教程徐士良人民邮电出版社9787115200051

C语言程序设计教程(第3版)张建勋,纪纲清华大学出版社730216813X

四.源程序清单:

#include

#include

#include

#include

structcontacks

{charname[20];

charmobile[15];

charunits[30];

charEmail[20];

charstreet[20];

}con[105];

intm,k=0;

longoffset;

charnamekey[8];

structcontacksone;

charfilename[20]=":

\\book.txt";

FILE*fp;

voidenter();

voiddisplay();

voiddel();

voidsave();

voidmodify();

 

voidmain()

{

inta;

do

{

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

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

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

printf("-");printf("\t1.Accessinformation");printf("\t\t\t\t\t-\n");

printf("-");printf("\t2.displayinformation");printf("\t\t\t\t-\n");

printf("-");printf("\t3.modifyinformation");printf("\t\t\t\t\t-\n");

printf("-");printf("\t4.Deleteinformation");printf("\t\t\t\t\t-\n");

printf("-");printf("\t5.Savetheinformation");printf("\t\t\t\t-\n");

printf("-");printf("\t5.exit");printf("\t\t\t\t\t-\n");

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

printf("Enteryouchoice:

");

scanf("%d",&a);

switch(a)

{

case1:

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

case2:

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

case3:

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

case4:

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

case5:

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

case6:

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

default:

printf("\nThechoiceisbetween1to6.\n");

}

}while(a!

=0);

}

voidenter()

{

charch[20];

printf("\nenterinformation:

\n");

do

{printf("\nname:

");

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

printf("mobile:

");

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

printf("\nunits:

");

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

printf("\nEmail:

");

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

printf("\nstreet:

");

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

k++;

printf("\nifwantcontinueinputstudentinformation(y/n):

");

scanf("%s",ch);

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

display();

}

voiddisplay()

{inti;intm;

printf("theinformationis:

\n");

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

printf("\namemobileunitsEmailstreet\n");

for(i=0;i

{printf("%10s%15s%15s%14s%14s",con[i].name,con[i].mobile,con[i].units,con[i].Email,con[i].street);

printf("\n");}

}

voidmodify()

{

intm,k=0;

longoffset;

charnamekey[8];

structcontacksone;

printf("\npleaseinputname\n");

scanf("%s",namekey);

if((fp=fopen("book.txt","r+"))==NULL)

{

printf("\ncannotopen\n");

}

while(!

feof(fp))

{

offset=ftell(fp);

fscanf(fp,"%s%s%s\n",one.name,one.mobile,one.units,one.Email,one.street);

if(!

strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf("\ntheinformationis\n");

printf("\n%-10s%-18s%-15s%-15s%-50s",one.name,one.mobile,one.units,one.Email,one.street);

printf("\npleaseinputinformation:

");

scanf("%s%s%s%s%s",one.name,one.mobile,one.units,one.Email,one.street);

fseek(fp,offset,SEEK_SET);

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

fprintf(fp,"%-10s%-20s%-15s%-15s%-50s\n",one.name,one.mobile,one.units,one.Email,one.street);

}

else

printf("\thereisnotthisperson\n");

fclose(fp);

}

 

voiddel()

{

inti,j;

charc[20];

printf("\nenteryouwantdeletename:

\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\tyouhaddelete%s\n",c);

k--;

display();

}

 

voidsave()

{FILE*fp;inti;

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

{printf("cannotwritethefile.\n");

exit(0);}

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

=0;i++)

printf("\namemobileunitsEmailstreet\n");

fprintf(fp,"%s%s%s%s%s\n",con[i].name,con[i].mobile,con[i].units,con[i].Email,con[i].street);

fclose(fp);

}

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

当前位置:首页 > 解决方案 > 学习计划

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

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