学生信息管理系统课程设计报告absp.doc

上传人:土8路 文档编号:10115318 上传时间:2021-04-20 格式:DOC 页数:29 大小:273KB
返回 下载 相关 举报
学生信息管理系统课程设计报告absp.doc_第1页
第1页 / 共29页
学生信息管理系统课程设计报告absp.doc_第2页
第2页 / 共29页
学生信息管理系统课程设计报告absp.doc_第3页
第3页 / 共29页
学生信息管理系统课程设计报告absp.doc_第4页
第4页 / 共29页
学生信息管理系统课程设计报告absp.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《学生信息管理系统课程设计报告absp.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统课程设计报告absp.doc(29页珍藏版)》请在三一文库上搜索。

1、 课程设计报告课程名称 c语言课程设计 设计题目 学生基本信息管理系统 一、 引言(简要说明设计题目的目的、意义、内容、主要任务等)1 实验目的在全面掌握C语言程序设计课程的知识点的前提下,培养了我们分析实际问题的能力,并能够自己编写程序实现对实际问题的处理,掌握程序项目开发的一般步骤在写实验的过程中,我们能发现我们自身薄弱的地方,给我们的复习指出明确的方向。2 实验意义此实验的意义主要在于加强我们对软件开发的初步了解:1、能将实际中的问题进行分解,并设计出可以解决实际问题的方案。课程设计的相关内容2、可以熟练掌握并应用C语言程序设计课程的所有知识点,开发一个学生信息管理系统,采用计算机对学生

2、信息进行管理,进一步提高了办学效益和现代化水平.为广大教师和学生提高工作效率,实现学生信息管理工作流程的系统化,规范化和自动化.现在我国的大中专院校的学生信息管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素.在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替.一个高效的学生信息管理系统可以存储历届的学生信息档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息,高效,安全,学生在能方便的查看自己的信息。3 主要内容 和 任务学生信息包

3、括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:1) 安全模块2) 信息录入3) 信息浏览4) 学号查询5) 姓名查询6) 信息排序7) 信息删除8) 信息修改9) 保存文件10) 退出系统11) 系统菜单形式显示二、 正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。) 学生管理系统的总设计是:总体设计:1. 1.该系统可

4、以按功能进行模块划分,其模块图如下:学生基本信息管理系统信息录入信息浏览信息查询信息排序信息删除信息修改信息添加退出系统输入学生的相关信息显示学生的相关信息按姓名查询按学号查询更新保存的学生信息对新加的学生进行信息录入菜单选择安全模块系统模块图其中:信息输入模块完成学生信息的输入功能,输入信息包括学生号、姓名、性别、出生年月、成绩、专业. 住址、电话等;信息浏览模块完成已录入学生信息的显示;信息查询模块完成学生信息的查询,查询时对应有按姓名查询和按学号查询两种方式;信息修改模块完成学生信息的修改功能;信息删除模块完成学生信息的删除功能;安全模块 是进入系统需要用户名字 和密码;菜单选择模块完成

5、用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;2数据结构本系统中主要的数据结构就是学生的信息,包含学生号、姓名、性别、出生年月、成绩 、专业、住址、电话等,在处理过程中各项可以作为一个学生的不同属性来进行处理3程序流程系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如下:开始用户登录菜单选择信息输入浏览信息输入信息浏览查询按学号按姓名删除修改信息删除信息修改添加信息添加排序保存文件结束程序流程图详细设计编写目的:根据项目

6、概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。详细设计:对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:1 安全模块 printf( 请输入用户名,n);scanf(%s,x);if(strcmp(x,y)=0) printf( 请输入密码,n); scanf(%d,&ma); while (ma=123456)通过比较语句 来判定输入人名和密码的正确 如果正确进入菜单模块;2 菜单模块通过while语句给出信息提示;清屏;绘制菜单(包含输入,浏览,查询,修改,删除,排序,保存,退出);提示菜单选择并读入到变量;根据读入变量的值调用不同

