同学通讯录信息管理报告Word下载.docx
《同学通讯录信息管理报告Word下载.docx》由会员分享,可在线阅读,更多相关《同学通讯录信息管理报告Word下载.docx(17页珍藏版)》请在冰点文库上搜索。
![同学通讯录信息管理报告Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/28/5c6971ef-728f-44a7-9d32-fca30d760b39/5c6971ef-728f-44a7-9d32-fca30d760b391.gif)
课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、说明书成绩
六、教师评语
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段5
四、个人总结9
五、参考文献9
六、源程序10
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:
添加学生通讯录(add),查询学生通讯录(inquire),显示学生通讯录(show_all)以及保存(save)。
在这些函数当中,前两个函数的实现是整个程序的核心,较为复杂。
1、添加学生通讯录主要实现程序最初运行时学生通讯录的录入以及其后的运行中学生通讯录的追加功能;
2、查询学生通讯录实现的功能是按照学号或姓名对学生的通讯录记录进行查询;
3、显示学生通讯录主要功能是将学生通讯录的全部信息显示出来
4、保存实现功能为将新的通讯录信息保存到文件中;
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个学生记录都包含学号、姓名、电话和地址,在程序当中,将学生通讯录类型定义为结构体类型,添加以及追加的学生通讯录信息现存入结构体数组中,再在save函数中写入D盘的myfile.dat文件中,其他函数每次对学生通讯录的访问,其数据来源都是结构体数组并可以对学生数据进行永久保存。
5.如果用户输入的信息范围在1-5之外,会自动提示用户重新输入。
二、程序流程图
1、程序总体结构图
图1程序总体结构图
2、具体功能框图
(1)添加学生通讯录add
n=1
真
temp_letter=a
假
通过输入学号查询并显示学生通讯录信息
temp_letter=b
通过输入姓名查询并显示学生通讯录信息
temp_letter=c
退出
图2添加学生通讯录
(2)学号查询num_inquire
n=2
i<
counter
stu[i].num=inquire.num
真
显示学生通讯录信息
count++
count=0
无此学生信息
图3学号查询
(3)姓名查询name_inquire
do·
·
while(cha_name[j-1]!
=0)
cha_name[j]!
=stu[i].name[j]
count1=1
count1=0
count2++
count2=0
图4姓名查询
三、核心技术的实现说明及相应程序段
本程序主要由七个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
在这些函数当中,添加学生通讯录、查询学生通讯录是程序中较为核心的部分,下面分别进行说明。
1、添加学生通讯录
添加学生通讯录是将学生通讯录信息以结构体数组的形式储存到结构体数组中去。
具体的程序段如下:
voidadd()
{
printf("
shuruxinxi:
\n"
);
#########num:
"
scanf("
%d"
&
stu[counter].num);
/*输入学生学号*/
#########name:
%s"
stu[counter].name);
/*输入学生姓名*/
#######telephone:
stu[counter].telephone_num);
/*输入学生电话号码*/
#########address:
stu[counter].address);
/*输入学生地址*/
counter++;
}
2、查询学生通讯录
该函数通过调用两个自定义函数分别实现学号查询和姓名查询两种查询通讯录的方式。
并运用do·
while()循环和switch()分支结构进行两种查询方式的选择。
具体程序段如下:
voidinquire()
chartemp_letter;
Anyaoqiushuruxinxi:
a.Genjuxuehaochaxun\n"
b.Genjuxingmingchaxun\n"
c.tuichu\n"
do{
temp_letter=getchar();
switch(temp_letter)
{
case'
a'
:
num_inquire();
break;
b'
name_inquire();
c'
caidan();
}
}while(temp_letter!
='
3、学号查询
通过学号在已有记录中查找相同信息,并显示出来。
voidnum_inquire()
intinquire_num;
inti;
intcount=0;
a.qingshuruxuehao:
inquire_num);
for(i=0;
counter;
i++)
if(stu[i].num==inquire_num)
########num:
%d\n"
stu[i].num);
########name:
%s\n"
stu[i].name);
###telephone:
stu[i].telephone_num);
#####address:
stu[i].address);
count++;
if(count==0)
Meiyouniyaochaxunxueshengdexinxi!
);
4、姓名查询
通过姓名在已有记录中查找相同信息,并显示出来。
voidname_inquire()
char*p1,*p2,cha_name[20];
inti,j=0,k;
intcount1=0,count2=0;
b.qingshuruxingming:
p1=cha_name;
p1);
count1=0;
j=0;
do
if(cha_name[j]!
=stu[i].name[j])
count1=1;
j++;
}while(cha_name[j-1]!
=0);
if(count1==0)
#######num:
#######name:
####telephone:
######address:
count2++;
if(count2==0)
四、个人总结
通过本次课设学习我不仅对C语言知识有了更多的了解,而且也提高了自学的能力与上机操作的能力。
由于我以前不重视自己动手操作和创新看到题目都不知道从何下手,但通过老师指导和同学的帮助最后完成课设内容。
通过做课设体会到C语言的结构化的严密性及程序模块化,也能更好的使用函数及调用函数问题。
在调试程序中既增长了我的知识又磨练我的意志。
总之,通过这次学习给我带来学习的乐趣,受益非浅!
五、参考文献
1谭浩强.C程序设计.北京:
清华大学出版社,2005
2刘成等.C语言程序设计实验指导与习题集.北京:
中国铁道出版社,2006
六、源程序
#include<
stdio.h>
string.h>
structstudent
intnum;
charname[20];
chartelephone_num[13];
charaddress[50];
}stu[10];
voidcaidan();
voidadd();
voidinquire();
voidshow_all();
voidnum_inquire();
voidname_inquire();
voidsave();
intcounter=0;
voidcaidan()
{printf("
************MENU**********\n"
1.Shuruxinxi:
2.Chaxunxinxi:
3.Xianshixinxi:
4.baocunwenjian:
5.Tuichujiemian:
printf("
***************************\n"
###########num:
###########name:
###########phone:
a.Genjuxuehaochaxun\n"
b.Genjuxinmingchaxun\n"
c.tuichu\n"
voidshow_all()
Xianshisuoyouxinxi:
#####telephone:
#######address:
Meiyouniyaochaxunxunshengdexinxi!
char*p1,cha_name[20];
inti,j=0;
##telephone:
####address:
voidsave()
{inti;
FILE*fp;
fp=fopen("
d:
\\myfile.dat"
"
w+"
4;
fwrite(&
stu[i],sizeof(structstudent),1,fp);
fclose(fp);
wenjianyibaocun\n"
voidmain()
charc;
intn;
intquit=0;
while(c!
!
'
){
n);
switch(n)
case1:
add();
case2:
inquire();
case3:
show_all();
case4:
save();
case5:
quit"
quit++;
default:
\nshurufanweizai1--5,qingchongxinshuru:
c=getchar();
if(quit!
=0)
c='
;
getchar();