学生信息管理系统c语言程序设计报告完美.docx

上传人:b****7 文档编号:9294194 上传时间:2023-02-04 格式:DOCX 页数:27 大小:240.91KB
下载 相关 举报
学生信息管理系统c语言程序设计报告完美.docx_第1页
第1页 / 共27页
学生信息管理系统c语言程序设计报告完美.docx_第2页
第2页 / 共27页
学生信息管理系统c语言程序设计报告完美.docx_第3页
第3页 / 共27页
学生信息管理系统c语言程序设计报告完美.docx_第4页
第4页 / 共27页
学生信息管理系统c语言程序设计报告完美.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

学生信息管理系统c语言程序设计报告完美.docx

《学生信息管理系统c语言程序设计报告完美.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统c语言程序设计报告完美.docx(27页珍藏版)》请在冰豆网上搜索。

学生信息管理系统c语言程序设计报告完美.docx

学生信息管理系统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.核心算法描述(程序流程图)

主函数结构流程

初始化、定义主菜单、分支菜单指针数组及变量

程序开始

读键盘按键的键值

判断键值并弹出对应菜单

根据按键执行菜单选项对应的函数

从被调用函数中返回并转移

退出管理系统

用户按了1-8键吗?

N

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->nu

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1