ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:61.50KB ,
资源ID:28747620      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28747620.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言课程设计学生通讯录管理系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言课程设计学生通讯录管理系统.docx

1、c语言课程设计学生通讯录管理系统 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998c语言课程设计学生通讯录管理系统题目:学生通讯录管理系统任务说明: 主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能: 记录通讯录内的人员的学号、姓名、地址、电话号码。显示所有人员的信息。通过输入姓名查找人员信息。通过输入姓名查找到要删除的人员信息,然后可以进行删除。通过输入姓名查找到要修改的人员信息,然后可以进行修改。添加人员信息。系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键

2、字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。各按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”;添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不

3、移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。图1 系统功能模块图软件中使用的结构体和结构体数组,如:struct callmemberchar name20; char address20; char code20; char callnumber20;对用户的信息进行保存,他们都以二进制的形式读写。其中:char name20;char address20; char code20;

4、char callnumber20分别对姓名、地址、邮编、电话号码进行储存在子函数中还使用了结构体数组:struct callmember one100;还使用了exit()、 fclose()等库函数。还运用了头文件:#include #include #include #include其中还使用大量的子函数,例如:void output();void del();void found();void modify() ;void insert();部分子函数的详细代码:void output() int b=0,i=0; int j; struct callmember one100; FI

5、LE *fp; if(fp=fopen(e:通讯录.txt,r)=NULL) printf(无法从已有通讯录输入!n可能是因为原通讯录不存在或为空!n建议你检查你的通讯录文挡!n); exit(1); while(fscanf(fp,%s%s%s%s,onei.name,onei.address,onei.code,onei.callnumber)!=EOF) i+; j=i; for(i=0;iname); printf( 地址:); scanf(%s,p-address); printf( 邮编:); scanf(%s,p-code); printf( 电话:); scanf(%s,p-c

6、allnumber); printf( *n); fprintf(fp,%s %s %s %s,p-name,p-address,p-code,p-callnumber); fclose(fp); free(p);通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。程序流程图: else printf(n对不起,通讯录中没有此人的记录。); fclose(fp); 结果分析:1运行进入程序主菜单主选单具有所有函数的功能实现的选择功能,通过主选单的操作进入各个功能。主选单主要由主函数提供,其功能由子函数实现。2查看所有人员信息界面可以显示全部的人员的信息。可在3 .3参看流程图。3

7、删除模块删除功能界面 4查找模块进入查找记录界面5修改模块进入修改界面6添加模块进入添加界面可以根据要求添加用户想添加的人员信息。7.退出进入退出界面:当出现没有查找人员信息时会自动返回主选单总结1本程序的局限性及改进方法:本程序中包含的信息不够全面,比如年龄,性别,通讯地址,电子邮箱等,都没有包含。改进方法就是在设计程序时把这些内容都加进去,电子邮箱还可以建立链接。2运用本程序还可以编写比如对学生信息的管理系统,商店、超市里面对商品的管理,仓库里面对货物的查询等等。3在课程设计过程中遇到的问题,解决的办法1、从文本中写入数据时可能指针指错位置,导致不能正常进行。解决的办法是对指针进行必要跟踪

8、,把该函数写入独立的cpp文件中,单个进行检查。2、从文本文件中载入数据时,当记录数为1的时,出现内存不能读的情况,当记录数为0时,当前记录数和总记录数以及用户信息显示的情况比较特殊,解决的办法是分三种情况,写段程序分别进行处理。4心得体会与收获:通过这次课程设计,我对很多的函数有了新的认识,我对C语言有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,写软件的过程中我又学到啦曾经自己不知道的函数或是自己不会的函数的用法。特别是文件的开启和关闭,读与写。这次课程设计课总的来说让我受益匪浅。虽然在调试程序遇到了很多的困难,但是都一一去把它解决了。从中也让我知道了要学好这门,仅学习书本上的知识

9、是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。程序清单:#include /*标准输入输出函数库*/#include struct student char name8; char tel15; char addr50; ; char filename20; FILE *fp; void creat(); void output(); void search(); void append(); void modify(); void remove(); main() int m; creat(); while(1) p

10、rintf(nn添加,请按1); printf(n查找,请按2); printf(n修改,请按3); printf(n删除,请按4); printf(n输出,请按5); printf(n退出,请按0n); scanf(%d,&m); if(m=0&m=5) switch(m) case 1: append(); break; case 2: search(); break; case 3: modify(); break; case 4: remove(); break; case 5: output(); break; case 0: break; printf(nn操作完毕,请再次选择!)

11、; else printf(nn选择错误,请再次选择!); void creat() struct student one; long s1; printf(n请输入通讯录名:); scanf(%s,filename); if(fp=fopen(filename,w)=NULL) printf(n不能建立通讯录!); exit(); fprintf(fp,%-10s%-20s%-50sn,姓名,电话号码,住址); printf(n请输入姓名、电话号码及住址(以0结束)n); scanf(%s,; while(strcmp,0) scanf(%s%s,; fprintf(fp,%-10s%-20

12、s%-50sn,; scanf(%s,; fclose(fp); void output() struct student one; if(fp=fopen(filename,r)=NULL) printf(n不能打开通讯录!); exit(); printf(nn%20sn,通 讯 录); while(!feof(fp) fscanf(fp,%s%s%sn,; printf(%-10s%-20s%-50s,; fclose(fp); void append() struct student one; if(fp=fopen(filename,a)=NULL) printf(n不能打开通讯录!

13、); exit(); printf(n请输入添加的姓名、电话号码及住址n); scanf(%s%s%s,; fprintf(fp,%-10s%-20s%-50sn,; fclose(fp); void search() int k=0; char namekey8; struct student one; printf(n请输入姓名:); scanf(%s,namekey); if(fp=fopen(filename,rb)=NULL) printf(n不能打开通讯录!); exit(); while(!feof(fp) fscanf(fp,%s%s%sn,; if(!strcmp(namek

14、ey,) printf(nn已查到,记录为:); printf(n%-10s%-18s%-50s,; k=1; if(!k) printf(nn对不起,通讯录中没有此人的记录。); fclose(fp); void modify() int m,k=0; long offset; char namekey8; struct student one; printf(n请输入姓名:); scanf(%s,namekey); if(fp=fopen(filename,r+)=NULL) printf(n不能打开通讯录!); exit(); while(!feof(fp) offset=ftell(f

15、p); fscanf(fp,%s%s%sn,; if(!strcmp(namekey,) k=1; break; if(k) printf(n已查到,记录为:); printf(n%-10s%-18s%-50s,; printf(n请输入新姓名、电话号码及住址:); scanf(%s%s%s,; fseek(fp,offset,SEEK_SET); printf(%ld,ftell(fp); fprintf(fp,%-10s%-20s%-50sn,; else printf(n对不起,通讯录中没有此人的记录。); fclose(fp); void delete() int m,k=0,flag

16、; long offset1,offset2; char namekey8, valid4; struct student one; printf(n请输入姓名:); scanf(%s,namekey); if(fp=fopen(filename,r+)=NULL) printf(n不能打开通讯录!); exit(); while(!feof(fp) offset1=ftell(fp); fscanf(fp,%s%s%sn,; if(!strcmp(namekey,) k=1; break; if(k) printf(n已查到,记录为); printf(n%-10s%-18s%-50s,; printf(n确实要删除,按1;不删除,按0:); scanf(%d,&m); if(m) fseek(fp,offset1,SEEK_SET); fprintf(fp,%-10s%-20s%-50sn,);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1