7、的模块函数;3 信息录入模块打开文件While() 清屏; 按照提示输入各种信息; While 显示各种信息;通过选择1.确认并继续 2.重新填写 3.放弃并返回 4.确认并返回 选择四种功能;4 信息浏览模块打开文件While() 清屏; 用for语句依次按照顺序输出学生信息 通过选择可以翻页 1.上一页 2.下一页 0.退出5 信息查询 While() 通过菜单式的选择 是学号查询 还是姓名 printf(*学生信息管理系统*);printf(n-检 索-);printf(n您想要:);printf(n 1.按学号检索);printf(n 2.按姓名检索);printf(n 3.返回主菜单

8、);printf(n*n);如果选择学号进入学号模块通过输入学号 If( 学号存在继续) 输出学生信息 Else 输出无此学生如果选择姓名进入姓名模块If(根据比较姓名判断学生是否存在) 输出学生信息 Else 输出无此学生6 删除模块 while( 继续删除 ) 提示并读入待删除的学生的学生号;显示要删除的信息删除成功7 信息修改模块输入要修改学生信息的学号:If (判断是否有此学生) 菜单形式显示要修改的项目printf(n1.姓名 2.年龄 3.性别 4.出生年月 5.地址 6.电话 7.E-mail n); printf(n8.数学 9.英语 n);Swich() 选择要修改的项目进行

9、修改8 打开文件模块 void fileopen()FILE *fp;int n;if(fp=fopen(data,r+)=NULL)fp=fopen(data,w+);for(n=0;n100;n+)fread(&stun,sizeof(struct student),1,fp);fread(&stunum,4,1,fp);fclose(fp);9 保存文件模块 void filesave()int n;FILE *fp;fp=fopen(data,r+);for(n=0;n100;n+)fwrite(&stun,sizeof(struct student),1,fp);fwrite(&st

10、unum,4,1,fp);fclose(fp); printf(保存成功!press Enter to continue.);getch();10 退出模块 case 8:ma=0;break; 用的是跳出while语句 回到安全模块11 排序模块 通过 冒泡排序法 for(m=0;my-1;m+) for(x=m+1;xy;x+) if(stum.sumstux.sum) stu99=stum; stum=stux; stux=stu99; stu99.id=stux.id ; stux.id =stum.id; stum.id =stu99.id ; printf(排序后的顺序为:n);然

11、后显示排序好后的学生信息; 学生基本信息结构体是struct studentint id;char name30;int age;char sex6;char birthday12;char add80;char tel15;char email25;int math; int english;int sum;stu100系统的性能测试1 安全模块通过输入正确的用户名才能进入此系统。2 菜单显示进入系统后便来到菜单界面 通过选择进入不同的模块 3 录入函数;通过选择菜单1进入录入模块 下面是录入信息的界面上面截图是通过选择可以继续可以重写放弃 和保存4浏览模块如果选择2 可以进入浏览模块 包括

12、学生的课中基本信息5 学号查找模块6 姓名查找7修改模块修改模块 可以通过选择分别修改姓名 年龄 性别 等信息依次修改修改后的信息8 保存模块9排序模块通过总分的大小从大到小排序排序前的截图排序后的截图10 删除模块11退出模块回到安全模块程序清单#include#include#include#includeint stunum=0;struct student / 结构体int id;char name30;int age;char sex6;char birthday12;char add80;char tel15;char email25;int math; int english;i

13、nt sum;stu100 ;void check() /查询函数 void jsid(); void jsname();int a;char ch;while (a)system(cls);printf(*学生信息管理系统*);printf(n-检 索-);printf(n您想要:);printf(n 1.按学号检索);printf(n 2.按姓名检索);printf(n 3.返回主菜单); printf(n*n);ch=getchar();switch(ch)case 1:jsid();break;case 2:jsname();break;case 3:a=0;break;void fi

