文档介绍:目录
目录 2
一、课程设计的目的与要求 3
二、题目说明 4
4
4
三、总体设计 5
: 5
: 6
四、详细说明 7
系统实施 7
五、遇到的问题和解决方法 10
六、课程设计总结 11
七、参考文献 12
(源程序代码) 13
一、课程设计的目的与要求
目的:
进一步加深,巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题的能力,掌握运用C语言独立地编写,调试应用程序和进行其他相关设计的技能。同时也加深自己对C语言程序的运用,更灵活的掌握C语言。
要求:
1. 要求利用C语言面向过程的编程思想来完成系统的设计;
2. 突出C语言的函数特征,以多个函数实现每一个子功能;
3. 画出功能模块图;
4. 进行简单界面设计,能够实现友好的交互;
5. 具有清晰的程序流程图和数据结构的详细定义;
6. 熟练掌握C语言对文件的各种操作。
二、题目说明:
。本程序是一个通讯录管理系统, 对通讯录进行管理,通讯录的记录包括编号,姓名,年龄,电话,通讯地址,电子邮箱等。输入这些信息,本程序可以记录,保存。通过本程序可以实现对人员的记录,管理,满足用户的需求,提供一个电子化的通讯录管理系统
本系统开发利用Turbo 。Turbo ,它具有清晰,直观,简单易用,功能较强等特点,并把程序的编辑,编译,调试,连接和运行等操作全部集中在一个界面上进行,使用十分方便,灵活。
三:总体设计
系统结构图:
主菜单
添加
显示
删除
查询
修改
保存
图3-1
添加:可以添加通讯录记录,依次输入编号,姓名,年龄,电话,通讯地址,电子邮箱后,会提示是否继续添加;
显示:可以用表格形式输出所有通讯录里的记录;
删除:输入欲删除的那个人的名字后,会自动删除关于他(她)的记录:
查询:可以选择用姓名,电话,地址三种方式查询。
修改:输入欲修改的那个人名字后,再依次输入编号,姓名,年龄,电话,通讯地址,电子邮箱即可完成修改;
保存:输入文件名(带后缀名)后,即可将通讯录信息保存到文件。
软件流程图
Rji开始
i=0
Sign1=‘n‘&&sign1=’n‘
输入信息
Return(n=1)
结束
图3-2
系统实施
:
. 函数功能:向链表的末尾添加从键盘输入通讯录的记录中的编号,姓名,年龄,电话,通讯地址,电子邮箱后,;
函数参数:结构体指针head,指向通讯录的记录中的编号,姓名,年龄,电话,通讯地址,电子邮箱后,;
图4-1
int Appendscore(STU *head,int n,int m)
{
int j;
STU *p;
char ch;
for (p=head+n;p<head+STU_NUM;p++)
{
printf("\ninput number:"); /*输入学号*/
scanf("%d",&p->number);
printf("input name:"); /*输入姓名*/
scanf("%s",p->name);
for (j=0;j<m;j++)
{
printf("input score%d:",j+1); /*输入成绩*/
scanf("%d",p->score+j);
}
n++;
printf("Do you want to append a new node(Y/N)?");
scanf("%c",&ch);
if(ch=='n'||ch=='N') return n;
}
:
函数功能:用选择法编号,姓名,年龄,电话,通讯地址,电子邮箱后,;
函数参数:结构体指针head,指向编号,姓名,年龄,电话,通讯地址,电子邮箱后,;
图4-2
void SortScore(STU *head,int n)
{
int i,j,k;
STU temp;
for (i=0;i<n-1;i++)
{
k=i;
for (j=i;j<n;j++)
{
if ((head+j)->average > (head+k)->average)
{
k=j;
}
}
if (k!=j)