1、6、课程设计实践作为培养学生动手能力的一种手段,单独考核。3课程设计说明书一 需求分析 利用C语言编写出通讯录程序,并且实现一个通讯录所拥有的基本功能,加强了C语言学习者将所学知识与生活实践相结合的能力,既能检验学习成果,又能发现C语言的应用市场,通讯录应用广泛,在日常生活中随处可见,最基本的通讯录至少应该满足以下要求:1. 读出功能? 列出所有记录(每项记录只列出姓名、序列、电话号码,邮箱);2. 查询功能(姓名匹配查询;根据序列号查询;)3. 修改功能4. 增加功能(增加一个新的记录;5. 删除功能(删除一条联系人记录;6. 保存功能(保存所输入的项)通讯录系统的使用很好的解决了日常生活中
2、对联系人保存和信息修改的难题,方便了生活。简单,易操作。二 系统设计 主要利用了C语言完成了这个小型的通讯录程序。本程序主要实现了输入并存储联系人的通讯信息、输入所有联系人的信息、按照姓名或编号查找输入的联系人信息、修改输入的联系人信息、输出所有联系人的通讯信息、增加联系人、保存输入信息的功能。 基本功能: 1、输入密码进入系统:通过调用字符串函数strcmp,将键入字符串与源程序中的字符串进行比较,如果吻合,出现“欢迎进入系统”字样,按任意键进入系统,反之,出现“密码错误“字样,按任意键,结束进程。 2、输入并存储联系人的信息:通过输入联系人的编号、姓名、和电话号码,电子邮箱,然后就可以把数
3、据保存在建立的list文件里面。 3、打印联系人的所有信息:通过一个printf语句就可以把所有输入的联系人的信息打印在屏幕上。 4、通过编号和姓名查找联系人:这个功能通过strcmp比较输入的字符串和保存的字符串是否有一致的,然后将吻合的字符串所在的联系人信息条目输出到屏幕上。 5、删除信息有误或信息变动的联系人信息:这个功能通过调用字符串函数strcmp和 strcpy来实现,以下一条信息来覆盖错误的信息,从而达到删除目的效果。 6、修改某条联系人的信息:这个功能仍然要通过字符串函数strcmp函数去比较键入字符串和已输入字符串,如果有相同的,就将所在的这一条联系人信息加以修改,如果没有则
4、直接输出“没有此联系人”。 7、存入所输入信息功能:这个功能通过使用文件操作,定义文件指针,将输入信息存放在文件夹内,方便下次查看系统的结构图,如图:有功能模块图和流程图 三 详细设计 1、首先写入头文件#includestdlib.hstring.h 2、定义一个结构体存储联系人的信息typedef struct char score10;/联系人序列 char name20;/联系人姓名 char sex8;/联系人性别 char num15; /联系人号码 char email20;/联系人邮箱 Person; 3、然后写入定义一个菜单函数,用于介绍通讯系统所具有的所有功能选项,以及输入
5、数字实现选择功能。int menu_select() /选择菜单函数 char c; do system(cls);/清屏 printf(ttntt# 通讯录 ntt# 1. 添加联系人 ntt# 2. 显示信息 ntt# 3. 删除信息 ntt# 4. 查询信息 ntt# 5. 修改信息 ntt# 6. 保存信息 ntt# 0. 退出通讯录 nttntt*ntt请您选择(0-6): c=getchar(); while(c6 return(c- 4、输入信息函数(包括:序列、名字、性别、手机号码、电子邮箱等。)以及选择是否需要继续添加信息。 int Input(Person per,int
6、n) int i=0; char sign,x10; while(sign!=n&sign!N) t序列: scanf(t%s,&pern+i.score);t姓名:,pern+i.name);t性别:,pern+i.sex);t号码:,pern+i.num);t邮箱:,pern+i.email); gets(x);nt是否继续添加?(Y/N)t%csign); i+; return(n+i); 6、显示函数(显示所输入的所有联系人信息) fvoid Display(Person per,int n) int i; printf(n /*格式*/ 序列 姓名 性别 号码 电子邮箱 n-n fo
7、r(i=1;in+1;i+) %-9s%-10s%-15s%-20sn,peri-1.score,peri-1.name,peri-1.sex,peri-1.num,peri-1.email); system(pause7、删除目标联系人函数int Delete_a_news(Person per,int n) char s20; int i=0,j;t请输入想删除记录中的名字: scanf(%s,s); while(strcmp(peri.name,s)!=0&n) i+; if(i=n) t没有此联系人! return(n); for(j=i;jn-1;j+) strcpy(perj.sc
8、ore,perj+1.score); strcpy(perj.name,perj+1.name); strcpy(perj.sex,perj+1.sex); strcpy(perj.num,perj+1.num); strcpy(perj.email,perj+1.email);ttt已经成功删除! return(n-1);8、查询信息函数函数(分为姓名查询和序列号码查询) void Query_a_record(Person per,int n) int m;tn请选择查询方式:t*nt* 1.联系人姓名 *nt* 2.联系人序列号 *n请选择:%dm); while(m!=1&m!=2)输
9、入错误,请重新选择: if(m=1) char s20; int i=0;t请输入想查询联系人的姓名: while(strcmp(peri.name,s)! if(i=n) printf(t记录中没有此联系人! return; t联系人序列: %sn,peri.score);t联系人姓名:,peri.name);t联系人性别:,peri.sex);t联系人号码:,peri.num);t联系人邮箱:,peri.email); ; if(m=2)t输入查询联系人序列: while(strcmp(peri.score,s)!t系统中没有此记录!9、联系人信息修改函数fvoid Change(Pers
10、on per,int n) t请输入想修改的联系人的名字:t系统中没有此联系人! return;peri.score);t修改成功! 3、写一个存储函数来把数据保存到文件中。void WritetoText(Person per,int n) FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ t保存到文件n /*输入文件名*/ t请输入所保存的文件名:,filename); if(fp=fopen(filename,w)=NULL) t无法打开文件n fprintf(fp,*通讯录*n-n while(in) fprintf(fp,%-2st%-1
11、0st%-15dt%-20dtn,peri.score,peri.name,peri.sex,peri.num,peri.email);-n*共有%d条联系人信息*n,n); fclose(fp); /*关闭文件*/ 保存成功!密码函数(进入系统前先输对密码)void mima() char mm8; char shishu=123456;tttt请输入您的密码: gets(mm); if(strcmp(mm,shishu)=0) printf(ttt欢迎进入系统!请按任意键进入系统,谢谢n elsetttt您的密码错误n按任意键自动退出程序n exit(0);10、写出主函数,调用所有自定义
12、函数。void main() /*主函数*/ void mima(); int n=0; mima(); for(; switch(menu_select() case 1:nt添加联系人到系统n /*添加*/ n=Input(pe,n); break; case 2:nt联系人记录表n /*显示记录*/ Display(pe,n); case 3:nt从系统中删除信息n n=Delete_a_news(pe,n); /*删除记录*/ t case 4:nt在系统中查找信息n Query_a_record(pe,n); /*查找记录*/ break; case 5:nt修改系统信息n Chan
13、ge(pe,n); /*修改数据*/ case 6:nt保存功能n WritetoText(pe,n); /*保存数据*/ case 0:t- nt game over nt谢谢使用,再见! ntn /*结束程序*/ ntt四 设计与调试分析1、选择菜单操作的核心步骤:c=getchar();2、输入信息的核心步骤:3、显示信息的核心代码如下:-n在程序的设计中,我写的代码的错误很多。刚开始不知道为什么然后根据错误查找方法找到了。有的时候,忘了将中英文切换,将中英文标点混为一谈;用ifelse时else找不到对应的if;调用函数时调用语句不规范等。做完这个程序,并修正所有错误后,觉得除了一些低级错误意外,又从错误中学到了很多,觉得有进步了一点。五 系统运行与演示1、密码输入界面:2、主菜单界面:2、输入1得到输入联系人信息的界面,如图。3、输入2得到的打印所有联系人的信息的界面,如图。4、选择3得到的运行界面如下图。4、输入4得到不及格的学生如下图。5、输入5修改信息,如图。6、输入6得到界面如下图。7、选择0退出系统。七、附录(代码)Person pe100;tt请您选择(0-6
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1