C语言课程设计_电话薄管理系统方案_第1页
C语言课程设计_电话薄管理系统方案_第2页
C语言课程设计_电话薄管理系统方案_第3页
C语言课程设计_电话薄管理系统方案_第4页
C语言课程设计_电话薄管理系统方案_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 C语言通讯录管理系统课程设计报告题 目通讯录管理系统学 号姓 名年级专业09级电子信息工程指导教师完成日期年月日1设计题目的容、任务与具体要求本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。记录通讯录的人员的、地址、 、。显示所有人员的信息。通过输入查找人员信息。通过输入查找到要删除的人员信息,然后可以进行删除。通过输入查找到要修改的人员信息,然后可以进行修

2、改。添加人员信息。2总体设计思路本系统首先设计出了主函数,然后根据去要实现的功能分别设计拉,显示、删除、查找、修改、添加功能的子函数。在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的容读取到存然后打印出来。删除函数的设计是首先从文件找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从存里删除,然后再用写的方式打开文件,将存的信息写入文件,实现删除。查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。修改也大体和删除一样,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。下面就是总的程序流程图:执行pri

3、ntf()退出系统调用output()函数调用append()函数调用modify()函数调用find()函数调用del()函数选择(a)执行printf()函数开始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<

4、stdio.h>struct student char name8; /*声明一个结构体结构*/ char num10; char dis8; char tel20; char addr20; ;char filename20;FILE *fp;void creat();void output();void find_by_name();void find_by_tel(); /*定义了六个函数和一个指针完成相应的功能*/void delete();void append();void modify();main()int m;printf(" *nnn");prin

5、tf(" * Welcome to use yufeng's *nnn");printf(" * addressbook *nnn");creat(); /*主界面*/while(1) printf(" *nn"); printf(" 0 exit, press 0nn"); printf(" 1 append,press 1nn"); printf(" 2 modify,press 2nn"); printf(" 3 output,press 3nn&qu

6、ot;); printf(" 4 delete,press 4nn"); printf(" 5 find by name,press 5nn"); printf(" 6 find by tel,press 6nn"); /*功能菜单*/ printf(" *n"); scanf("%d",&m); if(m>=0&&m<=6) switch(m) case 1: append(); break; case 2: modify(); break; case 3:

7、 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 the name of addressbook:&qu

8、ot;); gets(filename); if(fp=fopen(filename,"w")=NULL) printf("nCann't creat addressbook!"); exit(); /*fprintf(fp,"%-10s%-8d%-20s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr); */printf("nInput name,num,dis,tel,addr(end press #)n"); gets();

