C语言课程设计通讯录管理系统Word格式文档下载.docx

上传人:b****6 文档编号:16325698 上传时间:2022-11-22 格式:DOCX 页数:28 大小:24.96KB
下载 相关 举报
C语言课程设计通讯录管理系统Word格式文档下载.docx_第1页
第1页 / 共28页
C语言课程设计通讯录管理系统Word格式文档下载.docx_第2页
第2页 / 共28页
C语言课程设计通讯录管理系统Word格式文档下载.docx_第3页
第3页 / 共28页
C语言课程设计通讯录管理系统Word格式文档下载.docx_第4页
第4页 / 共28页
C语言课程设计通讯录管理系统Word格式文档下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言课程设计通讯录管理系统Word格式文档下载.docx

《C语言课程设计通讯录管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计通讯录管理系统Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。

C语言课程设计通讯录管理系统Word格式文档下载.docx

3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)

4.设计完成的软件要便于操作和使用

5.设计完成后提交课程设计报告(请严格按照模板进行排版)

四、进度安排

第一天?

选择课程设计题目,分析课题的要求

第二天?

编程

第三天?

编程及调试

第四天?

写课程设计报告

第五天?

提交课程设计报告(打印稿及电子稿)

五、评分标准

1.根据平时上机考勤、表现和进度,教师将每天点名和检查

2.根据课程设计完成情况,必须有可运行的软件。

3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。

六、建议参考资料

1.《C语言程序设计》,谭浩强,清华大学出版社

2.《C语言程序设计课程设计》,刘振安,机械工业出版社。

内蒙古科技大学课程设计任务书I

目录III

第一章需求分析3

引言3

任务概述3

数据描述3

功能需求3

性能需求4

运行需求4

任务计划4

第二章概要设计11

总体设计11

数据类型设计(或数据结构设计)11

接口设计12

运行界面设计12

第三章详细设计17

输入模块设计17

输出模块设计18

查找模块设计19

删除模块设计24

保存及读取模块设计25

第四章测试分析37

测试程序执行情况37

出现的问题和解决的方法54

第五章课程设计总结56

附录:

程序代码57

参考文献86

致谢87

第一章需求分析

1.1引言

通过程序设计,达到理论与实际应用相结合,提高对信息管理系统的分析能力,能够根据实际应用,初步实现系统功能模块及算法的设计,通过编程基本实现信息管理系统。

1.2任务概述

1.采用结构体的形式对数据进行输入输出。

2.可以对通讯录进行简单的排序,筛选,删除。

3.可以对任意信息就行修改。

4.可以把数据已文件的形式输入输出。

5.任意浏览信息。

1.3数据描述

以所示的文本数据位初始数据进行简单操作,也可另行添加。

1.4功能需求

实现以上功能需求。

1.5性能需求

1.能够进行简单的数据处理。

2.具有对新信息处理打印打能力。

1.6运行需求

1.输入个人信息时以例如按照“编号、姓名、年龄、电话号码、通讯地址、电子邮箱”的顺序输入。

2.输入时编号年龄、电话号码、通讯地址、电子邮箱以数字格式输入,输入姓名以文字输入。

3.以(Y/N)形式判断时,仅限N或者n为否,其他字符真。

4.进入排序功能后,要想见排序信息,到主菜单下见浏览信息功能。

1.7任务计划

1.样例输入和输出

2.本通讯录管理程序,可以对数据进行输入输出,集排序,修改,打印,删除等功能。

下面以上述数据描述的数据为测试数据进行简单输入输出。

——1.未排序前的信息

4).删除界面:

删除后,通讯录里的显示记录:

5).查询界面:

以姓名查询方式为例:

6).修改界面:

修改后,通讯录里的显示记录:

7).保存界面:

文件截图:

第二章概要设计

2.1总体设计

添加:

可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。

显示:

可以以表格形式输出所有通讯录里的记录

删除:

输入欲删除的那个人的名字后,会自动删除他(她)的记录内容

查询:

可以选择用姓名、电话、地址三种方式查询

修改:

输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改

保存:

,输入文件名(带后缀名)后,即可将通讯录信息保存到文件

2.2数据类型设计(或数据结构设计)

typedefstruct

{

charscore;

/*编号*/

charname[10];

/*姓名*/

charnum[15];

/*号码*/

charemail[20];

/*邮箱*/

charage[8];

/*年龄*/

charadds[20];

/*住址*/

}Person;

以结构体数组类型输入数据。

2.3接口设计

表:

函数列表

函数名

函数首部

函数功能

intmenu_select()

void

运行界面

intInput

