学生基本信息管理系统.docx
《学生基本信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生基本信息管理系统.docx(35页珍藏版)》请在冰点文库上搜索。
学生基本信息管理系统
课程设计报告
课程名称c语言课程设计
设计题目学生基本信息管理系统
一、引言(简要说明设计题目的目的、意义、内容、主要任务等)
1实验目的
在全面掌握《C语言程序设计》课程的知识点的前提下,培养了我们分析实际问题的能力,并能够自己编写程序实现对实际问题的处理,掌握程序项目开发的一般步骤在写实验的过程中,我们能发现我们自身薄弱的地方,给我们的复习指出明确的方向。
2实验意义
此实验的意义主要在于加强我们对软件开发的初步了解:
1、能将实际中的问题进行分解,并设计出可以解决实际问题的方案。
课程设计的相关内容
2、可以熟练掌握并应用《C语言程序设计》课程的所有知识点,开发一个学生信息管理系统,采用计算机对学生信息进行管理,进一步提高了办学效益和现代化水平.为广大教师和学生提高工作效率,实现学生信息管理工作流程的系统化,规范化和自动化.现在我国的大中专院校的学生信息管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素.在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替.一个高效的学生信息管理系统可以存储历届的学生信息档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息,高效,安全,学生在能方便的查看自己的信息。
3主要内容和任务
学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,等。
试设计一学生信息管理系统,使之能提供以下功能:
1)安全模块
2)信息录入
3) 信息浏览
4)学号查询
5)姓名查询
6)信息排序
7)信息删除
8)信息修改
9)保存文件
10)退出系统
11)系统菜单形式显示
二、正文(课程设计的主要内容,包括实验及观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明及依据、加工整理和图表、形成的论点和导出的结论等。
正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。
)
学生管理系统的总设计是:
总体设计:
1.1.该系统可以按功能进行模块划分,其模块图如下:
系统模块图
其中:
信息输入模块完成学生信息的输入功能,输入信息包括学生号、姓名、性别、出生年月、成绩、专业.住址、电话等;
信息浏览模块完成已录入学生信息的显示;
信息查询模块完成学生信息的查询,查询时对应有按姓名查询和按学号查询两种方式;
信息修改模块完成学生信息的修改功能;
信息删除模块完成学生信息的删除功能;
安全模块是进入系统需要用户名字和密码;
菜单选择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;
2数据结构
本系统中主要的数据结构就是学生的信息,包含学生号、姓名、性别、出生年月、成绩、专业、住址、电话等,在处理过程中各项可以作为一个学生的不同属性来进行处理
3程序流程
系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如下:
程序流程图
详细设计
编写目的:
根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。
详细设计:
对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:
1安全模块
("请输入用户名,\n");
("");
(()0)
{
("请输入密码,\n");
("");
(123456)
通过比较语句来判定输入人名和密码的正确如果正确进入菜单模块;
2菜单模块
通过语句
给出信息提示;
清屏;
绘制菜单(包含输入,浏览,查询,修改,删除,排序,保存,退出);
提示菜单选择并读入到变量;
根据读入变量的值调用不同的模块函数;
3信息录入模块
打开文件
()
{清屏;
按照提示输入各种信息;
显示各种信息;
通过选择1.确认并继续2.重新填写3.放弃并返回4.确认并返回
选择四种功能;
}
}
4信息浏览模块
打开文件
()
{清屏;
用语句依次按照顺序输出学生信息
通过选择可以翻页1.上一页2.下一页0.退出
}
5信息查询
()
{通过菜单式的选择是学号查询还是姓名
("******学生信息管理系统******");
("\检索");
("\n您想要:
");
("\n1.按学号检索");
("\n2.按姓名检索");
("\n3.返回主菜单");
("\n****************************\n");
}
如果选择学号进入学号模块
通过输入学号
(学号存在继续)
{输出学生信息
}
输出无此学生
如果选择姓名进入姓名模块
(根据比较姓名判断学生是否存在)
{输出学生信息
}
输出无此学生
6删除模块
(继续删除)
{
提示并读入待删除的学生的学生号;
显示要删除的信息
}
删除成功
7信息修改模块
输入要修改学生信息的学号:
(判断是否有此学生)
{菜单形式显示要修改的项目
("\n1.姓名2.年龄3.性别4.出生年月5.地址6.电话7\n");
("\n8.数学9.英语\n");
}
()
{选择要修改的项目进行修改
}
8打开文件模块
()
{
*;
n;
((("","")))
("","");
(0<100)
([n](),1);
(,4,1);
();
}
9保存文件模块
()
{
n;
*;
("","");
(0<100)
([n](),1);
(,4,1);
();
("保存成功!
..");
();
}
10退出模块
'8'0;
用的是跳出语句
回到安全模块
11排序模块
通过冒泡排序法
(0<1)
(1<)
([m]<[x])
{
[99][m];
[m][x];
[x][99];
[99][x];
[x][m];
[m][99];
}
("排序后的顺序为:
\n");
然后显示排序好后的学生信息;
学生基本信息结构体是
{
;
[30];
;
[6];
[12];
[80];
[15];
[25];
;
;
;
}[100]
系统的性能测试
1安全模块
通过输入正确的用户名才能进入此系统。
2菜单显示
进入系统后便来到菜单界面通过选择进入不同的模块
3录入函数;
通过选择菜单1进入录入模块下面是录入信息的界面
上面截图是通过选择可以继续可以重写放弃和保存
4浏览模块
如果选择2可以进入浏览模块包括学生的课中基本信息
5学号查找模块
6姓名查找
7修改模块
修改模块可以通过选择分别修改姓名年龄性别等信息依次修改
修改后的信息
8保存模块
9排序模块
通过总分的大小从大到小排序
排序前的截图
排序后的截图
10删除模块
11退出模块
回到安全模块
程序清单
<>
<>
<>
<>
0;
结构体
{
;
[30];
;
[6];
[12];
[80];
[15];
[25];
;
;
;
}[100];
()查询函数
{
();
();
a;
;
(a)
{
("");
("******学生信息管理系统******");
("\检索");
("\n您想要:
");
("\n1.按学号检索");
("\n2.按姓名检索");
("\n3.返回主菜单");
("\n****************************\n");
();
()
{
'1'();
'2'();
'3'0;
}
}
}
()打开文件
{
*;
n;
((("","")))
("","");
(0<100)
([n](),1);
(,4,1);
();
}
()保存文件
{
n;
*;
("","");
(0<100)
([n](),1);
(,4,1);
();
("保存成功!
..");
();
}
(n)按照名字修改
{
("\n新姓名:
");
(""[n]);
}
(n)修改年龄函数
{
("\n新年龄:
");
(""[n]);
}
(n)修改性别函数
{
("\n新性别:
");
(""[n]);
}
(n)修改生日
{
("\n新出生年月");
(""[n]);
}
(n)
{
("\n新地址:
");修改地址
(""[n]);
}
(n)修改电话
{
("\n新电话:
");
(""[n]);
}
(n)
{
("\n新:
");修改邮箱
(""[n]);
}
(n)修改数学成绩
{
("\n新数学:
");
(""[n]);
[n][n][n];
}
(n)修改经及成绩
{
("\n新英语:
");
(""[n]);
[n][n][n];
}
(n)
{
()
("");
("******学生信息管理系统******");
("\检索");
("\n已检索到末尾。
");
("\..");
("\n****************************\n");
}
()修改函数
{
;
1;
n;
(a)
{("");
("\n请输入你想修改的人的学号:
\n");
("");
(n<)
{
;
("学号姓名年龄性别出生年月\n");
("%4d"[n]);
("%12s"[n]);
("%4d"[n]);
("%4s"[n]);
("%8s\n"[n]);
("\n\n\n学号电话地址\n");
("%4d"[n]);
("%15s"[n]);
("%15s"[n]);
("\n",[n]);
("\n\n\n数学英语总分\n");
("%4d"[n]);
("%15d"[n]);
("%15d\n"[n]);
("\n请输入你想修改的内容:
");
("\n1.姓名2.年龄3.性别4.出生年月5.地址6.电话7\n");
("\n8.数学9.英语\n");
("\n****************************\n");
();
();
()
{
'1'(n);
'2'(n);
'3'(n);
'4'(n);
'5'(n);
'6'(n);
'7'(n);
'8'(n);
'9'(n);
}
1;
}
(b)
{
("\n确认吗?
()");
();
()
{
'Y'00;
'y'00;
'N'0;
'n'0;
}
}
}
}
()删除函数
{n,a;
("");
("\n请输入想要删除人的学号:
\n");
("");
;
(<)
{
([a][1]);
[a][1];
([a][1]);
([a][1]);
([a][1]);
([a][1]);
([a][1]);
[a][1];
[a][1];
[a][1];
;
("删除成功!
..");
}
}
()按照学号查询
{
0;
("");
("******学生信息管理系统******");
("\检索");
("\n请输入想要检索的学号:
");
("");
(n<)
{
;
("学号姓名年龄性别出生年月\n");
("%4d"[n]);
("%12s"[n]);
("%4d"[n]);
("%4s"[n]);
("%8s\n"[n]);
("\n\n\n学号电话地址\n");
("%4d"[n]);
("%15s"[n]);
("%15s"[n]);
("\n",[n]);
("\n\n\n数学英语总分\n");
("%4d"[n]);
("%15d"[n]);
("%15d\n"[n]);
;
(0)
{
("\:
无此学生。
");
("\n****************************\n");
}
();
}
{
("");
(n);
}
();
}
()按照姓名查询
{
0;
m[30];
("");
("******学生信息管理系统******");
("\检索");
("\n请输入想要检索的姓名:
");
("");
(0<)
{
(([n])0)
{
("");
("学号姓名年龄性别出生年月\n");
("%4d"[n]);
("%8s"[n]);
("%4d"[n]);
("%4s"[n]);
("%8s\n"[n]);
("\n\n\n学号电话地址\n");
("%4d"[n]);
("%15s"[n]);
("%15s"[n]);
("\n",[n]);
("\n\n\n数学英语总分\n");
("%4d"[n]);
("%15d"[n]);
("%15d\n"[n]);
;
();
}
}
(0)
("\:
无此学生。
");
{
(n);
}
}
()录入函数
{
1;
;
(n)
{
;
("");
("学号:
");
[a]
(1);
(""[a]);
("\n名字:
");
(""[a]);
("\n年龄:
");
(""[a]);
("\n性别:
");
(""[a]);
("\n出生年月日:
");
(""[a]);
("\n地址:
");
(""[a]);
("\n电话:
");
(""[a]);
("\:
");
(""[a]);
("\n数学:
");
(""[a]);
("\n英语:
");
(""[a]);
[a][a][a];
(""[a]);
1;
(m)做一个循环,直到0时跳出
{
("");
("学号:
");
(""[a]);
("\n名字:
");
(""[a]);
("\n年龄:
");
(""[a]);
("\n性别:
");
(""[a]);
("\n出生年月日:
");
(""[a]);
("\n地址:
");
(""[a]);
("\n电话:
");
(""[a]);
("\");
(""[a]);
("\n数学");
(""[a]);
("\n英语");
(""[a]);
("\n总分");
(""[a]);
("\n请选择:
1.确认并继续2.重新填写3.放弃并返回4.确认并返回");
();
()
{
'1'0;
'2'0;
'3'00;选择此项时,0,循环终止
'4'00;
}
}
}
}
()浏览函数
{
1115+1;设定变量控制翻页
;
(n)
{
("");
("学号姓名年龄性别出生年月\n");
(1<4<)
{
("%4d"[i]);
("%8s"[i]);
("%4d"[i]);
("%7s"[i]);
("%12s\n"[i]);
}
("\n\n\n学号电话地址\n");
(1<4<)
{
("%4d"[i]);
("%15s"[i]);
("%15s"[i]);
("\n",[i]);
}
("\n\n\n数学英语总分\n");
(1<4<)
{
("%4d"[i]);
("%15d"[i]);
("%15d\n"[i]);
}
("\n1.上一页2.下一页0.退出共学生人,第页,共页\n");
();
()
{
'1';
(0)
(1)*5+1;
(1)*5+1;
'2';
(>)11;
(1)*5+1;
'0'0;
}
}
}
()排序函数
{x,m;
;
1115+1;
;
(0<1)
(1<)
([m]<[x])
{
[99][m];
[m][x];
[x][99];
[99][x];
[x][m];
[m][99]
}
("排序后的顺序为:
\n");
(n)
{
("");
("学号姓名年龄性别出生年月\n");
(1<4<)
{
("%4d"[i]);
("%8s"[i]);
("%4d"[i]);
("%7s"[i]);
("%12s\n"[i]);
}
("\n\n\n学号电话地址\n");
(1<4<)
{
("%4d"[i]);
("%15s"[i]);
("%15s"[i]);
("\n",[i]);
}
("\n\n\n数学英语总分\n");
(1<4<)
{
("%4d"[i]);
("%15d"[i]);
("%15d\n"[i]);
}
("\n1.上一页2.下一页0.退出共学生人,第页,共页\n");
();
()
{
'1';
(0)
(1)*5+1;
(1)*5+1;
'2';
(>)11;
(1)*5+1;
'0'0;
}
}
}
()主函数
{1;
;
x[20];
y[20]="";
;
();
(n)
{
("");
("\n");
("\n");
("**********************************************\n");
("欢迎来到学生信息管理系统\n");
("\n");
("\n");
("\n");
("请输入用户名,\n");
("");
(()0)
{
("请输入密码,\n");
("");
(123456)
{
("");
("******学生信息管理系统******");
("\1.0.0");
("\n您想要:
");
("\n1.录入学生信息");
("\n2.浏览学生信息");
("\n3.查询学生信息");
("\n4.修改学生信息");
("\n5.删除学生信息");
("\n6.按照总成绩排序");
("\n7.保存学生信息");
("\n8.退出信息管理");
("\n****************************\n");
();
()语句选择功能
{
'1'();
'2'();
'3'();
'4'();
'5'();
'8'0;
'7'();
'6'();
}
}
}
}
}
三、结论(应当准确、完整、明确精练;也可以在结论或讨论中提出建议、设想、尚待解决问题等。
)
通过此次课程设计,我基本上对制作一个相对来说比较完整的程序有了一定的认识和了解。
这一周多来的制作,不但对C语言的知识有了一定的巩固,还增加了我们的动手能力。
学生信息管理系统,涉及到结构体,链表,文件和循环的知识,所以尤其对这几个方面有所加深和巩固。
其中又包括结构体的赋值,写到文件中。
从文件中赋值给结构体。
等等。
还能够通过编译时出现的出错提示信息,进行初步的纠错。
完成一个程序的一般步骤为设计,录入,编译,如果出错,则修改,然后
再编译,编译成功后,看看结果是否正确,如果结果不正确,则再重复以上步骤。
从这次编程序的过程中,我学到了编程所必须具备的专业技能,更领会编译
程序所需要的细心和耐心。
四、参考文献
1.廖雷,C语言程序设计基础实验教程,高等教学出版社,2004。
2.谭浩强,C语言设计,北京:
清华大学出版社,2005.
3徐连信,C语言程序设计,清华大学出版社,2005
4杨涛.C程序设计语言.北京:
机械工业出版社,2004
五、指导教师评语
签名:
年月日
课程设计成绩(五级分制)