通讯录程序设计方案C语言课程设计方案.docx

上传人:b****3 文档编号:26795801 上传时间:2023-06-22 格式:DOCX 页数:24 大小:102.31KB
下载 相关 举报
通讯录程序设计方案C语言课程设计方案.docx_第1页
第1页 / 共24页
通讯录程序设计方案C语言课程设计方案.docx_第2页
第2页 / 共24页
通讯录程序设计方案C语言课程设计方案.docx_第3页
第3页 / 共24页
通讯录程序设计方案C语言课程设计方案.docx_第4页
第4页 / 共24页
通讯录程序设计方案C语言课程设计方案.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

通讯录程序设计方案C语言课程设计方案.docx

《通讯录程序设计方案C语言课程设计方案.docx》由会员分享,可在线阅读,更多相关《通讯录程序设计方案C语言课程设计方案.docx(24页珍藏版)》请在冰豆网上搜索。

通讯录程序设计方案C语言课程设计方案.docx

通讯录程序设计方案C语言课程设计方案

 

课程设计

课程名称

C语言程序设计课程设计

题目名称

通讯录程序设计

专业班级

2015级计算机科学与技术1班

学生姓名

 

学号

指导教师

 

二○一六年六月二十日

蚌埠学院计算机科学与技术系课程设计任务书

课程

C语言程序设计

课程设计

班级

2015级计算机科学与技术1班

指导教师

题目

通讯录程序设计

完成时间

2016年5月23日至

2016年6月19日

主要内容

要求完成以下功能:

1.系统以菜单方式工作

2.能够完成信息录入功能

3.能够完成信息浏览功能

4.能够完成信息查询功能

5.能够完成信息修改功能

6.能够完成信息退出功能

设计报告要求

1.封面:

2.课程设计任务书

3.课程设计报告:

⑴系统总体方案

⑵设计思路和主要步骤

⑶各功能模块和流程图

⑷设计代码

⑸心得体会和参考资料

说明:

学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(可以打印),文字不少于5000字,并装订成册。

版面要求

1.题目用黑体三号,段后距18磅(或1行),居中对齐;

2.标题用黑体四号,段前、段后距6磅(或0.3行);

3.正文用小四号宋体,行距为1.25倍行距;

4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。

上机时间安排

 

第14-17周,周二3-4节,周四5-6节

 

指导

地点

实验室(A502)

分工协作说明(以列表形式具体说明每个人所做的工作)

课题名称

学生姓名

学号

所做的工作

通讯录程序设计

项目框架总体设计、整体项目指导、综合设计文档编写、代码编写

需求分析、校检、打印

需求分析、校检、整理资料

部分代码编写、分模块测试

后台代码测试、部分代码编写

蚌埠学院计算机科学与技术系本科课程设计成绩评定表

项目

权重

分值

具体要求

得分

文献阅读与调查论证

0.20

100

能独立查阅文献和从事其它调研;有收集、加工各种信息的能力

设计质量

0.30

100

设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力

论文撰写质量

0.20

100

设计说明书完全符合规范化要求,用A4复印纸打印成文

学习态度

0.20

100

学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务

学术水平与创新

0.10

100

设计有创意,有一定的学术水平或实用价值

总分

评语:

 

等级:

指导教师:

年月日

一概述1

二系统分析2

㈠功能需求2

㈡性能需求4

三总体设计4

㈠功能模块设计4

㈡系统设计方案8

四运行、调试与测试8

㈠运行8

㈡调试12

㈢测试12

五结论12

参考文献13

附录-源程序13

通讯录系统

一概述

整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:

信息录入功能函数,信息浏览功能函数,信息查询功能函数,信息修改功能函数,以及信息退出函数。

1、信息录入功能函数

主要功能是从键盘输入通讯录信息并将其写入文件中,作为通讯录的信息库,以便对下面的函数进行运行,此函数是基础.

2、信息浏览功能函数

主要是进行信息浏览的功能