14、leopen() /打开文件FILE *fp;int n;if(fp=fopen(data,r+)=NULL)fp=fopen(data,w+);for(n=0;n100;n+)fread(&stun,sizeof(struct student),1,fp);fread(&stunum,4,1,fp);fclose(fp);void filesave() /保存文件int n;FILE *fp;fp=fopen(data,r+);for(n=0;n100;n+)fwrite(&stun,sizeof(struct student),1,fp);fwrite(&stunum,4,1,fp);fc

15、lose(fp); printf(保存成功!press Enter to continue.);getch();void editname(int n) /按照名字修改printf(n新姓名:);scanf(%s,stun.name);void editage(int n) /修改年龄函数printf(n新年龄:);scanf(%d,&stun.age);void editsex(int n) / 修改性别函数printf(n新性别:);scanf(%s,stun.sex);void editbir(int n) /修改生日printf(n新出生年月);scanf(%s,stun.birthd

16、ay);void editadd(int n)printf(n新地址:); /修改地址scanf(%s,stun.add);void edittel(int n) /修改电话printf(n新电话:); scanf(%s,stun.tel);void editemail(int n)printf(n新E-mail:); /修改邮箱scanf(%s,stun.email);void editmath(int n) /修改数学成绩 printf(n新数学:);scanf(%d,&stun.math); stun.sum=stun.math+stun.english;void editenglish

17、(int n) / 修改经与成绩printf(n新英语:); scanf(%d,&stun.english);stun.sum=stun.math+stun.english;void last(int n)if(n=stunum)system(cls); printf(*学生信息管理系统*);printf(n-检 索-);printf(n已检索到末尾。);printf(nPress any key to continue.);printf(n*n);void edit() /修改函数char ch ;int a=1,b; int n; while(a)system(cls);printf(n请

18、输入你想修改的人的学号:n); scanf(%d,&n); if(n=stunum) n=n-; printf(学号 姓 名 年龄 性别 出生年月n); printf(%4d ,stun.id); printf(%12s ,stun.name); printf(%4d ,stun.age); printf(%4s ,stun.sex); printf(%8s n,stun.birthday); printf(nnn学号 电 话 E-mail 地址n); printf(%4d ,stun.id); printf(%15s ,stun.tel); printf(%15s ,stun.email);

19、 printf(%sn, stun.add); printf(nnn 数学 英语 总分n); printf(%4d,stun.math); printf(%15d,stun.english); printf(%15dn,stun.sum); printf(n请输入你想修改的内容:); printf(n1.姓名 2.年龄 3.性别 4.出生年月 5.地址 6.电话 7.E-mail n); printf(n8.数学 9.英语 n); printf(n*n); getchar(); ch=getchar(); switch(ch) case 1:editname(n);break; case 2:

