学生信息管理系统c语言程序设计报告完美.docx
- 文档编号:23982937
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:28
- 大小:368.13KB
学生信息管理系统c语言程序设计报告完美.docx
《学生信息管理系统c语言程序设计报告完美.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统c语言程序设计报告完美.docx(28页珍藏版)》请在冰豆网上搜索。
学生信息管理系统c语言程序设计报告完美
HUNANUNIVERSITY
程序设计训练
报告
学生姓名
学生学号
专业班级
指导老师
院长(系主任)
2013年5月25日
一系统功能简介......................................3
二本人完成的主要工作.................................3
三实训分析.................................4
四实训设计...............................5
五实训源程序代码和调试过程.....................7
六实训总结.................................11
附录1................................12
附录2.................................12-22
一系统功能简介
.学生信息管理系统
1,进入主界面:
要求输入密码,输入三次错误系统锁定。
2,输入记录:
将学生的基本信息包括学号,姓名,性别,地区,分数等数据作为一个记录写入文件。
3,显示记录:
显示学生的各项信息。
4,增加记录:
增加多个学生的基本信息,位于之前的学生后面。
5,删除记录:
删除学生信息。
6,修改记录:
可以修改学生的任何一项基本信息。
7,查找记录:
可以根据学生的学号查找并显示出学生的信息。
8,统计记录:
统计全班通过情况和不及格情况。
9,退出系统
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
二本人完成的主要工作
学生信息管理系统由我和龚晨同学共同完成。
主程序的编写由我们两个共同完成。
我负责的是:
1、修改记录:
可以修改学生的任何一项基本信息。
2、查找记录:
可以根据学生的学号查找并显示出学生的信息。
3、统计记录:
统计全班通过情况和不及格情况。
4、退出系统
三实训分析
1、用结构化程序设计思想进行C环境下程序设计。
2、设计一个管理系统,上机编程、调试并通过该管理系统中的各功能模块。
3、设计完成后,每人必须提交程序清单及关于程序设计、维护和使用方面的图文材料即程序设计说明书各一份。
4、基于结构化程序设计思想和所使用的C语言开发环境与开发工具,并运用“软件工程”和“数据结构”中的有关概念和方法,针对具体设计题目和要求,分析功能要求,划分功能模块,用链表结构设计功能模块函数,以菜单方式调用相应功能模块来实现信息和数据处理
四实训设计
1、系统功能模块结构图
本图书管理系统理由输入记录,显示记录,增加记录,删除记录,修改记录,统计数据,查找记录,七个大模块组成,其总体结构图如下:
2.核心数据结构设计:
1.头文件说明
如:
#include
#include
#include
#include
2,函数的编写
定义结构类型;
定义全局变量;
定义、编写记录(数据)输入函数;
定义、编写记录(数据)显示函数;
定义、编写记录(数据)增加函数;
定义、编写记录(数据)删除函数;
定义、编写记录(数据)修改函数;
定义、编写记录(数据)统计函数;
定义、编写记录(数据)查找函数;
函数名称
函数功能
enter()
进入函数
input();
输入函数
display()
显示函数
add()
增加函数
delet()
删除函数
amend()
修改函数
preside();
统计函数
fint();
查找函数
output();
退出函数
3.核心算法描述(程序流程图)
主函数结构流程
N
Y
五实训源程序代码和调试过程(包括截图)
1.1进入界面
图一输入密码进行身份验证,输入三次则系统锁定。
1.2选择菜单
图二主菜单接界面,选择数字执行相应功能。
1.3输入信息
图三依次输入学生的各项基本信息。
1.4显示信息
图四可以显示录入及增加的各项信息。
1.5增加信息
图五根据需要添加新的学生信息。
1.6删除记录
图六删除信息。
1.7修改记录
图七可修改任何学生的任何一项纪录。
1.8统计信息
图八对所有的信息进行统计显示不及格人数。
1.9查找信息
图九根据学号查找出需要的学生信息。
六实训结论
通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以较快看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,要从整体上把握。
不过通过实训我也知道了自己的不足,存在的很多问题。
希望能在以后的学习中,不断提高自己的能力,让问题越来越少。
附录1
参考文献
[1]刘振安等.C程序设计课程设计.北京:
机械工业出版社,2004.9
[2]谭浩强等.c语言程序设计.(第二版).清华大学出版社,2002,.8
[3]张引等著《C程序设计设计基础课程设计》浙江大学出版社2007
[5]曹哲等《C程序设计课程设计》机械工业出版社2010.7
附录2
源程序代码
#include
#include
#include
#include
#defineN20
structstudent/*定义学生结构体*/
{
longnum;
charname[20];
charsex[2];
charaddress[20];
intscore[3];
intsum;
intave;
};
structstudentstu[N];
intt=1,pl=0;
voidenter();
voidinput();
voiddisplay();
voidadd();
voiddelet();
voidamend();
voidpreside();
voidfint();
voidoutput();
voidmain()
{
intpassword;
inti;
printf("\n\n\n\n\t\t\t欢迎进入学生信息管理系统\n");/*初始界面输入验证密码*/
for(i=1;i<=3;i++)
{
printf("\n\n\t\t\t请输入密码:
");
scanf("%d",&password);
if(password==000000)
{
enter();
break;
}
printf("error!
pleaseinputagain!
");
}
printf("密码输入三次有误!
系统锁定!
");
}
voidenter()/*进入主菜单函数*/
{
intchoice,w;
chark;
system("cls");
printf("\t\t\t学生信息管理系统\n\n");
printf("\t\t1.录入.\t2.显示.\t3.增项.\t4.删项.\n\t\t5.修改.\t6.统计.\t7.查找.\t8.退出.\n");
printf("\n输入序号执行相应功能:
");
scanf("%d",&choice);
switch(choice)
{
case1:
input();break;
case2:
display();break;
case3:
add();break;
case4:
delet();break;
case5:
amend();break;
case6:
preside();break;
case7:
fint();break;
case8:
output();break;
default:
w=1;
}
if(w==1)
{
printf("输入有误,按任意键重新选怿.\n");
k=getchar();
getch();
enter();
}
}
voidinput()/*学生信息录入的函数*/
{
intx,count=0,i;
charw,r[20],o;
structstudent*p;
p=stu;
system("cls");
printf("\t\t\t学生信息的录入.\n");
do
{
pl++;
printf("请输入第%d个学生的信息.\n\n",t);
printf("学号:
\n");
scanf("%ld",&p->num);
printf("姓名:
\n");
scanf("%s",&p->name);
printf("\n");
printf("性别:
\n");
gets(r);
gets(&p->sex);
printf("\n");
printf("地区:
\n");
scanf("%s",&p->address);
printf("\n");
printf("三门成绩:
1.语文.2.数学.3.英语.\n");
for(i=0;i<3;i++)
scanf("%d",&p->score[i]);
p->sum=p->score[0]+p->score[1]+p->score[2];
p->ave=p->sum/3;
printf("\n\n是否要继续输入学生信息,如果是请按y;不是请按n.\n");
o=getchar();
w=getchar();
if(w=='y'||w=='Y')
{
t++;
x=1;
p++;
}
else
x=0;
}
while(x==1);
if(w=='n'||w=='N')
printf("按任意键返回.\n");
getch();
enter();
}
voiddisplay()/*显示学生信息*/
{
inti,j;
system("cls");
printf("\t\t\t学生信息显示.\n\n");
for(j=0;j { printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n","学号","姓名","性别","地区","语文","数学","英语","平均分","总分"); printf("%ld\t%s\t%s\t%s\t",stu[j].num,stu[j].name,stu[j].sex,stu[j].address); for(i=0;i<3;i++) printf("%d\t",stu[j].score[i]); printf("%d\t",stu[j].ave); printf("%d\t",stu[j].sum); printf("\n\n"); } printf("\n按任意键返回.\n"); getch(); enter(); } voidadd()/*学生信息的增加*/ { inti,x; chara,w; structstudent*p; p=stu+t; system("cls"); printf("\n\t\t\t增加学生信息.\n"); do { printf("请输入第%d个学生的信息.\n\n",t+1); printf("学号: \n"); scanf("%ld",&p->num); printf("\n"); printf("姓名: \n"); scanf("%s",p->name); printf("\n"); printf("性别: \n"); scanf("%s",p->sex); printf("\n"); printf("地区: \n"); scanf("%s",p->address); printf("\n"); printf("三门成绩: 1.语文.2.数学.3.英语.\n"); for(i=0;i<3;i++) scanf("%d",&p->score[i]); for(i=0;i<3;i++) p->sum=p->score[0]+p->score[1]+p->score[2]; p->ave=p->sum/3; a=getchar(); printf("\n是否要继续输入学生信息,如果是请按y;不是请按n.\n\n"); w=getchar(); p++; t++; if(w=='y'||w=='Y') { x=1; } if(w=='n'||w=='N') { x=0; break; } }while(x==1); if(x==0) { printf("\n"); printf("按任意键返回.\n"); getch(); enter(); } } voiddelet()/*学生信息的删除*/ { longb; intz,j; intr=t; charc,x; structstudent*p; system("cls"); printf("\n\t\t\t删除学生信息\n"); printf("请输入要删除学生的学号: \n\n"); scanf("%ld",&b); for(p=stu;p if(p->num==b) break; else r--; if(r==0) { printf("你要删除的学生不存在,请按任意键返回.\n"); getch(); enter(); } printf("\n你要删除的学生为: \n"); printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","学号","姓名","性别","地区","语文","数学","英语","平均分","总分"); printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j++) printf("%-8d",p->score[j]); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("\n你确定要删除吗? 如是请输入y;不是请输入n.\n"); x=getchar(); c=getchar(); if(c=='y'||c=='Y') { for(p=stu;p *p=*(p+1); t--; printf("系统已为你删除信息,请按任意键返回.\n"); getch(); enter(); } if(c=='n'||c=='N') { printf("删除信息取消! 按任意键返回.\n"); getch(); enter(); } } voidamend()/*学生信息的修改*/ { longj; inti,z,r=t; charc,d,e,f,q,u,l,v,m,k,h1,h2,h3,h4; structstudent*p; system("cls"); printf("\n\t\t\t修改学生信息\n"); printf("请输入要修改学生的学号: \n\n"); scanf("%ld",&j); for(p=stu;p if(p->num==j) break; else r--; if(r==0) { printf("你输入的学生不存在,请按任意键返回.\n"); getch(); enter(); } printf("\n你要修改的学生为: \n"); printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","学号","姓名","性别","地区","语文","数学","英语","平均分","总分"); printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j++) printf("%-8d",p->score[j]); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("\n\n是否要修改学号: 是请按y;不是请按n.\n\n"); l=getchar(); c=getchar(); if(c=='y'||c=='Y') { printf("请输入正确的学号: \n\n"); scanf("%ld",&p->num); } if(c=='n'||c=='N') z=1; printf("是否要修改姓名: 是请按y;不是请按n.\n\n"); q=getchar(); d=getchar(); m=getchar(); if(d=='y'||d=='Y') { printf("请输入正确的姓名: \n"); scanf("%s",p->name); u=getchar(); } if(d=='n'||c=='N') z++; printf("\n是否要修改性别: 是请按y;不是请按n.\n\n"); e=getchar(); k=getchar(); if(e=='y'||e=='Y') { printf("请输入正确的性别: \n"); scanf("%s",p->sex); } if(e=='N'||e=='n') z++; printf("\n是否要修改地区: 是请按y;不是请按n.\n\n"); h3=getchar(); h4=getchar(); if(h3=='y'||h3=='Y') { printf("请输入正确的地区: \n"); scanf("%s",p->address); } if(h3=='N'||h3=='n') z++; printf("\n是否要修改三门成绩: 是请按y;不是请按n.\n\n"); f=getchar(); if(f=='y'||f=='Y') { printf("请输入正确的三门成绩: "); for(i=0;i<3;i++) scanf("%d",&p->score[i]); p->sum=p->score[0]+p->score[1]+p->score[2]; p->ave=p->sum/3; } v=getchar(); if(f=='n'||f=='N') { printf("请按任意键返回.\n"); getch(); enter(); } } voidpreside()/*学生信息的统计*/ { inti,j,o=0,b=10,r=60; structstudent*p; system("cls"); printf("\n\t\t\t学生信息统计.\n"); printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","学号","姓名","性别","地区","语文","数学","英语","平均分","总分"); for(p=stu;p { printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j++) printf("%-8d",p->score[j]); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("\n\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 语言程序设计 报告 完美