3、信息查询功能函数

主要实现对通讯录信息查询的功能

3、信息修改功能函数

实现的功能是实现对通讯录信息的修改;

5、信息退出函数函数

进行完信息的浏览、查询、修改,是实现信息退出功能

整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:

信息录入功能函数,信息浏览功能函数,信息查询功能函数,信息修改功能函数,以及信息退出函数。

二系统分析

㈠功能需求

设计一个通过链表实现对通讯录信息进行管理的程序,要求完成以下功能:

1、新建联系人姓名、籍贯、手机号码1、手机号码2和电子邮箱

2、删除联系人可以根据输入联系人的姓名删除查询到的联系人

3、查询联系人根据输入联系人的姓名找到该联系人

4、浏览联系人对通讯录所有联系人进行浏览

5、修改联系人可以根据输入的联系人姓名找到该联系人对其信息进行修改6、退出系统

 

通讯录

录入联系人

删除联系人

查询联系人

浏览联系人

修改联系人

保存退出系统用

联系人姓名

联系人籍贯

联系人手机1

联系人手机2

联系人邮箱

输入查询姓名

输入修改姓名

保存文件

修改籍贯

修改手机号1

修改手机号2

修改邮箱

修改姓名

 

 

图1系统功能图

 

㈡性能需求

需要向系统输入姓名、号码、电子邮箱等信息。

在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。

三总体设计

1功能模块设计

根据分析整个系统主要划分为6个功能模块,分别执行要求中的功能。

该系统需要有添加,删除,查询,修改,,循环显示主菜单,保存信息功能。

要求有循环显示菜单工能。

1、

输入选项

5修改联系人

6保存退出

4浏览联系人

3查询联系人

1录入联系人

2删除联系人

通讯录首页选择模块

 

 

图2系统首页图

 

2、录入联系人模块

选择1进入录入联系人模块

添加姓名

添加籍贯

添加手机号1

添加手机号2

添加邮箱

是否继续

 

选择“Y”

 

图3录入联系人模块

 

3、删除联系人模块

 

联系人不存在

 

联系人存在

 

选择“Y”继续操作

 

选择“N”退出

图4删除联系人模块

4、查询联系人模块

 

选择“Y”继续

 

选择“N”退出

图5查询联系人模块

5、浏览联系人模块

 

图6浏览联系人模块

6、修改联系人模块

选择5进入修改联系人模块

输入要修改的联系人姓名

输入修改后姓名

输入修改后籍贯

输入修改后手机1

输入修改后手机2

输入修改后邮箱

是否继续

 

选择“Y”继续修改

图7修改联系人模块

2系统设计方案

设计一个总菜单,1录入信息,2删除管理,3查询信息,4信息浏览,5修改信息,6退出系统。

基本功能的实现都将体现在这几个菜单选项中。

函数原型和数据结构如下:

structaddress_book//结构体//

{

charname[20];

charplace[20];

longnum1;

longnum2;

charmail[40];

}stud[200];

voidadd()//联系人添加//

voiddel()//联系人删除//

voidarrange()//联系人浏览//

voidchange()//联系人修改//

voidfind()//联系人查询//

printf("\t\t\t\t************\n");

printf("\t\t\t\t***主菜单***\n");

printf("\t\t\t\t************\n\n\n\n\n\n");

printf("\t\t1、录入联系人信息2、删除联系人信息\n\n");

printf("\t\t3、查询联系人信息4、联系人信息游览\n\n");

printf("\t\t5、修改联系人信息6、保存退出系统\n\n");

