学生通讯录管理系统PPt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
课程设计
好学近知 力行近仁 2012级信息管理与信息系统 课程设计答辩
计算机学院
2
目录
03
系统功能 设计思想
04
05
程序流程
源自文库
06
结构体数 组
07
函 数
10
设计思想
Page
1 2
3
4
5
6
3 系统功能
1.查找联系人 2.添加联系人 3.删除联系人 4.修改联系人 5.显示所有联系人 6.统计联系人 7.退出系统
10
fclose(fp); return 0;}
读取文件是我在编写中遇到的最大的困难,文件读取的 格式控制是我以前没有注意的部分
int readfile(struct student message[1000]) //读取文件 { FILE *fp; int i=0; if(((fp=fopen("student.txt","r+"))==NULL)) { printf("student.txt 文件打开失败!\n"); exit(0); } else while(feof(fp)==0) { fscanf(fp,"%d %s %s %s %s %s",&message[i].num,message[i].name,message[i].sex,message[i].work place,message[i].phonenum,message[i].E_mail); } } i++; N=i-1; fclose(fp);
8
删除函数是在实现这 几个功能中遇到的反 复调试的函数,查找 时利用itag变量来标 记是否存在其查询的 信息,如有则将N=N1,但是在删除时应循 环到原始的N值,故将 N+1.
int Delete_name(struct student message[1000]) //删除学生姓名 { printf("请输入想要删除的学生姓名:"); char name[20]; int i,j,itag=0; //itag用来标记姓名是否相等 scanf("%s",name); for(i=0;i<N;i++) { if(strcmp(message[i].name,name)==0) { j=i; itag++; break; } } if(itag==1) { N=N-1; for(i=j+1;i<N+1;i++) //删除学生信息 { message[i-1]=message[i]; } output(message); } else printf("没有您所要删除的学生信息!\n"); return 0; }
6
struct student { int num; //学号 char name[20]; // 姓名 char sex[5]; //性别 char workplace[20]; //工作地点 char phonenum[20]; //电话号 码 char E_mail[20]; //邮箱 };
7
4 设计思想
1.读写文件 2.查找功能 3.删除功能
利用fprintf(),fscanf()函数编写读,写文件 利用顺序查找,逐一比较,存在查找记录则输出
首先查找是否存在要删除信息,存在则后面信息依次向前移动 利用循环两个变量分别统计男,女生人数,及总人数,输出. 当用户想要退出时,跳出循环体即可,利用exit(0)函数跳出。
4.统计功能
5.退出系统
5 程序流程
由于上学期的结构体掌握的不太好,没有去尝试利用单链表去实现编写 结构体数组
然后要实现各个功能:查 找,for循环,查找是否 有无;添加,在最后一 条记录后添加即可;删 除:先查找有无,然后 依次移动;修改,先查 找此人,再输入要改的 信息;统计,for循环 sex变量统计男女;主函 数,switch()语句的实 现各个功能的调用,利 用while()实现反复执行 菜单功能,手动选择退 出
读写函数:文本文件读取
int writefile(struct student message[1000]) //写入文件 { FILE *fp; int i=0; if(((fp=fopen("student.txt","w+"))==NULL)) { printf("student.txt 文件打开失败!\n"); exit(0); } else { for(i=0;i<N;i++) { fprintf(fp,"%d %s %s %s %s %s ",message[i].num,message[i].name,message[i].sex,message[i].workplace,mess age[i].phonenum,message[i].E_mail); } }
9
设计心得 首先通过这次课程设计的磨练,得知自己有许多的知识点的遗漏。文件部分严重 遗漏,知识点掌握参差不齐,结构体数组虽然能够编写此程序但是对于大量的数据 存储会造成空间冗余,明知道用单链表会使得程序更加灵活,但是由于链表掌握的 不是很好,退而行之,只得选择结构体数组。 在编写程序的过成中,各个函数的编写都亲力亲为,自己动手调试,但是有些 细节的部分在同学及老师的帮助下才得以通过。这个过程中最大的麻烦也就是读写 文件了,开始时照着书上的代码可是却不能够运行通过,同学的帮助也没有通过, 最后再老师的帮助下,明白了怎么才能够读写文件。编写查找,统计,添加,显示 所有联系人都是自己编写的,而删除则是在同学的帮助下成功的。主函数的编写颇 费脑筋,毕竟以前没有编写过此类管理系统,不了解是程序更加完善,怕有漏洞, 和同学讨论了一下应有的工能,便着手自己去编写。 再说一下心得吧,以前没有编写过怎么多的代码,所以没有耐心去调试程序, 总是遇到困难就求助,这是一个不好的习惯,以后极力改正。养成自己独立编写的 好习惯。这次课程设计让我学到了许多,从开始编写系统就要考虑好种种功能,怎 么实现程序最优化,让用户更方便去使用你的软件。
相关文档
最新文档