系统实现论文_第1页
系统实现论文_第2页
系统实现论文_第3页
系统实现论文_第4页
系统实现论文_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.学生信息管理系统的设计和实现*国摘要:学生信息管理系统,主要实现了学生**、性别、**、班级、学院的相关信息的管理。0.引言信息时代,讲究的就是一个信息的管理,学生是一个很大群体,他们的管理,对于教育工作相当重要,尤其是学生根本信息的管理,基于这样的环境,通过设计学生信息管理系统,用信息技术来实现学生的根本信息管理。学生根本信息包括学生**、**、性别、学院、班级。系统设计概述学生信息包括:**,**,年龄,性别,出生年月,地址,,等。试设计一学生信息管理系统,使之能提供以下功能:1〕平安模块2〕信息录入3)信息浏览4〕**查询5〕**查询6〕信息排序7〕信息删除8〕信息修改9〕保存文件10〕退出系统11〕系统菜单形式显示系统模块设计学生根本信息管理系统学生根本信息管理系统信息录入信息浏览信息查询信息排序信息删除信息修改信息添加退出系统输入学生的相关信息显示学生的相关信息按**查询按**查询更新保存的学生信息对新加的学生进展信息录入菜单项选择择平安模块其中:信息输入模块完成学生信息的输入功能,输入信息包括学生号、**、性别、出生年月、成绩、专业.住址、等;信息浏览模块完成已录入学生信息的显示;信息查询模块完成学生信息的查询,查询时对应有按**查询和按**查询两种方式;信息修改模块完成学生信息的修改功能;信息删除模块完成学生信息的删除功能;平安模块是进入系统需要用户名字和密码;菜单项选择择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进展的各种操作均需在此模块中进展选择并进而调用其他模块实现相应的功能;2数据构造本系统中主要的数据构造就是学生的信息,包含学生号、**、性别、出生年月、成绩、专业、住址、等,在处理过程中各项可以作为一个学生的不同属性来进展处理3程序流程系统的执行应从功能菜单的选择开场,依据用户的选择来进展后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如下:开场开场用户登录菜单项选择择信息输入浏览信息输入信息浏览查询按**按**删除修改信息删除信息修改添加信息添加排序保存文件完毕详细设计编写目的:根据工程概要设计说明书,在工程概要设计的根底之上,对系统进展详细设计,以便下一步进展程序编码工作。详细设计:对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:1平安模块printf("请输入用户名,\n"); scanf("%s",*); if(strcmp(*,y)==0) { printf("请输入密码,\n");scanf("%d",&ma); while(ma==123456)通过比拟语句来判定输入人名和密码的正确如果正确进入菜单模块;菜单模块通过while语句给出信息提示;清屏;绘制菜单〔包含输入,浏览,查询,修改,删除,排序,保存,退出〕;提示菜单项选择择并读入到变量;根据读入变量的值调用不同的模块函数;信息录入模块翻开文件While(){清屏;按照提示输入各种信息;While显示各种信息;通过选择1.确认并继续2.重新填写3.放弃并返回4.确认并返回选择四种功能;}}信息浏览模块翻开文件While〔〕{清屏;用for语句依次按照顺序输出学生信息通过选择可以翻页1.上一页2.下一页0.退出}信息查询While(){通过菜单式的选择是**查询还是**printf("******学生信息管理系统******"); printf("\n检索"); printf("\n您想要:"); printf("\n1.按**检索"); printf("\n2.按**检索"); printf("\n3.返回主菜单");printf("\n****************************\n");}如果选择**进入**模块通过输入**If〔**存在继续〕{输出学生信息}Else输出无此学生如果选择**进入**模块If〔根据比拟**判断学生是否存在〕{输出学生信息}Else输出无此学生删除模块while(继续删除){提示并读入待删除的学生的学生号;显示要删除的信息}删除成功信息修改模块输入要修改学生信息的**:If〔判断是否有此学生〕{菜单形式显示要修改的工程printf("\n1.**2.年龄3.性别4.出生年月5.地址6.7.\n"); printf("\n8.数学9.英语\n");}Swich(){选择要修改的工程进展修改}翻开文件模块voidfileopen(){ FILE*fp; intn; if((fp=fopen("data","r+"))==NULL)fp=fopen("data","w+"); for(n=0;n<100;n++)fread(&stu[n],sizeof(structstudent),1,fp); fread(&stunum,4,1,fp); fclose(fp);}保存文件模块voidfilesave(){ intn; FILE*fp; fp=fopen("data","r+"); for(n=0;n<100;n++) fwrite(&stu[n],sizeof(structstudent),1,fp); fwrite(&stunum,4,1,fp); fclose(fp);printf("保存成功!pressEntertocontinue.."); getch();}退出模块case'8':ma=0;break;用的是跳出while语句回到平安模块排序模块通过冒泡排序法for(m=0;m<y-1;m++)for(*=m+1;*<y;*++)if(stu[m].sum<stu[*].sum) { stu[99]=stu[m];stu[m]=stu[*];stu[*]=stu[99];stu[99].id=stu[*].id;stu[*].id=stu[m].id;stu[m].id=stu[99].id; }printf("排序后的顺序为:\n");然后显示排序好后的学生信息;学生根本信息构造体是structstudent{ intid; charname[30]; intage; charse*[6]; charbirthday[12]; charadd[80]; chartel[15]; charemail[25]; intmath;intenglish; intsum;}stu[100]系统的性能测试1平安模块通过输入正确的用户名才能进入此系统。菜单显示进入系统后便来到菜单界面通过选择进入不同的模块3录入函数;通过选择菜单1进入录入模块下面是录入信息的界面上面截图是通过选择可以继续可以重写放弃和保存4浏览模块如果选择2可以进入浏览模块包括学生的课中根本信息5**查找模块6**查找7修改模块修改模块可以通过选择分别修改**年龄性别等信息依次修改修改后的信息8保存模块9排序模块通过总分的大小从大到小排序排序前的截图排序后的截图10删除模块11退出模块回到平安模块程序清单#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>intstunum=0;structstudent//构造体{ intid; charname[30]; intage; charse*[6]; charbirthday[12]; charadd[80]; chartel[15]; charemail[25]; intmath;intenglish; intsum;}stu[100];voidcheck()//查询函数{voidjsid();voidjsname(); inta; charch; while(a) { system("cls"); printf("******学生信息管理系统******"); printf("\n检索"); printf("\n您想要:"); printf("\n1.按**检索"); printf("\n2.按**检索"); printf("\n3.返回主菜单");printf("\n****************************\n"); ch=getchar(); switch(ch) { case'1':jsid();break; case'2':jsname();break; case'3':a=0;break; } }}voidfileopen()//翻开文件{ FILE*fp; intn; if((fp=fopen("data","r+"))==NULL) fp=fopen("data","w+"); for(n=0;n<100;n++) fread(&stu[n],sizeof(structstudent),1,fp); fread(&stunum,4,1,fp); fclose(fp);}voidfilesave()//保存文件{ intn;FILE*fp; fp=fopen("data","r+"); for(n=0;n<100;n++)fwrite(&stu[n],sizeof(structstudent),1,fp); fwrite(&stunum,4,1,fp); fclose(fp);printf("保存成功!pressEntertocontinue.."); getch();}voideditname(intn)//按照名字修改{ printf("\n新**:"); scanf("%s",stu[n].name);}voideditage(intn)//修改年龄函数{ printf("\n新年龄:"); scanf("%d",&stu[n].age);}voideditse*(intn)//修改性别函数{ printf("\n新性别:"); scanf("%s",stu[n].se*);}voideditbir(intn)//修改生日{ printf("\n新出生年月"); scanf("%s",stu[n].birthday);}voideditadd(intn){ printf("\n新地址:");//修改地址 scanf("%s",stu[n].add);}voidedittel(intn)//修改{ printf("\n新:"); scanf("%s",stu[n].tel);}voideditemail(intn){ printf("\n新:");//修改 scanf("%s",stu[n].email);}voideditmath(intn)//修改数学成绩{ printf("\n新数学:"); scanf("%d",&stu[n].math);stu[n].sum=stu[n].math+stu[n].english;}voideditenglish(intn)//修改经与成绩{ printf("\n新英语:"); scanf("%d",&stu[n].english); stu[n].sum=stu[n].math+stu[n].english;}voidlast(intn){ if(n==stunum) system("cls"); printf("******学生信息管理系统******"); printf("\n检索"); printf("\n已检索到末尾。"); printf("\nPressanykeytocontinue.."); printf("\n****************************\n");}voidedit()//修改函数{ charch; inta=1,b;intn; while(a) { system("cls"); printf("\n请输入你想修改的人的**:\n"); scanf("%d",&n);if(n<=stunum) { n=n--; printf("****年龄性别出生年月\n"); printf("%4d",stu[n].id); printf("%12s",stu[n].name); printf("%4d",stu[n].age);printf("%4s",stu[n].se*); printf("%8s\n",stu[n].birthday); printf("\n\n\n**电话地址\n"); printf("%4d",stu[n].id); printf("%15s",stu[n].tel); printf("%15s",stu[n].email); printf("%s\n",stu[n].add); printf("\n\n\n数学英语总分\n");printf("%4d",stu[n].math); printf("%15d",stu[n].english);printf("%15d\n",stu[n].sum);printf("\n请输入你想修改的内容:"); printf("\n1.**2.年龄3.性别4.出生年月5.地址6.7.\n"); printf("\n8.数学9.英语\n");printf("\n****************************\n"); getchar(); ch=getchar(); switch(ch) { case'1':editname(n);break; case'2':editage(n);break; case'3':editse*(n);break; case'4':editbir(n);break; case'5':editadd(n);break; case'6':edittel(n);break; case'7':editemail(n);break;case'8':editmath(n);break;case'9':editenglish(n);break; } b=1; } while(b) {printf("\n确认吗?(y/n)"); ch=getchar(); switch(ch) { case'Y':b=0;a=0;break; case'y':b=0;a=0;break; case'N':b=0;break; case'n':b=0;break; } } }}voiddelect()//删除函数{intn,a;system("cls");printf("\n请输入想要删除人的**:\n");scanf("%d",&n);n=n--; for(a=n;a<=stunum;a++) { strcpy(stu[a].name,stu[a+1].name); stu[a].age=stu[a+1].age; strcpy(stu[a].se*,stu[a+1].se*); strcpy(stu[a].birthday,stu[a+1].birthday); strcpy(stu[a].add,stu[a+1].add); strcpy(stu[a].tel,stu[a+1].tel); strcpy(stu[a].email,stu[a+1].email); stu[a].math=stu[a+1].math; stu[a].english=stu[a+1].english; stu[a].sum=stu[a+1].sum; stunum--; printf("删除成功!pressEntertocontinue..");}}voidjsid()//按照**查询{ intn,i=0; system("cls"); printf("******学生信息管理系统******"); printf("\n检索"); printf("\n请输入想要检索的**:"); scanf("%d",&n); if(n<=stunum) { n=n--; printf("**姓名年龄性别出生年月\n"); printf("%4d",stu[n].id); printf("%12s",stu[n].name); printf("%4d",stu[n].age); printf("%4s",stu[n].se*); printf("%8s\n",stu[n].birthday); printf("\n\n\n**电话地址\n"); printf("%4d",stu[n].id); printf("%15s",stu[n].tel); printf("%15s",stu[n].email); printf("%s\n",stu[n].add);printf("\n\n\n数学英语总分\n");printf("%4d",stu[n].math); printf("%15d",stu[n].english);printf("%15d\n",stu[n].sum); i++; if(i==0) { printf("\nError:无此学生。"); printf("\n****************************\n"); } getch();}else{ system("cls"); last(n);}getch(); }voidjsname()//按照**查询{ intn,i=0; charm[30]; system("cls"); printf("******学生信息管理系统******"); printf("\n检索"); printf("\n请输入想要检索的**:"); scanf("%s",m); for(n=0;n<stunum;n++){ if(strcmp(m,stu[n].name)==0) { system("cls"); printf("**姓名年龄性别出生年月\n"); printf("%4d",stu[n].id); printf("%8s",stu[n].name); printf("%4d",stu[n].age); printf("%4s",stu[n].se*); printf("%8s\n",stu[n].birthday); printf("\n\n\n**电话地址\n"); printf("%4d",stu[n].id); printf("%15s",stu[n].tel); printf("%15s",stu[n].email); printf("%s\n",stu[n].add); printf("\n\n\n数学英语总分\n");printf("%4d",stu[n].math); printf("%15d",stu[n].english);printf("%15d\n",stu[n].sum); i++; getch(); } } if(i==0) printf("\nError:无此学生。"); else { last(n); }}voidwrite()//录入函数{ inta,n=1,m; charch; while(n) { a=stunum; system("cls"); printf("**:"); stu[a].id=(a+1); printf("%d",stu[a].id); printf("\n名字:");scanf("%s",stu[a].name); printf("\n年龄:"); scanf("%d",&stu[a].age); printf("\n性别:"); scanf("%s",stu[a].se*); printf("\n出生年月日:"); scanf("%s",stu[a].birthday); printf("\n地址:"); scanf("%s",stu[a].add); printf("\n:"); scanf("%s",stu[a].tel); printf("\n:"); scanf("%s",stu[a].email);printf("\n数学:"); scanf("%d",&stu[a].math); printf("\n英语:"); scanf("%d",&stu[a].english);stu[a].sum=stu[a].math+stu[a].english;printf("%d",stu[a].sum); m=1; while(m) //做一个循环,直到m=0时跳出 { system("cls"); printf("**:"); printf("%d",stu[a].id); printf("\n名字:"); printf("%s",stu[a].name); printf("\n年龄:"); printf("%d",stu[a].age); printf("\n性别:"); printf("%s",stu[a].se*); printf("\n出生年月日:"); printf("%s",stu[a].birthday); printf("\n地址:"); printf("%s",stu[a].add); printf("\n:"); printf("%s",stu[a].tel); printf("\n"); printf("%s",stu[a].email); printf("\n数学"); printf("%d",stu[a].math); printf("\n英语"); printf("%d",stu[a].english); printf("\n总分"); printf("%d",stu[a].sum); printf("\n请选择:1.确认并继续2.重新填写3.放弃并返回4.确认并返回"); ch=getchar(); switch(ch) { case'1':m=0;stunum++;break; case'2':stunum,m=0;break; case'3':m=0,n=0;break; //选择此项时,m=0,循环终止 case'4':m=0,n=0;a=stunum++;break; } } }}voidview()//浏览函数{ intcount=1,i,n=1,pagenum=1,page=stunum/5+1; //设定变量控制翻页 charch; while(n) { system("cls"); printf("**姓名年龄性别出生年月\n"); for(i=count-1;i<count+4&&i<stunum;i++) { printf("%4d",stu[i].id); printf("%8s",stu[i].name); printf("%4d",stu[i].age); printf("%7s",stu[i].se*); printf("%12s\n",stu[i].birthday); } printf("\n\n\n**电话地址\n"); for(i=count-1;i<count+4&&i<stunum;i++) { printf("%4d",stu[i].id); printf("%15s",stu[i].tel); printf("%15s",stu[i].email); printf("%s\n",stu[i].add); }printf("\n\n\n数学英语总分\n");for(i=count-1;i<count+4&&i<stunum;i++) {printf("%4d",stu[i].math); printf("%15d",stu[i].english);printf("%15d\n",stu[i].sum); } printf("\n1.上一页2.下一页0.退出共学生%d人,第%d页,共%d页\n",stunum,pagenum,page); ch=getchar();switch(ch) { case'1':pagenum--; if(pagenum==0)count=(1)*5+1,pagenum=page; elsecount=(pagenum-1)*5+1;break; case'2':pagenum++; if(pagenum>page)count=1,pagenum=1; elsecount=(pagenum-1)*5+1;break; case'0':n=0;break; } }}voidturn()//排序函数{int*,m; inty=stunum;intcount=1,i,n=1,pagenum=1,page=stunum/5+1; charch; for(m=0;m<y-1;m++)for(*=m+1;*<y;*++)if(stu[m].sum<stu[*].sum) { stu[99]=stu[m];stu[m]=stu[*];stu[*]=stu[99];stu[99].id=stu[*].id;stu[*].id=stu[m].id;stu[m].id=stu[99].id }printf("排序后的顺序为:\n");while(n) { system("cls"); printf("**姓名年龄性别出生年月\n"); for(i=count-1;i<count+4&&i<stunum;i++) { printf("%4d",stu[i].id); printf("%8s",stu[i].name); printf("%4d",stu[i].age); printf("%7s",stu[i].se*); printf("%12s\n",stu[i].birthday); } printf("\n\n\n**电话地址\n"); for(i=count-1;i<count+4&&i<stunum;i++) { printf("%4d",stu[i].id); printf("%15s",stu[i].tel); printf("%15s",stu[i].email); printf("%s\n",stu[i].add); }printf("\n\n\n数学英语总分\n");for(i=count-1;i<count+4&&i<stunum;i++) {printf("%4d",stu[i].math); printf("%15d",stu[i].english);printf("%15d\n",stu[i].sum); } printf("\n1.上一页2.下一页0.退出共学生%d人,第%d页,共%d页\n",stunum,pagenum,page); ch=getchar();switch(ch) { case'1':pagenum--; if(pagenum==0)count=(1)*5+1,pagenum=page; elsecount=(pagenum-1)*5+1;break; case'2':pagenum++; if(pagenum>page)count=1,pagenum=1; elsecount=(pagenum-1)*5+1;break; ca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论