通讯录课程设计.docx

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

通讯录课程设计.docx

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

通讯录课程设计.docx

通讯录课程设计

通讯录管理系统

目录:

一、课程设计目的2

二、课程设计题目描述及要求2

三、总体设计3

四、详细设计3

五、源程序清单4

六、执行结果12

七、总结和体会15

 

摘要:

通过一周的编程,在老师的辅导下,我完成了课程设计。

通过课程设计的完成对C语言邮了更深的了解。

我做的课程设计题目是通讯录管理系统,主要用到了结构体、结构体数组、指针、文件等等。

对函数的声明和调用有了更深的理解。

但我做的这个关于通讯录管理系统的课程设计还存在不足,还希望老师的指点。

 

1、课程设计目的

通过这次课程设计更好的掌握以下知识:

●掌握函数的定义与说明。

●掌握各种基本的数据类型和结构体的定义

●掌握数组的定义与使用,注意下标的使用

●掌握基本的程序结构:

顺序、选择、循环

2、课程设计题目描述及要求

建立一个通讯录管理系统,具有数据插入、修改、删除、显示、查询和统计功能的电话薄管理程序。

其中记录每位同学的学号、姓名、性别、工作单位、电话号码和E-mail地址建立单独的条目,存入数据文件。

【程序设计功能及要求】

(1)人数不定,数据使用文件存放。

(2)记录每位同学的学号、姓名、性别、工作单位、电话号码和E-mail地址建立单独的条目,存入数据文件。

(3)可对记录中的姓名和电话号码等进行修改。

(4)可增加或删除记录。

(5)可显示所有保存的记录。

(6)加入统计功能,可以统计男女同学或总人数。

(7)加入查询功能,通过姓名、学号或电话号码查询到同学的条目。

(8)在开始画面加入简单的菜单便于选择功能。

(9)文件格式。

3、总体设计

系统功能模板图

显示:

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

查找:

可以选择用姓名、学号、手机号码三种选择方式。

增加:

可以添加通讯录记录,依次是学号、姓名、性别、

工作单位、电话号码和E-mail,并会提示是否继续

添加。

删除:

输入要删除的姓名,自动删除他(她)的记录内容。

修改:

输入要修改的姓名,再一次按学号、姓名、性别、

工作单位、电话号码和E-mail完成修改。

保存:

将通讯录信息保存到指定的文件中。

读取:

从保存到的指定文件中读取通讯录信息。

统计:

可以统计男生、女生或男女生总人数。

4、详细设计

程序流程图:

五、源程序清单

#include

#include

#include

#defineSIZE100

inti,m=0,mnan=0,mnv=0;//m为当前通讯录内人数

charmenu();//菜单

voidlist();//显示

voidsearch();//查找

voidapp();//增加

voiddele();//删除

voidcorrect();//修改

voidsave();//保存

voidload();//读入

voidjieguo();//结果

structrecord{

intrr;//编号

intnum;//学号

charname[20];//姓名

charsex[10];//性别

chardw[20];//工作单位

chartel[12];//电话

charemail[20];//邮箱

}rec[SIZE];

