学生信息管理系统设计论文设计.docx
《学生信息管理系统设计论文设计.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统设计论文设计.docx(18页珍藏版)》请在冰豆网上搜索。
学生信息管理系统设计论文设计
题目:
7学生信息管理系统设计
一·课程设计目的
(1)加深对结构体数据类型设计的理解,能对系统功能进行分析,并设计合理的模块化结构。
(2)学会设计数据结构。
其中包括对结构数组、数据文件等知识的运用。
(3)提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。
(4)训练C程序调试能力,能将一个中小型各级组织系统联调通过。
(5)开发一个中小型系统,掌握系统研发全过程。
(6)培养分析问题、解决实际问题的能力。
二·实验容
学生信息管理系统,是学校储存学生的相关基本信息,具有学籍管理、成绩登陆、人数统计以及信息查询等方面的功能。
现要求设计并实现一个简单的学生信息管理系统,要求具有学生详细信息(学号、、性别、籍贯等)、信息排序(按学号、班级等)、成绩输入、成绩排名、人数统计等基本功能。
(一)其功能主要有:
1、对班级的管理,其中包括班级信息的添加、删除和修改等相关操作,还要求进行显示相关信息。
2、学生信息管理 学生信息管理包括对学生档案的管理。
该模块可实现以下功能:
添加、修改、查询和显示学生的基本信息。
3、成绩信息管理 成绩信息管理包括对成绩录入和成绩分析的管理。
该模块可实现以下功能:
录入学生成绩,显示学生成绩。
(二) 功能模块图 该系统主要包括二个模块基础信息模块,学生管理信息模块和成绩管理信息模块。
学生管理信息模块主要是对学生的信息添加、查询和修改。
成绩管理信息模块主要是对学生课程成绩的存档,便于日后老师对不同学生的学习进行分析,提高学生的学习能力
1、根据上述的功能,可以设计出系统的学生信息模块
列名
数据类型
长度
备注
学号
char
10
主键
char
10
无
性别
char
2
无
班级
varchar
50
无
籍贯
varchar
50
无
年龄
smallint
2
无
家庭住址
char
50
无
政治身份
smalldatetime
4
无
2、根据上述的功能,可以设计出系统的学生成绩模块
模块名称
功能描述
输入信息
对学生的基本信息进行录入
查阅信息
1.输入学生;
2.输入学生学号;
统计人数
1.按性别、出生年月、籍贯统计人数;
2.按班级统计人数;
3.按政治面貌统计人数。
成绩录入
1.录入学生C语言、VB、英语3门课程的成绩;
2.录入信息删除、修改;
程序代码为:
#include/*I/o函数*/
#include/*其他说明*/
#include/*字符串函数*/
#defineLEN10/*学号和最大学生人数*/
#defineN20/*最大学生人数*/
structrecord/*声明函数体*/
{
charcode[20];/*学号*/
charname[10];/**/
charsex[5];/*性别*/
chartime[20];/*出生年月日*/
charadd[20];/*家庭地址*/
charage[20];/*年龄*/
charsta[20];/*政治面貌*/
chargrade[20];/*各科目成绩*/
}stu[N];
intk=1,m,n;
voidshuru();
voidchaxun();
voidxiugai();
voidshanchu();
voidxianshi();
voidbaocun();
voidcaidan();
voidtuichuxitong();
voidhuanyingyemian();
intmain()
{
while(k)
{
huanyingyemian();
system("pause");
system("cls");
printf("请按任意键进入主菜单!
\n");
system("cls");
caidan();
system("pause");
}
return0;
}
voidhelp()
{system("COLOR2f");
printf("\n尊敬的用户您好!
");
printf("\n============================================================\n");
printf("||");
printf("\n|1.欢迎进入帮助系统!
|\n");
printf("||");
printf("\n|★★★★★★★★|\n");
printf("||");
printf("\n|2.请按照菜单提示进入数字代号!
|\n");
printf("||");
printf("\n|4.谢谢您的使用!
|\n");
printf("||");
printf("\n============================================================\n");
}
voidshuru()/*实现录入学生基本信息功能*/
{
inti,flag=1;
while(flag)
{
flag=0;
printf("请输入需要创建信息的学生人数(1-20):
\n");
scanf("%d",&n);
if(n<1||n>20)
{
flag=1;
printf("输入错误,检查后请重新输入!
\n");
}
}
for(i=0;i{
printf("请输入第%d个学生的基本信息:
\n",i+1);
printf("请输入学号:
\n");
scanf("%s",stu[i].code);
printf("请输入:
\n");
scanf("%s",stu[i].name);
getchar();
printf("请输入性别(男,女):
\n");
scanf("%s",stu[i].sex);
printf("请输入出生年月(输入格式:
年.月.日):
\n");
scanf("%s",stu[i].time);
printf("请输入家庭地址:
\n");
scanf("%s",stu[i].add);
printf("请输入年龄:
\n");
scanf("%s",stu[i].age);
printf("请输入政治面貌(党员、团员、群众):
\n");
scanf("%s",stu[i].sta);
printf("请输入各科目成绩(输入格式:
C语言.VB.英语):
\n");
scanf("%s",stu[i].grade);
}
printf("录入完毕!
\n");
baocun();
}
voidbaocun()/*保存学生信息到文件的函数*/
{
inti;
FILE*fp;
if((fp=fopen("student.txt","wb"))==NULL)/*创建文件并判断是否能够打开成功*/
{
printf("文件不能打开!
\n");
exit(0);/*如果不能打开文件,则关闭当前所有的文件*/
}
for(i=0;iif(fwrite(&stu[i],sizeof(structrecord),1,fp)!
=1)
printf("文件输入错误!
\n");
fclose(fp);/*关闭文件*/
}
voidchazhao()
{
inti,t,flag;
chars1[30];
system("COLOR5f");
printf("\n=================================\n");
printf("|1.按学号查询|\n");
printf("|2.按查询|\n");
printf("|3.退出本菜单|\n");
printf("=================================\n");
while
(1)
{
flag=0;
printf("请输入子菜单编号:
");
scanf("%d",&t);
switch(t)
{
case1:
printf("请输入要查询的学生的学号:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(stu[i].code,s1)==0)
{
flag=1;
printf("学生学号学生性别出生年月家庭地址年龄政治面貌各科成绩\n");
printf("=============================================================================================\n");
printf("%6s%7s%5s%9s%8s%10s%14s%9s\n",stu[i].code,stu[i].name,stu[i].sex,stu[i].time,stu[i].add,stu[i].age,stu[i].sta,stu[i].grade);
}
if(flag==0)
printf("该学号不存在!
\n");break;
case2:
printf("请输入要查询的学生的:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(stu[i].name,s1)==0)
{
flag=1;
printf("学生学号学生性别出生年月家庭地址年龄政治面貌各科成绩\n");
printf("===========================================================================\n");
printf("%6s%7s%5s%9s%8s%10s%14s%9s\n",stu[i].code,stu[i].name,stu[i].sex,stu[i].time,stu[i].add,stu[i].age,stu[i].sta,stu[i].grade);
}
if(flag==0)
printf("该不存在!
\n");break;
case3:
return;
default:
printf("请在1--3之间选择\n");
}
}
}
voidxiugai()
{
inti,t,num;
charsex1[3],s1[30],s2[30];
printf("请输入要查询的学生的学号:
\n");
scanf("%s",s1);
for(i=0;iif(strcmp(stu[i].code,s1)==0)
num=i;
system("COLOR4f");
printf("=============================================\n");
printf("|1.修改|\n");
printf("|2.修改性别|\n");
printf("|3.修改出生年月日|\n");
printf("|4.修改地址|\n");
printf("|5.修改年龄|\n");
printf("|6.修改政治面貌|\n");
printf("|7.修改各科目成绩|\n");
printf("|8.修改退出本菜单|\n");
printf("=============================================\n");
while
(1)
{
printf("请输入子菜单的编号:
");
scanf("%d",&t);
switch(t)
{
case1:
printf("请输入新的:
\n");
scanf("%s",s2);
strcpy(stu[num].name,s2);break;
case2:
printf("请输入新的性别:
\n");
scanf("%s",sex1);
strcpy(stu[num].sex,sex1);break;
case3:
printf("请输入新的出生年月日:
\n");
scanf("%s",s2);
strcpy(stu[num].time,s2);break;
case4:
printf("请输入新的地址:
\n");
scanf("%s",s2);
strcpy(stu[num].add,s2);break;
case5:
printf("请输入新的年龄:
\n");
scanf("%s",s2);
strcpy(stu[num].age,s2);break;
case6:
printf("请输入新的政治面貌:
\n");
scanf("%s",s2);
strcpy(stu[num].sta,s2);break;
case7:
printf("请输入新的各科目成绩:
\n");
scanf("%s",s2);
strcpy(stu[num].grade,s2);break;
case8:
return;
default:
printf("请在1--8之间选择\n");}
}
}
voidpaixu()
{
inti,j,*p,*q,s;
chartemp[10];
for(i=0;i{
for(j=n-1;j>i;j--)
if(strcmp(stu[j-1].code,stu[j].code)>0)
{
strcpy(temp,stu[j-1].code);
strcpy(stu[j-1].code,stu[j].code);
strcpy(stu[j].code,temp);
strcpy(temp,stu[j-1].name);
strcpy(stu[j-1].name,stu[j].name);
strcpy(stu[j].name,temp);
strcpy(temp,stu[j-1].sex);
strcpy(stu[j-1].sex,stu[j].sex);
strcpy(stu[j].sex,temp);
strcpy(temp,stu[j-1].time);
strcpy(stu[j-1].time,stu[j].time);
strcpy(stu[j].time,temp);
strcpy(temp,stu[j-1].add);
strcpy(stu[j-1].add,stu[j].add);
strcpy(stu[j].add,temp);
strcpy(temp,stu[j-1].age);
strcpy(stu[j-1].age,stu[j].age);
strcpy(stu[j].age,temp);
strcpy(temp,stu[j-1].sta);
strcpy(stu[j-1].sta,stu[j].sta);
strcpy(stu[j].sta,temp);
strcpy(temp,stu[j-1].grade);
strcpy(stu[j-1].grade,stu[j].grade);
strcpy(stu[j].grade,temp);
//p=&stu[j-1];
//q=&stu[j];
//s=*p;
//*p=*q;
//*q=s;
}
}
}
voidshanchu()
{
inti,j,flag=0;
chars1[15];
printf("请输入将要删除的学生的学号:
\n");
scanf("%s",s1);
for(i=1;iif(strcmp(stu[i].code,s1)==0)
{
flag=1;
for(j=i;jstu[j]=stu[j+1];
}
if(flag==0)
printf("该学号不存在!
\n");
if(flag==1)
{
printf("删除成功!
显示结果请按6!
\n");
n--;
}
}
voidxianshi()
{
inti;
FILE*fp;
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("打开文件时错误!
请按任意键退出!
");
system("pause");
exit(0);
}
printf("所有学生的信息为:
\n\n");
printf("学生学号学生性别出生年月家庭地址年龄政治面貌各科成绩\n");
printf("============================================================================\n");
for(i=0;i{fread(&stu[i],sizeof(structrecord),1,fp);
printf("%6s%7s%5s%9s%8s%10s%14s%9s\n",stu[i].code,stu[i].name,stu[i].sex,stu[i].time,stu[i].add,stu[i].age,stu[i].sta,stu[i].grade);
}
}
voidtuichuxitong()
{
system("COLOR3f");
printf("---------------\n");
printf("\n");
printf("\n");
}
voidhuanyingyemian()
{system("COLOR6f");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("尊敬的用户:
您好!
\n");
printf("\n");
printf("\n");
printf("欢迎使用\n");
printf("\n");
printf("\n");
printf("-------☆--☆------\n");
printf("\n");
}
voidcaidan()
{intnum;
system("COLOR1f");
printf("\n\n学生个人信息管理系统\n\n");
printf("================================================================================\n");
printf("\n");
printf("==============系统功能菜单==============\n");
printf("=======友情提醒:
查询前请刷新统!
======\n");
printf("========================================\n");
printf("|======================================|\n");
printf("|0.系统帮助说明1.输入学生信息|\n");
printf("|--------------------------------------|\n");
printf("|2.查询学生信息3.修改学生信息|\n");
printf("|--------------------------------------|\n");
printf("|4.按学号删信息5.学生人数统计|\n");
printf("|--------------------------------------|\n");
printf("|6.显示当前信息7.保存当前信息|\n");
printf("|--------------------------------------|\n");
printf("|8.退出系统|\n");
printf("|======================================|\n");
printf("========================================\n");
printf("请选择菜单编号:
");
scanf("%d",&num);
switch(num)
{
case0:
system("cls");help();break;
case1:
system("cls");shuru();break;
case2:
system("cls");chazhao();break;
case3:
system("cls");xiugai();break;
case4:
system("cls");shanchu();break;
case6:
system("cls");xianshi();break;
case7:
system("cls");baocun();break;
case8:
system("cls");k=0;tuichuxitong();
break;
default:
printf("请在1--8之间选择\n");
}
}
结论:
学生信息管理系统为其他系统提供学生的基本信息,本设计从功能上划分成了以下几大模块:
学生档案信息管理,学生成绩管理 。
本系统功能适用于中小学使用,具有很大的扩展空间及发展空间。
由以上分析,我们可以充分认识到设计并开发一个学生信息管理系统的必要性和迫切性,系统采用模块化程序设计的方法,便于系统功能的组合和修改, 经过努力,学生信息管理系统的基本功能已经实现。
虽然时间很短暂,但却是对学习中理论知识和实践相结合的一次综合检验。
通过这次设计,我们更熟练的掌握了C语言的运用,收到了比以往理论课程还要大的收益,虽然由于时间仓促及我们的能力有限,系统还有很多不尽人意的地方:
比如说界面不够美观;有些功能还不够完善和强大;一些细节的问题还没有解决。
这些都需要平时经验的积累和对技术的熟练掌握,希望在以后的学习中能有进一步的提高。