班级通讯录管理系统课程设计报告Word文档格式.docx
- 文档编号:17119949
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:18
- 大小:271.46KB
班级通讯录管理系统课程设计报告Word文档格式.docx
《班级通讯录管理系统课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《班级通讯录管理系统课程设计报告Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
voidbrowse();
voiddelete();
voidsearch();
do
{
puts("
\t*******菜单**************\t\n\n"
);
\t\t\t\t1.新建联系人"
\t\t\t\t2.添加联系人"
\t\t\t\t3.修改"
\t\t\t\t4.删除"
\t\t\t\t5.浏览"
\t\t\t\t6.查找"
\t\t\t\t7.退出"
\n\n\t*****信息1002班通讯录*************\t\n"
printf("
请选择服务种类(1-7):
[]\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
7)
{w1=1;
getchar();
}
elsew1=0;
}while(w1==1);
switch(n)
case1:
enter();
break;
/*输入模块*/
case2:
add();
/*添加模块*/
【模块流程图】
main函数
enter函数
modify函数
browse函数
delete函数
search函数
【程序使用方法】
1.执行程序,按照界面提示进行选择。
输入“1”,进入新建联系人。
2.按照程序提示,分别输入信息1002班所有同学的通讯基本信息。
(注:
这里默认为信息1002班有30名同学,可以通过宏定义进行修改。
)
3.输入成功后,自动返回主界面。
输入“5”,进入通讯录预览,程序自动将各个已录入同学的基本通讯信息输出到屏幕上。
4.输入“2”返回主界面。
输入“3”,进入基本通讯信息修改,按照提示进行输入。
5.输入成功后,输入“1”浏览输入信息,输入“2”返回主界面。
输入“4”,进行删除根据提示操作。
6.输入“6”进行查找,根据提示“1”按姓名查找,“2”按电话号码查找。
7.输入“1”浏览所查找信息,“2”返回主界面。
输入“7”退出程序。
2.程序上机调试报告
【语法错误及其排除】
1、单词拼写错误,导致出现没有定义的变量。
2、宏定义时在末尾处加上了分号,应该不加分号。
3、菜单输出时不整齐。
【算法错误及其排除】
1、逐个检查,用查找替换等。
2、在修改个人通讯信息时,不小心将姓名删除。
3.程序测试结果
1.新建联系人;
图一
2.添加联系人;
图二
3.修改,删除联系人信息;
图三
4.浏览,查找。
图四
图一
图二
图三
图四
【收获及体会】
通过为期十多天的课程设计,我对《C语言》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。
同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。
通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。
4.源程序代码
#defineN30//(宏定义)学生人数
#include<
stdio.h>
//预编译命令
string.h>
structstudent//定义学生基本通讯信息的结构体
{charname[20];
charphone[50];
charQQnum[15];
chardorm[20];
}stu[N];
voidprintf_face()
{printf("
\n\t姓名\t电话号码\tQQ号\t宿舍号\n"
}
voidprintf_one(inti)
\t%s\t%s\t%s\t%s\n"
stu[i].name,stu[i].phone,stu[i].QQnum,stu[i].dorm);
voidprintf_n(intn)
{intj;
for(j=0;
j<
n;
j++)
{if((j!
=0)&
&
(j%10==0)){printf("
\n\nPressanykeytocontinue...:
"
getchar();
\n\n"
printf_one(j);
}getchar();
intload()
{FILE*fp;
inti;
if((fp=fopen("
file"
"
rb"
))==NULL)
\nCannotopenfile\n"
exit(0);
for(i=0;
!
feof(fp);
i++)
fread(&
stu[i],sizeof(structstudent),1,fp);
fclose(fp);
return(i-1);
intmodify_data(inti,intn)
{intc,w1;
voidinput(inti);
voidmenu();
{puts("
\n修改选项=>
\n\n1).姓名2).电话号码3).QQ号4).宿舍号5).所有数据6).取消并返回"
请选择?
:
c);
if(c>
6||c<
1){puts("
\nChooseerror!
Pleaseagain!
}while(c>
1);
{switch(c)
{case1:
name:
%s"
stu[i].name);
phone:
stu[i].phone);
case3:
QQnum:
stu[i].QQnum);
case4:
dorm:
stu[i].dorm);
case5:
input(i);
case6:
menu();
\nNow:
\n"
printf_face();
printf_one(i);
\n确定?
\n\n\t1).是2).不,重新修改3).返回不保存[]\b\b"
w1);
}while(w1==2);
return(w1);
voidinput(inti)
{printf_face();
\t"
%s\t%s\t%s\t%s"
voidsave(intn)
wb"
{printf("
for(i=0;
i<
if(stu[i].name[0]!
='
\0'
if(fwrite(&
stu[i],sizeof(structstudent),1,fp)!
=1)
filewriteerror\n"
fclose(fp);
voidprintf_back()
intw;
\n\n\t^_^.Successful.^_^\n\n"
Whatdoyouwanttodo?
\n\n\t1).浏览所有\t2).返回:
w);
if(w==1)browse();
elsemenu();
voidmain()
//主菜单函数
voidmenu()
\t*************欢迎进入信息1002班通讯录菜单***********"
\n\t\t*******************1.新建联系人*******************"
\t\t*******************2.添加联系人*******************"
\t\t*******************3.修改*******************"
\t\t*******************4.删除*******************"
\t\t*******************5.浏览*******************"
\t\t*******************6.查找*******************"
\t\t*******************7.退出*******************"
\n\n\t**************信息1002班通讯录*********************"
modify();
delete();
browse();
search();
case7:
voidenter()//新建联系人函数
{inti,n;
Howmanystudent(0-%d)?
N-1);
请输入数据:
{printf("
\n输入第%d个记录.\n"
i+1);
if(i!
=0)save(n);
printf_back();
voidadd()//添加联系人函数
{inti,n,k,t;
n=load();
Howmanystudentdoyouwanttoadd(0-%d)?
N-n-1);
t);
k=n+t;
for(i=n;
k;
i-n+1);
save(k);
voidmodify()//修改通讯信息函数
{structstudents;
inti,n,k,w0=1,w1,w2=0;
{k=-1;
printf_n(n);
\n\nEnternamethatyouwanttomodify!
\nName:
s.name);
if(strcmp(s.name,stu[i].name)==0){k=i;
s=stu[i];
if(k==-1)printf("
\n\n没有记录请重新输入!
}while(k==-1);
printf_one(k);
w1=modify_data(k,n);
if(w1==1){printf("
\n\t^_^.Successful^_^.\n\n是否继续?
\n\n\t1).是2).保存返回\t[]\b\b"
w0);
w2=1;
else
{w0=0;
if(w2==0)stu[k]=s;
if((w0!
=1)&
(w2==1))save(n);
}while(w0==1);
voidbrowse()//浏览选项函数
{intn;
\t共有%d记录.\n"
n);
\nPressanykeytoback..."
voidsearch()//查找函数
{intw0,k,i,n,w1,w2;
structstudents;
请选择查找类别:
1).姓名2).电话号码[]\b\b"
if(w1<
1||w1>
2){printf("
输入错误!
请重新输入!
}while(w2==1);
if(w1==1)
{do
\n\nEnternamethattouwanttosearch!
\nWhatdoyouwanttodo?
\n\t1).继续2).返回菜单[]\b\b"
{do
\n\nEnterphonenumberthattouwanttosearch!
\nphone:
s.phone);
if(strcmp(s.phone,stu[i].phone)==0){k=i;
voiddelete()//算出选项函数
{structstudents;
inti,n,k,w0,w1;
\n\nEnternamethatyouwanttodelete!
\n\t1).是2).返回[]\b\b"
if(w0==1){stu[k].name[0]='
;
save(n);
}elsebreak;
\n\t^_^.Successful^_^.\n"
\n\t1).继续2).返回[]\b\b"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 班级 通讯录 管理 系统 课程设计 报告