数据结构课程设计-班级花名册维护

上传人:m**** 文档编号:493185900 上传时间:2023-05-21 格式:DOC 页数:24 大小:575.52KB
返回 下载 相关 举报
数据结构课程设计-班级花名册维护_第1页
第1页 / 共24页
数据结构课程设计-班级花名册维护_第2页
第2页 / 共24页
数据结构课程设计-班级花名册维护_第3页
第3页 / 共24页
数据结构课程设计-班级花名册维护_第4页
第4页 / 共24页
数据结构课程设计-班级花名册维护_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《数据结构课程设计-班级花名册维护》由会员分享,可在线阅读,更多相关《数据结构课程设计-班级花名册维护(24页珍藏版)》请在金锄头文库上搜索。

1、郑州航空工业管理学院 数据结构课程设计报告(2012-2013学年第2学期) 题 目:_ 班级花名册维护_学 号:_姓 名:_ 指导教师:_ 2013年 6 月 15 日 1设计内容、任务及具体要求 1.1设计内容设计一个班级花名册维护,要求能够增加、删除和修改学生的信息,使得程序能够读入一个班级花名册或是自建一个班级花名册,对一个班级的任何学生的修改操作最后都能够反映在保存在硬盘上的班级名册中。1.2设计任务 (1)进一步巩固和复习C程序设计的基础知识。 (2)培养学生结构化程序、模块化程序设计的方法和能力。 (3)了解软件的编制过程及各环节的具体内容。 (4)提高学生程序调试技巧、软件设计

2、能力和代码规范化等素质。 (5)提高学生分析问题、解决问题以及实际运用能力。1.3具体要求 (1)只能用C语言实现程序设计; (2)画出总体程序框图以及各个模块的程序流程图; (3)简述各个模块之间的主要关系; (4)源程序要有适当的注释,使程序容易阅读,并对关键代码进行分析说明; (5)运行界面清晰,功能明确。2概要设计2.1该系统的功能简介 创建:创建通讯录 输入第一个同学的信息。 添加:添加新同学 可连续添加同学信息,最多可添加50个同学的信息。 删除:删除同学信息以姓名的方式查找该同学信息,若有相同姓名则以学号方式查找。将查找到得同学信息输出,对照确认无误方可删除,否则取消并返回菜单。

3、 显示:显示所有信息 将已记录的信息项全部输出,首先逐个读取文件信息,然后逐个输出。 修改:修改同学信息 查找同学信息与删除操作的相同。有六种修改方式可供选择,如姓名修改,学号修改等。修改后可显示新的信息。 查找:查询同学信息 以姓名方式查找,将所有符合要求的信息全部输出。 排序:进行学号排序 排序是以学号从小到大的方式排列。首先读取文件所有数据项,通过学号比较,按从小到大的方式重新排序并保存。 保存:将信息保存到文件中输出 在系统中输入信息,打开文件,然后将信息写入文件保存。 计数:计算已保存信息数打开文件,使用循环将文件中原有信息逐个读取,并计算个数项。2.2 总体程序框图 班级花名册主菜

4、单创建通讯录显示所有信息关闭花名册进行学号排序查询同学信息修改同学信息添加新同学删除同学信息修改全部修改备注修改地址修改姓名修改学号修改电话号码2.3各个模块之间的主要关系 各个模块相互关联,共同构成整个班级花名册系统,从而实现添加、删除、显示、修改、 查询和排序等功能。3系统功能模块的具体设计3.1各个模块的程序流程图及运行界面(1) 创建班级花名册 创建班级花名册输入姓名输入学号输入地址输入备注输入电话号码(2) 添加新同学 添加新同学输入姓名输入学号输入备注输入地址输入电话号码(3) 查询同学信息 查询同学 请输入要查询的同学姓名 是否存在? 否,输出没有此同学记录 是,输出同学信息(4

5、) 删除同学信息 删除同学 请输入要删除的同学姓名 是否存在该姓名? 否,输出无此同学记录 是,是否存在相同姓名? 是,输入删除同学的学号 否,输出该同学信息(5) 附:图3.1-1 学号排序界面图3.1-2 学生信息显示界面图3.1-3 修改信息界面图3.1-4 关闭花名册界面3.2关键代码分析说明(1)通过输入第一位同学的信息,创建班级花名册。void set_up() int n=1;printf(姓名t 学号tt电话号码t地址t 备注n); scanf(%s%s%s%s%s,fbook0.name,fbook0.xuehao,fbook0.number,fbook0.address,f

6、book0.note); save(n);printf(通讯录创建成功!n);main_menu();(2)通过输入新同学的信息,向已有的班级花名册名单里添加新同学,添加完毕选择是否继续添加。是,则继续添加;否,则返回班级花名册菜单。void add_student()int n,x;n=count();do printf(请根据提示输入信息,按Enter结束!n);printf(姓名t 学号tt电话号码t地址t备注n); scanf(%s%s%s%s%s,fbookn.name,fbookn.xuehao,fbookn.number,fbookn.address,fbookn.note);

