1、C语言毕业课程设计通讯录管理系统(此文档为word格式,下载后您可任意编辑修改!)C语言通讯录管理系统课程设计报告题 目通讯录管理系统学 号姓 名年级专业09级电子信息工程指导教师完成日期年月日1设计题目的内容、任务及具体要求本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。记录通讯录内的人员的姓名、地址、邮编、电话号码。显示所有人员的信息。通过输入姓名查找人员
2、信息。通过输入姓名查找到要删除的人员信息,然后可以进行删除。通过输入姓名查找到要修改的人员信息,然后可以进行修改。添加人员信息。2总体设计思路本系统首先设计出了主函数,然后根据去要实现的功能分别设计拉,显示、删除、查找、修改、添加功能的子函数。在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。修改也大体和删除相同,添
3、加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。下面就是总的程序流程图:3功能模块的具体设计3.1 界面分析 3.1.1开始界面3.1.2显示功能的界面:选择1后系统出现现有的所有人员名单:3.1.3 显示删除功能的界面3.1.4 查找功能:通过5:findbyname 用姓名来查找个人的通讯录信息通过6:findbytel 用电话号码来查找个人的通讯录信息3.1.5 修改功能的界面:输入姓名后的系统界面:输入修改信息后的系统界面:3.1.6添加功能的界面:选择1后的系统界面:3.2 程序设计主要内容#include=0&m=6) switch(m) c
4、ase 1: append(); break; case 2: modify(); break; case 3: output(); break; case 4: delete(); break; case 5: find_by_name(); break; case 6: find_by_tel(); break; case 0: exit(); printf(nnHave finished,select again!n); else printf(nnError,select again!n);void creat() struct student one; printf(nInput t
5、he name of addressbook:); gets(filename); if(fp=fopen(filename,w)=NULL) printf(nCannt creat addressbook!); exit(); *fprintf(fp,%-10s%-8d%-20s%-20s%-20sn,one.name,one.num,one.dis,one.tel,one.addr); *printf(nInput name,num,dis,tel,addr(end press #)n); gets(one.name); while(strcmp(one.name,#) gets(one.
6、num); gets(one.dis); gets(one.tel); gets(one.addr); fprintf(fp,%-10s%-10s%-10s%-20s%-20sn,one.name,one.num,one.dis,one.tel,one.addr); gets(one.name); fclose(fp);void find_by_name() int k=0; char namekey8; struct student one; printf(nInput name:); scanf(%s,namekey); if(fp=fopen(filename,rb)=NULL) pri
7、ntf(nCannt open this addressbook!); exit(); while(!feof(fp) fscanf(fp,%s%s%s%s%sn,one.name,one.num,one.dis,one.tel,one.addr); if(!strcmp(namekey,one.name) printf(nnHave finded,as follow:n); printf( name num dis tel addr ); printf(n%-10s%-10s%-10s%-20s%-20sn,one.name,one.num,one.dis,one.tel,one.addr)
8、; k=1; if(!k) printf(nnSorry,there is no this student!); fclose(fp);void find_by_tel() int k=0; char telkey8; struct student one; printf(nInput tel:); scanf(%s,telkey); if(fp=fopen(filename,rb)=NULL) printf(nCannt open this addressbook!); exit(); while(!feof(fp) fscanf(fp,%s%s%s%s%sn,one.name,one.nu
9、m,one.dis,one.tel,one.addr); if(!strcmp(telkey,one.tel) printf(nnHave finded,as follow:n); printf( name num dis tel addr); printf(n%-10s%-10s%-10s%-20s%-20sn,one.name,one.num,one.dis,one.tel,one.addr); k=1; if(!k) printf(nnSorry,there is no this student!); fclose(fp);void output() struct student one
10、; if(fp=fopen(filename,r)=NULL) printf(nCannt open this addressbook!); exit(0); * printf(nn%20sn, nCannt open this addressbookn);* while(!feof(fp) fscanf(fp,%s%s%s%s%sn,one.name,one.num,one.dis,one.tel,one.addr); if(strcmp(one.name,%-10s%-10s%-10s%-20s%-20sn,one.name,one.num,one.dis,one.tel,one.addr
11、); fclose(fp);void append() struct student one; if(fp=fopen(filename,a)=NULL) printf(nCannt open this addressbook!); exit(); printf(nInput new name,num,dis,tel,addrn); scanf(%s%s%s%s%s,one.name,one.num,one.dis,one.tel,one.addr); fprintf(fp,%-10s%-10s%-10s%-20s%-20sn,one.name,one.num,one.dis,one.tel,
12、one.addr); fclose(fp);void modify() int m,k=0; long offset; char namekey8; struct student one; printf(nInput name:); scanf(%s,namekey); if(fp=fopen(filename,r+)=NULL) printf(nCannt open this addressbook!); exit(); while(!feof(fp) offset=ftell(fp); fscanf(fp,%s%s%s%s%sn,one.name,one.num,one.dis,one.tel,one.addr); if(!strcmp(namekey,one.name) k=1; break;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1