9、 while(strcmp(,"#") gets(one.num);gets(one.dis);gets(one.tel);gets(one.addr);fprintf(fp,"%-10s%-10s%-10s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr);gets(); fclose(fp);void find_by_name() int k=0; char namekey8; struct student one; printf("nInput n

10、ame:"); scanf("%s",namekey); if(fp=fopen(filename,"rb")=NULL) printf("nCann't open this addressbook!"); exit(); while(!feof(fp) fscanf(fp,"%s%s%s%s%sn",,one.num,one.dis,one.tel,one.addr); if(!strcmp(namekey,) printf("nnHave finded

11、,as follow:n"); printf(" name num dis tel addr "); printf("n%-10s%-10s%-10s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr); 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; pri

12、ntf("nInput tel:"); scanf("%s",telkey); if(fp=fopen(filename,"rb")=NULL) printf("nCann't open this addressbook!"); exit(); while(!feof(fp) fscanf(fp,"%s%s%s%s%sn",,one.num,one.dis,one.tel,one.addr); if(!strcmp(telkey,one.tel) printf("

13、;nnHave finded,as follow:n"); printf(" name num dis tel addr"); printf("n%-10s%-10s%-10s%-20s%-20sn",,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; if(fp=fopen(filena

14、me,"r")=NULL) printf("nCann't open this addressbook!"); exit(0); /* printf("nn%20sn"," nCann't open this addressbookn");*/ while(!feof(fp) fscanf(fp,"%s%s%s%s%sn",,one.num,one.dis,one.tel,one.addr); if(strcmp(,"hello"

15、;) printf("n%-10s%-10s%-10s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr); fclose(fp);void append() struct student one; if(fp=fopen(filename,"a")=NULL) printf("nCann't open this addressbook!"); exit(); printf("nInput new name,num,dis,tel,addrn");

16、scanf("%s%s%s%s%s",,one.num,one.dis,one.tel,one.addr); fprintf(fp,"%-10s%-10s%-10s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr); fclose(fp);void modify() int m,k=0; long offset; char namekey8; struct student one; printf("nInput name:"); scanf("%s&

17、quot;,namekey); if(fp=fopen(filename,"r+")=NULL) printf("nCann't open this addressbook!"); exit(); while(!feof(fp) offset=ftell(fp); fscanf(fp,"%s%s%s%s%sn",,one.num,one.dis,one.tel,one.addr); if(!strcmp(namekey,) k=1; break; if(k) printf("nHave

18、 finded,as follow:"); printf("n%-10s%-10s%-10s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr); printf("nInput new name,num,dis,tel,addr:"); scanf("%s%s%s%s%s",,one.num,one.dis,one.tel,one.addr); fseek(fp,offset,SEEK_SET); printf("%1d",ftel

19、l(fp); fprintf(fp,"%-10s%-10s%-10s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr); else printf("nSorry,there is no this student!"); fclose(fp);void delete() int m,k=0,flag; long offset1; char namekey8; struct student one; printf("nInput name:"); scanf("%s&q

20、uot;,namekey); if(fp=fopen(filename,"r+")=NULL) printf("nCann't open this addressbook!"); exit(); while(!feof(fp) offset1=ftell(fp); fscanf(fp,"%s%s%s%s%sn",,one.num,one.dis,one.tel,one.addr); if(!strcmp(namekey,) k=1; break; if(k) printf("nHave

21、 finded,as follow:"); printf("n%-10s%-10s%-10s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr); printf("n delete,press1:n not delete,press0:"); scanf("%d",&m); if(m) fseek(fp,offset1,SEEK_SET);strcpy(,"hello"); fprintf(fp,"%-10s%-1

22、0s%-10s%-20s%-20sn",,one.num,one.dis,one.tel,one.addr); else printf("nSorry,there is no this student!"); fclose(fp);通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。3.3算法流程图3.3.1主函数模块的流程图开始进入主函数intmain()执行printf()函数输入指令(a)执行printf()退出系统调用append()函数调用modify()函数调用find()函数调用delete()函数调用output()函

23、数a!=.5.6图3.3.1 主函数流程图3.3.2 void output()函数流程图 图3.3.2 void output()函数流程图开始If语句判断执行printf()结束执行while()循环结束3.3.3 void delete()函数流程图开始执行if()执行printf()结束执行dowhile()循环语句执行while()循环执行printf()执行for()循环执行if()执行printf()结束执行for()循环结束图3.3.3 void del()函数流程图3.3.4 void find()函数流程图开始执行if()执行printf()结束执行while

24、()执行printf()执行scanf()执行for()执行if()执行if()执行printf()结束执行for()循环结束3.3.5 void modify函数流程图开始执行if()执行printf()结束执行while()执行printf()执行scanf()执行for()执行if()执行if()执行printf()结束执行for()循环结束 图3.3.5 void modify函数流程图3.3.6 void append()函数流程图开始执行if()执行printf()结束申请空间执行printf()执行scanf()写入文件结束图3.3.6 void append()函数流程图4功能

25、模块的调试与测试4.1执行软件1、当软件中总有输入人员信息时:1.查看全部信息时: 根据提示输入1 2.删除人员信息:根据提示输入 2 按回按回车 显示人员信息车输入需要删除人员:例如(yufeng)按回车显示需要删除人员信息并删除。3.查找人员信息 : 根据提示输入 3 按回车 输入要查找的人员名字:例如(yufeng)按回车 显示查找到的人员信息。4.修改人员信息: 根据提示输入4 按回车 输入需要修改的人员:例如(yufeng)按回车 显示修改前的信息。 根据提示输入修改的信息。5.添加人员信息: 根据提示输入5 按回车 输入添加的信息 学号: 学科: : : 地址: 输入完毕后 按回车

26、 可以再根据提示使用查找功能。 该操作可以看见刚才添加的人员信息。2、当软件中总没有输入人员信息时:1.查看全部信息时: 根据提示输入1 按回车 显示:无法从已有通讯录输入!n可能是因为原通讯录不存在或为空!n建议你检查你的通讯录文挡!2.删除人员信息:根据提示输入 2 按回车输入需要删除人员:例如(yufeng)按回车没有信息。3.查找人员信息 : 根据提示输入 3 按回车 输入要查找的人员名字:例如(yufeng)按回车 显示:对不起,通讯簿中没有此人的记录。4.修改人员信息: 根据提示输入4 按回车 输入需要修改的人员:例如(yufeng)按回车 没有显示5.添加人员信息: 根据提示输入5 按回车 输入添加的信息 学号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论