7、save(n+1);printf(已保存!nn);n+; printf(是否继续添加? (1).是 (2).返回菜单 n请选择: );scanf(%d,&x);while(x=1); /判断是否继续进行添加操作main_menu(); /返回主菜单(3)通过save()函数,将学生信息保存在文件中。void save(int n) FILE *fp; int i; if(fp=fopen(fbook.txt,w)=NULL) /打开文件 printf(nCan not open file!n); exit(0); for(i=0;in;i+) /将信息写入文件 if(fbooki.name0!

8、=0) if(fwrite(&fbooki,sizeof(struct book),1,fp)!=1) printf(File write error!n); fclose(fp);(4)通过search()函数,查询已存在学生的信息。输入要查询的同学姓名,若此同学不存在,则输出“没有此同学记录,请重新输入”,若存在,则输出该同学信息,进而选择是否继续查询。同时若连续三次输入错误,系统将自动关闭! void search() struct book s;int k,i,n;int j=0,d1;n=count();do k=-1;doprintf(请输入要查询的同学姓名: );scanf(%s

9、,s.name);for(i=0;in;i+)if(strcmp(s.name,fbooki.name)=0) /输出所有符合要求的同学信息k=i; s=fbooki;printf(姓名t 学号tt电话号码t地址t 备注n);printf(%st%st%st%st%snn,fbookk.name,fbookk.xuehao,fbookk.number,fbookk.address,fbookk.note); if(k=-1) /判断是否输入错误if(j=2)printf(已连续三次输入错误,系统自动关闭!n);elseprintf(没有此同学记录,请重新输入!nn);j+; if(j=3) e

10、xit(0);while(k=-1); /正确查找,输出信息并推出循环printf(是否继续查询? (1).是 (2).否,返回菜单 n请选择: );scanf(%d,&d1);while(d1=1); /判断是否继续进行查询操作main_menu();(5)输入要删除同学的姓名,若不存在,输出“没有此同学记录,请重新输入”;若存在,则记录此姓名同学个数,若个数为1,选择删除或取消,若个数大于1,则再次输入要删除学生的学号,选择删除或取消。同时若连续三次输入错误,系统将自动关闭! Do printf(请输入要删除的同学姓名: );scanf(%s,s.name);for(i=0;i1) pri

11、ntf(姓名t 学号tt电话号码t地址t 备注n);for(i=0;in;i+) if(strcmp(s.name,fbooki.name)=0) printf(%st%st%st%stt%sn,fbooki.name,fbooki.xuehao,fbooki.number,fbooki.address,fbooki.note);printf(因有同学姓名相同,请输入要删除的同学学号: );scanf(%s,s.xuehao);for(i=0;in;i+)if(strcmp(s.xuehao,fbooki.xuehao)=0) k=i; s=fbooki;if(k=-1) /判断是否输入错误 if(j=2)printf(已连续三次输入错误,系统自动关闭!n);else printf(没有此同学记录,请重新输入!nn);j+; if(j=3) exit(0);while(k=-1); 4程序调试分析1 静态调试:按C语言的语法规则进行检查。2 动态调试:将程序运行,发现好多程序语句错位了,造成了大量错误,耗时巨大。5程序使用说明使用班级花名册维护,通过选择创建、添加、删除、显示、修改、查询、排序和关闭选项,按照系统提示输入信息或选

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号