C语言课程设计学生通讯录管理系统设计说明Word文档下载推荐.docx
- 文档编号:13424229
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:12
- 大小:99.31KB
C语言课程设计学生通讯录管理系统设计说明Word文档下载推荐.docx
《C语言课程设计学生通讯录管理系统设计说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生通讯录管理系统设计说明Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
开始
以可读写的方式打开一个数据文件
将此文件的内容读出,并存入一个新的结构体类型的数组中。
调用menu()菜单函数
进入while()主循环
输入1-8中的一数值,选择相应操作。
输入是否为0
判断键值,调用相应函数,完成相应功能。
是否已对修改存盘
调用函数save()函数,进行写数据文件操作
结束
模块一:
头文件,变量定义,函数的声明
对系统所使用的变量进行定义,对函数进行声明。
模块二:
录入学生信息
声明函数voidreadfile(),说明一个文件指针FILE*fp打开文
件"
。
模块三:
学生信息的查找
声明voidseek()为查找函数,通过switch(item)设定用学号查找,
用查找两个分支。
模块四:
学生信息的修改
声明voidmodify()为学生信息修改函数,通过switch(item)设定
所要修改的项目。
模块五:
刷新学生信息
声明voidsort()将录入学生系按升序排列,用的是“冒泡排序法”
实现排序。
模块六:
增加学生信息
声明voidinsert()插入学生信息,先通过判断学生是否存在,若
否则继续输入,若是则跳出,重新循环。
模块七:
删除学生信息
声明voiddel()实现学生信息删除,通过学号对比确定要删除的信
息,然后用后一个替换掉。
模块八:
显示学生信息
通过display()函数输出学生信息。
模块九:
保存信息
通过fp=fopen("
"
w"
);
写入信息。
模块十:
汇总学生数目
通过number()函数将已有男女生及总学生数目汇总出来。
模块十一:
系统帮助
通过help()函数帮助操作。
模块十二:
界面菜单
通过switch(num)调用以上各函数,实现功能。
1、程序采用模块化设计,各模块独立,可分块调试,个模块由主函数控制调用。
2、其中主要模块(readfile()、seek()、modify())都是利用数组,指针来实现数据结构设计。
3、数据库设计的任务是确定系统所需要的数据库。
数据库是表的集合,通常一个系统只需一个数据库。
设计人是根据需求分析,确定数据库所包含的表及字段、表间的关系,然后具体确定表的结构,包括字段名、字段类型及宽度,需要的索引等。
根据对需求得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。
通讯信息表包括以下字段:
学号,,年龄,性别,出生年月,地址,,E-mail。
学号为主索引。
四、结束语
我设计的程序总体功能大都能够运行顺利,但有许多地方比较复杂,需要进一步修改,进行简化。
通过这次课程设计的锻炼,我收获很多,具体归纳为以下几点:
1、首先,也是最重要的一点,学会如何将一个复杂的问题简化,将一个较大的问题分成几个小问题,再一一解决这些小问题。
在设计一个程序之前,要学会对程序功能进行规划,将其分为几个不同的功能模块,要思路清晰,简单易用;
2、学会灵活运用已有的知识,同时适当的拓展一些知识;
比如,这次设计过程中,有一些函数以前就很少用到,甚至没有见过,但对程序的设计及用户界面的改善带来方便;
3、解决问题时,要尽可能考虑全面。
每一个细节都很重要,既要避免功能的重复,也要避免功能疏漏的地方!
4、在这次课程设计过程中,参考了许多资料,发现C语言真的很有意思!
比如我看到一个关于用C语言编写的小程序:
五子棋、俄罗斯方块、推箱子等,等这次课程结束后,我就想利用C语言编写这些小游戏。
曾经认为C是个挺枯燥的课程,现在发现这不仅仅是个简单的课程,而是个很实用的计算机工具!
五、程序源代码清单
#include<
stdio.h>
stdlib.h>
string.h>
#defineBUFLEN100
#defineLEN15
#defineN100
structrecord
{
charcode[LEN+1];
charname[LEN+1];
intage;
charsex[3];
chartime[LEN+1];
charadd[30];
chartel[LEN+1];
charmail[30];
}stu[N];
intk=1,n,m;
voidreadfile();
voidseek();
voidmodify();
voidinsert();
voiddel();
voiddisplay();
voidsave();
voidnumber();
voidmenu();
intmain()
while(k)
menu();
system("
pause"
return0;
}
voidreadfile()//刷新学生信息
char*p="
;
FILE*fp;
inti=0;
if((fp=fopen("
r"
))==NULL)
{
printf("
Openfile%serror!
Strikeanykeytoexit!
"
p);
exit(0);
}
while(fscanf(fp,"
%s%s%d%s%s%s%s%s"
stu[i].code,stu[i].name,&
stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)
{
i++;
i=i;
fclose(fp);
n=i;
录入完毕!
\n"
voidseek()//查询学生信息
.
voidmodify()//修改学生信息
voidsort()//对学生信息按学号排序
inti,j,*p,*q,s;
chartemp[10];
for(i=0;
i<
n-1;
i++)
for(j=n-1;
j>
i;
j--)
if(strcmp(stu[j-1].code,stu[j].code)>
0)
strcpy(temp,stu[j-1].code);
strcpy(stu[j-1].code,stu[j].code);
strcpy(stu[j].code,temp);
strcpy(temp,stu[j-1].name);
strcpy(stu[j-1].name,stu[j].name);
strcpy(stu[j].name,temp);
strcpy(temp,stu[j-1].sex);
strcpy(stu[j-1].sex,stu[j].sex);
strcpy(stu[j].sex,temp);
strcpy(temp,stu[j-1].time);
strcpy(stu[j-1].time,stu[j].time);
strcpy(stu[j].time,temp);
strcpy(temp,stu[j-1].add);
strcpy(stu[j-1].add,stu[j].add);
strcpy(stu[j].add,temp);
strcpy(temp,stu[j-1].tel);
strcpy(stu[j-1].tel,stu[j].tel);
strcpy(stu[j].tel,temp);
strcpy(temp,stu[j-1].mail);
strcpy(stu[j-1].mail,stu[j].mail);
strcpy(stu[j].mail,temp);
p=&
stu[j-1].age;
q=&
stu[j].age;
s=*q;
*q=*p;
*p=s;
voidinsert()//增加学生信息
voiddisplay()//显示当前学生信息
inti;
所有学生的信息为:
学生学号,学生,年龄,性别,出生年月,地址,,E-mail\n"
--------------------------------------------------------------------\n"
n;
%6s,%7s,%5d,%5s,%9s,%8s,%10s,%14s\n"
stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
voidsave()//保存当前学生信息
fp=fopen("
fprintf(fp,"
%s,%s,%d,%s,%s,%s,%s,%s\n"
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
voidnumber()//汇总学生数目
inti,girl,boy=0;
if(strcmp(stu[i].sex,"
1"
)==0)
{boy++;
girl=n-boy;
printf("
男生人数是:
%d\n女生的人数是:
%d\n"
boy
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 通讯录 管理 系统 设计 说明
