收藏 分销(赏)

学生手机通信录管理系统.doc

上传人:人****来 文档编号:3326206 上传时间:2024-07-02 格式:DOC 页数:47 大小:307.04KB
下载 相关 举报
学生手机通信录管理系统.doc_第1页
第1页 / 共47页
学生手机通信录管理系统.doc_第2页
第2页 / 共47页
学生手机通信录管理系统.doc_第3页
第3页 / 共47页
学生手机通信录管理系统.doc_第4页
第4页 / 共47页
学生手机通信录管理系统.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、程序设计报告书( 2023 / 2023 学年 第 一 学期)题 目:通讯录管理系统专 业 学 生 姓 名 班 级 学 号 指 导 教 师 指 导 单 位 日 期 评 分 细 则评分项优秀良好中档差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真限度内容详实限度文字表达纯熟限度回答问题准确度简 短 评 语教师署名: 年 月 日评分等级备注评分等级有五种:优秀、良好、中档、及格、不及格通讯录管理系统一、 课题内容和规定该课题规定设计一个简朴、实用的通信录管理程序,重要功能涉及通信录数据的录入、查找、修改、删除、排序、显

2、示等。所有通信录数据都要运用文献系统保存,以备系统下次运营时使用。通过此课题,全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,纯熟掌握文献、数组、指针的各种操作,以及一些基本算法思想的应用。增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、 需求分析系统功能

3、模块图:流程图查询修改删除排序显示添加保存读入退出添加:可以添加通讯录记录,依次输入序号,姓名,简拼,性别,工作单位,地址,电话,手机,电子邮件,备注后,会提醒是否继续添加。查询:可以选择用序号、姓名、简拼、电话方式查询修改:先查找,再修改。若查找出多条记录,则进一步提醒用户选择记录的序号,再修改删除:输入欲删除的那个人的名字后,删除他(她)的记录内容排序:可按姓名、简拼等排序。规定排序后,记录的序号也要重新编排显示:可以以表格形式输出所有通讯录里的记录保存:,输入文献名(带后缀名)后,即可将通讯录信息保存到文献读入:从文献中读入通信录数据。界面功能规定:(1)采用和谐的字符界面,实现一个功能

4、控制菜单。(2)每次操作都从该菜单选择,运用循环结构使得一次运营程序可进行多次操作。三、概要设计 (1)重要结构体:typedef struct char score; /*序号*/ char name10; /*姓名*/ char jianpin50; /*简拼*/ char sex3; /*性别*/ char company20; /*工作单位*/ char adds20; /*地址*/ char tel15; /*电话*/ char num15; /*手机*/ char email20; /*电子邮件*/ char remark30; /*备注*/Person;(2).工作流程图:1添加

5、:添加通讯录记录N开始i=0sign!=n&sign!=N输入Return(n+i)结束Y2查询:查询通讯录记录先选择查询方式,以姓名查询方式为例N开始输入简拼通讯录是否有此简拼通讯录无此人显示信息结束Y输入电话输入姓名N通讯录是否有此电话通讯录是否有此姓名通讯录无此人通讯录无此人显示信息显示信息结束结束YYN3修改:修改通讯录记录开始输入姓名通讯录是否有此姓名通讯录无此人修改信息结束YN4删除:删除通讯录记录开始输入姓名通讯录是否有此姓名通讯录无此人删除信息结束YN5显示:显示通讯录记录开始int i,i=1in+1输出一个记录i+结束YN四、源程序代码 #include #include#

6、include #includetypedef struct char score; /*序号*/ char name10; /*姓名*/ char jianpin50; /*简拼*/ char sex3; /*性别*/ char company20; /*工作单位*/ char adds20; /*地址*/ char tel15; /*电话*/ char num15; /*手机*/ char email20; /*电子邮件*/ char remark30; /*备注*/Person; Person pe80; int menu_select() char c; do system(cls);

