学生信息管理系统.docx
- 文档编号:7207952
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:22
- 大小:84.43KB
学生信息管理系统.docx
《学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
学生信息管理系统
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2012年春季学期
C程序设计课程设计
题目:
学生信息管理系统
专业班级:
姓名:
人才v
学号:
指导教师:
成绩:
摘要
学生信息管理系统是一个学生管理不可缺少的工具,它能够实现学生信息的查询、管理等操作。
使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生信息管理的效率。
关键词:
C语言;图书;信息管理系统。
目录
一.设计目的:
1
二.总体设计:
1
流程图2
三.详细设计:
3
四.调试与测试:
5
五.设计总结:
6
参考文献7
致谢7
附录-1-
一.设计目的:
学生信息管理系统设计
学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计学生信息管理系统,使之能提供以下功能:
1.系统以菜单方式工作
2.学生信息录入功能---输入
3.学生信息浏览功能---输出
4.查询、排序功能---算法
按学号查询
按姓名查询
5.学生信息的删除与修改(可选项)
二.总体设计:
程序设计组成框图
流程图
三.详细设计:
1>函数入口说明
pr()输出主菜单
pr2()输出检索菜单界面
fileopen()文件操作:
打开
filesave()文件操作:
保存
editname(intn)编辑子菜单:
对姓名编辑
editage(intn)编辑子菜单:
对年龄编辑
editsex(intn)编辑子菜单:
对性别编辑
editbir(intn)编辑子菜单:
对出生年月编辑
editadd(intn)编辑子菜单:
对住址编辑
edittel(intn)编辑子菜单:
对电话进行编辑
editemail(intn)编辑子菜单:
对电子邮件地址编辑
last(intn)显示翻页致末尾的信息
edit(intn)信息编辑函数
del(intn)删除信息的函数
editpr(intn)输出编辑界面
jsid()检索:
按学号
jsname()检索:
按姓名
writeinfo()录入、添加信息
viewinfo()学生信息查看
main()主函数
2>调用关系
writeinfo()
fileopen()
editname(intn)
editage(intn)
editsex(intn)
pr()
editbir(intn)
edit(intn)
viewinfo()
main()
editadd(intn)
del(intn)
editpr(intn)
jsid()
edit(intn)
(同上)
edittel(intn)
editemail(intn)
del(intn)
pr2()
editpr(intn)
jsname()
filesave()
3>参数说明
editname(intn)、editage(intn)、editsex(intn)、editbir(intn)、editadd(intn)、edittel(intn)、editemail(intn)、last(intn)、edit(intn)、del(intn)、editpr(intn)函数中的n都为检索中确定的学生数组下标。
4〉子函数功能说明
对已填学生信息进行修改
voidedit(intn)
{
charch;
inta=1,b;
while(a)
{
system("cls");
printf("******学生信息管理系统******");
printf("\n----------修改----------");
printf("\n请输入你想修改的内容:
");
printf("\n1.姓名2.年龄3.性别4.出生年月5.地址6.电话7.E-mail\n");
printf("\n\n-----By102404**张三-----");
printf("\n****************************\n");
getchar();
ch=getchar();
switch(ch)
{
case'1':
editname(n);break;
case'2':
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;
}
b=1;
while(b)
{
printf("\n确认吗?
(y/n)");
getchar();
ch=getchar();
switch(ch)
{
case'Y':
case'y':
b=0;a=0;break;
case'N':
case'n':
b=0;break;
}
}
}
}
四.调试与测试:
1>调用pr2()函数(检索界面)一闪而过。
解决方法:
添加getchar()语句使程序暂停。
2>无法有效的控制输出函数循环终止。
解决方法:
添加全局变量“stunum”,使用该全局变量来记录学生总数,从而控制输出循环的次数。
3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。
解决方法:
添加getchar()语句使程序暂停,当用户按Enter时继续。
4>文件在打开和保存时有问题。
解决方法:
调整文件的打开方式,从原来的单纯的w+修改为添加一个if语句,当没有文件时执行w+的操作,否则执行r+。
避免了原存储文件被覆盖的问题。
五.设计总结:
1)对C语言的编程实践有所认识。
2)在遇到程序调试不通过时,会通过缩小范围的分析来锁定问题所在。
3)通过这次实验,熟悉了从自然语言转换成伪代码再转换为流程图的过程。
4)在程序中设定合适的全局变量,可以简化程序的编写难度。
5)运用函数可以减少编写时的代码量,也使程序条理清晰。
通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。
随着实验的成功与报告的完成,有点微微的成就感使人难忘。
伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。
对C语言的学习,我会加倍努力。
参考文献
1C/C++程序设计教程(第二版),王连相,中国铁道出版社,2011
2C语言程序设计,谭浩强,清华大学出版社,1999
3C程序设计题解与上机指导,谭浩强,清华大学出版社,1999
4C/C++程序设计上机指导与测试(第二版),王连相,中国铁道出版社,2011
5C语言函数手册,机械工业出版社,1999
6C语言的实际应用,安徽科学技术出版社,2000
致谢
,首先要感谢张宪立老师的授课与指导!
感谢所有支持我完成C程序设计论文的老师和同学们!
在这次课程设计中老师给了我很大的帮助,帮我解答疑难问题,给我提供资料,给我提供查阅资料的信息,引导我该如何去思考问题,教会我解决问题的方法.同时又鼓励我自己学习,老师给我的不仅是知识,时帮助,更是学习的信心和智慧,在这里衷心感谢老师的耐心细心一丝不苟的帮助.同时也感谢和我一起走过的同学,这是我们共同努力地结果,衷心的感谢大家对我的帮助和支持.
附录
#include
#include
#include
#include
intstunum=0;
structstudent
{
intid;
charname[30];
intage;
charsex[2];
charbirthday[9];
charadd[80];
chartel[15];
charemail[25];
}stu[100];
voidpr()
{
system("cls");
printf("******学生信息管理系统******");
printf("\n----------V1.0.0----------");
printf("\n您想要:
");
printf("\n1.录入学生信息");
printf("\n2.浏览学生信息");
printf("\n3.检索学生信息");
printf("\n4.退出信息管理");
printf("\n-----By102404**张三-----");
printf("\n****************************\n");
}
voidpr2()
{
voidjsid();
voidjsname();
inta;
charch;
while(a)
{
system("cls");
printf("******学生信息管理系统******");
printf("\n----------检索----------")
printf("\n您想要:
");
printf("\n1.按学号检索");
printf("\n2.按姓名检索");
printf("\n3.返回主菜单");
printf("\n\n-----By102404****-----");
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);
}
voideditname(intn)
{
printf("\n新姓名:
");
scanf("%s",stu[n].name);
}
voideditage(intn)
{
printf("\n新年龄:
");
scanf("%d",&stu[n].age);
}
voideditsex(intn)
{
printf("\n新性别:
");
scanf("%s",stu[n].sex);
}
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新E-mail:
");
scanf("%s",stu[n].email);
}
voidlast(intn)
{
if(n==stunum)
system("cls");
printf("******学生信息管理系统******");
printf("\n----------检索----------");
printf("\n已检索到末尾。
");
printf("\nPressanykeytocontinue..");
printf("\n\n-----By102404**张三-----");
printf("\n****************************\n");
}
voidedit(intn)
{
charch;
inta=1,b;
while(a)
{
system("cls");
printf("******学生信息管理系统******");
printf("\n----------修改----------");
printf("\n请输入你想修改的内容:
");
printf("\n1.姓名2.年龄3.性别4.出生年月5.地址6.电话7.E-mail\n");
printf("\n\n-----By102404**张三-----");
printf("\n****************************\n");
getchar();
ch=getchar();
switch(ch)
{
case'1':
editname(n);break;
case'2':
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;
}
b=1;
while(b)
{
printf("\n确认吗?
(y/n)");
getchar();
ch=getchar();
switch(ch)
{
case'Y':
case'y':
b=0;a=0;break;
case'N':
case'n':
b=0;break;
}
}
}
}
voiddel(intn)
{
inta;
for(a=n;a { strcpy(stu[a].name,stu[a+1].name); stu[a].age=stu[a+1].age; strcpy(stu[a].sex,stu[a+1].sex); 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); } stunum--; printf("删除成功! pressEntertocontinue.."); } inteditpr(intn) { inta=1; charch; while(a) { getchar(); printf("\n您想要: "); printf("\n\n1.修改学生信息"); printf("\n2.删除该条信息"); printf("\n3.返回上级菜单"); printf("\n4.查看下条信息"); ch=getchar(); switch(ch) { case'1': edit(n),a=0;break; case'2': del(n),a=0;break; case'3': a=0;return(0);break; case'4': a=0;break; } } } voidjsid() { intn,i,j=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].sex); printf("%8s\n",stu[n].birthday); printf("\n\n\n学号电话E-mail地址\n"); printf("%4d",stu[n].id); printf("%15s",stu[n].tel); printf("%15s",stu[n].email); printf("%s\n",stu[n].add); j=editpr(n); i++; } if(i==0) { printf("\nError: 无此学生。 "); printf("\n-----By102404**张三-----"); printf("\n****************************\n"); } else { if(j==0) gotoend; else { system("cls"); last(n); getchar(); } } end: getchar(); } voidjsname() { intn,j,i=0; charm[30]; system("cls"); printf("******学生信息管理系统******"); printf("\n----------检索----------"); printf("\n请输入想要检索的姓名: "); scanf("%s",m); for(n=0;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].sex); printf("%8s\n",stu[n].birthday); printf("\n\n\n学号电话E-mail地址\n"); printf("%4d",stu[n].id); printf("%15s",stu[n].tel); printf("%15s",stu[n].email); printf("%s\n",stu[n].add); i++; if((j=editpr(n))==0) break; } } if(i==0) printf("\nError: 无此学生。 "); if(j! =0) last(n); getchar(); getchar(); } voidwriteinfo() { inta,n=1,m; charch; while(n) { a=stunum; system("cls"); printf("ID: "); stu[a].id=(a+1); printf("%d",stu[a].id); printf("\nName: "); scanf("%s",&stu[a].name); printf("\nAge: "); scanf("%d",&stu[a].age); printf("\nSex: "); scanf("%s",&stu[a].sex); printf("\nBirthday(E.g20090101): "); scanf("%s",&stu[a].birthday); printf("\nAddress: "); scanf("%s",&stu[a].add); printf("\nTel: "); scanf("%s",&stu[a].tel); printf("\nE-mail: "); scanf("%s",&stu[a].email); m=1; while(m) { system("cls"); printf("ID: "); printf("%d",stu[a].id); printf("\nName: "); printf("%s",stu[a].name); printf("\nAge: "); printf("%d",stu[a].age); printf("\nSex: "); printf("%s",&stu[a].sex); printf("\nBirthday: "); printf("%s",stu[a].birthday); printf("\nAddress: "); printf("%s",stu[a].add); printf("\nTel: "); printf("%s",stu[a].tel); printf("\nE-mail"); printf("%s",stu[a].email); 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; case'4': m=0,n=0;a=stunum++;break; } } } } voidviewinfo() { intcount=1,i,n=1,pagenum=1,page=stunum/5+1; charch; while(n) { system("cls"); printf("学号姓名年龄性别出生年月\n"); for(i=co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统