C语言程序设计课程设计文档格式.docx
- 文档编号:4740041
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:16
- 大小:104.78KB
C语言程序设计课程设计文档格式.docx
《C语言程序设计课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
因此,需要去开发新的类型的通信录,如电子通信录、手机通信录和网络通信录。
而电子通信录可以利用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<
stdio.h>
string.h>
stdlib.h>
conio.h>
charmobile[15];
charunits[30];
charEmail[20];
charstreet[20];
}con[105];
intm,k=0;
charnamekey[8];
structcontacksone;
charfilename[20]="
:
\\book.txt"
;
FILE*fp;
voidenter();
voiddisplay();
voiddel();
voidsave();
voidmodify();
voidmain()
{
inta;
do
{
printf("
\n\n------------------------------------------------------------------\n"
);
printf("
-"
\t\ttongxinluguanlixitong"
\t\t-"
\n-----------------------------------------------------------------\n"
\t1.Accessinformation"
\t\t\t\t\t-\n"
\t2.displayinformation"
\t\t\t\t-\n"
\t3.modifyinformation"
\t4.Deleteinformation"
\t5.Savetheinformation"
\t5.exit"
------------------------------------------------------------------\n"
Enteryouchoice:
"
scanf("
%d"
&
a);
switch(a)
case1:
\n"
enter();
break;
case2:
display();
case3:
modify();
case4:
del();
case5:
save();
case6:
exit(0);
default:
\nThechoiceisbetween1to6.\n"
}
}while(a!
=0);
}
voidenter()
{
charch[20];
\nenterinformation:
do
{printf("
\nname:
%s"
con[k].name);
mobile:
con[k].mobile);
\nunits:
con[k].units);
\nEmail:
con[k].Email);
\nstreet:
con[k].street);
k++;
\nifwantcontinueinputstudentinformation(y/n):
ch);
}while(strcmp(ch,"
y"
)==0||strcmp(ch,"
Y"
)==0);
display();
voiddisplay()
{inti;
intm;
theinformationis:
\r-------------------------------------------------------------------------------\n\r"
\namemobileunitsEmailstreet\n"
for(i=0;
i<
k;
i++)
{printf("
%10s%15s%15s%14s%14s"
con[i].name,con[i].mobile,con[i].units,con[i].Email,con[i].street);
voidmodify()
intm,k=0;
\npleaseinputname\n"
namekey);
if((fp=fopen("
book.txt"
"
r+"
))==NULL)
{
\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)
\ntheinformationis\n"
\n%-10s%-18s%-15s%-15s%-50s"
\npleaseinputinformation:
"
%s%s%s%s%s"
fseek(fp,offset,SEEK_SET);
%ld"
ftell(fp));
fprintf(fp,"
%-10s%-20s%-15s%-15s%-50s\n"
else
\thereisnotthisperson\n"
fclose(fp);
voiddel()
inti,j;
charc[20];
\nenteryouwantdeletename:
name:
c);
if(strcmp(c,con[i].name)==0)break;
for(j=i;
j<
=2;
j++)
con[j]=con[j+1];
\t\t\tyouhaddelete%s\n"
c);
k--;
voidsave()
{FILE*fp;
inti;
w"
{printf("
cannotwritethefile.\n"
exit(0);
strlen(con[i].name)!
=0;
%s%s%s%s%s\n"
con[i].name,con[i].mobile,con[i].units,con[i].Email,con[i].street);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课程设计