7、 printf(tt *欢迎使用通讯录* n); printf(ttn); printf(tt 1. 添加记录 n); printf(tt 2. 显示记录 n); printf(tt 3. 删除记录 n); printf(tt 4. 查询记录 n); printf(tt 5. 排列顺序 n);printf(tt 6. 修改记录 n); printf(tt 7. 保存记录 n); printf(tt 8. 文献读入 n);printf(tt 0. 退出程序 n); printf(ttn); printf(tt请您选择(0-8):); c=getchar(); while(c8); return(

8、c-0); int Input(Person per,int n) int i=0; char sign,x10; while(sign!=n&sign!=N) printf(t序号:); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(t%s,pern+i.name); printf(t简拼:); scanf(t%s,pern+i.jianpin);printf(t性别:); scanf(t%s,pern+i.sex); printf(t工作单位:); scanf(t%s,pern+pany);printf(t地址:); scanf(t%s,per

9、n+i.adds); printf(t电话:); scanf(t%s,pern+i.tel); printf(t手机:); scanf(t%s,pern+i.num);printf(t电子邮件:);scanf(t%s,pern+i.email); printf(t备注:); scanf(t%s,pern+i.remark);gets(x); printf(nt是否继续添加?(Y/N); scanf(t%c,&sign); i+; return(n+i); void Display(Person per,int n) int i; printf(-n); /*格式*/ printf(序号 姓名

10、简拼 性别 工作单位 地址 电话 手机 电子邮件 备注 n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); system(pause); printf(t-n); printf(-n);system(pause); int Delete_a_record(Person per,int n) char s20; int i=0,j; printf(t请输入想删除记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n

11、); return(n); for(j=i;jn-1;j+) strcpy(perj.name,perj+1.name); strcpy(perj.jianpin,perj+1.jianpin);strcpy(perj.sex,perj+1.sex);strcpy(pany,perj+pany); strcpy(perj.adds,perj+1.adds); strcpy(perj.num,perj+1.num); strcpy(perj.tel,perj+1.tel);strcpy(perj.email,perj+1.email); strcpy(perj.remark,perj+1.rem

12、ark);perj.score=perj+1.score; printf(ttt删除成功n); return(n-1); void Query_a_record(Person per,int n) int m;printf(tn请选择查询方式:n); printf(tn); printf(t1-姓名 n); printf(t2-简拼 n); printf(t3-电话 n); printf(t4-返回 n); printf(tn); printf(请选择:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(输入错误,请重新选择:);scanf(%

13、d,&m); if(m=1)char s20; int i=0; printf(t请输入想查询的姓名:); scanf(t%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t序号: %dn,peri.score);printf(t简拼: %sn,peri.jianpin); printf(t性别: %sn,peri.sex);printf(t工作单位: %sn,pany); printf(t通讯地址: %sn,peri.adds);printf(t电话号码: %sn,p

14、eri.num); printf(t电子邮箱: %sn,peri.email);printf(t备注: %sn,peri.remark); ;if(m=2)char s20; int i=0; printf(t请输入想查询的简拼:); scanf(t%s,s); while(strcmp(peri.jianpin,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t序号: %dn,peri.score);printf(t姓名: %sn,peri.name); printf(t性别: %sn,peri.sex);printf(t工

15、作单位: %sn,pany); printf(t通讯地址: %sn,peri.adds);printf(t电话号码: %sn,peri.num); printf(t电子邮箱: %sn,peri.email);printf(t备注: %sn,peri.remark); ; if(m=3)char s20; int i=0; printf(t请输入想查询的电话:); scanf(t%s,s); while(strcmp(peri.num,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t序号: %dn,peri.score); p

16、rintf(t姓名: %sn,peri.name);printf(t简拼: %sn,peri.jianpin); printf(t性别: %sn,peri.sex);printf(t工作单位: %sn,pany); printf(t通讯地址: %sn,peri.adds);printf(t电子邮箱: %sn,peri.email);printf(t备注: %sn,peri.remark); ;void SelectSort(Person per,int n) int i,j,flag; Person temp; /*临时变量做互换数据用*/ int m;printf(tn请选择排序方式:n);

17、 printf(tn); printf(t 1-姓名 n); printf(t 2-简拼 n); printf(t 3-电话 n); printf(t 4-返回 n); printf(tn); printf(请选择:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(输入错误,请重新选择:);scanf(%d,&m);if(m=1)for(i=0;in;i+) flag=0; /*设标志判断是否发生过互换*/ for(j=0;j0) /*比较大小*/ flag=1; strcpy(temp.name,perj.name); /*互换记录*/ s

18、trcpy(temp. abbreviation,perj.jianoin); strcpy(temp.sex,perj.sex); strcpy(pany,pany); strcpy(temp.adds,perj.adds); strcpy(temp.tel,perj.tel); strcpy(temp.num,perj.num); strcpy(temp.email,perj.email); strcpy(temp.remarks,perj.remark); strcpy(perj.name,perj+1.name); strcpy(perj. abbreviation,perj+1. j

19、ianpin); strcpy(perj.sex,perj+1.sex); strcpy(pany,perj+pany); strcpy(perj.adds,perj+1.adds); strcpy(perj.tel,perj+1.tel); strcpy(perj.num,perj+1.num); strcpy(perj.email,perj+1.email); strcpy(perj.remarks,perj+1.remark); strcpy(perj+1.name,temp.name); strcpy(perj+1. abbreviation,temp. jianpin); strcp

20、y(perj+1.sex,temp.sex); strcpy(perj+pany,pany); strcpy(perj+1.adds,temp.adds); strcpy(perj+1.tel,temp.tel); strcpy(perj+1.num,temp.num); strcpy(perj+1.email,temp.email); strcpy(perj+1.remarks,temp.remark); if(flag=0)break; /*假如标志为0,说明没有发生过互换循环结束*/ if(m=2)for(i=0;in;i+) flag=0; /*设标志判断是否发生过互换*/ for(j

21、=0;j0) /*比较大小*/ flag=1; strcpy(temp.name,perj.name); /*互换记录*/ strcpy(temp. jianpin,perj. jianpin); strcpy(temp.sex,perj.sex); strcpy(pany,pany); strcpy(temp.adds,perj.adds); strcpy(temp.tel,perj.tel); strcpy(temp.num,perj.num); strcpy(temp.email,perj.email); strcpy(temp.remarks,perj.remark); strcpy(

22、perj.name,perj+1.name); strcpy(perj. abbreviation,perj+1.jianpin); strcpy(perj.sex,perj+1.sex); strcpy(pany,perj+pany); strcpy(perj.adds,perj+1.adds); strcpy(perj.tel,perj+1.tel); strcpy(perj.num,perj+1.num); strcpy(perj.email,perj+1.email); strcpy(perj.remarks,perj+1.remark); strcpy(perj+1.name,tem

23、p.name); strcpy(perj+1. abbreviation,temp. jianpin); strcpy(perj+1.sex,temp.sex); strcpy(perj+pany,pany); strcpy(perj+1.adds,temp.adds); strcpy(perj+1.tel,temp.tel); strcpy(perj+1.num,temp.num); strcpy(perj+1.email,temp.email); strcpy(perj+1.remarks,temp.remark); if(flag=0)break; /*假如标志为0,说明没有发生过互换循

24、环结束*/ if(m=3)for(i=0;in;i+) flag=0; /*设标志判断是否发生过互换*/ for(j=0;j0) /*比较大小*/ flag=1; strcpy(temp.name,perj.name); /*互换记录*/ strcpy(temp. abbreviation,perj. jianpin); strcpy(temp.sex,perj.sex); strcpy(pany,pany); strcpy(temp.adds,perj.adds); strcpy(temp.tel,perj.tel); strcpy(temp.num,perj.num); strcpy(te

25、mp.email,perj.email); strcpy(temp.remarks,perj.remark); strcpy(perj.name,perj+1.name); strcpy(perj. abbreviation,perj+1. jianpin); strcpy(perj.sex,perj+1.sex); strcpy(pany,perj+pany); strcpy(perj.adds,perj+1.adds); strcpy(perj.tel,perj+1.tel); strcpy(perj.num,perj+1.num); strcpy(perj.email,perj+1.em

26、ail); strcpy(perj.remarks,perj+1.remark); strcpy(perj+1.name,temp.name); strcpy(perj+1. abbreviation,temp. jianpin); strcpy(perj+1.sex,temp.sex); strcpy(perj+pany,pany); strcpy(perj+1.adds,temp.adds); strcpy(perj+1.tel,temp.tel); strcpy(perj+1.num,temp.num); strcpy(perj+1.email,temp.email); strcpy(p

27、erj+1.remarks,temp.remark); if(flag=0)break; /*假如标志为0,说明没有发生过互换循环结束*/ printf(排序成功n); /*显示排序成功*/void Change(Person per,int n) char s20; int i=0; int m; printf(tn请选择修改内容:n); printf(tn); printf(t1-姓名 n); printf(t2-简拼 n); printf(t3-电话 n); printf(t4-返回 n); printf(tn); printf(请选择编号:); scanf(%d,&m); while(

28、m!=1&m!=2&m!=3&m!=4) printf(输入错误,请重新选择:);scanf(%d,&m);int count = 0;if(m=1)int i=0; printf(t请输入想修改的记录中的姓名:); scanf(%s,s);printf(-n); /*格式*/ printf(序号 姓名 简拼 性别 工作单位 地址 电话 手机 电子邮件 备注n); printf(-n);for (int t = 0; t 1) printf(查到多条数据,请输入序号:);m = 5; else while(strcmp(peri.name,s)!=0&in) i+; if(i=n) print

29、f(t通讯录中没有此人!n); return; /printf(t序号:); /scanf(t%d,&peri.score); printf(t姓名:); scanf(t%s,peri.name); printf(t简拼:); scanf(t%s,peri. jianpin);printf(t性别:); scanf(t%s,peri.sex); printf(t工作单位:); scanf(t%s,pany);printf(t地址:);scanf(t%s,peri.adds);printf(t电话:); scanf(t%s,peri.tel); printf(t手机:); scanf(t%s,peri.num); printf(t电子邮件:);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服