voidmain(){

charchoice;

chara;

while

(1)

{

choice=menu();

switch(choice)

{

case1:

printf("显示通讯录中内容\n");

list();

break;

case2:

printf("查找联系人\n");

search();

break;

case3:

printf("增加联系人记录\n");

app();

break;

case4:

printf("删除联系人记录\n");

dele();

break;

case5:

printf("修改联系人记录\n");

correct();

break;

case6:

printf("保存通讯录到文件中\n");

save();

break;

case7:

printf("从文件中读取记录\n");

load();

break;

case8:

printf("统计信息结果\n");

jieguo();

break;

case0:

printf("退出通讯录管理系统\n");

printf("是否保存y/n?

\n");

scanf("%s",&a);

if(a=='y')

{

save();

return;

}

else

return;

default:

printf("输入错误!

");

}

}

}

charmenu()

{

intc;

printf("------------欢迎使用------------\n\n");

printf("*************简易通讯录*************\n");

printf("1.显示通讯录\n");

printf("2.查找联系人\n");

printf("3.增加联系人\n");

printf("4.删除联系人\n");

printf("5.修改通讯录\n");

printf("6.保存到文件\n");

printf("7.从文件读取\n");

printf("8.统计信息结果\n");

printf("0.退出此系统\n");

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

printf("\n请选择………\n\n");

scanf("%d",&c);

returnc;

}

voidlist()

{

printf("学号姓名性别工作单位电话号码E-mail\n");

for(i=0;i

{

if(rec[i].name[0])

{

printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email);

}

}

printf("----------------END--------------\n");

}

voidapp()

{

chara;

puts("当前通讯录中的内容\n");

list();

do

{

rec[m].rr=m+1;

printf("请输入新的联系人信息:

\n");

printf("姓名:

");

scanf("%s",rec[m].name);

printf("手机电话:

");

scanf("%s",rec[m].tel);

printf("工作单位:

");

scanf("%s",rec[m].dw);

printf("EMAIL:

");

scanf("%s",rec[m].email);

printf("学号:

");

scanf("%d",&rec[m].num);

printf("性别:

");

scanf("%s",rec[m].sex);

puts("这是新添加的联系人信息:

\n");

printf("学号\t姓名\t性别\t工作单位\t电话号码\tE-mail\n");

printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[m].num,rec[m].name,rec[m].sex,rec[m].dw,rec[m].tel,rec[m].email);

m++;

if(rec[m].sex=="nan")

mnan++;

else

mnv++;

puts("\t\t\t新纪录输入完成!

\n");

puts("继续添加吗?

(y/n)");

scanf("%s",&a);

}while(a=='y');

}

voidsearch()

{

intch;

intk=1;

printf("1、按姓名查找:

\n");

printf("2、按学号查找:

\n");

printf("3、按手机号码查找:

\n");

printf("请选择:

");

scanf("%d",&ch);

switch(ch)

{

charxm[20];

intd;

case1:

printf("输入要查找的姓名:

");

scanf("%s",xm);

for(i=0;i

if(strcmp(xm,rec[i].name)==0){

k=0;

printf("这是您需要查找的联系人的信息。

\n");

printf("学号姓名性别工作单位电话号码E-mail\n");

printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email);

}

}

if(k)

printf("通讯录中没有你要查找的人。

");

break;

case2:

printf("输入查找的学号\n");

scanf("%d",&d);

for(i=0;i

if(d==rec[i].num){

k=0;

printf("这是您需要查找的联系人的信息。

\n");

printf("学号姓名性别工作单位电话号码E-mail\n");

printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email);

}

}

if(k)

printf("通讯录中没有你要查找的人。

");

break;

case3:

printf("输入要查找的电话号码:

");

scanf("%s",xm);

for(i=0;i

if(strcmp(xm,rec[i].tel)==0){

k=0;

printf("这是您需要查找的联系人的信息。

\n");

printf("学号姓名性别工作单位电话号码E-mail\n");

printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email);

}

}

if(k)

printf("通讯录中没有你要查找的人。

");

break;

default:

printf("输入错误!

");

}

}

voiddele()

{

charxm[10];

inta;

list();

printf("输入要删除的姓名:

");

scanf("%s",xm);

for(i=0;i

if(strcmp(xm,rec[i].name)==0)

{

a=rec[i].rr;

break;

}

if(i==m)

{

printf("没有此人!

");

return;

}

if(rec[i].sex=="nan")

mnan--;

else

mnv--;

if(a!

=m+1)

{

for(i=a;i

rec[i-1]=rec[i];

rec[i-1].rr=i;

}

m--;

list();

printf("已删除!

");

}

}

voidcorrect()

{

charxm[10];

boolk=1;

list();

printf("输入要修改联系人的姓名:

");

scanf("%s",xm);

for(i=0;i

{

if(strcmp(xm,rec[i].name)==0)

{

k=0;

printf("\n这是您要修改联系人的初始信息\n\n");

printf("学号姓名性别工作单位电话号码E-mail\n");

printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email);

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

");

scanf("%s",rec[i].tel);

printf("请输入修改后的工作单位:

");

scanf("%s",rec[i].dw);

printf("请输入修改后的E-mail:

");

scanf("%s",rec[i].email);

printf("请输入修改后的学号:

");

scanf("%d",&rec[i].num);

list();

printf("修改完成!

");

break;

}

}

if(k)

printf("输入有误,未找到!

");

}

voidsave()

{

FILE*fp;

if((fp=fopen("E:

//课程设计//通讯录.txt","wb"))==NULL)

{

printf("Can'topenfile");

exit(0);

}

list();

for(i=0;i

if(fwrite(&rec[i],sizeof(structrecord),1,fp)!

=1)

printf("Filewreteerror!

\n");

fclose(fp);

printf("\t保存成功!

\n");

}

voidload()

{

FILE*fp;

m=0;mnan=0;mnv=0;

if((fp=fopen("E:

//课程设计//通讯录.txt","rb"))==NULL)

{

printf("Can'topenfile\n");

exit(0);

}

for(i=0;i

{

if(fread(&rec[i],sizeof(structrecord),1,fp)!

=1)

{

if(feof(fp))

break;

printf("Filereaderror!

\n");

}

if(strcmp("nan",rec[i].sex)==0)

mnan++;

else

mnv++;

rec[i].rr=i+1;

m++;

}

list();

printf("\t读取成功\n");

fclose(fp);

}

voidjieguo()

{

intch;

printf("1、男生人数:

\n");

printf("2、女生人数:

\n");

printf("3、总人数:

\n");

printf("请选择:

");

scanf("%d",&ch);

switch(ch)

{

case1:

printf("男生总人数是:

%d",mnan);

break;

case2:

printf("女生总人数是:

%d",mnv);

break;

case3:

printf("总人数是:

%d",m);

break;

default:

printf("输入错误!

");

}

}

6、执行结果

(1)显示主菜单的界面

(2)增加联系人界面

(3)显示通讯录界面

(4)查找联系人界面

(5)删除联系人界面

(6)修改通讯录界面

(7)保存到文件界面

(8)从文件中读取界面

(9)统计男女人数界面

7、总结与体会

这次课程设计是对我进入大学以来学习C语言结果的一次大检验。

自己动手、自己发现和解决问题,发现了自己的许多不足,在设计程序时考虑的不够全面。

在答辩的过程中,老师给我提了许多好的建议,比如在执行是否给予添加联系人时,y/n是否有大小写之分,联系电话的类型能否输入不是数字的信息等等。

所以这次编程的收货不小,不仅让我对C语言的操作有了进一步的掌握,还让我了解到程序设计的书写风格及其注释的格式。

通过这为期一周的课程设计,我们对C语言这门课程有了更深一步的了解。

它是计算机程序设计的重要理论基础,在我们数学和信息专业的学习中占据着十分重要的地位。

同时也让我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。

因为我们学习知识就是为了实践。

而只有多实践,多编写程序,才能更好地理解与掌握书本上的东西。

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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