20、editage(n);break; case 3:editsex(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;cas

21、e N:b=0;break;case n:b=0;break;void delect() /删除函数 int n, a; system(cls); printf(n请输入想要删除人的学号:n); scanf(%d,&n); n=n-;for(a=n;a=stunum;a+) strcpy(stua.name,stua+1.name); stua.age=stua+1.age;strcpy(stua.sex,stua+1.sex);strcpy(stua.birthday,stua+1.birthday);strcpy(stua.add,stua+1.add);strcpy(stua.tel,s

22、tua+1.tel);strcpy(stua.email,stua+1.email); stua.math=stua+1.math; stua.english=stua+1.english; stua.sum=stua+1.sum;stunum-;printf(删除成功!press Enter to continue.);void jsid() /按照学号查询int n,i=0;system(cls);printf(*学生信息管理系统*);printf(n-检 索-);printf(n请输入想要检索的学号:);scanf(%d,&n);if(n=stunum)n=n-;printf(学号 姓

23、名 年龄 性别 出生年月n);printf(%4d ,stun.id);printf(%12s ,stun.name);printf(%4d ,stun.age);printf(%4s ,stun.sex);printf(%8s n,stun.birthday);printf(nnn学号 电 话 E-mail 地址n);printf(%4d ,stun.id);printf(%15s ,stun.tel);printf(%15s ,stun.email);printf(%sn, stun.add); printf(nnn 数学 英语 总分n); printf(%4d,stun.math); p

24、rintf(%15d,stun.english); printf(%15dn,stun.sum);i+;if(i=0)printf(nError:无此学生。);printf(n*n);getch(); elsesystem(cls);last(n);getch();void jsname() /按照姓名查询int n,i=0;char m30;system(cls);printf(*学生信息管理系统*);printf(n-检 索-);printf(n请输入想要检索的姓名:);scanf(%s,m);for(n=0;nstunum;n+)if(strcmp(m,stun.name)=0)syst

25、em(cls);printf(学号 姓 名 年龄 性别 出生年月n);printf(%4d ,stun.id);printf(%8s ,stun.name);printf(%4d ,stun.age);printf(%4s ,stun.sex);printf(%8s n,stun.birthday);printf(nnn学号 电 话 E-mail 地址n);printf(%4d ,stun.id);printf(%15s ,stun.tel);printf(%15s ,stun.email);printf(%sn, stun.add);printf(nnn 数学 英语 总分n); printf

26、(%4d,stun.math); printf(%15d,stun.english); printf(%15dn,stun.sum);i+;getch();if(i=0)printf(nError:无此学生。);elselast(n);void write() /录入函数int a,n=1,m;char ch;while (n)a=stunum;system(cls);printf(学号:);stua.id=(a+1);printf(%d,stua.id);printf(n名字:);scanf(%s,stua.name);printf(n年龄:);scanf(%d,&stua.age);pri

27、ntf(n性别:);scanf(%s,stua.sex);printf(n出生年月日:);scanf(%s,stua.birthday);printf(n地址:);scanf(%s,stua.add);printf(n电话:);scanf(%s,stua.tel);printf(nE-mail:);scanf(%s,stua.email); printf(n数学:);scanf(%d,&stua.math);printf(n英语:);scanf(%d,&stua.english); stua.sum=stua.math+stua.english; printf(%d,stua.sum);m=1

28、;while (m)/做一个循环,直到m=0时跳出system(cls);printf(学号:);printf(%d,stua.id);printf(n名字:);printf(%s,stua.name);printf(n年龄:);printf(%d,stua.age);printf(n性别:);printf(%s,stua.sex);待添加的隐藏文字内容2printf(n出生年月日:);printf(%s,stua.birthday);printf(n地址:);printf(%s,stua.add);printf(n电话:);printf(%s,stua.tel);printf(nE-mail

29、);printf(%s,stua.email);printf(n数学);printf(%d,stua.math);printf(n英语);printf(%d,stua.english);printf(n总分);printf(%d,stua.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

30、+;break;void view() /浏览函数int count=1,i,n=1,pagenum=1,page=stunum/5+1;/设定变量控制翻页char ch;while (n)system(cls);printf(学号 姓 名 年龄 性别 出生年月n);for(i=count-1;icount+4&istunum;i+)printf(%4d ,stui.id);printf(%8s ,stui.name);printf(%4d ,stui.age);printf(%7s ,stui.sex);printf(%12s n,stui.birthday);printf(nnn学号 电

31、话 E-mail 地址n);for(i=count-1;icount+4&istunum;i+)printf(%4d ,stui.id);printf(%15s ,stui.tel);printf(%15s ,stui.email);printf(%sn, stui.add); printf(nnn 数学 英语 总分n); for(i=count-1;icount+4&ipage) count=1,pagenum=1;else count=(pagenum-1)*5+1;break;case 0:n=0;break;void turn() /排序函数 int x, m;int y=stunum

32、; int count=1,i,n=1,pagenum=1,page=stunum/5+1;char ch;for(m=0;my-1;m+) for(x=m+1;xy;x+) if(stum.sumstux.sum) stu99=stum; stum=stux; stux=stu99; stu99.id=stux.id ; stux.id =stum.id; stum.id =stu99.id printf(排序后的顺序为:n); while (n)system(cls);printf(学号 姓 名 年龄 性别 出生年月n);for(i=count-1;icount+4&istunum;i+)printf(%4d ,stui.id);printf(%8s ,stui.name);printf(%4d ,st

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1