同学录的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1前言 (1)
2需求分析 (1)
2.1要求 (1)
2.2任务 (1)
2.3运行环境 (1)
2.4开发工具 (1)
3概要设计 (3)
3.1 系统流程图 (3)
3.2查询函数流程图 (4)
4详细设计 (5)
4.1分析与设计 (5)
4.2 具体代码实现 (7)
4.3 测试与输入,输出 (9)
5课程设计的总结与体会 (11)
参考文献 (11)
致谢 (11)
前言
编写一个程序来处理同学通信录。
通过一个结构体数组来存放输入的每一位同学的记录(包括姓名、电话号码、e_mail、地址),然后将其信息存入文件中。
输入一个电话号码查询该同学的信息,并显示在屏幕上。
2.需求分析
2.1要求
(1)用c语言实现程序设计;
(2)利用结构体进行相关信息处理;
(3)画出查询模块的流程图;
(4)系统的各个功能模块要求用函数的形式实现;
(5)界面友好(良好的人机互交),程序要有注释。
2.2任务
(1)定义一个结构体类型数组,输入每一位同学的记录(包括姓名、电话号码、e_mail、地址),将其信息存入文件中;
(2)输入电话号码查询该同学的信息,并显示在屏幕上;
(3)画出查询模块的流程图;
(4)编写代码;
(5)程序分析与调试。
2.3运行环境
(1)WINDOWS2000/XP系统
(2)Turboc2.0编译环境
2.4开发工具
C语言
3概要设计
3.1 系统流程图
图3.1 系统流程图
3.2查询函数流程图
图3.2 查询函数流程图
4.详细设计
4.1分析和设计
在程序的开头部分定义结构体类型和全局的结构体数组,用来存放同学的信息,假设共10条信息。
struct student
{ char name[10];
char tel[20];
char email[20];
char add[10];
}st[10];
用输入函数input()来输入同学信息放在st数组中。
void input()
{ }
在这个函数中用一个for循环语句就能实现。
用创建文件函数telebook()来把结构体数组中的信息写入文件QINCAI.TXT 中。
在telebook()函数中先用写的方式打开文件QINCAI.TXT,然后用fwrite 函数写入数组中的内容到文件QINCAI.TXT中,最后关闭文件QINCAI.TXT。
通过定义用电话号码查询信息的函数lookfor()完成查询某同学的信息的功能。
最后通过主函数调用telebook()和lookfor()完成各项功能。
4.2 具体代码实现
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define N 20
struct student /*定义学生类型*/
{
char name[10];
char tel[20];
char email[20];
char add[10];
};
struct student st[20]; /*说明结构体变量*/
void telbook( FILE*); /*输入信息函数说明*/
void lookfor( FILE *p); /*查询信息函数说明*/
main()
{
FILE *fp; /*定义文件指针*/
char *filename; /*定义指针变量*/
int choice;
filename="QINCAI.TXT"; /*给指针变量赋值*/
if((fp=fopen(filename,"wb"))==NULL) /*以只写打开或建立一个二进制文件*/
{
printf("can not open the %s file!\n",filename);
exit(0);
}
telbook(fp); /*调用输入信息的函数*/
fclose(fp); /*关闭函数*/
if((fp=fopen(filename,"rb"))==NULL) /*以只读打开已建二进制文件*/
{
printf("can not open the %s file!\n",filename);
exit(0);
}
printf("whether you want to check information by input tel-phone number:\n"); /*提示是否需查询*/
printf("please input you choice:\n");
scanf("%d",&choice);
printf("-----------------------------------------------------\n");
switch(choice)
{
case 1: lookfor(fp);break; /*调用查询信息函数据*/
case 0: break;
}
fclose(fp);
}
void telbook(FILE *f) /*定义输入同学信息函数*/
{
int i;
printf("\n\n\n\n");
printf("welcome to visit this telbook:\n"); /*欢迎界面*/
printf ("****************************************\n");
printf("name: tel: e-mail: add:\n");
for(i=0;i<N;i++)
{
scanf("%s%s%s%s",st[i].name,st[i].tel,st[i].email,st[i].add); /*输入有关信息*/
fwrite(&st[i],sizeof(struct student),1,f); /*把信息写入文件*/
}
}
void lookfor(FILE *p) /*定义按电话号码查询同学信息的函数*/
{
int i=0;
char tel[20];
printf("please input tel-phone number:");
scanf("%s",tel);
while(i<N)
{
fread(&st[i],sizeof(struct student),1,p); /*读一位同学的信息*/ if(strcmp(st[i].tel,tel)==0) /*判断输入的电话号码与文件中某同学的电话号码是否相同*/
{
printf("%10s%10s%10s%10s\n",st[i].name,st[i].tel,st[i].email,st[i].add); /*输出查询的信息*/
break;
}
i++;
}
if(i==N) printf("\n\n Not found!,press anykey to continue......:");
}
4.3输入与查询在TC上的显示界面。