班级学生信息管理系统设计.docx

上传人:李司机 文档编号:7091469 上传时间:2024-06-09 格式:DOCX 页数:30 大小:77.03KB
返回 下载 相关 举报
班级学生信息管理系统设计.docx_第1页
第1页 / 共30页
班级学生信息管理系统设计.docx_第2页
第2页 / 共30页
班级学生信息管理系统设计.docx_第3页
第3页 / 共30页
班级学生信息管理系统设计.docx_第4页
第4页 / 共30页
班级学生信息管理系统设计.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《班级学生信息管理系统设计.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

14、%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(请输入要查询的学生的姓名:n);scanf(,%s,z,Sl);for(i=0;in;i+)if(strcmp(stui.name,sl)=0)(fIag=I;printf学号姓名年龄性别出生年月地址E-mail宿舍扣扣班级职务n);printfCn

15、);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=。)Printf(该姓名不存在!n);break;case3:return;default:Printf(请在1-3之间选择n);)voidmodify()*修改信息*/(inti,item,num;charsexi3,sl1.EN+l,s21.

16、EN+l;*以姓名和学号最长长度+1为准*/Printf(请输入要要修改的学生的学号:n);scanf(,%szz,SI);for(i=0;in;i+)if(strcmp(stui.xuehao,si)=0)*比拟字符串是否相等*/num=i;printfCn);Printf(1.修改姓名n);Printf(2.修改年龄n);Printf(3.修改性别n);printf(4.修改出生年月n/z);Printf(5.修改地址n);printf(6.修改号码n);Printf(7.修改E-mail地址n);Printf(8.修改宿舍地址n);Printf(9.修改扣扣号n);Printf(10.修

17、改班级职务名称n);printf(z,ll.退出本菜单n);printfCn);while(1)(Printf(请选择子菜单编号:);scanf(z,%d,z,&item);switch(item)case1:printf(请输入新的姓名:n);scanf(zz%s,z,s2);strcpy(stunum.name,s2);break;case2:Printf(请输入新的年龄:n);scanf(d,&stunum.age);break;case 3: Printf(请输入新的性别:n);scanf(,%szz,sexi);strcpy(stunum,sex,sexi);break;case4:

18、Printf(”请输入新的出生年月:n);scanf(%s,s2);strcpy(stunum,time,s2);break;case5:Printf(请输入新的地址:n);scanf(%s,s2);strcpy(stunum.add,s2);break;case6:Printf(请输入新的号码:r);scanf(%s,s2);strcpy(stunum,tel,s2);break;case7:Printf(请输入新的E-mail地址:n);scanf(,%szz,s2);strcpy(stunum,mail,s2);break;case8:Printf(请输入新的宿舍地址:n);scanfs

19、2);strcpy(stunum,sushe,s2);break;case9:Printf(请输入新的扣扣号:n);scanfs2);strcpy(stunum,koukou,s2);break;case10:Printf(请输入新的班级职务名称:n);scanfs2);strcpy(stunum,banjizhiwu,s2);break;case11:return;default:Printf(“请在1-11之间选择n);)voidSort()*按学号排序*/(i11ti,j,*p,*q,s;chartemp10;for(i=0;ii;j-)if(strcmp(stuj-l.xuehao,s

20、tuj.xuehao)0)strcpy(temp,stuj-l.xuehao);strcpy(stuj-l.xuehao,stuj.xuehao)strcpy(stuj.xuehao,temp);strcpy(temp,stuj-l.name);strcpy(stuj-l.name,stuj.name);strcpy(stuj.name,temp);strcpy(temp,stuj-l.sex);strcpy(stuj-l.sex,stuj.sex);strcpy(stuEj.sex,temp);strcpy(temp,stuj-l.time);strcpy(stuj-l.time,stuj.

21、time);strcpy(stuj.time,temp);strcpy(temp,stuj-l.add);strcpy(stuj-l.add,stuj.add);strcpy(stuj.add,temp);strcpy(temp,stuj-l.tel);strcpy(stuj-l.tel,stuj.tel);strcpy(stuj.tel,temp);*比拟学号的大小,交换学号*/*同时,交换姓名*/*同时,交换性别*/*同时,交换出生年月*/*同时,交换家庭住址*/*同时,交换号码*/strcpy(temp,stuj-l.mail);strcpy(stuj-l.mail,stuj.mail)

22、;*同时,交换E-mail地址*/strcpy(stuj.mail,temp);strcpy(temp,stuj-l.sushe);strcpy(stuj-l.sushe,stu1.j.sushe);*同时,交换宿舍地址*/strcpy(stuj.sushe,temp);strcpy(temp,stuj-l.koukou);strcpy(stuj-l.koukou,stuj.koukou);*同时,交换qq号*/strcpy(stuj.koukou,temp);strcpy(temp,stuj-l.banjizhiwu);strcpy(stuj-l.banjizhiwu,stuj.banjiz

23、hiwu);*同时,交换班级职务名称*/strcpy(stuj.banjizhiwu,temp);pstuj-l.age;qstuj.age;s=*q;*q=*p;*p=s;voidinsert()*插入函数*/(i11ti=n,j,flag;Printf(请输入待增加的学生数:n);do!fIag=I;while(flag)(flag二。;Printf(请输入第%d个学生的学号:r,i+l);scanf(s,stui.xuehao);for(j=0;ji;j+)if(strcmp(stui.xuehao,stuj.xuehao)=0)(printf已有该学号,请检查后重新录入!n);flag

24、=l;break;/*如有重复立即退出该层循环,提高判断速度*/)Printf(请输入第%d个学生的姓名:n,i+l);SCanf(s,stui.name);Printf(请输入第%d个学生的年龄:n,i+l);scanf(%d,&stui.age);Printf(请输入第%d个学生的性别:n,i+l);SCanf(s,stui.sex);Printf(请输入第%d个学生的出生年月:(格式:年.月)n,il);scanf(z/%sz,stui.time);Printf(请输入第%d个学生的地址:n,i+l);scanf(%s,stui.add);Printf(请输入第%d个学生的:n,il);

25、scanf(,z%s,z,stui.tel);Printf(请输入第%d个学生的E-mail:n,i+l);scanf(,z%s,z,stui.mail);Printf(请输入第%d个学生的宿舍地址:n,il);scanf(,%s,z,stui.sushe);Printf(请输入第%d个学生的扣扣号:i+l);scanf(%d,stui.koukou);Printf(请输入第%d个学生的班级职务名称:n,i+l);SCanf(%s,stui.banjizhiwu);if(fIag=O)!i=i;i+;)while(in+m);n+=m;Printf(录入完毕!nn);sort();voidde

26、l()*删除函数*/inti,j,fIag=O;charsi1.EN+1;Printf(请输入要删除学生的学号:n);scanfsi);for(i=0;in;i+)if(strcmp(stui.xuehao,SI)=O)(fIag=I;for(j=i;jn-l;j+)stuj=stuj+l;)if(flag=。)Printf(该学号不存在!n);if(flag=l)(Printf(删除成功,显示结果请选择菜单6n);n;)voiddisplay()/*显示函数*/Printf(所有学生的信息为:n);printf学号姓名年龄性别出生年月地址E-mail宿舍扣扣班级职务n);printfCn);

