搜档网
当前位置:搜档网 › C语言通讯录管理系统程序代码

C语言通讯录管理系统程序代码

C语言通讯录管理系统程序代码
C语言通讯录管理系统程序代码

一、课程设计题目及要求

题目通讯录管理系统

任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述:

◆建立通讯录信息,信息至少包含编号、、年龄、、通讯地址、电子等;;

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

◆能够提供按或等查询;

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

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

二、系统设计方案

(一)总体框架图:

通讯录管理系统:1、录入通讯录信息

2、修改通讯录信息

3、查询通讯录信息

4、浏览通讯录信息

5、增加通讯录信息

6、推出系通讯录统

(二)模块设计

模块一:头文件,变量定义,函数的声明

对系统所使用的变量进行定义,对函数进行声明

模块二:录入通讯录信息

声明函数void readfile(),说明一个文件指针FILE *fp 打开文件"student.txt"

模块三:通讯录信息的查找

声明void seek()为查找函数,通过switch(item)设定用学号查找,用查找两个分支模块四:通讯录信息的修改

声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目

模块五:通讯录信息按学号排序

声明void sort()将录入通讯录信息系按升序排列,用的是“冒泡排序法”实现排序模块六:加通讯录信息

声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环

模块七:通讯录信息

声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。

模块八:示学生信息

通过display()函数输出通讯录信息

模块九;存信息

通过fp=fopen("student.txt","w");写入信息

模块十:界面菜单

通过switch(num)调用,以上各函数,实现功能

三、设计详情

1.主函数

主函数设计要求简洁,只提供部分提示语和函数的调用

图1. 主函数流程图

void menu()/* 界面 */

{ int num;

printf(" \n\n 自动化0901通讯录管理系统 \n\n");

printf(" ***************** \n\n");

printf(" * 制作人:翁行兴 * \n \n");

printf(" ***************** \n\n");

printf("*********************系统功能菜单************************ \n");

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

printf(" * 1.刷新学生信息 * * 2.查询学生信息 * \n");

printf(" * 3.修改学生信息 * * 4.增加学生信息 * \n");

printf(" * 5.按学号删除信息 * * 6.显示当前信息 * \n");

printf(" * 7.保存当前学生信息 * * 8.退出系统 * \n");

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

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

scanf("%d",&num);

switch(num)

{

case 1:readfile();break;

case 2:seek();break;

case 3:modify();break;

case 4:insert();break;

case 5:del();break;

case 6:display();break;

case 7:save();break;

case 8:k=0;break;

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

}

}

四、源代码

#include

#include

#include

#define BUFLEN 100

#define LEN 15

#define N 100

struct record /*结构体*/

{

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

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

int age; /* 年龄 */

char sex[3]; /* 性别 */

char time[LEN+1]; /* 出生年月 */ char add[30]; /* 家庭地址 */

char tel[LEN+1]; /* */

char mail[30]; /* 电子地址 */

}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 *p="student.txt";

FILE *fp;

int i=0;

if ((fp=fopen("student.txt","r"))==NULL)

{

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

}

fclose(fp);

n=i;

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

}

void seek() /*查找*/

{

int i,item,flag;

char s1[21]; /* 以和学号最长长度+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("--------------------------------------------------------------------\n");

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

}

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");

相关主题