通讯录课程设计资料.docx
- 文档编号:998061
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:32
- 大小:559KB
通讯录课程设计资料.docx
《通讯录课程设计资料.docx》由会员分享,可在线阅读,更多相关《通讯录课程设计资料.docx(32页珍藏版)》请在冰豆网上搜索。
通讯录课程设计资料
GuangxiUniversityofScienceandTechnology
课程设计报告
课程名称:
算法与编程综合实习
课题名称:
通讯录管理系统的设计与实现
第1部分课程设计报告…………………………………………………………3
第1章课程设计目的…………………………………………………3
第2章课程设计内容和要求…………………………………………4
2.1问题描述………………………………………………4
2.2设计要求………………………………………………4
第3章课程设计总体方案及分析……………………………………5
3.1问题分析………………………………………………5
3.2概要设计………………………………………………5
3.3详细设计………………………………………………6
3.4调试分析………………………………………………19
3.5测试结果………………………………………………19
3.6参考文献………………………………………………24
第2部分课程设计总结…………………………………………………………25
附录(源代码)……………………………………………………………………26
第1部分课程设计报告
第1章课程设计目的
1、有利于基础知识的理解
通过《初中信息技术》必修部分的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。
但是,学生对于程序、病毒的内涵,程序与文档、数据的区别,计算机运行的机理等知识内容的理解比较肤浅。
学生如果接触了程度设计,就能真正理解,从而进一步打破计算机的神秘感。
2、有利于逻辑思维的锻炼
在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。
写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。
程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。
即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。
3、有利于与其他学科的整合
在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。
在信息技术课中整合其它学科的知识,发挥信息技术的优势。
例如,在编写“一元二次方程求解”程序时,就复习了数学的相关知识。
而在讲解逻辑运算的知识时,我们又可以利用物理中的电路知识进行讲解,起到意想不到的效果。
4、有利于治学态度的培养。
程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。
因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。
这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有百折不挠品格的锻炼。
第2章课程设计内容和要求
2.1问题描述:
设计并实现一个通讯录信息系统
◆建立通讯录信息,信息包含编号、姓名、性别、电话;
◆能够提供添加、删除和修改通讯录信息的功能;
◆能够提供查询的功能;
◆能够提供性别统计的功能;
◆将通讯录保存在文件中;
◆能够输出通讯录信息。
2.2设计要求:
要求设计程序输出如下:
用链表实现学生信息管理系统,完成链表建立(至少包括50个节点),以及链表中信息(节点)的插入、查找、删除、修改、输出等操作,具体的模块要求如下(用“文本文件”按照自定义格式存储数据记录集)。
第一个模块——主函数main()实现功能:
根据菜单的选项调用各函数,并完成相应的功能。
第二个模块——Menu()实现功能:
显示提示菜单。
第三个模块——Quit()实现功能:
退出菜单。
第四个模块——Create()实现功能:
创建新的学生信息记录。
第五个模块——Add()实现功能:
增加新的学生信息记录,并返回菜单。
第六个模块——Find()实现功能:
按要求查询相关的信息,如果找到则显示该学生信息,如果未找到则提示文件中没有该信息,并返回菜单。
第七个模块——Alter()实现功能:
修改某条学生记录的信息,如果未找到要修改的学生记录,则提示系统中无此学生记录,并返回菜单。
第八个模块——Delete()实现功能:
删除某条学生记录,如果未找到要删除的学生记录,则提示该学生记录集中没有,并返回菜单。
第九个模块——List()实现功能:
能够分页显示数据记录集中的所有学生的记录。
第3章课程设计总体方案及分析
3.1问题分析:
该程序是要将几个不同功能的函数用链表串联起来,来组成一个通讯录信息系统。
因为链表能让数据既有独立性又便于数据之间的相互联系,也便于数据的添加和删除。
用模块化程序设计的理念,对几个不同功能的函数,分块处理,这样有利于后期的调试及今后对功能的完善。
菜单中的每一个选项对应着一个子程序,这个系统就由这些子程序建立起来。
下面是这个程序的大概流程图:
图3.1
3.2概要设计
1.①构建一个结构体用于建立一个链表。
②链表里面包括了要储存学生的信息的代号。
③屏幕上显示出菜单。
2.本程序包含8个函数:
(1)主函数main()
(2)手动生成输入函数intInput(Personper[],intn)
(3)自动生成输出函数voidDisplay(Personper[],intn)
(4)手动生成删除某个学生信息的函数intDelete_a_record(Personper[],intn)
(5)查询通讯录人员的函数voidQuery_a_record(Personper[],intn)
(6)修改通讯录人员的函数voidChange(Personper[],intn)
(7)性别统计的函数intsex(Personper[],intn)
(8)退出系统函数
3.3详细设计
实现概要设计中定义的所有数据类型及操作的伪代码算法
1.节点类型和指针类型
结构体里面的成员类型:
typedefstruct
{
charscore;//编号
charname[10];//姓名
charnum[15];//号码
charsex[8];//性别
}Person;声明了一个结构体类型,取名字叫Person
主函数
voidmain()//主函数
{
intn=0;
for(;;)
{
switch(menu_select())//switch开关函数
{
case1:
printf("\n\t添加记录到通讯录\n");//添加记录
n=Input(pe,n);
break;
case2:
printf("\n\t通讯录记录表\n");//显示记录
Display(pe,n);
break;
case3:
printf("\n\t从通讯录中删除记录\n");//删除记录
n=Delete_a_record(pe,n);/*删除记录*/
printf("\t");
system("pause");//从程序里调用“pause”命令;
break;
case4:
printf("\n\t在通讯录中查找记录\n");//查找记录
Query_a_record(pe,n);/*查找记录*/
printf("\t");
system("pause");
break;
case5:
printf("\n\t修改通讯录中的记录\n");//修改数据
Change(pe,n);/*修改数据*/
printf("\t");
system("pause");
break;
case6:
printf("\n\t性别统计\n");//性别统计
sex(pe,n);/*性别统计*/
printf("\t");
system("pause");
break;
case7:
printf("\n\t保存功能\n");//保存数据
WritetoText(pe,n);/*保存数据*/
printf("\t");
system("pause");
break;
case0:
printf("\n\t\t谢谢使用,再见!
\n")//结束程序
printf("\n\t\t");
system("pause");
exit(0);
}
}
}
2.通讯录信息系统的具体操作:
(1)手动输入函数:
添加:
可以添加通讯录记录,依次输入编号、姓名、性别、电话号码后,会提示是否继续添加。
intInput(Personper[],intn)//输入通讯录信息
{
inti=0;
charsign,x[10];
while(sign!
='n'&&sign!
='N')//是否继续
{
printf("\t编号:
");//提示输入编号
scanf("\t%d",&per[n+i].score);//输入编号,并存放到第n+i个人的socre字段中
printf("\t姓名:
");//提示输入姓名
scanf("\t%s",per[n+i].name);//输入姓名,赋值到name字段
printf("\t性别:
");//提示输入性别
scanf("\t%s",per[n+i].sex);//输入姓名,赋值到sex字段
printf("\t电话号码:
");//提示电话号码
scanf("\t%s",per[n+i].num);//输入电话号码,赋值到num字段
gets(x);//表示输入函数,相当于scanf("%s",x),表示输入字符串,是库函数里面的函数
printf("\n\t是否继续添加?
(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);//返回添加后的总人数
}
流程图:
①添加:
添加通讯录记录
图3.2
(2)自动生成输出函数:
输出所有通讯录里的记录。
voidDisplay(Personper[],intn)
{
inti;
printf("---------------------------------\n");/*格式*/
printf("编号姓名性别电话号码\n");
printf("----------------------------------\n");
for(i=1;i { printf("%-5d%-8s%-6s%-13s%\n",per[i-1].score,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 课程设计 资料