河南工业大学课程设计报告(学生信息管理系统)--学生姓名:学号:学院:信息科学与工程学院专业年级:计算机科学与技术04级指导教师:设计地点:河南工业大学(莲花街校区)设计日期:2006年2月20日--3月5日需求分析:学生信息管理系统设计(2人)(其中一人做菜单、输入、信息的删除与修改、文件操作;信息的查询、排序、输出由另一人完成)学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)---输入学生信息浏览功能---输出查询、排序功能---算法按学号查询按姓名查询学生信息的删除与修改本系统的程序编译采用模块分析法,把学生信息管理体系分解为14个小块进行算法处理(即:1数据结构和函数原型的定义;2主函数的定义及实现;3菜单函数的定义和实现;4学生信息输入模块;5字符串的校验;6输出打印模块;7删除功能的实现;8查找记录模块;9插入记录的实现模块;10保存记录到磁盘文件的实现模块;11对已保存到磁盘的文件的读取模块;12追加记录到已保存文件的模块;13对输入数据的排序问题;14查找的实现),最后通过连表及指针把各个模块串结为本程序的全部代码。概要设计:(其中菜单,输入,信息的删除与修改文件操作有本人完成。信息查询,排序。输出由陈威完成)算法说明:对于学生的学号,姓名,年龄,性别,出生年月,地址。电话和Email等信息先定义一个结构体数组,以便存放信息。其形式如下:typedefstruct/*定义数据结构*/{charnumber[12];/*学号*/charname[8];/*姓名*/charage[10];/*年龄*/charsex[6];/*性别*/charbirthday[10];/*出生年月*/charaddress[12];/*地址*/chartele[12];/*电话*/charmail[20];/*电子邮件*/}ADDRESS;而对于整个的算法是,主函数,采用swich()函数分项完成。首先调用菜单函数输出选项菜单。对于主体部分。根据题目要求逐项调用所需函数以实现其要求的功能。其中算法结构图如下:主函数开始主菜单1信息输入函数0退出函数10按学号排序函数9显示文件函数8文件读取函数7文件保存函数6信息添加函数5信息删除函数4按学号查找函数3按姓名查找函数2信息输出函数(1)输入函数:先声明一个指针变量*s,变量i。.当变量i值小于输入的学生个数时,逐条输入并存放到结构体数组中。直到i值等于n值时结束。其算法如下:开始声明变量i,n,*s置i的初值为0当i<n,执行下面操作:(1)依次输入n个学生信息;学号,姓名,年龄,性别,出生年月,住址,电话,Emaili=i+1(2)返回继续执行(1)当i=n时:结束。(2)删除函数:先声名一个字符串,用以存储要删除的学生姓名。然后调用查找函数ifind_name(t,n,s)查找结构体中的对应的项,如果找到。显示出来,并输出你是否确认。是就选择1。然后调用strcpy()函数,逐项将其所要删除的信息覆盖。既完成删除任务,其实质就是把要删除的信息覆盖掉。其算法如下:开始声明字符串s[20]置ch的处值为0,声明变量ij,i=find_name(t,n,s),当i>n-1时执行下面操作:{输入你要删除的姓名。若确认1:当j=i+1J<i时执行下面操作:将后一条记录的姓名拷贝到前一条将后一条记录的学号拷贝到前一条将后一条记录的年龄拷贝到前一条将后一条记录的性别拷贝到前一条将后一条记录的出生年月日拷贝到前一条将后一条记录的地址拷贝到前一条将后一条记录的电话拷贝到前一条将后一条记录的电子邮件拷贝到前一条j++,n--若确认0:退出。}i++.当i=n-1时结束。返回主菜单。(3)添加函数:首先申请一个字符串,以存放所要加入的信息。然后调用查找函数ifind_name(t,n,s)查找结构体中的对应的项,确定所要插入的位置后,再调用strcpy()函数。逐项从前向后移动誊出空间。然后在把所要加的信息放入。其实质就是把最后一项在向后移动。然后倒数第二项移到倒数第一项的位置,这样逐项后移。直到确定的位置为止。誊出空间后放入所要加如的信息。算法同如下:开始先声明变量i,j字符串s[20]提示输入信息。调用用i=find_name(t,n,s)函数确定插入位置。当j=n-1;j>=i时执行下面操作:(1)调用strcpy()函数把当前记录的学号拷贝到后一条把当前记录的姓名拷贝到后一条把当前记录的年龄拷贝到后一条把当前记录的性别拷贝到后一条把当前记录的出生年月日拷贝到后一条把当前记录的地址拷贝到后一条把当前记录的电话拷贝到后一条把当前记录的电子邮件拷贝到后一条并将新插入记录的
学生管理信息系统(文档+源码 TC) 来自淘豆网m.daumloan.com转载请标明出处.