c语言课设同学通信录管理系统Word下载.docx
- 文档编号:21304719
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:17
- 大小:332.69KB
c语言课设同学通信录管理系统Word下载.docx
《c语言课设同学通信录管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《c语言课设同学通信录管理系统Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
指导教师评语:
成绩:
签字:
年月日
软件编程训练说明书NO.1
同学通信录信息管理系统
一、软件编程训练的目的
(1)较熟练地掌握C语言的基本内容及程序设计的基本方法与编程技巧。
(2)较熟练地掌握在系统上编辑、编译、连接和运行C程序的方法。
(3)通过设计一个完整程序,掌握数据结构的算法编写、类C语言算法转换成C程序并上机调试的基本方法。
二、软件编程训练的主要内容
需求分析
通过对程序设计题目和要求的分析整个程序的设计实现主要分五个模块,其中每一个模块对应一个函数,他们的功能分别是:
添加学生信息数据函数(add),查询学生信息数据函数(query),显示学生信息数据函数(show),改变学生数据函数(change)以及删除学生信息数据函数(delete)。
在这些函数当中,前三个函数的实现严格按照题目要求,是程序的核心,较为复杂。
而后两个函数属于附加功能。
1、添加学生信息数据函数主要实现程序最初运行时学生通讯录的录入及其后运行中录入学生信息的追加功能;
2、查询学生信息函数主要功能是按照学号对学生的通讯录信息记录进行查询;
3、显示学生信息函数主要功能是将学生通讯录的全部信息显示出来
4、改变学生信息函数可以实现对学生记录中除学号以外的信息进行修改;
5、删除学生信息数据函数实现的功能是按照学号对学生的数据记录进行删除。
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个学生记录都包含序号、姓名、电话号码和地址,在程序当中,将学生
沈阳大学
软件编程训练说明书NO.2
通讯录类型定义为结构体类型,添加以及追加的学生信息直接写入D盘的student.dat文件中,其他函数每次对学生记录的访问,其数据来源都是student.dat文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。
三、软件编程训练方案论证
设计思路
1、程序总体设计图
图1程序总体结构图
沈阳大学
软件编程训练说明书NO.3
2、具体功能框图
(1)、添加学生数据函数add
图2添加学生数据函数
软件编程训练说明书NO.4
(2)读取学生数据reads
图3读取学生数据
软件编程训练说明书NO.5
(3)删除学生记录函数del
图4删除学生记录函数
软件编程训练说明书NO.6
四、软件编程训练运行结果与分析
添加数据分为两种情况,其一是在学生文件(student.dat)不存在的情况下,首先由程序创建一个新文件,并将新录入的学生信息写入该文件当中;
其二是在学生文件(student.dat)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。
软件编程训练说明书NO.7
该函数的核心内容是删除算法以及最终对源文件的更新。
该函数执行时,首先调用reads函数将文件中的学生信息读入数组当中,并由用户输入待删除学生的学号,而后按照该学号进行查找,如果文件中存在该学生的数据,则采用删除算法删除,否则输出学生信息不存在的提示信息。
对学生信息的具体删除算法是在结构体数组中实现的,当学生的信息被找到后,位于数组中该学生后面的学生记录依次向前移动一个元素的位置,这些操作完成后,要删除的学生信息就被后面的数组元素覆盖掉了,也就实现了删除。
在数组中删除学生信息后,还要将更改后的信息重新写回文件当中,以保证数据的一致性。
软件编程训练说明书NO.8
该函数的核心内容是按照学生序号查询录入的同学通讯录学生信息,并且显示出来。
在执行该函数的时候,首先输入要查询的学生序号,如果在录入的文件中有该序号则将会显示出该序号学生的信息,如果输入的序号在文件中不存在则显示没有找到该学生信息。
该函数的核心内容是更改学生信息并且最终对源文件更新。
在执行该文件的时候,输入想要更改学生的序号,在文件中查找,如果有该序号,则输入要更改的学生信息,并且保存到源文件中,修改学生信息成功。
若文件中没有输入的学生序号,则输出无此学生信息。
软件编程训练说明书NO.9
该函数的核心是显示通讯录中所有学生信息。
四、设计体会
通过这次C语言软件编程训练的学习,我对C语言的学习有了更深一层的认识和了解,同时也提高了对C语言的掌握和操作能力。
在做C语言的软件编程训练过程中,我虽然遇到很多困难,有很多不明白的细节和小错误,但通过老师认真仔细而且很有耐心的讲解,还有上网查一些相关资料和同学们的帮助,最后顺利的完成了本次课设。
而且在做的过程中也体会到c语言的用处及应用,也能更好地使用函数及调用函数问题。
通过这次学习让我更多的认识和掌握一门知识,有了更多的体会。
软件编程训练说明书NO.10
五、参考文献
1、谭浩强.C程序设计.北京:
清华大学出版社,2007
2、刘成等.C语言程序设计实验指导与习题集.北京:
中国铁道出版社,2007
3、张基温.C语言程序设计教程.北京:
高等教育出版社,2006
4、刘大有.数据结构.北京:
5、朱若愚.数据结构.北京:
电子工业出版社,2006
软件编程训练说明书NO.11
附录
源函数
本程序主要由五个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
在这些函数当中,添加学生信息数据函数、删除学生信息数据函数和显示学生信息函数是这个程序中较为核心的部分,下面分别对这些函数进行说明。
#include<
stdio.h>
/*I/O函数*/
stdlib.h>
/*标准库函数*/
conio.h>
/*定义了getch()函数*/
string.h>
/*字符串函数*/
#defineN20/*定义常数表示记录数*/
structstudent/*定义数据结构*/
{charnum[20];
/*学生序号*/
charname[10];
/*姓名*/
chartel[20];
/*电话号码*/
charadr[20];
};
/*地址*/
voidmenu();
/*主菜单函数*/
voidreads(structstudentstu[N],int*n);
/*从文件中读取学生数据*/
voidadd();
/*添加学生信息函数*/
voiddel();
/*删除学生信息函数*/
voidquery();
/*学生信息查询函数*/
voidchange();
/*改变学生信息函数*/
voidshow();
/*显示所有学生信息函数*/
voidmain()/*主函数*/
{intn;
while
(1)
{
menu();
printf("
\n请输入您要选择的操作序号,按回车键确认:
"
);
scanf("
%d"
&
n);
switch(n)
{case1:
add();
break;
沈阳大学
软件编程训练说明书NO.12
case2:
show();
case3:
del();
case4:
change();
case5:
query();
case6:
exit(0);
default:
输入错误,请输入列表中存在的序号!
\n"
}
}
voidmenu()
{printf("
*************************同学通讯录信息管理************************"
\n1添加数据"
\n2显示数据"
\n3删除数据"
\n4更改数据"
\n5查询"
\n6退出"
voidreads(structstudentstu[N],int*n)
{
FILE*fp;
inti=0;
if((fp=fopen("
d:
\\student.txt"
"
r"
))==NULL)
{printf("
文件打开失败!
return;
else
{
//*n=getw(fp);
for(i=0;
!
feof(fp);
i++)
fscanf(fp,"
%s%s%s%s"
stu[i].num,stu[i].name,stu[i].tel,stu[i].adr);
*n=i;
fclose(fp);
软件编程训练说明书NO.13
voidadd()/*添加学生信息函数*/
intn,i;
structstudentstu;
r+"
))!
=NULL)
请输入要添加的学生数量,按回车键确认:
fseek(fp,0L,2);
for(i=1;
i<
=n;
\n请输入第%d个学生的学生序号,姓名,用空格分开,并按回车键确认:
\n"
i);
%s%s"
stu.num,stu.name);
\n请输入第%d个学生的电话号码,地址,用空格分开,并按回车键确认:
stu.tel,stu.adr);
fprintf(fp,"
\n%s%s%s%s"
stu.num,stu.name,stu.tel,stu.adr);
w"
=NULL)
{printf("
\n请输入第%d个学生的学生序号、姓名,用空格分开,并按回车键确认:
\n请输入第%d个学生的电话号码,地址,用空格分开,并按回车键确认:
fprintf(fp,"
}
voidshow()/*显示所有学生信息函数*/
沈阳大学
软件编程训练说明书NO.14
structstudentstu[N];
inti,n=20;
reads(stu,&
/*从文件中读出所有学生信息*/
*****************所有的学生信息如下*****************\n"
puts("
\t学生序号姓名电话地址"
n;
\n%s%s%s%s\n"
getch();
voiddel()/*删除学生信息函数*/
structstudentstu[N];
charnumber[20];
intn,i,j;
\n请输入要删除信息的学生序号,按回车键确认:
getchar();
%s"
number);
if(strcmp(number,stu[i].num)==0)break;
if(i>
=n)
没有找到该学生信息\n"
for(j=i+1;
j<
j++)
stu[j-1]=stu[j];
))==NULL)/*更新文件*/
文件打开失败\n"
软件编程训练说明书NO.15
n-1;
删除成功\n"
voidchange()/*改变学生信息函数*/
structstudentstu[N],temp;
\n请输入要更改信息的学生序号,按回车键确认:
temp.num);
if(strcmp(temp.num,stu[i].num)==0)
break;
无此学生信息\n"
\n请输入更改后的学生姓名,电话号码,地址,用空格分开:
%s%s%s"
temp.name,temp.tel,temp.adr);
stu[i]=temp;
′打开文件失败\n"
修改学生信息成功\n"
软件编程训练说明书NO.16
voidquery()/*学生信息查询*/
inti,n;
\n请输入待查询的学生序号,按回车键确认:
printf("
\n%5s%5s%5s%5s\n"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 同学 通信 管理 系统