《班级学生信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《班级学生信息管理系统设计.docx(30页珍藏版)》请在优知文库上搜索。
1、班级学生信息管理设计系统课程:C语言程序设计班级:计算机软件技术*班1.J-.*z%*姓名:*2014年6月目录一、设计目的错误!未定义书签。二、总体设计错误!未定义书签。三、详细设计错误!未定义书签。四、调试与测试错误!未定义书签。五、源程序清单和执行结果错误味定义书签。六、总结错误!未定义书签。一、设计目的(1)根本掌握面向过程程序设计的根本思路和方法;(2)到达熟练掌握C语言的根本知识和技能;(3)能够利用所学的根本知识和技能,解决简单的程序设计问题二、总体设计本设计有1个C文件(11个函数)和一个头文件组成关系如表所示。程序包含头文件的存、取过程,其功能就是按输入学号大小的顺序建立记录
2、。程序自动建立一个文件来保存学生信息记录。源文件函数名功能demo.cmenu接受用户选择的菜单命令。help给用户一些提示和帮助。readfile新增或修改学生信息以后,刷新信息seek可以找到想要查询的某个学生信息记录。modify找到指定记录并修改。insert增加学生记录。del删除指定学号的学生信息记录。display显示当前学生记录的信息。save可以保存新增的或修改的学生信息记录。sort按照学号进行准确的排序。main结束程序运行。分析系统:根据题目的需求分析,可将这个系统设计为九大函(见下列图):系统帮助及说明,刷新学生信息,查询,修改,插入,删除,显示,保存,退出。(组成框
3、图)流程图:三、详细设计数据结构设计:结构数组:structstudent/*结构体*/charxuehao1.EN+l;*学号*/charname1.EN+l;*姓名*/intage;*年龄*/charsex3;*性别*/chartime1.EN+l;/*出生年月*/charadd30;/*家庭地址*/chartel1.EN+l;/*号码*/charmail30;/*电子邮件地址*/charsushe30;/*宿舍*/charkoukou20;*qq*/charbanjizhiwu30;*班级职务*stuN;功能模块设计:本程序执行的入口是menu函数,然后用switch句实现对各个函数的调
4、用。被调用的函数都是没有形参的,函数直接实现所需要的功能。最后再从main函数中结束整个程序的运行。0界面函数:函数原型:voidmenu()功能:接受用户选择的菜单命令.假设果输入不符合要求,那么提醒用户重新输入。参数:无。返回值:无工作方式:根据命令,调用相应函数。1、帮助函数:函数原型:voidhelp()功能:给用户一些提示和帮助。参数:无。返回值:无2、刷新函数:函数原型:voidreadfile()功能:新增或修改学生信息以后,刷新信息。参数:无。返回值:无3、查询函数:函数原型:voidseek()功能:可以找到想要查询的某个学生信息记录。可以按照学号、姓名来查询。参数:无。返回
5、值:无工作方式:可选择按照学号或姓名来查询。4、修改函数:函数原型:voidmodify()功能:找到指定记录并修改。如果有的学生信息发生改变,你可以丢它进行修改,修改之前,你必须找到你修改学生的记录,你可以根据学号找到要改学生的信息,找到之后,假设要修改,可以选择某一项(如:姓名、年龄、性别等)对它进行修改。参数:无。返回值:无工作方式:可以按照学号、姓名活名次找到要修改的记录,确认前方可修改。5、插入函数:函数原型:voidinsert()功能:增加学生记录。参数:无。返回值:无。工作方式:其中通过学号的大小来比拟的,并且以此来排序插入记录。6、删除函数:函数原型:voiddel()功能:
6、删除指定学号的学生信息记录。删除之前,需要判定该学生的学号是否存在,假设存在,就可以对它进行删除。参数:无。返回值:无工作方式:根据给定的学号,查找符合的记录并删除之。7、显示函数:功能:显示当前学生记录的信息。参数:无。返回值:无工作方式:显示当前学生记录记录内容。8、保存函数:函数原型:voidsave()功能:可以保存新增的或修改的学生信息记录。参数:无。返回值:无工作方式:将学生信息记录写入student.txt中。9、排序函数:函数原型:voidsort()功能:对学生进行排序,可以按照学号进行准确的排序。参数:无。返回值:无工作方式:对学生进行排序,可以根据需要,对学生的学号或者成
7、绩进行升序。10、退出系统:函数原型:intmain()功能:结束程序运行。参数:无。返回值:无工作方式:根据要求选择退出。四、调试与测试问题一、学生显示信息函数:其中包括学生的学号,姓名,年龄,性别,出生年月,地址,E-mail,宿舍,扣扣,班级职务等相关信息;可用函数display。来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决方法及步骤:1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。2、既然有此学生,那么检查循环判断是否有此学生的语句发现没有错3、输出用于循环检查语句中的学生信息,发现乱码4、仔细分析乱码的原因,最后发现是变量的类型错误,
8、错将学生类型的结构体指针变量定义为了其他类型的指针变量。问题二、查询函数:可用seek()来实现。找到就输出此学生全部信息学生的学号,姓名,年龄,性别,出生年月,地址,E-mail,宿舍,扣扣,班级职务。当正确输入查找信息时,系统却不能够得到所要查找的学生信息。解决方法及步骤:1、检查所编写的程序代码是否完全正确,假设不是,那么改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息。2、检查当我们在输入查找信息时,看是否我们输入的信息有误,假设是这样的话,我们应当仔细输入查找信息。五、源程序清单和执行结果源代码:ftinclde/*1/0函数*/ftinclude/*其它说明*/ftin
9、clude/*字符串函数*/ttdefineBUF1.EN100/*缓冲区最大字符数*/#define1.EN15/*学号和姓名最大字符数,实际请更改*/ttdefineN100structstudent/*最大学生人数,实际请更改*/*结构体*/charxuehao1.EN1;charname1.EN+1;intage;charsex3;chartime1.EN+l;charadd30;chartel1.EN+1;charmail30;charsushe30;charkoukou20;*学号*/*姓名*/*年龄*/*性别*/*出生年月*/*家庭地址*/*号码*/*电子邮件地址*/*宿舍*/*
10、qq*/charbanjizhiwu30;/*班级职务*/stuN;intk=l,n,m;/*函数声明*/*定义全局变量*/voidreadfile();/*刷新函数*/voidseek();/*查询函数*/voidmodify();/*修改函数*/voidinsert();voiddel();voiddisplay();voidsave();voidmenu();*插入函数*/*删除函数*/*显示函数*/*保存函数*/*菜单界面函数*/intmain()(/*当k=0,调用menu函数,退出系统*/while(k)menu();SySten1(pause);return0;)voidhelp
11、()*帮助函数*/Printf(n0.欢送使用系统帮助!n);printfnl.进入系统后,先刷新学生信息,再查询;n);Printf(n2.按照菜单提示键入数字代号;n);printf(113.增加学生信息后,切记保存按7;n);printf(,/114.谢谢您的使用!r);)voidreadfile()/*刷新函数(建立信息)*/char*p=student.txt;FI1.E*fp;inti=0;if(fp=fopen(,zstudent.txt,r)=NU1.1.)(printf(,0penfile%serror!Strikeanykeytoexit!”,p);system(,paus
12、ez,);exit(0);while(fscanf(fp,%s%s%d%s%s%s%s%s%s%s%sz,stui.xuehao,stui.name,stui.age,stui.sex,stu1.i.time,stui.add,stui.tel,stui.mail,stui.sushe,stui.koukou,stui.banjizhiwu)=11)(i+;i二i;)fclose(fp);n=i;Prirrtf(录入完毕!n);)voidseek()*查找*/inti,item,flag;charsi21;/*以姓名和学号最长长度+1为准*/printfCn);printf1.按学号查询n);
13、printfC2.按姓名查询n);printf(,z3.退出本菜单r);PrintfCn);while(l)Printf(请选择子菜单编号:);scanf(z,%d,z,feitem);fIag=O;switch(item)(case 1: printf(请输入要查询的学生的学号:n);scanf(,%s,z,Sl);for(i=0;in;i+)if(strcmp(stui.xuehao,SI)=O)(flag=l;printf学号姓名年龄性别出生年月地址E-mail宿舍扣扣班级职务n);printfCnzz);printf(,/%4s%7s%4d%4s%9s%8s%10s%16s%7s%7s%4s11,z,stui.xuehao,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail,stui.sushe,stui.koukou,stui.banjizhiwu);)if(flag=0)Printf(该学号不存在!n);break;case 2: printf(请输入要查询的学生的姓名