C语言课程设计说明书班级档案管理系统指导教师:于晓敏设计者:胡彩云王海芳依婷婷邱赞飞专业班级:食安081班设计时间:2009.10.1~2009.10.5《C语言程序设计》课程设计任务书适用专业:食品安全设计题目:班级档案管理系统一、已知技术参数或设计前提1、班级有10个人。2、每个学生都有学号、姓名、性别、年龄、备注。3、学生基本信息录入、显示、保存、删除、修改(要求先输入密码)、查询。二、设计内容及要求1、基本功能要求:1)、实现录入学生资料2)、实现修改学生基本信息3)、实现修改学生基本信息4)、实现查询学生基本信息(按学号、姓名,性别,年龄查询基本信息)5)、实现删除学生基本信息0)、退出档案系统2、要通过文件记录班级档案信息。设计要求1、根据所选题目难易程度可以分组或独立完成,小组成员不得超过4人,不得跨班分组,各小组题目不准重复,每组要有一名组长,负责总体的设计及任务分配。2、程序代码应不少于300行,应遵照C语言的命名规则、加入适当的注释。3、所设计的程序必须能够满足实际使用要求,并能编译运行。4、在规定时间内,到指定的实验室完成设计。5、设计说明书内容包括:系统的软硬件环境、需求分析、系统总体框架图、模块功能实现、程序的使用说明、结束语、成员分工、程序源代码和参考文献等。6、提交内容(每组一份):设计说明书打印稿一份(用A4幅面的纸打印,左侧装订并加塑料封皮),存有源程序及设计说明书的软盘或光盘一张。三、课程设计工作计划1、确定题目,成立设计小组,做用户需求分析(0.5天)2、查阅资料,进行问题分析,制定方案,确定成员分工(1天)3、根据方案编写程序并进行调试(2.5天)4、撰写设计说明书,完成设计(1天)5、提交设计内容,答辩四、相关教材及参考书目1、C语言程序设计高等教育出版社2谭浩强.C程序设计.清华大学出版社.2005年7月指导教师签字:系主任签字:年月日班级档案管理系统一、需求分析班级档案管理系统是一项繁琐的业务,用计算机实现自动化管理既可以减轻人员的劳动强度,又可以提高学校管理效率。欲编写一个比较实用的班级档案管理程序,此程序可以输入新的学生信息,输出所有学生的学号,姓名、性别、年龄、成绩信息;修改学生信息内容;按号查找学生信息;增加新生的信息;显示制作人员信息;退出班级管理管理系统。不但解决了一般学校用纸记录,容易造成记录丢失,而造成不必要损失的问题,也大大提高了学校的办事效率。二、系统的软硬件环境1、硬件环境:一般来说586电脑就可以提供并支持系统的使用及运行,此外,若想打印或成稿还需要使用打印机;U盘、软盘也是程序的必要载体。2、软件环境:MS-DOS或Windows环境下安装TurboC语言系统,安装完毕后即可使用,而且要用到UCDOS。三、系统功能1.班级档案管理系统:是实现对学生信息如学号、姓名、性别、年龄等实现输入、查询有关信息、修改有关信息、输出、添加新生信息等功能的系统。2、模块功能a.输入模块(voidTIANJIA(LB_2l)函数):该模块是实现对学生姓名、性别、学号、地址、年龄的录入并保存到文件stu中。b.修改模块(voidXIUGEI(LB_2l)函数):该模块实现按学号或按姓名对学生所有信息的修改。修改成功显示已修改后的文件数据。c.查找模块(voidCHAXIONG(LB_2l)函数):实现按学号或姓名查询每个学生的学号、姓名、性别、年龄、地址等信息。查到后显示所查学生的全部信息,若不存在则显示未找到。d.输出删除模块(voidSHANCHU(LB_2l)(函数):该模块实现对文件stu学生姓名、性别、学号、地址、年龄的显示。e.保存模块(voidBAOCONG(LB_2l)函数):该模块实现制作人员相关信息的显示。f.索引模块(LB_1*Locate(LB_2l,charfindmess[],charnameornum[])函数):该模块可以为您因有新生到来需再次输入学生信息提供方便快捷的服务,并且不影响以前输入的信息。g.退出运行界面。退出整个函数运行界面,回到原程序。四、模块设计分析:1输入记录模块:先定义变量,再打开一个文件夹A:MESSAGE.bat,如果内容为空则输出nofile,如有文件则读文件里的内容,且令i=0,读完后关闭文件;用do_while输入学生的信息,先执行do,先输入学生的学号、姓名、性别、年龄、地址的信息,提示是否继续输入,然后i++;用while判断是否继续输入,如继续输入y或Y;再以只写的方式打开文件,再判断文件是否为空,不为空则写入这个文件,写入后关闭文件。2修改模块:先定义变量,再打开一个文件夹A:MESSAGE.bat,如果内容为空则输出nofile,如有文件则读文件里的内容,用for语句循环输出录入信息,并记下i的最后值是多少,并输出学生信息;用do_while修改学生的信息,在do中,用clrscr()清屏,令m=0用if语句判断n=1还是n=2,如是1,输入学号,且判断输入的学号是否等于学号,如相等则输出相对应的学生信息,然后用新的学生的学号替换原来的学号,再重新输入其他的信息,再输出更改后的信息,并且令m=1;如n=2,则输入学生姓名,用strcmp判断输入的姓名与原文件中的姓名是否相同,如姓名与原文件中的姓名相同,则输出与那个姓名相同的学生的信息,并令m=1;输入回车符,判断m是否为0,如为0,则无此记录,用while判断是否继续修改,如继续输入y或Y,再打开A:MESSAGE.bat文件,不为空则把更改后的顾客信息写入文件中,写完后关闭文件。3查询信息先定义变量,再打开一个文件夹A:MESSAGE.bat,如果内容为空则输出nofile,如有内容,则用for语句循环输出录入信息,并记下i的最后值是多少;还用到do_while语句,在do中,用clrscr()清屏,令m=0;用if语句判断k=1还是k=2,如是1,输入学号,如学号与文件中的学号相同,则输出那个与那个学号相同的学生的信息,并令m=1;如k=2,则输入姓名,用strcmp判断输入的姓名与原文件中的姓名是否相同,如姓名与原文件中的姓名相同,则输出与那个姓名相同的学生的信息,并令m=1;输入回车符,m判断是否为0,如为0则显示无此记录;do返回的条件是输入Y或y。4输出信息先定义变量,再打开一个文件夹A:MESSAGE.bat,如果内容为空则输出nofile,如有文件则如有内容,则用for语句循环输出录入信息,并记下i的最后值是多少,并关闭文件。按回车结束。5显示模块利用printf输入制作人员及指导教师,制作单位,制作时间等相关信息,以使在运行时显示。五、使用说明:本系统适合运用于学校班级档案管理,具体说明如下:1、首先将u盘插入USB口,将u盘打开,可以看到里面包含三部分:c源程序、word文档。2、源程序为.c文件,打开C盘在C盘中新建一个out文件夹将源程序放入其中。3、一定软件环境下,双击打开c盘中的TC,打开TC运行界面,然后双击汉化TC,在File下调用源程序,按回车,即可进入程序运行界面,如图所示:在此界面下可执行以下操作:选择数字1可根据提示信息完成录入学生资料,操作步骤如下:(1)在菜单下选择1,会直接到输入菜单下,在输入时,系统会自动提示所要输入的信息内容,按回车键结束本次提示输入的内容。(2)在输入完一组信息后,出现“请输入添加的学生学号(输入'0'返回上一级菜单:)”如图所示:选择数字2可根据提示完成修改学生信息,操作步骤:在进入主菜单后,在主菜单下按2,进入模块,进行修改学生信息;按回车结束输入且按0回到主菜单中。如图:选择数字3可根据提示完成保存学生信息,操作步骤如下:在菜单下选择3,进入该模块后直接显示输入模块的学生内容。如无输入数据,则没有显示内容;按回车回到主菜单中。如图:选择数字4可根据提示完成查询学生信息,操作步骤如下:(1)在菜单下选择4,进入该模块后,系统将提示是按学号,姓名,性别,年龄查找,按学号查找按1,按姓名查找按2,按性别查找按3,按年龄查找按4。(2)按1后系统将提示输入学生的学号,输入后,将显示出学生信息,输入错误学号,显示查无此人;输入错误字符显示对不起您的输入错误。(3)按2后系统将提示输入学生的姓名,输入后,将显示出学生信息,输入错误姓名,显示查无此人;输入错误字符显示对不起您的输入错误。(4)按3后系统将提示输入学生的性别,输入后,将显示出学生信息,输入错误性别,显示查无此人;输入错误字符显示对不起您的输入错误。(5)按4后系统将提示输入学生的年龄,输入后,将显示出学生信息,输入错误年龄,显示查无此人;输入错误字符显示对不起您的输入错误。如图:选择数字5可根据提示完成删除学生信息,操作步骤如下:(1)在菜单下选择5,系统会自动提示以学号删除请输入1,以姓名删除请输入2,输入错误的学号显示查无此人;输入错误字符显示对不起您的输入错误。(2)根据提示,当输入学号后,显示此号的人的信息,输入方式与输入模块的输入方式相同。输入后将再次显示修改后的学生信息。如图:选择数字0可根据提示完成退出档案系统。操作步骤如下:在菜单下选择0,进入模块后直接显示相关信息。按回车回到主菜单中。如图:可根据提示完成回到原程序,完成各程序的运行。六、结束语:通过本次课程设计,我们学到很多东西,而最大的收获就是:我们真正从实践的角度初步体会到了C语言在实际生活中的作用,也深刻体会到了它带来的方便快捷,更使我们学会了分工和合作。同时也使我们更加懂得了团队协作的重要性!美中不足的就是,本程序还处于初级阶段的学生信息管理功能中,只实现了对学生的录入、修改、查询、输出等简单功能,不一定在实际中有大的用途。在此次程序设计中,出现了各种各样的问题,在完成各自模块建立起程序后运行后,出现了在按照正确形式输入后,不能正确输出结果,而且在运行时也没有提示有错误,无奈之下去找老师解决问题,老师告诉我们很有可能是输入函数的问题,经过仔细的检查和调试我们最终用把变量定义为外部变量的方式解决了问题。查询模块是我们编写是花费时间最多的一部分,我们在其中加入了子菜单,想实现分别用学号和姓名查找,所以花费了很多精力,也修改了很多次,但我们最终成功了;然后我们仿照查找模块在修改模块中也加入了子菜单,丰富了我们的函数。在各自编写模块的时候,大家每遇到困难时都大家一起讨论一起查找资料,共同解决问题,每当解决了一个问题大家都会更有信心,又向终点迈进了一步;在完成整个程序运行时,我们都捏了一把汗,生怕又有错误,当运行成功出现了那个我们既熟悉又陌生的主目录时,我们悬着的心终于落到了地上,但在执行菜单里的命令时又遇到了些麻烦,有些信息输入后但不能输出出来,有些直接显示NULL,在我们经过几次尝试后,最终把输入的形式改了,和定义的类型做了更改,结果出现了我们所预期的效果,在我们运行了整个程序的各个功能都没有错误的时候,我们都非常的兴奋,这一周多的努力没有白费,看着自己设计完成的程序,非常有成就感。程序编排中可能有繁琐之处有待进一步简化,本次设计的困难是在编辑程序时发现自己对C语言的了解还处于初级阶段,不能完美的设计出能够在实际生活中应用的程序,如果有机会我们会继续学习,做出更好的程序。七、附源程序#includestdio.h#includestdlib.h#includestring.h#includeconio.h#defineN10intM=0;structstudent{charnum[13];charname[20];charsex;charaddress[30];intage;};typedefstructLB{structstudentXINXI;structLB*next;}LB_1,*LB_2;voidCAIDANG(){printf(\t\t\t(欢迎使用本班级档案管理系统)\t\t\t\t\n);printf(★*★*★*★*★*★*★*★*★*★欢迎进入我们的系统★*★*★*★*★*★*★*★*★*★\n