printf("\n\n\n\n\n\n\n\n\n请选择[1/2/3/4/5/6]:

");

四运行、调试与测试

1运行

1、点击运行,首先出现的是菜单界面,选择菜单选项进行操作,可进行如图8所示的系统主界面(选择数字进入,退出系统)。

图8菜单界面

2、选择1进入联系人添加系统。

可以输入想要添加的联系人姓名、籍贯、手机号码1、手机号码2、电子邮箱等信息。

输入完毕后可以选择是否退出或者进行下一次输入。

如图9所示。

图9录入功能

3、选择3,然后出现修改功能菜单。

可以输入想要修改的联系人的姓名然后找到该联系人进行修改。

可以对该联系人全部联系信息进行修改,修改完成后会出现提示修改成功。

如图10所示。

图10修改界面

4、选择4,进入联系人浏览功能,可以浏览文件保存的所有联系人姓名,籍贯、手机号码1,手机号码2,电子邮箱。

如图11所示。

图11信息浏览界面

5、选择输入3,进入查询联系人信息界面。

然后输入想要查询的联系人姓名即可查询该联系人的所有个人信息,然后系统会提示是否退出,不退出即可查询下一个联系人。

如图12所示。

图12联系人查询页面

6、输入6,退出系统,如图13所示。

图13退出系统

㈡调试

调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来说也是最艰巨的任务。

调试的任务是及时改正测试过程中发现的软件错误。

具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。

然后仔细研究推断代码以确定问题的原因,并设法改正。

调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。

本系统调试过程中遇到问题、原因和解决方法如下面介绍。

设计过程中的想法与程序中的不足

总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足。

比如,程序中主函数写的有点繁琐,有太多的嵌套,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确。

还有就是没能做到模糊查询。

系统主要是参照课本手机通讯录模版编写的,同时也得到了老师和同学的一些帮助。

我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全。

事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言的学习。

对于C语言编写的程序来说,使用方法大致都是一样的,如果要改进的话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。

㈢测试

软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。

或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。

过度测试则会浪费许多宝贵的资源。

到测试后期,即使找到了错误,然而付出了过高的代价。

 

五结论

C语言程序设计课程顺利完成,任务书中所提出的要求全部实现。

在这次课程设计中,通过编写这个图书管理系统,体会到了C语言学习的实用性。

将理论和实践结合在一起,用先进的计算机工具方便人们的生活。

C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。

编写的程序从理论上来说并没有错,但一上机就问题不断。

甚至有些课本上的知识照搬不变,也不能得到正确的结果。

有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试时却屡屡出错。

经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切都是值得的。

开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求和现实意义。

不管什么系统,只用运用到实际应用中,才具有现实意义。

所以C语言程序的实用性很强,我们以后还要更加努力认真地学习编程语言。

 

参考文献

[1]谭浩强.程序设计[M],北京:

北京大学出版社,1999.236-249.

[2]徐孝凯,魏荣.数据结构[M],机械工程出版社,1996:

121-132.

[3]耿国华.数据结构-C语言描述[M],北京:

高等教育出版社,2008:

248-253.

[4]杨路明.C语言程序设计教程[M],北京:

北京邮电大学出版社.2005:

170-186.

 

附录-源程序

#include

#include

#include

intn=0,i;

structaddress_book

{

charname[20];

charplace[20];

longnum1;

longnum2;

charmail[40];

}stud[200];

voidadd()

{

charj;

front1:

printf("\n请输入要添加的姓名:

");

scanf("%s",stud[n].name);

printf("\n请输入要添加的籍贯:

");

scanf("%s",stud[n].place);

printf("\n请输入要添加的电话号码一:

");

scanf("%s",&stud[n].num1);

printf("\n请输入要添加的电话号码二:

");

scanf("%s",&stud[n].num2);

printf("\n请输入要添加的电子邮箱:

");

scanf("%s",stud[n].mail);

getchar();

n++;

printf("是否继续(Y/N)?

");

j=getchar();

getchar();

if(j=='y'||j=='Y')gotofront1;//再次输入记录//

}

voiddel()

{

intk=0,i;

charm[20];

charj;

front2:

printf("\n请输入要删除的联系人:

");

gets(m);

getchar();

for(i=0;i

if(strcmp(m,stud[i].name)==0)

{

k=1;

break;

}

if(k==1)//删除记录//

{

for(k=i;k

stud[k]=stud[k+1];

n--;

printf("已删除\n\n");

}

else

{

printf("找不到要删除的记录:

\n");

printf("按回车键返回:

");

getchar();

}

printf("是否继续(Y/N)?

");

j=getchar();

getchar();

if(j=='y'||j=='Y')gotofront2;

getchar();

}

voidarrange()

{

intk,i;

structaddress_bookt;

printf("姓名籍贯电话号码一电话号码二电子邮箱\n");

for(k=0;k

for(i=0;i

if(strcmp(stud[i].name,stud[i+1].name)<0)

{

t=stud[i];

stud[i]=stud[i+1];

stud[i+1]=t;

}

for(i=0;i<=n-1;i++)

printf("%-10s%-8s%-15ld%-15ld%-20s",stud[i].name,stud[i].place,stud[i].num1,stud[i].num2,stud[i].mail);

printf("按回车键返回!

");

getchar();

getchar();

}

voidchange()

{

intk=0;

charj,m[20];

front5:

printf("\n请输入要修改记录的姓名:

");

scanf("%s",m);

getchar();

for(i=0;i

if(strcmp(m,stud[i].name)==0)

{

k=1;

break;

}

if(k==1)

{

printf("\n");

printf("\n请输入修改后的姓名:

");

scanf("%s",stud[i].name);

printf("\n请输入修改后的籍贯:

");

scanf("%s",stud[i].place);

printf("\n请输入修改后的电话号码一:

");

scanf("%d",&stud[i].num1);

printf("\n请输入修改后的电话号码二:

");

scanf("%d",&stud[i].num2);

printf("\n请输入修改后的电子邮箱:

");

scanf("%s",stud[i].mail);

printf("修改成功\n");

getchar();

}

if(k==0)

{

printf("找不到要修改的记录!

\n");

printf("按回车键返回:

");

getchar();

}

getchar();

printf("是否继续(Y/N)?

");

j=getchar();

getchar();

if(j=='y'||j=='Y')gotofront5;

}

voidfind()

{

intk=0;

charj,m[20];

front3:

printf("\n请输入要修改记录的姓名:

");

scanf("%s",m);

getchar();

for(i=0;i

if(strcmp(m,stud[i].name)==0)

{

k=1;

break;

}

if(k==1)

{

printf("姓名籍贯电话号码一电话号码二电子邮箱\n");

printf("%-10s%-8s%-15ld%-15ld%-20s",stud[i].name,stud[i].place,stud[i].num1,stud[i].num2,stud[i].mail);

}

else

{

printf("找不到该联系人!

请重新输入!

按回车返回!

");

getchar();

gotofront3;

}

printf("是否继续(Y/N)?

");

j=getchar();

getchar();

if(j=='y'||j=='Y')gotofront3;

}

voidmain()

{

charj;

loop:

printf("\n");

printf("\t\t\t\t************\n");

printf("\t\t\t\t***主菜单***\n");

printf("\t\t\t\t************\n\n\n\n\n\n");

printf("\t\t1、录入联系人信息2、删除联系人信息\n\n");

printf("\t\t3、查询联系人信息4、联系人信息游览\n\n");

printf("\t\t5、修改联系人信息6、保存退出系统\n\n");

printf("\n\n\n\n\n\n\n\n\n请选择[1/2/3/4/5/6]:

");

j=getchar();

if(j=='\n')gotoloop;//返回主菜单//

switch(j)

{

case'1':

add();gotoloop;//返回主菜单//

case'2':

del();gotoloop;

case'3':

find();gotoloop;

case'4':

arrange();gotoloop;

case'5':

change();gotoloop;

case'6':

{

FILE*fp;

fp=fopen("student.dat","w");

for(i=0;i

fwrite(&stud[i],sizeof(structaddress_book),1,fp);

fclose(fp);

exit(0);

}

default:

gotoloop;

}

}

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

当前位置:首页 > 初中教育 > 其它课程

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

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