C语言程序设计小组.docx

上传人:b****1 文档编号:14515793 上传时间:2023-06-24 格式:DOCX 页数:23 大小:448.44KB
下载 相关 举报
C语言程序设计小组.docx_第1页
第1页 / 共23页
C语言程序设计小组.docx_第2页
第2页 / 共23页
C语言程序设计小组.docx_第3页
第3页 / 共23页
C语言程序设计小组.docx_第4页
第4页 / 共23页
C语言程序设计小组.docx_第5页
第5页 / 共23页
C语言程序设计小组.docx_第6页
第6页 / 共23页
C语言程序设计小组.docx_第7页
第7页 / 共23页
C语言程序设计小组.docx_第8页
第8页 / 共23页
C语言程序设计小组.docx_第9页
第9页 / 共23页
C语言程序设计小组.docx_第10页
第10页 / 共23页
C语言程序设计小组.docx_第11页
第11页 / 共23页
C语言程序设计小组.docx_第12页
第12页 / 共23页
C语言程序设计小组.docx_第13页
第13页 / 共23页
C语言程序设计小组.docx_第14页
第14页 / 共23页
C语言程序设计小组.docx_第15页
第15页 / 共23页
C语言程序设计小组.docx_第16页
第16页 / 共23页
C语言程序设计小组.docx_第17页
第17页 / 共23页
C语言程序设计小组.docx_第18页
第18页 / 共23页
C语言程序设计小组.docx_第19页
第19页 / 共23页
C语言程序设计小组.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计小组.docx

《C语言程序设计小组.docx》由会员分享,可在线阅读,更多相关《C语言程序设计小组.docx(23页珍藏版)》请在冰点文库上搜索。

C语言程序设计小组.docx

C语言程序设计小组

1.

BeijingInstituteofPetrochemicalTechnology

高级语言(C)课程设计

 

题目:

小型通讯录设计

 

院(系、部):

信息工程学院

姓名:

李海霞(52)

孙琳(23)

班级:

电112

指导教师签名:

2012年7月4日·北京

 

一、任务书*************************************2

二、小组成员情况*******************************2

三、总体设计***********************************2

四、模块划分及功能*****************************3

五、算法说明***********************************4

六、框架图*************************************6

七、流程图*************************************8

八、源程序清单*********************************12

九、程序测试***********************************26

十、结论、体会及建议***************************32

十一、附:

参考文献资料************************33

 

一、任务书

题目6:

小型通讯录设计

功能:

实现简单的通讯录信息管理,基本信息包括编号、姓名、手机、邮编、地址、关系、性别、生日、QQ、e-mail.

基本要求:

1.设计简单的菜单,能够进行系统功能选择。

2.实现信息的录入功能。

3.在已有信息的基础上添加新的记录。

4.删除指定编号的记录。

5.复制指定编号的记录

6.实现信息的浏览功能

7.按编号查询功能

8.按手机号排序功能

二.小组成员情况

组长:

李海霞学号:

52负责:

文件导出、删除、排序、复制、输出

组员:

孙琳学号:

23负责:

主菜单、添加、查询、保存退出

另外:

主函数,结构体定义,函数声明,文件及实验报告,虽有分工,但是大多数内容是有两人讨论后共同完成的。

期间各自编写函数的过程中遇到的问题均由两人共同商讨,以及询问老师后,一起解决的。

三、总体设计

利用structrecord定义数据结构,用void声明函数,用开关语句switch,case分开事件进行程序,实现系统功能选择,利用if,while语句判断函数,for语句实现循环,利用printf和scanf进行输出与输入,用getch()输入字符串,最终实现通讯录功能。

通讯录中的记录项用结构体record表示,包含10个属性:

id、name、phone、address、postcode、e-mail、relation、QQ、sex、birthday分别代表用户的编号、姓名、电话、地址、邮编、e_mail、关系、QQ、性别、生日。

1、结构体数组:

structrecord讯录中的记录项用结构体record表示,包含10个属性。

2.主菜单:

利用switch语句进行选择所需功能;输入“1”会进入“新添记录”的界面;输入“2”进入“输出记录”的界面;输入“3”会进入“查询菜单”的界面;输入“4”进入“删除记录”的界面;输入“5”进入“记录排序”的界面;输入“7”进入“保存退出”的界面;输入“8”进入“不保存退出”的界面。

3.添加记录:

利用printf()函数和scanf()函数实现按要求输入信息,再利用if()语句实现是否继续添加记录。

4.输出记录:

利用for循环和if语句实现全部输出;

5.查询菜单:

利用switch选择查询方式。

在查询菜单中输入“1”进入“按编号查询”界面;输入“2”进入“按姓名查询”界面;输入“3”进入“按电话查询”

界面;输入“4”进入“主菜单”界面。

