C语言设计报告Word格式.docx
《C语言设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《C语言设计报告Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
添加、修改
王海婷
查询、删除
目录
1前言2
2需求分析2
3模块设计图5
4NS流程图清单2
5存储结构及函数说明13
6课程设计结果15
7实践心得体会..........................24
1前言
该章主要描述课程设计的目的,以及对题目本身的理解。
课程设计的目的
1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、
存储结构和操作实现算法,以及它们在程序中的使用方法。
2)使学生掌握设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。
3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计
的基本能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)
2需求分析
设计题目及要求:
◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;
◆能够提供添加、删除和修改通讯录信息的功能;
◆能够提供安不同方式查询的功能;
如按姓名或年龄、电话等查询;
◆将通讯录保存在文件中;
◆能够按表格方式输出通讯录信息。
系统功能需求分析
主要包含一下多种功能:
添加:
添加通讯录记录
显示:
显示通讯录记录
删除:
删除通讯录记录
查询:
查询通讯录记录
修改:
修改通讯录记录
保存:
将信息保存到文件
1概要设计
系统功能模块图:
可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。
可以以表格形式输出所有通讯录里的记录
输入欲删除的那个人的名字后,会自动删除他(她)的记录内容
可以选择用姓名、电话、地址三种方式查询
输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改
,输入文件名(带后缀名)后,即可将通讯录信息保存到文件
2.详细设计
(1).通讯录:
typedefstruct
{
charscore;
/*编号*/
charname[10];
/*姓名*/
charnum[15];
/*号码*/
charemail[20];
/*邮箱*/
charage[8];
/*年龄*/
charadds[20];
/*住址*/
}Person;
voidmain()/*主函数*/
{
intn=0;
for(;
;
)
switch(menu_select())
{
case1:
printf("
\n\t添加记录到通讯录\n"
);
/*添加记录*/
n=Input(pe,n);
break;
case2:
\n\t\t\t通讯录记录表\n"
/*显示记录*/
Display(pe,n);
case3:
\n\t从通讯录中删除记录\n"
n=Delete_a_record(pe,n);
/*删除记录*/
\t"
system("
pause"
case4:
\n\t在通讯录中查找记录\n"
Query_a_record(pe,n);
/*查找记录*/
case5:
\n\t修改通讯录中的记录\n"
Change(pe,n);
/*修改数据*/
case6:
\n\t保存功能\n"
WritetoText(pe,n);
/*保存数据*/
case0:
\n\t\t谢谢使用,再见!
\n"
/*结束程序*/
\n\t\t"
exit(0);
}
}
}
3.模块设计图
①添加:
②显示:
③删除:
删除通讯录记录④查询:
先选择查询方式,以姓名查询方式为例
⑤修改:
4.NS流程图
5存储结构及函数说明
在本章中主要描述系统中主要信息的存储结构,对于各模块中通用的信息尽量采用同一存储结构,并将共同的存储结构保存成头文件,以便于各模块调用。
对于各模块出现的函数要加以详细说明,特别是函数功能,其中包括函数形参和返回值代表的含义
一存储结构
系统中,通讯录信息采用自定义person的结构体(per[80]),将录入的通讯录信息保存在文件“C语言小组通讯录.txt”中转到硬盘中储存,便于各个程序功能使用。
头文件的变量分别有以下定义:
charscore表示编号。
charsex[10]表示性别。
charname[20]表示名字。
charadds[20]表示通讯地址。
charnum[20]表示电话号码。
charqq[20]表示QQ号。
charemail[20]表示电子邮箱。
1系统主菜单:
用户界面用switch函数实现。
用户进入系统主菜单,可以按提示进行选择,从而完成不同的任务,此功能在显示子程序中实现。
2添加记录:
用voidInput()函数实现。
通过while的循环函数输入各人的编号、姓名、年龄、电话号码、QQ号、通讯地址、电子邮箱、性别等信息,通过gets(x)判断是否继续添加,系统会以文件形式存储,以便进行管理,可将通讯录信息整合成结构体。
3显示记录
通过voidDisplay()函数实现,用for循环结构显示各项信息。
另外,通过条件判断结构中的system(“pause”)来延长显示信息的时间。
其中,i控制循环。
4删除信息:
用voidDelete()函数实现。
用户根据提示信息输入想要删除的记录中的名字,通过while循环来判断通讯录中是否有此人。
查找到此人的全部信息并将该信息全部删除。
其中i,j控制循环;
strcpy表示将下一个信息复制到想要删除的信息上面。
这样就实现了信息的删除。
s[20]表示输入的姓名。
5查询记录:
用voidQuery_a_record()函数实现。
通过函数中的各while循环结构判断是否输入错误以及是否有此人。
操作正确后输入想要查询的人的名字或电话号码或地址方式进行查询,在学生文件中查找到该信息并显示出来。
其中,m控制选择方式,i控制循环结构。
6修改记录:
用voidChange()函数实现。
通过while循环里的条件来判断通讯录中是否有此人,用户根据提示信息输入想要修改的各项信息。
每输入完一项信息后,以回车键结束,修改完以后所要修改的信息就会自动保存。
接下来再根据提示完成其他操作。
其中i控制循环;
s表示输入想修改的记录中的名字。
7.保存记录
通过while循环来将通讯录中的信息保存到文件指针所指的文件当中。
再通过fclose关闭文件。
8退出程序:
用exit(0)函数实现。
完成你所需完成的任务之后并退出到系统主菜单,按任意键退出程序。
6课程设计结果
程序代码不需要在报告中列出,以附件的方式给出即可,在该部分中可以说明附件的数量和附件程序的功能,其次可将系统实现的主要功能以图片方式列出。
如题:
可对课程设计中出现的问题和解决方法加以描述。
测试:
1).显示的主菜单界面
2).添加界面:
3).显示界面:
4).删除界面:
删除后,通讯录里的显示记录:
5).查询界面:
以姓名查询方式为例:
6).修改界面:
修改后,通讯录里的显示记录:
7).保存界面:
文件C语言小组通讯录.txt
退出程序:
7实践心得体会
这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。
自己动手,自己发现和解决问题。
在这个过程当中,发现了自己的许多不足。
平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。
我相信在以后的学习能够解决好它们。
但是,收获还是不小的,我们不仅对C的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格式。
当我们选择通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。
当然还有不少文件的读写问题,不过还是通过不断测试之后顺利解决了。
另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心,有时while和do-while的区别也是十分重要的。
当我在进行删除、查询、修改、保存等功能时,以查询为例,输入名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。
因此,向别人请教后,在一些地方加入了system("
这个语言,用来对某项操作完成后进行暂停。
现在这个程序的界面个人感觉很清爽。
但在最初,每次进行一项操作,运行窗口里的内容会一直保留着,感觉很杂乱,如下图(添加后,进行显示操作):
之后,我去网上寻求解决办法,知道可以使用system("
cls"
这一语句可以解决这个问题,最后修改成功。
另外我们还领悟到,教材上和老师教的内容是有限的,我们需要不断地靠自己去学习,不断地查阅资料,向他人请教,了解和掌握更多的知识,这样我们才能编出更好更实用的C程序。
总体来说,这次C语言程序设计实验还是比较成功的,虽然最终程序还存在一些不足和缺陷。
例如,在修改信息的时候,不能只针对其中的一项信息进行修改,要对全部的信息再重新输入一遍。
但是能编出这样一个可以运行的正确程序还是比较欣慰的。
这也为我们以后的编程工作打下了一个基础吧。
最后,要感谢学校为我们提供这次实验机会,也要感谢老师的教导和同学们对我小组的帮助与支持。
组内成员:
段慧洁张孟梁淑华王海婷