基于通讯录课程设计电气与信息工程学院毕业论文.docx
- 文档编号:14376031
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:25
- 大小:322.79KB
基于通讯录课程设计电气与信息工程学院毕业论文.docx
《基于通讯录课程设计电气与信息工程学院毕业论文.docx》由会员分享,可在线阅读,更多相关《基于通讯录课程设计电气与信息工程学院毕业论文.docx(25页珍藏版)》请在冰点文库上搜索。
基于通讯录课程设计电气与信息工程学院毕业论文
XX大学实习报告
实习名称:
计算机软件实习
教学院部:
电气与信息工程学院
专业班级:
通信工程XXXX班
学生姓名:
XXX
学生学号:
2008XXXXXX
指导教师:
XXX
完成时间:
2010年12月25日
报告成绩:
评阅意见:
评阅教师日期
通讯录管理系统
一、设计需求
设计课题及要求
1、建立通讯录系统,包含编号、姓名、年龄、号码、地址、电子邮箱等
2、能够实现添加、删除和修改通讯录信息的功能
3、能偶实现按不同方式查询的功能;如按姓名或年龄、电话等查询
4、能够将通讯录保存在文件中
系统功能
1、添加:
添加通讯录记录
2、显示:
显示通讯录记录
3、删除:
删除通讯录记录
4、查询:
查询通讯录记录
5、修改:
修改通讯录记录
6、保存:
将信息保存到文件
二、总体设计及分析
1、添加:
可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、、2、电子邮箱后,会提示是否继续添加。
3、显示:
可以以表格形式输出所有通讯录里的记录
4、删除:
输入欲删除的那个人的名字后,会自动删除他(她)的记录内容
5、查询:
可以选择用姓名、电话、地址三种方式查询
6、修改:
输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、7、通讯地址、电子邮箱即可完成修改
8、保存:
,输入文件名(带后缀名)后,即可将通讯录信息保存到文件
三、具体设计
工作流程图
1、添加通讯录2、显示通讯录
YY
NN
3、删除通讯记录4、查询通讯记录(查询姓名)
NYNY
5、修改通讯记录
NY
四、源程序代码
#include
#include
#include
typedefstruct
{
charscore;
charname[10];
charnum[15];
charemail[20];
charage[8];
charadds[20];
}Person;
Personpe[80];
intmenu_select()
{
charc;
do{
system("cls");
printf("\t\t*****通讯录*****\n");
printf("\t\t┌───────┐\n");
printf("\t\t│1.添加记录│\n");
printf("\t\t│2.显示记录│\n");
printf("\t\t│3.删除记录│\n");
printf("\t\t│4.查询记录│\n");
printf("\t\t│5.修改记录│\n");
printf("\t\t│6.保存记录│\n");
printf("\t\t│0.退出程序│\n");
printf("\t\t└───────┘\n");
printf("\t\t请您选择(0-6):
");
c=getchar();
}while(c<'0'||c>'6');
return(c-'0');
}
intInput(Personper[],intn)
{
inti=0;
charsign,x[10];
while(sign!
='n'&&sign!
='N')
{
printf("\t编号:
");
scanf("\t%d",&per[n+i].score);
printf("\t姓名:
");
scanf("\t%s",per[n+i].name);
printf("\t年龄:
");
scanf("\t%s",per[n+i].age);
printf("\t电话号码:
");
scanf("\t%s",per[n+i].num);
printf("\t通讯住址:
");
scanf("\t%s",per[n+i].adds);
printf("\t电子邮箱:
");
scanf("\t%s",per[n+i].email);
gets(x);
printf("\n\t是否继续添加?
(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);
}
voidDisplay(Personper[],intn)
{
inti;
printf("----------------------------------------------------------------------\n");
printf("编号姓名年龄电话号码通讯地址电子邮箱\n");
printf("----------------------------------------------------------------------\n");
for(i=1;i { printf("%-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"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } intDelete_a_record(Personper[],intn) { chars[20]; inti=0,j; printf("\t请输入想删除记录中的名字: "); scanf("%s",s); while(strcmp(per[i].name,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return(n); } for(j=i;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; } printf("\t\t\t已经成功删除! \n"); return(n-1); } voidQuery_a_record(Personper[],intn) { intm; printf("\t\n请选择查询方式: \n"); printf("\t┌──────┐\n"); printf("\t│1------姓名│\n"); printf("\t│2------电话│\n"); printf("\t│3------地址│\n"); printf("\t│4------返回│\n"); printf("\t└──────┘\n"); printf("请选择: "); scanf("%d",&m); while(m! =1&&m! =2&&m! =3&&m! =4) { printf("输入错误,请重新选择: "); scanf("%d",&m); } if(m==1) { chars[20]; inti=0; printf("\t请输入想查询的姓名: "); scanf("\t%s",s); while(strcmp(per[i].name,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人年龄: %s\n",per[i].age); printf("\t电话号码: %s\n",per[i].num); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); }; if(m==2) { chars[20]; inti=0; printf("\t请输入想查询的电话: "); scanf("\t%s",s); while(strcmp(per[i].num,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人姓名: %s\n",per[i].name); printf("\t此人年龄: %s\n",per[i].age); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); }; if(m==3) { chars[20]; inti=0; printf("\t请输入想查询的地址: "); scanf("\t%s",s); while(strcmp(per[i].adds,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return; } printf("\t此人编号: %d\n",per[i].score); printf("\t此人姓名: %s\n",per[i].name); printf("\t此人年龄: %s\n",per[i].age); printf("\t电话号码: %s\n",per[i].num); printf("\t电子邮箱: %s\n",per[i].email); }; } voidChange(Personper[],intn) { chars[20]; inti=0; printf("\t请输入想修改的记录中的名字: "); scanf("%s",s); while(strcmp(per[i].name,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return; } printf("\t编号: "); scanf("\t%d",&per[i].score); printf("\t姓名: "); scanf("\t%s",per[i].name); printf("\t年龄: "); scanf("\t%s",per[i].age); printf("\t电话号码: "); scanf("\t%s",per[i].num); printf("\t通讯住址: "); scanf("\t%s",per[i].adds); printf("\t电子邮箱: "); scanf("\t%s",per[i].email); printf("\t修改成功! "); } voidWritetoText(Personper[],intn) { inti=0; FILE*fp; charfilename[20]; printf("\t保存到文件\n"); printf("\t请输入所保存的文件名: "); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("\t无法打开文件\n"); system("pause"); return; } fprintf(fp,"******************************************通讯录******************************************\n"); fprintf(fp,"编号姓名年龄电话号码通讯地址电子邮箱\n"); fprintf(fp,"------------------------------------------------------------------------------------------\n"); while(i { 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); i++; } fprintf(fp,"------------------------------------------------------------------------------------------\n"); fprintf(fp,"***************************************共有%d条记录****************************************\n",n); fclose(fp); printf("保存成功! \n"); } voidmain() { intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加记录到通讯录\n"); n=Input(pe,n); break; case2: printf("\n\t\t\t通讯录记录表\n"); Display(pe,n); break; case3: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(pe,n); printf("\t"); system("pause"); break; case4: printf("\n\t在通讯录中查找记录\n"); Query_a_record(pe,n);printf("\t"); system("pause"); break; case5: printf("\n\t修改通讯录中的记录\n"); Change(pe,n); printf("\t"); system("pause"); break; case6: printf("\n\t保存功能\n"); WritetoText(pe,n); printf("\t"); system("pause"); break; case0: printf("\n\t\t谢谢使用,再见! \n"); printf("\n\t\t"); system("pause"); exit(0); } } } 五、运行结果 1.显示主菜单界面 2.添加界面 3.显示界面 4.删除界面 删除后,通讯录里的显示记录: 5.查询界面 以姓名查询方式为例: 6.修改界面 修改后,通讯记录的显示记录: 7.保存界面 六、心得体会 因为C语言是大一开的课程,所以当拿到课程设计的课题时,完全不知道该从何下手。 回去以后,我又重新学了一遍我们以前C语言的教材,发觉自已有许多都遗忘了。 要把一个程序编成功的过程真是困难重重,起初编成一个不能显示全文的程序,想加入一个函数,但是发现加进去后就整个程序都无法运行了,再检查发现是对某些参数未经定义就使用了。 在运行程序的时候一直存在着警告,查了书才知道原来一些函数名没有匹配的头文件。 开始运行时,我只输入了桌面文件的文件名,结果无论这样都是“无法打开文件”,问了同学,同学告诉我要把文件和程序保存在同一个文件夹下,电脑才能找到这个文件,或者可以直接输入文件的完整路径,而且还要输入文件的默认后缀名才能成功读取文件,终于在老师和同学的帮助下解决了这些问题。 虽然我现在编成的这个程序不是很完美,但是我会在今后的学习中不断完善它。 经过短短一周的课程设计,我才算真正了解C语言的基本知识,运用C语言可以解决许多实际问题,尤其是在信息管理方面,C语言作为一门高级和计算机编程语言,有其强大的功能。 同样了解到C语言程序设计时所需的一种严谨和认真的精神,同时我也知道了我们随时都要培养自己的动手能力,只有这样,才能更好的适应这个日新月异的飞速发展的社会。 七、参考文献 《C程序设计实验教程》中国铁道出版社罗坚编著 《C语言程序设计教程》高等教育出版社谭浩强张基温编著 《C语言课程设计案例精编》郭翠英编著
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 通讯录 课程设计 电气 信息工程学院 毕业论文
![提示](https://static.bingdoc.com/images/bang_tan.gif)