程序实践报告Word文档下载推荐.doc
《程序实践报告Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《程序实践报告Word文档下载推荐.doc(51页珍藏版)》请在冰豆网上搜索。
![程序实践报告Word文档下载推荐.doc](https://file1.bdocx.com/fileroot1/2022-10/19/6dc91cd7-c89a-4b74-85b8-0030e9fa75a8/6dc91cd7-c89a-4b74-85b8-0030e9fa75a81.gif)
4.为保护文件不被破坏还要进行数据备份。
软件的约束条件:
适用于所有系统。
三.总体设计:
考虑到通信录应用在不同方面,会有一些功能上的差异,我们组选取了通讯录最基本的功能,作为我们组通讯录的主要功能。
考虑到不同功能之间的联系和差异,我们组先把所有功能分成了两大类:
联系人管理和系统设置。
我们组采用由粗到细、层层细化的设计方法,使各个功能间的关系清晰紧密,进而更好的实现软件功能的可用性、可靠性。
为了更好地实现功能的调用,我们组添加了一个退出功能。
该软件主要运用了:
结构体和链表两大数据结构;
通过链表和数据结构实现了联系人信息文件存储,联系人的排序、添加、删除和查找。
基本结构体如下:
:
structinfor{charname[10];
charsex[6];
longtele;
longpost;
longQQ;
longtex;
charadd[20];
longbirth;
structinfor*next;
};
联系人信息结构体
以下便是我组通信录的总体模块结构图:
登录系统
联系人管理
添加联系人
查找联系人
删除联系人
创建新联系人文件(用于分组)
设置密码
数据
备份
退出
系统
退出功能
输出所有联系人信息
返回上一界面
创建新文件
删除相应联系人
输出被查找联系人信息
录入联系人信息
密码设置
该软件主要功能有:
1.联系人管理(用于显示文件所有联系人)2.添加联系人3.查找联系人4.创建联系人文件(用于分组)5.删除联系人6.设置密码7.数据备份8.退出系统
其中:
4,创建联系人文件(用于分组)5,删除联系人6,设置密码7,数据备份功能由我负责。
在设计创建联系人功能时,我解决了联系人信息排序的问题;
在设计密码设置功能时,我解决文件查找和文件名如何设置的问题。
四.详细设计
1.创建联系人文件功能
数据结构:
链表,结构体
运行结果如下:
此功能算法流程图如下:
开始
“cont“=>
e[10]
0=>
n,0=>
i
输入文件名
能否打开文件NO
退出系统
YES
输入联系人信息=>
b[i]
n=n+1,i=i+1
输出:
“停止:
stop;
继续:
cont“
输入:
e
NOe=stop
YES
NO i<
n
YES
&
b[i]=>
p
i+1=>
j
j<
n NO
YES
b[i].name>
b[j].nameNO
b[j]=>
j=j+1
NO p!
=&
YES
b[i]=>
a,b[j]=>
b[i],
a=>
b[j]
将b[i]存入文件
1 i=i+1
1
输出文件已保存
结束
2.数据备份功能
结构体
此功能算法流程图如下:
开始
输入需备份和备份文件名
以读方式打开需备份文件
以写方式打开备份文件
能否打开文件 NO 退出系统
YES
文件是否为空YES
NO
从需备份文件读出一人信息=>
a
将a赋给备份文件
文件已备份
结束
3.修改密码功能
字符数组
开始
以只写方式打开存放密码文件
输出“请输入新密码”
输入新密码=>
输出“请再次输入以确认”
再次输入=>
b
NO a=b
输出“重新设置:
1;
退出:
0”
输入:
为:
1输入为1其他
输入为0
为:
输出返回上一界面
结束
4.删除联系人功能
输入所需处理文件名
以只读方式打开该文件
文件是否能打开 NO
YES
YES 文件是否为空
NO
读出一人信息赋给
a[i]
i=i+1
将结构体赋给一链表
输出删除
人姓名
NO 通过链表查找
是否存在该人
输出“删除联
系人不存在” 以只写方式再次打开
文件并存入链表
输出联系人已删除
五.程序调试与测试
1.在我的模块完成过程中,记忆最深的就是在创建联系人文件时出现的错误,因为存了几个人的信息,只有一个人的信息被完整存放,自己找了一下午也没发现原因。
后来经过与书上用到的选择排序法比较,才发现原来自己在这部分,少了一个变量互换步骤,才顺利完成此功能。
2.第二个问题是,在修改密码时,如果稍长,无法正常完成密码验证,总还是输对了还显示密码错误。
经过与老师交流,将变量先赋初值在验证就成功了。
六.总结与体会
该软件基本上实现了作为通讯录的本功能,与其他同学程序相比,我组的特点是:
带有“退出功能“这项功能函数,实现了各个功能间的方便转换,还带有密码重新设置功能。
缺点是没能列出所有存放联系人信息的文件名,只一点带来了些不便。
而在设计过程中最大的困难就是不会使用文件,后来经过复习,实践问老师就解决了。
心得体会:
要完成一件事就要有勇气去了解与他相关的全部,这样才会实现目标。
编程让我做事时更加积极,更加愿意付出,虽然累但很充实。
以后遇到问题我会变得等价积极。
七.结束语
经过几周的编程终于有了自己的成果,在这期间,问了老师不少次问题,真的很感谢老师耐心的帮助。
老师的耐心也极大地鼓舞了我编程的信心,也引起了我对编程更大的兴趣。
与老师相互讨论,真的很感动,第一次那么近的接触老师。
八.程序源代码
#include<
stdio.h>
#include<
malloc.h>
string.h>
stdlib.h>
#defineLENsizeof(structinfor)
#defineN10
#defineCCH'
\n'
structinfor/*定义结构体*/
{charname[10];
};
intn=0;
/*************************************************输出标题功能子函数**********************************/
voidprintf3()
{printf("
^~^~^~^~^~^~^~^~^~^~^~^~^~^~^\n"
);
printf("
<
<
通讯录>
>
\n"
}
voidprintf4()
{printf("
===================================================\n"
printf("
****1.联系人管理****\n"
****2.添加联系人****\n"
****3.查找联系人****\n"