[计算机]同学通讯录信息管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:同学通讯录信息管理
一、课程设计时间
2010~11第2学期第15周,即6月13日~6月17日,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
能够对同学的通讯录信息进行数字化管理,人数不少于五人。通讯信息应保存到文件myfile.dat中。
三、课程设计要求
程序质量:
✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“同学信息录入”、“同学信息修改”“同
学信息查询(根据姓名,或编号等)”、“显示全部同学信息”、“退出”
5项
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容
参见提供的模板。
四、指导教师和学生签字
指导教师:________ 学生签名:________
五、成绩
六、教师评语
目录
一、需求分析 (1)
二、设计分析 (3)
三、主要界面截图 (12)
四、技术要点 (16)
五、个人总结 (17)
六、参考文献 (19)
七、源程序 (19)
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,
其中每个程序对应一个函数,他们的功能分别是:同学信息录入,同学信息修改,同学信息查询,显示全部同学信息以及退出保存。在这些函数中,前两个函数的实现是整个程序的核心,较为复杂。
1. 同学信息录入主要实现程序最初运行时学生通讯录的录入以及其后的运行中学生通讯录的追加功能。
2. 同学信息修改实现的功能是将错误的同学信息进行修改,加以完善
3. 显示学生通讯录主要功能是将学生的全部通讯录信息显示出来。
4同学信息查询实现的功能是按照学号或姓名对学生的通讯录记录进行查询。
5保存退出实现功能为将通讯录进行保存到文件中,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个学生记录都包含学号、姓名、电话、地址、邮编等,在程序当中,将学生通讯录类型定义为结构体类型,添加以及追加的学生通讯录信息现存入结构体数组中,再在save函数中写入D盘的myfile.dat文件中,其他函数每次对学生通讯录的访问,其数据来源都是结构体数组并可以对学生数据进行永久保存。
二、设计分析
主要有6个功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下;
录入函数(newrecord),查询函数(searchmenu),修改函数(change)添加函数(addrecord),写入函数(writetofile),以及显示目录的主函数(main)。
程序总体结构流程
1、主函数流程
void main()
{
readfromfile();
while (1)
{
mainmenu();
}
}
主函数流程图
2、主要功能流程
(1、)void mainmenu()//主菜单
{
char choic;
system("cls");
printf("\n\t\t******************** 主菜单********************");
printf("\n\t\t*********** 1-同学信息录入2-同学信息查询**************");
printf("\n\t\t*********** 3-同学信息修改4-显示全部同学信息*************");
printf("\n\t\t*********** 5-保存退出**************************");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:");
choic=getch();
switch (choic)
{
case '1':newrecord();break;
case '2':searchmenu();break;
case '3':change();break;
case '4':showall();break;
case '5':writetofile();break;
default:mainmenu();
}
}
执行主菜单流程图(2)学生信息录入函数(newrecord)
该函数就是将学生通讯录信息存在结构体中,实现多名学生信息录入,具体程序如下
void newrecord()//添加纪录
{
printf("\n\t\t**************** 请输入学生信息****************\n");
printf("\n\t\t输入学号:");
scanf("%s",&student[num].id);
printf("\n\t\t输入姓名:");
scanf("%s",&student[num].name);
printf("\n\t\t输入电话号码:");
scanf("%s",&student[num].phone);
printf("\n\t\t输入地址:");
scanf("%s",&student[num].adress);
printf("\n\t\t输入邮编:");
scanf("%s",&student[num].postcode);
printf("\n\t\t输入e-mail:");
scanf("%s",&student[num].e_mail);
num++;
printf("\n\t\t是否继续添加?(Y/N):");