6.按编号查询:

利用for循环从第一条记录到最后一条记录进行查找,再利用if语句判断要查找的记录和待比较的编号是否相等,如找到相同的记录,就输出此人的全部信息,如果没有找到就显示“没有此人的信息”。

7.按姓名查询:

利用for循环从第一条记录到最后一条记录进行查找,再利用if语句判断要查找的记录和待比较的姓名是否相等,如找到相同的记录,就输出此人的全部信息,再内嵌一个if语句进行查找相同名字的人的信息,再内嵌一个if语句继续查找,若不继续查找就输出“没有相同姓名的学生纪录按任意键返回主菜单”,如果一开始没有找到就显示“没有此人的信息”。

8.按电话号查询:

利用for循环从第一条记录到最后一条记录进行查找,再利用if语句判断要查找的记录和待比较的电话号码是否相等,如找到相同的记录,就输出此人的全部信息,如果没有找到就显示“没有此人的信”。

9.删除菜单:

利用switch语句进行选择所需功能;输入“1”会进入“删除所有”的界面;输入“2”进入“删除单个”的界面;输入“3”会进入“返回主菜单”的界面。

10.删除所有:

利用if语句进行是否全部删除。

11.删除单个:

利用switch语句选择删除方式,输入“1”进入“按电话号码删除”

界面;输入“2”进入“按姓名删除”界面。

11.按电话号码删除:

利用if语句进行判断是否有记录,再利用for循环进行查找信息,如果找到,就显示所有要删除的信息,再利用if语句进行是否删除,内嵌for循环,把记录前移,内嵌if语句实现是否继续删除。

12.按姓名删除:

利用if语句进行判断是否有记录,再利用for循环进行查找信息,如果找到,就显示所有要删除的信息,再利用if语句进行是否删除,内嵌for循环,把记录前移,内嵌if语句实现是否删除相同姓名的同学信息

13.利用switch语句实现排序选择,输入“1”会进入“按电话排序的界面;输入“2”进入“按姓名排序”的界面;输入“3”会进入“返回主菜单”的界面。

14.按电话号码排序:

利用for循环和if语句以及do….while实现升序,再利用if语句实现是否显示排序后的信息,调用显示函数。

15.按姓名排序排序:

利用for循环和if语句以及do….while实现升序,再利用if语句实现是否显示排序后的信息,调用显示函数。

六、框架图:

七.流程图:

添加新成员

 

查找search流程图

 

删除delete流程图

 

排序list流程图

 

八、源程序清单

#include<>

#include<>

#include<>d);

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

