您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言学籍管理系统(内含源代码)解析
江西农业大学学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作。二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。2、能根据输入的学号查询学生,进行信息的修改。3、能根据输入的学号从结构体数组中删除学生的记录。4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。江西农业大学5、能在屏幕上以列表的方式输出所有学生的信息。三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。系统功能机构图如下:学生档案管理系统输出学生信息查询学生信息系统退出系统删除学生信息修改学生信息录入学生信息按学号查询按班级查询江西农业大学2、重要数据的数据结构设计学生学籍的记录项用结构体Stumessage表示,包括6个属性,stuno,name、spec、grade、sex、birthday分别代表学生的学号、专业、年级、性别和出生日期,其中birthday类型为自定义的结构体类型Date.Structstumessage{Charstuno[11]://学号Charname[9]://姓名Charspec[2]://专业Chargrade://年级Charsex://性别Stuctdatebirthday://出生日期};日期类型date包括三个属性,分别代表年、月、日。Structdate{intyear://年Intmonth://月Intday://日};3、函数设计江西农业大学学籍管理系统程序采用了结构化程序设计的思想,由1个.h头文件和3个C源文件组成。程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。以下是这些函数原型及功能设计。(1)voidsysinfo(void)函数功能:在屏幕上输入系统及版权信息并等待用户响应。(2)Voidmenuofmain(structstumessagestu[]);函数功能:在屏幕上显示主菜单,接收用户选择并响应用户相应操作。(3)Voidappend(structstumessagestu[]);函数功能:录入一条学生记录数组的末尾。(4)voidmodify(structstumessagestu[])函数功能:通过输入学号查询学生相关信息,如果存在在屏幕上输出相应学生记录并通过重新输入学生信息的方法修改该学生的记录,否则输出没有找到相关记录。;(5)voidDelet(structstuMessagestu[])函数功能:通过输入学号查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录,用户确认删除后用DelList()否则输出没有找到相关记录。(6)VoidmenuOfsear(structstumessagestu[]);函数功能:在屏幕上显示查询了主菜单,接受用户选择并响应用户操作。江西农业大学(7)voidlistall(structstumessagestu[]);函数功能:在屏幕上以列表的方式输出学生所有信息。调用printhead()输出表头,在调用listone()函数注意输出个条记录。(8)voidquit(void);函数功能:退出菜单系统,并调用exit(0)系统函数结束程序运行。(9)voidstearnum(structstumessagestu[]);函数功能:通过输入学号调用numofsear()函数查询学生的相应的记录信息,如果存在调用printhead()函数和listone()函数在屏幕上输出相应学生记录,否则输出没有找到相关记录。(10)voidsteargrade(stuctstumessagestu[]);函数功能:通过输入年级查询学生的相关记录信息,如果存在在屏幕以列表方式输出相应学生记录,并输出统计满足条件的学生个数,否则输出没有找到相关记录。(11)intnumofsear(structstumessagestu[].charstunumber[]);函数功能:根据接收到的学生学号,在相应记录数组中进行查询,如果存在相应记录,返加相应的数组下标,否则返回-1.(12)voidprinthead(void)函数功能:在屏幕上显示输出列表的表头。江西农业大学(13)voidlistone(structstumessagelist);函数功能:在屏幕上以行的形式显示输出一个学生的相关信息。(14)intdellist(structstumessagestu[],inti):函数功能:如果数组中存在下标为i的记录,删除该记录并返回1,否则返回0.4、小组成员分工四、详细设计1、系统主函数main()设计组员1Main():systeminfo();menuofmain();quit();组员2Printhead();listone();listall(0;apend();组员3Modify();delte();dellist(0;menuofstear();seranum();seargrade();numofsear();开始输出系统及版权信息Sysinfo()显示用户主菜单并响应用户操作Menuofmain()江西农业大学2、主菜单模块函数menuofmain()设计接收用户选择结束开始清屏清屏清屏choose录入学生信息修改学生信息删除学生信息查询学生信息输出学生信息退出系统非法操作显示主菜单江西农业大学1234560YN3、录入学生信息功能模块函数Append()设计Y返回清屏录入一条记录继续录入(Y/N)接受用户选择Length++Con=='Y'或con=='Y'江西农业大学N4、修改学生信息功能模块函数modify()设计5、删除学生信息功能模块函数delete()设计YNNY清屏删除成功Length----没有找到相关记录输出第i条记录输出表头查询该学生记录,用i指向它接收要删除的学号记录存在删除()Y/N江西农业大学YN6.查询菜单模块函数menuofsear()设计120其他返回接收用户的选择--清屏--显示查询菜单--choose按学号查询按年级查询返回主菜单非法操作江西农业大学YN7、按学号查询功能模块函数searnum()设计NYYN清屏--接收查询学号--i=0i++--输入表头--没有找到相关记录--输出第i条记录--Ilength且不等于学号Choose!=0江西农业大学8、按年级查询功能模块函数steargrade()设计清屏--接收查询年级--输出表头--i=0,count=0--输入第i条记录--Count++--i++--共找到n条记录--没有找到相关记录等于年级Choose!=0Ilength江西农业大学9、输出学生信息功能模块函数ListALL()设计;清屏--输入表头--i=0输出第i条记录--i++--按任意键继续--Ilength江西农业大学五.调试分析本系统在VC6下编译调试通过,可顺利运行,各项功能达到设计要求。本系统程序由一个.h头文件和三个.C源文件构成。系统调试主要在vc6下进行,采用分模块的方法进行编译,即完成一个函数功能模块就编译一个功能模块,最后再进行整体编译并产生可执行文件student.exe。在调试过程中,主要碰到了以下问题:1.在清屏函数在Tc中使用的clrsc()函数,但在vc6中没有该函数也没有相应的函数。查资料,发现在vc中可使用system()函数调用系统实现。2.在使用c语言系统函数进行数据输入的时候,发现使用getchar(0和gets(0函数输入字符和字符串的时候,系统经常跳过相应的输入语句,无法输入数据。查资料,是c系统的输入处理,缓存问题,解决方法是在进行字符和字符串输入的时候,先使用fflush(stdin)函数清除缓存,既可正常Getch()--江西农业大学输入字符和字符串。六、用户手册本系统是win32控制台程序,可在window和dos环境下运行,执行文件名称:student.exe。运行程序后,首先显示系统消息和版权信息,用户按任意键后进行主要功能菜单,在主功能菜单中输入相应的数字可执行相应的程序功能,包括录入学生信息、修改学生信息,删除学生信息和输入所有学生信息,输入4可进行查询子菜单,可进行按学号查询和按年级查询学生信息。在主功能菜单案6可结束本系统的运行并自动关闭运行窗口。七、附录源程序文件名清单:Alist.h//公用的常量和类型Main.cList.cEdit.c源代码如下:#includestdio.h#includestdlib.h#includestring.hstructdate{江西农业大学intyear;intmonth;intday;};structStuMessage{charstuNo[11];charname[10];charspec[21];intgreade;charsex[10];structdatebirthday;};intlength=0;structStuMessageStu[100];intmain(){charc;intmenuofmain();intAppend(structStuMessageStu[100]);intModify(structStuMessageStu[100]);intDelete(structStuMessageStu[100]);voidMenuofsear(structStuMessageStu[100]);voidListall(structStuMessageStu[100]);intlistone(structStuMessageStu[100],inti);system(color5a);voidSysInfo(void);{printf(\n\n\n\t\t\t\t江西农业大学学籍管理系统\n);printf(\n\n\n版本信息:\n\n);printf(\n\tc-freevision5.0\n\n);printf(\n\t2012--05--28\t\t);printf(\n\n\t\t\t\t\t\t\t班级:软件1115班\n\n);printf(\t\t\t\t\t\t\t姓名:朱利斌\n\n);printf(\t\t\t\t\t\t\t指导教师:邓泓\n\n);printf(\n\n\t\t\t\tenter进入学籍管理系统.........\n);}c=getchar();menuofmain();}intmenuofmain(){intnum;江西农业大学system(cls);system(colorfc);intAppend(structStuMessageStu[100]);intModify(structStuMessageStu[100]);intDelete(structStuMessageStu[100]);voidMenuofsear(structStuMessageStu[100]);voidListall(structStuMessageStu[100]);intlistone(structStuMessageStu[100],inti);printf(\n\n\t\t\t江西农业大学学生档案管理系统\n\n\n);printf(\t\t\tpleasemakeachoice\n\n\n);printf(\t\t\t录入学生信息,请选择1\n);printf(\t\t\t修改学生信息,请选择2\n);printf(\t\t\t删除学生信息,请选择3\n);printf(\t\t\t查询学生信息,请选择4\n);printf(\t\t\t输出学生信息,请选择5\n);printf(\t\t\t退出系统,请选择6\n);printf(\n\t\t\t\t\t\t\t\t\t\t\t\t\n);
本文标题:C语言学籍管理系统(内含源代码)解析
链接地址:https://www.777doc.com/doc-5965204 .html