(Personper[],intn)

int

输入函数

voidDisplay

(Personper[],intn)

Void

输出函数

intDelete_a_record

删除数据

voidQuery_a_record

查询数据

voidChange

更改数据

voidWritetoText

把数据写到文件

2.4运行界面设计

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);

}

}

}

以switch为关键控制选着要调用函数的开关,然后以主菜单为主界面,其他功能为扩展界面来运行通讯录管理系统。

主菜单代码为:

charc;

do{

cls"

\t\t*****通讯录*****\n"

\t\t|----------------------------------|\n"

\t\t│1.添加记录│\n"

\t\t│2.显示记录│\n"

\t\t│3.删除记录│\n"

\t\t│4.查询记录│\n"

\t\t│5.修改记录│\n"

\t\t│6.保存记录│\n"

\t\t│0.退出程序│\n"

\t\t\|----------------------------------|n"

\t\t请您选择(0-6):

"

c=getchar();

}while(c<

'

0'

||c>

6'

return(c-'

如图所示为主要运行界面:

第三章详细设计

3.1输入模块设计

intInput(Personper[],intn)

{

inti=0;

charsign,x[10];

while(sign!

='

n'

&

sign!

N'

\t编号:

scanf("

\t%d"

&

per[n+i].score);

\t姓名:

\t%s"

per[n+i].name);

\t年龄:

per[n+i].age);

\t电话号码:

per[n+i].num);

\t通讯住址:

per[n+i].adds);

\t电子邮箱:

per[n+i].email);

gets(x);

\n\t是否继续添加?

(Y/N)"

\t%c"

sign);

i++;

return(n+i);

}

3.2输出模块设计

voidDisplay(Personper[],intn)

inti;

printf("

----------------------------------------------------------------------\n"

/*格式*/

编号姓名年龄电话号码通讯地址电子邮箱\n"

for(i=1;

i<

n+1;

i++)

%-5d%-8s%-6s%-13s%-15s%-15s\n"

per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email);

if(i>

1&

i%10==0)

{

printf("

\t-----------------------------------\n"

system("

system("

3.3查找模块设计

voidQuery_a_record(Personper[],intn)

intm;

\t\n请选择查询方式:

\t┌──────┐\n"

\t│1------姓名│\n"

\t│2------电话│\n"

\t│3------地址│\n"

\t│4------返回│\n"

\t└──────┘\n"

请选择:

scanf("

%d"

m);

while(m!

=1&

m!

=2&

=3&

=4)

输入错误,请重新选择:

}

if(m==1)

{

chars[20];

inti=0;

\t请输入想查询的姓名:

s);

while(strcmp(per[i].name,s)!

=0&

n)i++;

if(i==n)

\t通讯录中没有此人!

return;

\t此人编号:

%d\n"

per[i].score);

\t此人年龄:

%s\n"

per[i].age);

per[i].num);

\t通讯地址:

per[i].adds);

per[i].email);

};

if(m==2)

\t请输入想查询的电话:

while(strcmp(per[i].num,s)!

\t此人姓名:

per[i].name);

if(m==3)

\t请输入想查询的地址:

while(strcmp(per[i].adds,s)!

3.4删除模块设计

intDelete_a_record(Personper[],intn)

chars[20];

inti=0,j;

\t请输入想删除记录中的名字:

%s"

while(strcmp(per[i].name,s)!

if(i==n)

return(n);

for(j=i;

j<

n-1;

j++)

strcpy(per[j].num,per[j+1].num);

strcpy(per[j].name,per[j+1].name);

strcpy(per[j].age,per[j+1].age);

strcpy(per[j].adds,per[j+1].adds);

strcpy(per[j].email,per[j+1].email);

per[j].score=per[j+1].score;

\t\t\t已经成功删除!

return(n-1);

3.5更改模块设计

voidChange(Personper[],intn)

\t请输入想修改的记录中的名字:

return;

per[i].score);

\t修改成功!

保存模块设计

voidWritetoText(Personper[],intn)

FILE*fp;

/*定义文件指针*/

charfilename[20];

/*定义文件名*/

\t保存到文件\n"

/*输入文件名*/

\t请输入所保存的文件名:

filename);

if((fp=fopen(filename,"

w"

))==NULL)

\t无法打开文件\n"

fprintf(fp,"

******************************************通讯录******************************************\n"

------------------------------------------------------------------------------------------\n"

while(i<

n)

fprintf(fp,"

%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n"

per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email);

***************************************共有%d条记录****************************************\n"

n);

fclose(fp);

/*关闭文件*/

保存成功!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1