printf("\n\t\t输入QQ:

");

scanf("%s",&student[num].QQ);

printf("\n\t\t输入性别:

");

scanf("%s",&student[num].sex);

printf("\n\t\t输入生日:

");

scanf("%s",&student[num].birthday);

printf("\n\t\t输入关系:

");

scanf("%s",&student[num].relation);

num++;

printf("\n\t\t是否继续添加?

(Y/N):

");

if(getch()=='y')

newrecord();

return;

}

voidshowall()d);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

printf("\n\t\tQQ:

%s",student[i].QQ);

printf("\n\t\t邮编:

%s",student[i].postcode);

printf("\n\t\t生日:

%s",student[i].birthday);

printf("\n\t\t性别:

%s",student[i].sex);

printf("\n\t\t关系:

%s",student[i].relation);

printf("\t\t");

if(i+1

{

printf("\n\t\t__________________________请按任意键继续");

getch();

}

}

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

}

else

printf("\n\t\t通讯录中无任何纪录");

printf("\n\t\t按任意键返回主菜单:

");

getch();

return;

}

voidsearchmenu()d,id)==0)d);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

printf("\n\t\tQQ:

%s",student[i].QQ);

printf("\n\t\t邮编:

%s",student[i].postcode);

printf("\n\t\t生日:

%s",student[i].birthday);

printf("\n\t\t性别:

%s",student[i].sex);

printf("\n\t\t关系:

%s",student[i].relation);

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

printf("\n\t\t按任意键返回主菜单:

");

mark++;

getch();

return;

}

}

if(mark==0)

{

printf("\n\t\t没有此人的信息");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

}

voidsearchbyname()ame,name)==0)d);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

printf("\n\t\tQQ:

%s",student[i].QQ);

printf("\n\t\t邮编:

%s",student[i].postcode);

printf("\n\t\t生日:

%s",student[i].birthday);

printf("\n\t\t性别:

%s",student[i].sex);

printf("\n\t\t关系:

%s",student[i].relation);

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

mark++;

if((i+1)

{

printf("\n\t\t是否继续查找相同名字的人的信息:

(y/n)");

if(getch()=='y')

{

a=i;

continue;hone,phone)==0)

{

printf("\n\t\t**************以下是您查找的信息**********");

printf("\n\t\t学号:

%s",student[i].id);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

printf("\n\t\tQQ:

%s",student[i].QQ);

printf("\n\t\t邮编:

%s",student[i].postcode);

printf("\n\t\t生日:

%s",student[i].birthday);

printf("\n\t\t性别:

%s",student[i].sex);

printf("\n\t\t关系:

%s",student[i].relation);

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

printf("\n\t\t按任意键返回主菜单:

");

mark++;

getch();

return;

}

}

if(mark==0)

{

printf("\n\t\t没有此人的信息");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

}

voiddeletemenu()hone,phone)==0)

{

printf("\n\t\t以下是您要删除的纪录:

");

printf("\n\t\t编号:

%s",student[i].id);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

printf("\n\t\tQQ:

%s",student[i].QQ);

printf("\n\t\t邮编:

%s",student[i].postcode);

printf("\n\t\t生日:

%s",student[i].birthday);

printf("\n\t\t性别:

%s",student[i].sex);

printf("\n\t\t是否删除?

(y/n)");

if(getch()=='y')

{

for(j=i;j

{

printf("\n\t\t以下是您要删除的学生纪录:

");

findmark++;

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

printf("\n\t\t编号:

%s",student[i].id);

printf("\n\t\t姓名:

%s",student[i].name);

printf("\n\t\t电话:

%s",student[i].phone);

printf("\n\t\t地址:

%s",student[i].adress);

printf("\n\t\te-mail:

%s",student[i].e_mail);

printf("\n\t\tQQ:

%s",student[i].QQ);

printf("\n\t\t邮编:

%s",student[i].postcode);

printf("\n\t\t生日:

%s",student[i].birthday);

printf("\n\t\t性别:

%s",student[i].sex);

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

printf("\n\t\t是否删除?

(y/n)");

if(getch()=='y')

{

for(j=i;j

{

tmp=student[i];

j=i-1;

do

{

student[j+1]=student[j];

j--;

}while((strcmp,student[j].phone)<0)&&j>=0);

student[j+1]=tmp;

}

}

printf("\n\t\t排序成功,是否显示?

(y/n)");

if(getch()=='y')

showall();

return;

}

voidlistbyname()ame,student[i-1].name)<0)

{

tmp=student[i];

j=i-1;

do

{

student[j+1]=student[j];

j--;

}while((strcmp,student[j].name)<0&&j>=0));

student[j+1]=tmp;

}

}

printf("\n\t\t排序成功,是否显示?

(y/n)");

if(getch()=='y')

showall();

return;

}

voidcopy()

{charoutfile[20];d,temp[i].name,

temp[i].phone,temp[i].adress,temp[i].postcode,temp[i].e_mail,temp[i].relation,temp[i].QQ,temp[i].sex,temp[i].birthday);d,temp[i].name,

temp[i].phone,temp[i].adress,temp[i].postcode,temp[i].e_mail,temp[i].relation,temp[i].QQ,temp[i].sex,temp[i].birthday

);菜单界面:

2.选择主菜单中“1-新添记录”后的界面:

3.选择主菜单中的“2-输出记录”后的界面:

4.选择主菜单中的“3-查询菜单”后的界面:

5.选择查询菜单中的“1-按编号查询”后的界面:

6.选择主菜单中的“4-删除菜单”后的界面:

7.选择删除菜单中的“1-删除所有”后的界面:

8.选择主菜单中的“5-记录排序”后的界面:

9.选择主菜单中的“6-文件复制”后的界面:

10.选择主菜单中的“7-保存退出”后的界面:

十、结论、体会及建议

李海霞:

两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。

在设计过程中,担任小组长一职,与同学分工设计,和同学们相互探讨,相互学习,相互监督。

学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

通过这次课程设计,综合运用本专业所学课程的理论和生产实际知识进行一次C语言编程设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了C语言编程设计等课程。

在这次设计过程中,体现出C语言编程的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢各位老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次C语言设计的每个实验细节和每个数据,都离不开老师的细心指导。

由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,万分感谢。

孙琳:

通过这次课程设计更深入的了解到了C语言的功能,也进一步的巩固了C语言的算法及编程。

本次课设我负责主体部分,定义变量、函数,设计菜单,还有各种修改、完善程序。

从选题到编程,从理论到实践,真的是苦大于甜,将近两个星期的时间,经过我和李海霞同学的努力终于编出了小型通讯录管理系统。

当然有好大一部分是老师给出的案例中的,但这次编程真的是受益匪浅。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的掌握一门技能,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在各位老师的辛勤指导下,终于游逆而解。

附:

参考文献资料

C程序设计(第四版)谭浩强著

C程序设计(第四版)学习辅导谭浩强编著

教育在线的例题

互联网上查阅的相关资料

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2