27、for(i=0;in;i+)(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,stuEi.mail,StUi.sushe,stui.koukou,stui.banjizhiwu);)voidsave()*保存函数*/(inti;FI1.E*fp;fp=fopen(student.txt,w);*写入*/for(i=0;in;i+)(fprintf(fp,z%s%s%d%s%s%s%s%s%s%s%sn,z,st

28、ui.xuehao,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail,stui.sushe,stui.koukou,stui.banjizhiwu);)fclose(fp);Printf(保存成功);)voidmenu()*菜单界面函数*/intnum;printf系统功能菜单n);Printf(友情提醒:查询前请先刷新系统!nz,);prnt(n);printf(,n);printf*0.系统帮助及说明*printf(,n);1.刷新学生信息n);printf(z,*2.查询学生信息*printf(,n);3.

29、修改学生信息n);printf(z,*4.增加学生信息*printf(,n);5.按学号删除信息n);printf(z/*6.显示当前信息*printf(,11,z);7.保存当前学生信息n);printf(*8,退出系统n);W);printf(z,printf(n);Printf(请选择菜单编号:);scanf(d,&num);switch(num)caseO:help();*选O,调用帮助函数*/break;case 1 :readfile();*选1,调用刷新函数*/break;case 2 seek();*选2,调用查询函数*/break;case3:modify();*选3,调用修

30、改函数*/break;case 4: insert();*选4,调用插入函数*/break;case 5: del();*选5,调用删除函数*/break;case6:display();*选6,调用显示函数*/break;case7:save();*选7,调用保存函数*/break;case8:k=0;*选8,k=0,调用main函数*/break;default:Printf(“请在0-8之间选择n);)主界面:在主界面上选择需要进行的操作。选择0:系统帮助及说明。界面如下:提示用户查询前先刷新系统,增加新纪录要保存。如果要继续操作,请选择菜单编号。选择1.新增或修改学生信息以后,刷新信息

31、当在主界面选择1时,进入下面的界面:刷新学生信息。如果要继续操作,请选择菜单编号。选择2:进行查找操作。按照不同的方式查找。选择2后,回车确认,出现下面的界面:中选择1.按学号查询,例如输入学号3,显示下面的界面(其他查询方式显示界面类似)可以选择1或2继续查询,也可选3退出本菜单,继续选择菜单编号做其他选项操作。选择3:进行修改操作。按照不同的选项修改。选择3后,回车确认,出现下面的界面。当输入学号后,选择1.修改姓名,显示下面的界面(其他查询方式显示界面类似)可以选择1-10继续修改,也可选11退出本菜单,继续选择菜单编号做其他选项操作。选择4:进行增加操作。选择4后,回车确认,出现下面的

32、界面输入新增的学生数后,进行增加学生信息记录。显示下面界面。录入完毕,选择菜单编号7进行保存当前学生信息。如果还要继续,请选择菜单编号中的其他选项。选择5:可以删除指定某个学生姓名的信息。当在主界面选择5时,进入下面的界面:输入要删除学生的学号后,显示下面界面。删除成功,如果还要继续,请选择菜单编号中的其他选项。选择6:可以浏览所有学生的信息。浏览学生信息。如果要继续操作,请选择菜单编号。选择7:可以保存学生的信息。保存学生信息。如果要继续操作,请选择菜单编号。选择8:可以退出系统。六、总结通过一段时间的努力,终于完成了这次C语言程序设计。在这个学生信息管理系统C语言课程设计中,完成了根本功能,即可以检索记录、新建新记录、删除记录、使用文件对记录进行保存功能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号