学生成绩管理系统
课程设计报告
编写人:
同组成员: (课程设计负责人)
完成日期: 2010/12/18
辅导教师:
批阅日期:
分数:
功能描述
此电话簿管理系统主要利用线性表实现,由如下六个功能模块实现
输入模块。主要完成将电话记录存入线性表的工作。
输出模块。主要完成将所有记录输出显示的功能。
建表模块。主要完成建立线性表,开辟空间的功能。
插入模块。主要完成插入记录的功能。
查询功能。主要完成查询记录的功能。
删除功能。主要完成从线性表中删除记录的功能。
电话簿管理系统
输入记录模块
建表模块
输出记录模块
建表模块
建表模块
从文件读入
从键盘输入
插入模块
查询模块
删除模块
数据结构设计
电话簿信息结构体
struct telbook //定义一个电话簿结构体,用来存储电话簿信息//
{ //定义各结构体成员的数据类型//
char tel[20]; //定义电话号码//
char name[20]; //定义机主姓名//
char sex[10]; //定义机主性别//
char addr[50]; //定义所在地址//
};
函数功能描述
1、建表:
函数原型:
struct telbook *initsl(int m) //建立线性表//
{struct telbook *v;
v=(struct telbook*)malloc(m*sizeof(struct telbook)); //分配此结构体一定的空间,并初始化//
return v;
}
参数含义:m——线性表的空间大小
V——指向线性表表头的指针
2、Input1( )
函数原型:
void input1(struct telbook *v,int m,int n) //输入函数1,由键盘输入
{
int i;
if(n<=0)
printf("输入错误");
else if(n>m)
printf("\n输入错误,最多只能输入%d个相关信息!",m); //线性表溢出
else
for(i=0;i<n;i++) //可以多次输入
{printf("\n你即将输入第%d个信息\n: ",i+1);
printf("\n姓名,性别,电话,地址:");
scanf("%s %s %s %s",v[i].name,v[i].sex,v[i].tel,v[i].addr);
getchar(); //输入相关信息
}
printf("\n OK!");
}
参数含义:m——线性表的空间大小
v——指向线性表表头的指针
n——线性表的长度
i——电话簿信息在表中的位置
3、Input2()
函数原型:
void input2(struct telbook *v,int m,int n) //输入函数2,由文件导入
{
int i;
FILE *fp; //定义一个指向文件的指针
if((fp=fopen("","r"))==NULL)
{printf("\n打开文件失败!");
exit(0);
}
for(i=0;i<n;i++)
fscanf(fp,"%s%s%s%s",v[i].name,v[i].sex,v[i].tel,v[i].addr);
fprintf(fp,"%s%s%s%s",&v[i].name,&v[i].sex,&v[i].tel,&v[i].addr);
printf("\n成功从文件中导入了%d个信息!\n",n);
}
参数含义:m——线性表的空间大小
v——指向线性表表头的指针
n——线性表的长度
i——电话簿信息在表中的位置
4、output()
函数原型:
void output(struct telbook *v,int m,int n) // 输出函数
{int i;
printf("\n以下是全部电话簿信息:");
printf("\n----------------------------------------------------------------------");
printf("\n\t姓名\t性别\t电话\t地址\t");
for(i=0;i<n;i++)
printf("\n\t%s\t%s\t%s\t%s\t",v[i].name,v[i].sex,v[i].tel,v[i].addr);
printf("\n----------------------------
美容行业-皮肤的专业知识 来自淘豆网m.daumloan.com转载请标明出处.