c语言课程设计报告通讯录管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1设计题目的内容、任务及具体要求

一.需求分析

实现通讯录管理系统

任务:自学C语言有关链表及外部文件的内容,设计出通讯录管理系统,要求如下: ①建立通讯录信息,信息至少包含编号,姓名,年龄,电话,通讯录地址,电子邮箱等;

②能够提供添加,删除和修改通讯录信息的功能;

③能够提供按不同方式查询的功能;如按姓名或年龄,电话等查询;

④将通讯录保存在文件中;

⑤能够按表格方式输出通讯录信息

要求:

1.学生从以上几个设计任务中任选其中一个完成.

2根据以上功能需求,自己定义单链表结点的存储结构;

3.为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名,路径等自定;

4.提供友好的用户界面,方便用户操作.

二.源程序代码

#include

#include

#include

#define BUFLEN 80 /* 缓冲区最大字符数 */

#define LEN 30 /* 学号和姓名最大字符数,实际请更改 */

#define N 200 /* 最大学生人数,实际请更改*/

struct record

{

char code[LEN+1]; /* 学号 */

char name[LEN+1]; /* 姓名 */

int age;

char sex[3];

char time[LEN+1];

char add[LEN+1];

char tel[LEN+1];

char mail[LEN+1];

}stu[N];

int k=1,n,m;

void readfile();/* 函数声明 */

void seek();

void modify();

void insert();

void del();

void display();

void save();

void menu();

int main()

{ while(k)

menu();

system("pause");

return 0;

}

void readfile()/* 建立信息 */

{

char buf[BUFLEN],*p="student.dat";

FILE *fp;

int i=0;

if ((fp=fopen("student.dat","r"))==NULL) /* 把此程序和文件student.dat放在同一目录下 */

{ printf("Open file %s error! Strike any key to exit!",p);

system("pause");

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++;

}

fclose(fp);

n=i;

printf("录入完毕!\n");

}

void seek()

{int i,j,item,flag;

char s1[LEN+1]; /* 以姓名和学号最长长度+1为准 */

printf("------------------\n");

printf("1.按学号查询\n");

printf("2.按姓名查询\n");

printf("3.退出本菜单\n");

printf("------------------\n");

while(1)

{ printf("请选择子菜单编号:");

scanf("%d",&item);

flag=0;

switch(item)

{

case 1:

printf("请输入要查询的学生的学号:\n");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].code,s1)==0)

{ flag=1;

printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");

printf("%s %s %d %s %s %s %s %s\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);

}

if(flag==0)

printf("该学号不存在!\n"); break;

case 2:

printf("请输入要查询的学生的姓名:\n");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].name,s1)==0)

{ flag=1;

printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");

printf("%s %s %d %s %s %s %s %s\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);

}

if(flag==0)

printf("该姓名不存在!\n"); break;

case 3:return;

default:printf("请在1-3之间选择\n");

}

}

}

void modify() /*修改信息*/

{int i,j,item,num;

char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和学号最长长度+1为准 */ printf("请输入要要修改的学生的学号:\n");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].code,s1)==0)

num=i;

printf("------------------\n");

printf("1.修改姓名\n");

printf("2.修改年龄\n");

printf("3.修改性别\n");

printf("4.修改出生年月\n");

printf("5.修改地址\n");

printf("6.修改电话号码\n");

printf("7.修改E-mail地址\n");

printf("8.退出本菜单\n");

printf("------------------\n");

while(1)

{ printf("请选择子菜单编号:");

scanf("%d",&item);

switch(item)

{

相关文档
最新文档