C语言学生档案管理.doc_第1页
C语言学生档案管理.doc_第2页
C语言学生档案管理.doc_第3页
C语言学生档案管理.doc_第4页
C语言学生档案管理.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计语言课程设计实践报告题 目: 学生档案管理 班 级: 信息N082 学 号: 200845209212 姓 名: 叶吕根 同组人员: 仇灵晓 俞通 梅佳华 指导教师: 仇芒仙 完成日期: 2011-10-21 目 录1问题描述12算法分析13程序功能模块23.1 总功能模块图23.2 功能分析34程序相关代码44.1查询学生信息模块44.2删除学生信息模块75程序运行结果115.1 查询学生信息115.2 删除学生信息126 实习体会心得与使用说明13学生档案管理1问题描述随着科学技术的发展,计算机管理在日常生活中的地位变得越来越重要。它能够代替人做各种重复,繁琐的劳动,并且拥有操作简单,可信度好,不易出错等优点,大大减少了不必要的人力消耗,提高个人的工作效率。学生档案管理是每个学校必须面临的问题,所以,如何开发一个应用简单,见面友好,容易操作,数据安全性好的管理系统就成为非常重要的技术问题。系统开发的总体任务是实现学生档案关系的系统化,规范化和自动化。本学生档案管理系统需要完成的功能有:(1) 输入信息:学生信息的输入;(2) 显示信息:显示所有学生的信息;(3) 修改信息:对学生信息的某个字段进行修改;(4) 查询:能够根据学号或姓名查询某个学生的信息;(5) 删除:能够根据学号或姓名删除某个学生的信息;(6) 退出:退出学生档案系统。2算法分析该程序是一个学生档案管理系统。程序开始预处理命令,包括宏定义#define,文件包含#include。然后对学生档案的一个结构体的申明,申明该学生档案的信息有哪些。num为学号,age为年龄,都定义为int整型数据;name为姓名,sex为性别,professional为专业,origin为籍贯,address为地址,都定义为char字符型数据,并且对这个结构体命名为SAL。主函数中调用Menu()主菜单函数显示主菜单界面。程序运行,利用printf函数显示主菜单,并提示输入相应的数字来进行相关操作。显示主菜单如下: 学生档案管理系统 * 菜单 * 1 添加记录 2 显示记录 * 3 查询记录 4 修改记录 * 5 删除记录 0 退出 *(1)case 0 返回主菜单。(2)case 1增加学生记录:定义字符型变量学号,姓名,性别,年龄,专业,籍贯,地址,并根据其大小分配相应的内存空间。输入相关内容,利用指针使输入的数据直接存入到内存中。 (3)case 2 显示学生记录:利用For循环和指针来显示所有的记录。 (4)case 3 查询学生记录:有学号查询和姓名查询,以姓名为例,定义一字符型数组,输入要查询学生的姓名,利用指针和strcmp函数及for循环在数据库中寻找相应的数据,在找到后输出并依次输出同一个类中的其他的内容。 (5)case 4 修改学生记录:定义整型变量学号,在利用FOR循环和*pi指针进行查找,并利用一个菜单来选择要修改的内容(包括学号,姓名,性别,年龄,专业,籍贯,地址),并利用程序中的指针*P来改变原数据库中对应学生的内容。其原理即是寻找到需要修改的学生后用重新输入的数据信息将原信息覆盖,从而实现文件的修改。 (6)case 5删除学生记录:定义字符型变量姓名并分配5个字节的内存空间。利用for循环和*pi指针在数据库中寻找相对应姓名的数据,找到后将其删除,如果删除最后一个记录COUNT减一,删除中间的记录,只要将其后的数据前移覆盖即可。在未找到的情况下重新输入需要查找的人的姓名。3程序功能模块3.1 总功能模块图图3 总功能模块图学生档案管理输入信息显示信息查询信息删除信息修改信息按姓名查询按学号查询按姓名删除按学号删除退出3.2 功能分析 “学生档案管理”包括6个模块:输入学生信息;显示学生信息;按姓名查找或按学号查找,并显示;按姓名删除或按学号删除;按学号查找并修改;退出系统。每个模块既相互联系又相互独立。(1) 输入学生信息模块: 主要功能用来对学生的档案进行输入。档案录入需要输入学生信息,比如姓名,学号,专业。在准确输入学生的信息后,系统会提示是否继续进行操作,如果想继续添加学生信息就输入该学生的学号,不像再输入学生信息的话就输入0,系统返回到主菜单。(2) 显示学生信息模块: 主要功能用来对学生的信息进行输出。在系统已经录入了学生信息的前提下,使用该功能可以显示所以学生的信息。在查看学生的信息后,按0就可以返回到主菜单。(3) 按姓名查找或按学号查找,并显示模块: 主要功能是用来查找学生资料。想要查找某一学生的信息,可以输入该学生的姓名或学号进行查找,这样系统就会显示该学生的信息。(4) 按姓名删除或按学号删除模块: 主要功能是用来删除学生信息,想删除某一学生的信息,可以输入学生姓名或学号,系统找到该学生信息后,就可以删除了。(5) 按学号查找并修改模块:主要功能是用来修改学生信息。想要修改某一学生的信息,可以输入该学生的学号,系统就会显示该学生的信息,再选择需要修改的某一条信息进行修改。(6) 退出 主要功能是用来退出系统。如果学生的信息都已经录入完毕,则可以按0退出系统。4程序相关代码4.1查询学生信息模块4.1.1查询学生信息模块的N-S图输入查询方式sel!=1&sel!=2sel=1sel=2输入查询号i=1icountnum=p-numbreakp+i=i+1输入姓名i=1icountbreak!strcmp(name,p-name)p+i=i+1ipi-count输出“无记录”并返回打印输出ipi-count输出“无记录”并返回打印输出return输出“输入选择”YNYNNYNYYNYNYN图4-1查询模块的N-S流程图4.1.2查询学生信息模块的程序代码 void Qur(PI * pi) int sel,i,num; SAL * p; char name15; /*p为指向数据序列首部的指针*/ p=pi-pHead; Menu(); /*1:按学号查询;2:按姓名查询;其他:返回*/ printf(1-按学号查询n); printf(2-按姓名查询 n); printf(任意键-返回n); printf(请输入你的选择:1,2? ); scanf(%d,&sel); if(sel!=1&sel!=2) return; if(sel=1) /*按学号查询*/ printf(请输入查询的学号: ); scanf(%d,&num); for(i=1;icount;i+) if(num=p-num) break; p+; /*没有找到记录的情况*/ if(ipi-count) printf(没有学生记录!n); return; else /*找到则打印输出*/ printheader(); printf(FORMAT,DATA); printf(END); else if(sel=2) /*按姓名查询*/ printf(请输入查询的姓名: ); scanf(%s,&name); for(i=1;icount;i+) if(!strcmp(name,p-name) break; p+; /*没有找到记录的情况*/ if(ipi-count) printf(没有学生记录!n); return; else /*找到则打印输出*/ printheader(); printf(FORMAT,DATA); printf(END); printf(请输入你的选择05: ); 4.2删除学生信息模块4.2.1删除学生信息模块的N-S图 p+ i=i+1 i=i+1 当 icount输入删除方式 sel不等于1或2 Y N return sel等于1 Y N输入要删除的学号 sel等于1 Y Ni=1输入要删除的姓名 num=p-num break i=1 当 icount !strcmp(name, Y p-name) N break p+ ipi-count Y N Y ipi-count N输出“无记录”并返回 i=pi-count Y N输出“无记录”并返回i=pi-count Y Ncount减1将其后的数据前移覆盖count减1将其后的数据前移覆盖输出删除成功输出删除成功输出“删除成功”输出“删除成功”输出“输入选择”图4-2删除模块的N-S流程图4.2.2删除学生信息模块程序代码 void Del(PI * pi) int sel,i,num; char name5; SAL * p; p=pi-pHead; Menu(); /*学号和姓名两种删除方式*/ printf(1-按学号删除n); printf(2-按姓名删除 n); printf(任意键-返回n); printf(请输入你的选择:1,2?); scanf(%d,&sel); if(sel!=1&sel!=2) return; /*按学号删除*/ if(sel=1) printf(n请输入删除的学号: ); scanf(%d,&num); /*按学号搜索*/ for(i=1;icount;i+) if(num=p-num) break; p+; if(ipi-count) printf(没有找到记录!n); return; else if(i=pi-count) /*如果删除最后一个记录,只需要将count减1即可*/ pi-count-; pi-saveflag=1; printf(删除成功!n); else /*删除中间某个记录,只要将其后的数据前移覆盖即可*/ memcpy(p,p+1,(pi-pHead+pi-count-p)*sizeof(SAL); pi-count-; pi-saveflag=1; printf(删除成功!n); else if(sel=2) /*按名字删除*/ printf(请输入删除的姓名: ); scanf(%s,&name); /*按姓名搜索*/ for(i=1;icount;i+) if(!strcmp(name,p-name) break; p+; if(ipi-count) printf(没有找到记录!n); return; else if(i=pi-count) /*删除中间某个记录,只要将其后的数据前移覆盖即可*/ pi-count-; pi-saveflag=1; printf(删除成功!n); else /*删除中间某个记录,只要将其后的数据前移覆盖即可*/ memcpy(p,p+1,(pi-pHead+pi-count-p)*sizeof(SAL); pi-count-; pi-saveflag=1; printf(删除成功!n); printf(请输入你的选择05: ); 5程序运行结果5.1 查询学生信息按姓名查询图按学号查询图 按姓名查询无记录图 按学号查询无记录图5.2 删除学生信息 按学号删除图 按姓名删除图 按学号删除无记录图 按姓名删除无记录图6 实习体会心得与使用说明课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。我们组的题目是学生档案管理,对于我们这些C语言不怎么好的人来说是一个很大的挑战。刚刚拿到这个题目,我们有点无从下手的感觉。但困难打不倒我们,在我们组员一起努力的结果下,我们有了点思路。我们查资料,翻书籍,渐渐地做到了心中有数。我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。这次的课程设计,我感慨颇多。在课程设计的两周里我们学到了很多知识,不仅可以巩固了以前所学过的知识

温馨提示

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

评论

0/150

提交评论