计算机科学系
课程设计报告
2012 — 2013学年 第二学期
课 程 名 称 C语言程序课程设计
设 计 题 目 学生通讯录管理系统
学 生 姓 名 周慧 雷娜 向静 聂佩
学 号 44 34 41 36
专 业 班 级 12级计算机科学与技术2班
指 导 教 师 郭 美
目 录
1.设计任务
1.1题目与要求………………………………………………(1)
1.2本系统涉及的知识点……………………………………(1)
2.功能设计
2.1算法设计…………………………………………………(2)
2.2主要模块流程图…………………………………………(3)
3.程序代码设计
3.1输入模块…………………………………………………(4)
3.2输出模块…………………………………………………(5)
4.总结……………………………………………………………(7)
参考文献…………………………………………………………(13)
system的头文件 附录………………………………………………………………(14)
1.设计任务书
1.1 题目与要求
本组计划(成员为:周慧,雷娜,向静,聂佩合作)编写一个学生通讯录管理系统,主要用来管理学生基本信息。具体要求如下:
1) 通讯录编辑(添加、删除);
2) 按不同的项进行查;
3) 对已存在的通讯录按不同的项排序;
4) 将通讯录写入文件;
5) 从文件读入通讯录 ;
根据分工,周慧的主要工作是通讯录的录入及通讯录的添加。
根据分工,雷娜的主要工作是查询菜单,按邮编、姓名、电话的不同方式分别进行通讯录的查。
根据分工,向静的主要工作是删除菜单,包括删除所有和删除单个,删除的方式有按邮编、姓名删除。
根据分工,聂佩的主要工作是负责排序菜单及文件的保存退出,排序包括按姓名排序和按邮编排序。
l.2 本系统涉及的知识点
if语句、while语句、for语句、switch语句函数与处理、函数的定义与声明、 内部函数与外部函数结构体数组和结构体与函数的运用。
Strcmp函数要与头文件string连用,用来从左至右比较ASCII码值大小,当前者比后者小,则返回小于0值,如果前者比后者大则返回大于0的值,相等就返回值为0。
System(“pause”)与头文件stdlib连用,调用系统命令,表示”press any key ”
Getch()函数与头文件<conio.h>连用,其原型函数为int getch(void)
Ftell(fp) 返回当前位置相对文件开始的相对偏移量;否则返回值为-1。
Exit(0)表示正常退出,非0值表示异常退出,所在头文件为stdio.h
System(“cls”)与stdlib头文件连用,表示清屏功能。
2 功能设计
2.1 算法设计
1)本系统需要实现的功能要求:
利用switch语句设计如图1所示的主菜单:请输入选项编号(1~6)
1——新添记录
2——查询菜单
3——删除菜单
4——排序菜单
5——保存退出
6——不保存退出
图 1 学生通讯录系统主菜单
2)选择2后,调用查询函数,进入函数后利用switch语句实现一个如图2所示的菜单,该菜单中每个选项调用一个函数
图2 查询子菜单
3)选择3后,调用删除函数,进入函数后利用switch语句实现一个如图2所示的菜单,该菜单中每个选项调用一个函数
图3 删除子菜单
4) 选择4后,调用排序函数,进入函数后利用switch语句实现一个如图2所示的菜单,该菜单中每个选项调用一个函数
图4 排序子菜单
2.2 主要模块流程图
学生通讯录信息系统 |
图5 学生通信录流程图
3 程序代码设计
3.1输入模块
1、函数原形:void readfromfile(),void newrecord()
2、功能:用来判断和输入相应的进入主菜单的提示,输入num个学生信息(包括学生姓名、电话号码、地址、邮编、e-mail),每输入一个学生的信息就判断是否继续
3、变量及类型:fp,为指针类型;为文本文件类型
4、说明::学生信息输入函数后,会在键盘缓冲区中保存回车键,后面再对字符型num变量赋值时,会将缓冲区中的回车键当成数据存入变量中
5、模块代码及其相关注释
文件读入的代码及其相应注释:
if((fp=fopen("","rb"))==NULL)
{
printf("\n\t\t通讯录文件不存在");
if((fp=fopen("","wb"))==NULL)
{
printf("\n\t\t建立失败");
exit(0);
}
else
{
printf("\n\t\t通讯录文件已建立");
printf("\n\t\t按任意键进入主菜单");
getch();
return;
}
exit(0);
}
fseek(fp,0,2); /*文件位置指针移动到文件末尾*/
if (ftell(fp)>0) /*文件不为空*/
{
rewind(fp); /*文件位置指针移动到文件开始位置*/
for (num=0;!feof(fp) && fread(&student[num],sizeof(struct record),1,fp);num++);
printf("\n\t\t文件导入成功");
printf("\n\t\t按任意键返回主菜单");
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论