电子商务课程设计《个人通讯录管理系统》.docx
- 文档编号:5467697
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:24
- 大小:191.22KB
电子商务课程设计《个人通讯录管理系统》.docx
《电子商务课程设计《个人通讯录管理系统》.docx》由会员分享,可在线阅读,更多相关《电子商务课程设计《个人通讯录管理系统》.docx(24页珍藏版)》请在冰豆网上搜索。
电子商务课程设计《个人通讯录管理系统》
课程设计报告
院(系):
电子信息工程学院
学生姓名:
学号:
设计题目:
_个人通讯录管理系统设计
2015年3月5日
课程设计任务书
设计题目:
个人通讯录管理系统
学生姓名
课程名称
C语言程序设计课程设计
专业班级
计算机科学与技术2015
地点
起止时间
设计内容及要求
建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
系统所涉及的信息以二进制文件的形式保存在磁盘上。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
要求
3月1日--3月1日明确设计任务,学习相关知识;
3月2日--3月2日查阅相关资料,进行基础练习;
3月3日--3月4日根据题目要求,进行设计和实现;
3月5日--3月5日撰写课程设计报告,进行答辩。
参考资料
[1]C程序设计经典教程,[美]Deitel,H.M.,[美]Deitel,P.J.著,清华大学出版社,2006
[2]Windows程序设计,[美]CharlesPetzold著,北京大学出版社,2004
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
教研室主任:
指导教师:
2015年2月27日
摘要
本次课程设计的题目是个人通讯录管理系统,要求在磁盘中以二进制文件的形式存储人员的姓名、年龄、性别等基本信息,并运用程序将磁盘文件中的个人基本信息进行查询、修改和删除等。
我编写的程序从整体上看可分为五大部分,分别是“添加”、“查询”、“修改”、“删除”和“全部显示”。
其中添加信息是将人员的基本信息输入并以二进制文件的形式保存在文件中,当添加完所要输入的个人通讯信息后继续选择其它功能;若要对文件中存储的个人通讯信息进行查询、修改和删除等时,则可按照程序提示分别进行。
关键词:
通讯信息、添加、查询、修改、删除、全部显示。
目录
1设计内容与要求1
1.1设计内容1
1.2设计要求1
2概要设计2
2.1信息的存储2
2.2个人通讯信息的设计2
2.3主函数设计2
2.4信息添加的设计2
2.5信息查询的设计3
2.6信息删除的设计3
2.7信息修改的设计3
2.8信息显示的设计3
3详细设计4
3.1主函数4
3.2信息输入6
3.3信息查询7
3.4信息删除7
3.4信息修改8
3.4信息显示9
4调试分析10
4.1问题解决10
5测试结果11
5.1文件输入11
输入个人通讯信息,运行结果如下:
11
11
5.2查询结果12
5.3修改结果13
5.4删除结果14
5.5全部显示结果14
总结15
参考文献16
致谢17
附录18
设计内容与要求
1.1设计内容
建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
系统所涉及的信息以二进制文件的形式保存在磁盘上。
1.2设计要求
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告
概要设计
2.1信息的存储
运行编写好的程序,通过提示,输入人员的姓名、性别、年龄和电话等信息,再根据提示反复输入,并以二进制文件形式保存。
2.2个人通讯信息的设计
需定义一个结构体类型,用来表示学生的各种信息,如下。
typedefstructMan{
charName[12];
charSex[4];
charOld[4];
charMobil[12];
charTel[12];
charAddress[16];
charQQ[12];
charEmail[16];
charSort[12];
}man;
2.3主函数设计
其功能实现从屏幕输出6个选择:
1添加信息2.查询信息3.删除信息4.修改信息5.显示信息6.退出程序,从中选择任一一个来进行个人通讯信息的管理。
2.4信息添加的设计
此模块通过voidTianJia();函数实现。
从键盘输入个人通讯信息,以二进制文件将这些信息写入文本。
先建立一个文件指针(FILE*fp),打开文件,输入信息,写入文件,关闭文件。
2.5信息查询的设计
此模块通过voidChaXun()。
从键盘输入要查询的人员姓名,程序将从文件中读出先前出入的个人通讯信息,再从屏幕上输出您要查找的信息。
2.6信息删除的设计
此模块通过voidShanChu()函数实现。
从屏幕上输出所要删除的人员姓名,根据操作提示,然后删除信息。
2.7信息修改的设计
此模块通过voidXiuGai()函数实现。
从屏幕上输出:
请输入您要修改的人员姓名,然后显示要修改的人员信息,并根据提示继续输入需修改后的信息,这些信息将以二进制形式写入文本。
这需要打开文件读出原信息,再将修改后的所有通讯信息一起写入文件并保存。
2.8信息显示的设计
此模块通过voidXianShi()函数实现,只需选择显示信息菜单即可显示全部通讯录信息。
详细设计
3.1主函数
(1)函数说明
先从屏幕上显示6个选项,以供选择。
第一个选项调用了TianJia函数、第二个调用了ChaXun函数,第三个选项调用了ShaChu函数,第四个调用了XiuGai函数,第五个选项调用XianShi函数,从而实现学生信息的添加、查询、删除、修改、显示等功能;最后一个选项实现退出的功能。
(2)流程图
3.2信息输入
(1)函数说明
此函数用于输入个人通讯信息。
先定义一个文件指针FILE(*fp),然后用fopen()函数打开文件,从键盘输入数据,用fwrite函数将信息写入到文件中,最后用fclose()函数关闭文件。
屏幕上会显示“请输入y继续其他功能”您可以根据您的需要进行选择然后进行下面的操作。
(2)流程图
3.3信息查询
(1)函数说明
此函数用于查找学生信息,用fopen()函数打开文本文件,用fread函数从文件中将原有信息读出,屏幕上会显示“请输入您要查找的人员姓名”,从键盘输入,屏幕上会显示您要查找的学生信息,最后用fclose()函数关闭文件。
(2)流程图
3.4信息删除
(1)函数说明
此函数用于删除个人通讯信息,用fopen()函数打开文本文件,读出原有信息并输出到屏幕,从屏幕上输出提示“请输入要删除的人员姓名”,输入后显示该信息即被删除。
最后用fclose()函数关闭文件。
(2)流程图
3.4信息修改
(1)函数说明
此函数用于修改信息。
用fopen()函数打开文本文件,读出原有信息并输出到屏幕,此时屏幕上会显示"请输入您要修改的人员姓名:
",从键盘输入姓名,屏幕上将会显示要修改的信息用fwrite()函数将现在的信息写入到磁盘中,最后用fclose()函数关闭文件。
(2)流程图
3.4信息显示
(1)函数说明:
此函数用来打印学生全部信息,用fopen()函数打开文本文件,读出原所有信息并输出到屏幕,最后用fclose()函数关闭文件。
(2)流程图:
调试分析
4.1问题解决
首先,由于所要将输入通讯信息要以二进制文件的形式进行存储,所以在添加信息和查询信息就遇到了麻烦,读取信息的时候显示的全部是乱码,一个是因为在输入和读取“年龄”、“电话”等信息的时候是以%d的形式,二是因为没有运用到”rb+”对信息进行存储和输出。
在同学的帮助下对程序进行了反复的修改,最终达到了以二进制存储和读取的目的。
其次就是在对存储的信息进行删除的时候是以空白来覆盖的,而在全部显示存储的信息时用来覆盖的空白信息也被读取,最后是在仔细查询课本的时候,按照书上的方法进行了修改。
最后就是在全部显示文件中存储的信息时,而最后一个信息会被读取两次,最终我运用的计数器对文件中存储的信息量统计,而对读取信息的次数进行控制,以达到全部显示的目的。
5、测试结果
5.1文件输入
输入个人通讯信息,运行结果如下:
5.2查询结果
查询个人通讯信息,运行结果如下:
5.3修改结果
修改个人通讯信息,运行结果如下:
5.4删除结果
删除个人通讯信息,运行结果如下:
5.5全部显示结果
删除个人通讯信息,运行结果如下:
总结
本次课程设计的要求是建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
虽然我对该实验的内容及要求都有所了解,在对程序的大体规划上还很清楚,但是在编写程序时思维却很混乱,由于在对个人通讯信息的输入、查询、修改和删除中要求逻辑思维严密谨慎,所以在本次程序的编写中不能独立完成,而是在同学的帮助下,对每一个步骤的深入思考才得出了结果。
通过这次的专题实验让我意识到,自己在该门学科中还有很多不懂的地方,其主要原因是上机操作太少,对一些细节考虑还不够全面,今后我会努力学习本课程,要求自己能熟练掌握程序的编写。
致谢
我要感谢老师对我们的认真负责的教导,在我们与到问题不理解时能构给我们耐心的讲解,并且在学习该专业课是对我们的要求,迫使我们在平日里抓紧时间学习。
还要感谢学校为我们提供了良好的学习环境和设备,让我们能够更好的学习计算机方面的知识。
以及在平日的学习中同学们对我的帮助。
附录
#include
#include
#include
typedefstructMan{
charName[12];
charSex[4];
charOld[4];
charMobil[12];
charTel[12];
charAddress[16];
charQQ[12];
charEmail[16];
charSort[12];
}man;
voidTianJia(FILE*fp);
voidXiuGai(FILE*fp);
voidShanChu(FILE*fp);
voidChaXun(FILE*fp);
voidXianShi(FILE*fp);
intjishu(char*p);
intmain()
{
system("color51");
charb,c;
FILE*fp;
do{
printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\t\t★通讯录☆\n");
printf("\t\t☆1、添加信息2、查询信息★\n");
printf("\t\t★☆\n");
printf("\t\t☆3、删除信息4、修改信息★\n");
printf("\t\t★☆\n");
printf("\t\t☆5、显示信息6、退出程序★\n");
printf("\t\t★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n");
printf("请选择您想要执行操作的代码:
");
scanf("%d",&c);
printf("\n");
switch(c)
{
case1:
fp=fopen("d:
\\tongxunlu.txt","ab+");
TianJia(fp);
break;
case2:
fp=fopen("d:
\\tongxunlu.txt","rb");
ChaXun(fp);
break;
case3:
fp=fopen("d:
\\tongxunlu.txt","rb+");
ShanChu(fp);
break;
case4:
fp=fopen("d:
\\tongxunlu.txt","rb+");
XiuGai(fp);
break;
case5:
fp=fopen("d:
\\tongxunlu.txt","rb");
XianShi(fp);
break;
case6:
printf("谢谢使用!
\n");
exit(0);
default:
printf("输入有误,请重新输入!
\n");
break;
}
fflush(stdin);
fclose(fp);
printf("请输入y继续其他功能\n");
scanf("%c",&b);
if(b=='y')
{system("cls");
}
}while(c!
=6);
return0;
}
voidTianJia(FILE*fp)
{mana1;
printf("请输入您要添加的人员信息\n");
rewind(fp);
printf("\n");
printf("姓名:
");
scanf("%s",&a1.Name);
fflush(stdin);
printf("\n");
printf("性别:
");
scanf("%s",&a1.Sex);
fflush(stdin);
printf("\n");
printf("年龄:
");
scanf("%s",&a1.Old);
fflush(stdin);
printf("\n");
printf("移动电话:
");
scanf("%s",&a1.Mobil);
fflush(stdin);
printf("\n");
printf("固定电话:
");
scanf("%s",&a1.Tel);
fflush(stdin);
printf("\n");
printf("住址:
");
scanf("%s",&a1.Address);
fflush(stdin);
printf("\n");
printf("QQ:
");
scanf("%s",&a1.QQ);
fflush(stdin);
printf("\n");
printf("Email:
");
scanf("%s",a1.Email);
fflush(stdin);
printf("\n");
printf("类别:
");
scanf("%s",a1.Sort);
fflush(stdin);
fp=fopen("d:
\\tongxunlu.txt","a+");
fwrite(&a1,sizeof(a1),1,fp);
fclose(fp);
}
voidChaXun(FILE*fp)
{mana2;
charname1[12];
printf("请输入你要查找的人员姓名:
");
scanf("%s",name1);
fflush(stdin);
rewind(fp);
while(fread(&a2,sizeof(a2),1,fp)!
=NULL)
{
if(strcmp(name1,a2.Name)==0)
{
printf("您所查询的人员信息如下:
\n");
printf("姓名:
%s\n\n性别:
%s\n\n年龄:
%s\n\n住址:
%s\n\n移动电话:
%s\n\n固定电话:
%s\n\nQQ:
%s\n\nEmail:
%s\n\n类别:
%s\n",
a2.Name,a2.Sex,a2.Old,a2.Address,a2.Mobil,a2.Tel,a2.QQ,a2.Email,a2.Sort);
}
else
{
printf("您要查询的人员资料不存在!
\n");
}
}
fclose(fp);
return;
}
voidXiuGai(FILE*fp)
{
mana3;
manone;
intcount1=0;
charname2[12];
printf("请输入您要修改的人员姓名:
");
scanf("%s",&name2);
fflush(stdin);
while(!
feof(fp))
{
fread(&a3,sizeof(a3),1,fp);
count1++;
if(strcmp(name2,a3.Name)==0)
{
printf("姓名:
%s\n性别:
%s\n年龄:
%s\n住址:
%s\n移动电话:
%s\n固定电话:
%s\nQQ:
%s\nEmail:
%s\n类别:
%s\n",
a3.Name,a3.Sex,a3.Old,a3.Address,a3.Mobil,a3.Tel,a3.QQ,a3.Email,a3.Sort);
printf("请输入您要修改的资料.\n");
printf("\n");
printf("姓名:
");
scanf("%s",&one.Name);
fflush(stdin);
printf("\n");
printf("性别:
");
scanf("%s",&one.Sex);
fflush(stdin);
printf("\n");
printf("年龄:
");
scanf("%s",&one.Old);
fflush(stdin);
printf("\n");
printf("移动电话:
");
scanf("%s",&one.Mobil);
fflush(stdin);
printf("\n");
printf("固定电话:
");
scanf("%s",&one.Tel);
fflush(stdin);
printf("\n");
printf("住址:
");
scanf("%s",&one.Address);
fflush(stdin);
printf("\n");
printf("QQ:
");
scanf("%s",&one.QQ);
fflush(stdin);
printf("\n");
printf("Email:
");
scanf("%s",&one.Email);
fflush(stdin);
printf("\n");
printf("类别:
");
scanf("%s",&one.Sort);
fflush(stdin);
fseek(fp,(count1-1)*sizeof(a3),SEEK_SET);
fwrite(&one,sizeof(one),1,fp);
printf("修改成功!
\n");
return;
}
Else
{
printf("您要修改的人员不存在!
\n");
return;
}
}
fclose(fp);
return;
}
voidShanChu(FILE*fp)
{
mana4;
manblank={0};
charname3[12];
intcount=0;
rewind(fp);
printf("请输入您要删除的人员姓名:
");
scanf("%s",&name3);
fflush(stdin);
while(!
feof(fp))
{
fread(&a4,sizeof(a4),1,fp);
count++;
if(strcmp(name3,a4.Name)==0)
{
printf("姓名:
%s\n性别:
%s\n年龄:
%s\n住址:
%s\n移动电话:
%s\n固定电话:
%s\nQQ:
%s\nEmail:
%s\n类别:
%s\n",
a4.Name,a4.Sex,a4.Old,a4.Address,a4.Mobil,a4.Tel,a4.QQ,a4.Email,a4.Sort);
fseek(fp,(count-1)*sizeof(a4),SEEK_SET);
fwrite(&blank,sizeof(blank),1,fp);
printf("删除成功!
");
fclose(fp);
return;
}
else
{
printf("您要删除的人员不存在!
\n");
return;
}
fclose(fp);
return;
}
}
voidXianShi(FILE*fp)
{
charm=0,n;
mana5;
while(!
feof(fp))
{
fread(&a5,sizeof(a5),1,fp);
m++;
}
for(n=0;n { fread(&a5,sizeof(a5),1,fp); printf("您所需要的资料如下: \n"); printf("姓名: %s\n性别: %s\n年龄: %s\n住址: %s\n移动电话: %s\n固定电话: %s\nQQ: %s\nEmail: %s\n类别: %s\n", a5.Name,a5.Sex,a5.Old,a5.Address,a5.Mobil,a5.Tel,a5.QQ,a5.Email,a5.Sort); } fclose(fp); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人通讯录管理系统 电子商务 课程设计 个人 通讯录 管理 系统