c语言课程设计通讯录管理系统.docx
- 文档编号:10627669
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:36
- 大小:173.79KB
c语言课程设计通讯录管理系统.docx
《c语言课程设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计通讯录管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
c语言课程设计通讯录管理系统
内蒙古科技大学
本科生课程设计说明书
题目:
C语言课程设计
——通讯录管理系统
学生姓名:
学号:
专业:
软件工程
班级:
2015-1
指导教师:
日期:
2016年1月4日
内蒙古科技大学课程设计任务书
课程名称
C语言课程设计
设计题目
通讯录管理系统
指导教师
时间
2016.1.5——2016.1.9
一、教学要求
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
通讯录管理系统
现有一批通讯录的数椐,要求输入计算机并存放在内存中,然后增加若干个新通讯录的记录,并可输出通讯录清单,实现文件存盘和读入文件进行修改的功能。
通讯录的基本信息包括编号,姓名,电话号码,QQ号码,电子邮件,通讯地址。
要求设计菜单来调用其各功能模块:
v新建文件、打开文件、保存信息到文件
v输入记录、输出记录
v查询记录(至少具有两种查询方式,例如以姓名查询和以电话号码查询)
v修改、插入和删除记录
三、设计要求及成果
1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)
2.写出详细设计说明(至少包括功能实现分析和模块流程图)
3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天 选择课程设计题目,分析课题的要求
第二天 编程
第三天 编程及调试
第四天 写课程设计报告
第五天 提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
第一章需求分析
1.1引言
通过课程设计,让我对C语言有了更深的理解,让我们把学到的理论应用于具体实践中,锻炼了我们各方面的能力,从而让我们更快提高。
通过一些简单函数的叠加构成了功能比较完备的学生成绩管理系统,从输入到处理再到输出,你将体会到完美的真正含义。
1.2任务概述
对在校学生的几门考试成绩进行管理,每个学生记录包括学号、姓名及各科目成绩,默认以学号为序存放。
1.3数据描述
记录每名学生的通讯方式,通讯方式为手机号、QQ、邮箱、住址,学生姓名长度不超过五十个字符。
typedefstructstudent
{
longqq;
charname[50];
longtel;
charadd[100];
charmail[200];
}stu;
1.4功能需求
从键盘输入包括姓名、手机号、QQ、邮箱、住址,并将其保存在磁盘文件里。
打开文件后,输入每名学生的通讯方式并保存。
具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录)。
具有插入、删除和修改功能。
具有输出文件数据信息的功能。
第二章概要设计
2.1总体设计
2.2数据类型设计(或数据结构设计)
typedefstructstudent
{
longqq;
charname[50];
longtel;
charadd[100];
charmail[200];
}stu;
2.3接口设计
表2.1:
函数列表
函数名
函数格式
函数功能
menu
int
用户菜单
mima
void
登录密码
read
int
添加通讯录人员信息
xieru
void
写入信息到文件
duqu
int
从文件读取信息
void
输出信息
shoujihao
void
按手机号查找
xingming
void
按姓名查找
xiugai
void
修改信息
charu
int
插入信息
shanchu
void
删除信息
2.4运行界面设计
intmenu(void)//用户菜单
{
inta;
printf("\n\t输入你的选择(0-9):
[]\b\b");
scanf("%d",&a);
returna;
}
第三章详细设计
3.1输入模块设计
//函数功能:
输入并更新通讯录成员信息
intread(stust[])
{
inti=-1;
system("cls");
printf("\t\t===================================\n");
printf("\t\t||\n");
printf("\t\t|1.更新成员信息|\n");
printf("\t\t||\n");
printf("\t\t===================================\n");
do{
i++;
printf("请输入姓名:
\n");
scanf("%s",st[i].name);
if(atoi(st[i].name)>=0)
{
printf("请输入手机号:
\n");
scanf("%ld",&st[i].tel);
printf("请输入QQ:
\n");
scanf("%ld",&st[i].qq);
printf("请输入邮箱:
\n");
scanf("%s",st[i].mail);
printf("请输入住址:
\n");
scanf("%s",st[i].add);
printf("\n联系人%d数据添加成功!
\n",i+1);
printf("输入姓名为负数结束输入!
\n");
printf("\n");
}
else
break;
}while(st[i].tel>0);
printf("\n--------------------------------------------------------------------\n");
printf("数据更新成功!
\n");
system("pause");
returni;
}
3.2输出模块设计
//函数功能:
输出通讯录成员信息
voidprint(stust[],intn)
{
inti;
system("cls");
printf("\n--------------------------------------------------------------------\n");
printf("编号1.姓名\t2.手机号\t3.QQ\t4.邮箱\t\t5.住址\n");
for(i=0;i { printf("%d\t%s\t%ld\t%ld\t%-24s%s\n",i+1,st[i].name,st[i].tel,st[i].qq,st[i].mail,st[i].add); } } 3.3查找模块设计 //函数功能: 按手机号或者姓名查找并显示查找结果 voidshoujihao(stust[],intn) { longx; inti; system("cls"); printf("\t\t===================================\n"); printf("\t\t||\n"); printf("\t\t|2.手机号查找|\n"); printf("\t\t||\n"); printf("\t\t===================================\n"); printf("输入你要查询的手机号: "); scanf("%d",&x); for(i=0;i { if(st[i].tel==x) { printf("姓名\t手机号\tQQ\t邮箱\t\t住址\n"); printf("%s\t%1d\t%1d\t%s\t\t%s\n",st[i].name,st[i].tel,st[i].qq,st[i].mail,st[i].add); printf("\n--------------------------------------------------------------------\n"); system("pause"); return; } } printf("未找到! "); printf("\n--------------------------------------------------------------------\n"); system("pause"); } voidxingming(stust[],intn) { charx[10]; inti; system("cls"); printf("\t\t===================================\n"); printf("\t\t||\n"); printf("\t\t|3.姓名查找|\n"); printf("\t\t||\n"); printf("\t\t===================================\n"); printf("输入你要查询的姓名: "); scanf("%s",x); for(i=0;i { if(strcmp(st[i].name,x)==0) { printf("姓名\t手机号\tQQ\t邮箱\t\t住址\n"); printf("%s\t%1d\t%1d\t%s\t\t%s\n",st[i].name,st[i].tel,st[i].qq,st[i].mail,st[i].add); printf("\n--------------------------------------------------------------------\n"); system("pause"); return; } } printf("未找到! "); printf("\n--------------------------------------------------------------------\n"); system("pause"); } 3.4保存及读取模块设计 //函数功能: 写入信息到文件 voidxieru(stust[],intn) { FILE*fp; if((fp=fopen("人员数据.txt","w"))==NULL) { printf("\t保存文件失败! \n"); return; } fwrite(st,sizeof(stu),n,fp); printf("\t保存成功! \n"); fclose(fp); system("pause"); } //函数功能: 从文件读取信息 intduqu(stust[]) { FILE*fp; inti; if((fp=fopen("人员数据.txt","r"))==NULL) { printf("\t文件不存在! 打开失败! \n"); system("pause"); return0; } for(i=0;! feof(fp);i++) { fread(&st[i],sizeof(stu),1,fp); } fclose(fp); system("pause"); returni-1; } 第四章测试分析 4.1测试程序执行情况 图4.1.1输入密码登录界面 图4.1.2运行界面 图4.1.2输入数据 图4.1.3手机号查找 4.1.4姓名查找 图4.1.5修改信息 图4.1.6插入信息 图4.1.7删除信息 图4.1.8输出信息 图4.1.9保存文件 图4.1.10读取文件 图4.1.11退出 第五章用户手册 5.1使用说明 请按照菜单提示进行操作。 第六章课程设计总结 在我上机调试程序的过程中,我遇到了很多的问题,说实话这次课程设计自己没有出多大的力,大部分都是借鉴课本的设计成果,还有就是寻求同学的帮助,因为自己设计是总是觉得没有头绪,无从下手。 在这期末考试前期,学院给我们安排的课程设计周,总让我们觉的有些为难我们,这样一个复杂困难而又繁琐的作业,似乎弄得我们既没有时间也没有心情复习,我曾一度地抱怨过学院,在完成它之后,我发现我错了,课程设计不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重要的是,它磨砺了我们,让我们在大学的下一个阶段能更好的成长。 通过这次课程设计我也学到了很多知识,可谓收获颇丰。 附录: 程序代码 #include #include #include typedefstructstudent { longqq; charname[50]; longtel; charadd[100]; charmail[200]; }stu; intmenu(void);//用户菜单 voidmima(chara[]);//登录密码 intread(stust[]);//添加人员信息 voidxieru(stust[],intn);//写入信息到文件 intduqu(stust[]);//从文件读取信息 voidprint(stust[],intn);//输出信息 voidshoujihao(stust[],intn);//按手机号查找信息 voidxingming(stust[],intn);//按姓名查找 voidxiugai(stust[],intn);//修改信息 intcharu(stust[],intn);//插入信息 voidshanchu(stust[],intn);//删除信息 //函数功能: 登录密码 voidmima(chara[]) { system("color0A"); printf("\t\t===================================\n"); printf("\t\t||\n"); printf("\t\t|请输入密码: (默认为123456)|\n"); printf("\t\t||\n"); printf("\t\t===================================\n"); charb[10]="123456"; MIMA: printf("\t密码: "); scanf("%s",a); if(strcmp(a,b)==0) { printf("\t输入密码正确! \n"); printf("\t按任意键进入通讯录管理系统! "); getchar(); getchar(); } else { printf("\t输入密码错误! 请重新输入: \n"); gotoMIMA; } } //函数功能: 用户界面(主函数) main() { charq[30]; mima(q); inta,n; sturen[100]; system("color0A"); printf("\n\n\t\t|————————————————————|\n"); printf("\t\t||\n"); printf("\t\t|内蒙古科技大学|\n"); printf("\t\t||\n"); printf("\t\t|信息工程学院|\n"); printf("\t\t||\n"); printf("\t\t|2015级本科生|\n"); printf("\t\t||\n"); printf("\t\t|姓名: 屈云璧|\n"); printf("\t\t||\n"); printf("\t\t|学号: 1567159122|\n"); printf("\t\t||\n"); printf("\t\t|班级: 软件一班|\n"); printf("\t\t||\n"); printf("\t\t|————————————————————|\n"); system("pause"); while (1) { system("cls");//清屏 printf("\n"); printf("\n"); printf("\n"); printf("\t================通讯录管理系统===================\n"); printf("\t||\n"); printf("\t|1.更新人员信息2.手机号查找3.姓名查找|\n"); printf("\t||\n"); printf("\t|4.修改信息5.插入信息6.删除信息|\n"); printf("\t||\n"); printf("\t|7.输出信息8.保存文件9.读取文件|\n"); printf("\t||\n"); printf("\t|0.退出|\n"); printf("\t||\n"); printf("\t=================================================\n"); a=menu(); switch(a) { case1: n=read(ren); break; case2: shoujihao(ren,n); break; case3: xingming(ren,n); break; case4: xiugai(ren,n); break; case5: n=charu(ren,n); break; case6: shanchu(ren,n); n--; break; case7: print(ren,n); printf("\n--------------------------------------------------------------------\n"); system("pause"); break; case8: xieru(ren,n); break; case9: n=duqu(ren); break; case0: system("cls"); printf("\n\n\n"); printf("\t==================================================\n"); printf("\t||\n"); printf("\t||\n"); printf("\t|谢谢使用! |\n"); printf("\t||\n"); printf("\t||\n"); printf("\t==================================================\n"); exit(0);//exit(code)当code为0时正常退出。 非0时出现某种错误后退 default: printf("输入错误! 请输入0-9的数字! \n"); system("pause"); break; } } return0; } //函数功能: 用户菜单 intmenu(void) { inta; printf("\n\t输入你的选择(0-9): []\b\b"); scanf("%d",&a); returna; } //函数功能: 写入信息到文件 voidxieru(stust[],intn) { FILE*fp; if((fp=fopen("人员数据.txt","w"))==NULL) { printf("\t保存文件失败! \n"); return; } fwrite(st,sizeof(stu),n,fp); printf("\t保存成功! \n"); fclose(fp); system("pause"); } //函数功能: 从文件读取信息 intduqu(stust[]) { FILE*fp; inti; if((fp=fopen("人员数据.txt","r"))==NULL) { printf("\t文件不存在! 打开失败! \n"); system("pause"); return0; } for(i=0;! feof(fp);i++) { fread(&st[i],sizeof(stu),1,fp); } fclose(fp); printf("读取成功! \n"); system("pause"); returni-1; } //函数功能: 输入并更新通讯录成员信息 intread(stust[]) { inti=-1; system("cls"); printf("\t\t===================================\n"); printf("\t\t||\n"); printf("\t\t|1.更新成员信息|\n"); printf("\t\t||\n"); printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 通讯录 管理 系统