学生成绩管理系统课程设计.docx

上传人:b****2 文档编号:1424155 上传时间:2023-05-01 格式:DOCX 页数:18 大小:83.45KB
下载 相关 举报
学生成绩管理系统课程设计.docx_第1页
第1页 / 共18页
学生成绩管理系统课程设计.docx_第2页
第2页 / 共18页
学生成绩管理系统课程设计.docx_第3页
第3页 / 共18页
学生成绩管理系统课程设计.docx_第4页
第4页 / 共18页
学生成绩管理系统课程设计.docx_第5页
第5页 / 共18页
学生成绩管理系统课程设计.docx_第6页
第6页 / 共18页
学生成绩管理系统课程设计.docx_第7页
第7页 / 共18页
学生成绩管理系统课程设计.docx_第8页
第8页 / 共18页
学生成绩管理系统课程设计.docx_第9页
第9页 / 共18页
学生成绩管理系统课程设计.docx_第10页
第10页 / 共18页
学生成绩管理系统课程设计.docx_第11页
第11页 / 共18页
学生成绩管理系统课程设计.docx_第12页
第12页 / 共18页
学生成绩管理系统课程设计.docx_第13页
第13页 / 共18页
学生成绩管理系统课程设计.docx_第14页
第14页 / 共18页
学生成绩管理系统课程设计.docx_第15页
第15页 / 共18页
学生成绩管理系统课程设计.docx_第16页
第16页 / 共18页
学生成绩管理系统课程设计.docx_第17页
第17页 / 共18页
学生成绩管理系统课程设计.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统课程设计.docx

《学生成绩管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计.docx(18页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统课程设计.docx

学生成绩管理系统课程设计

 

C语言实验报告

题目:

学生成绩管理系统

 

院系名称

电子工程学院

专业名称

电子信息工程

班级

学号

学生姓名

指导教师

时间

2010年6月7日至2010年6月18日

 

三、需求分析

可以实现学生成绩数据的录入,保存,浏览,查找,添加,删除,排序,使学生成绩信息一目了然。

三、课程设计目的

加深对C语言课程所学知识的理解,进一步巩固C语言语法规则。

学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,使学生通过系统分析、系统设计、编程调试、,写实验报告等环节,初步掌握软件系统设计的方法和步骤,训练灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平,培养必要的工程实践动手能力。

四、程序内容

数据的录入,数据存储、数据读写,数据添加,数据删除,数据查询,数据统计,数据排序数据打印.

五、详细设计及运行结果

1

 

1输入信息模块:

函数名为shuru,。

②显示模块:

函数名为xianshi,分别打印出输入所有学生的:

代号,姓名以及三科成绩。

③查询模块:

函数名为chaxun,输入学生的代号,显示学生信息。

④添加信息模块:

函数名为tianjia,输入学生信息,插入信息后,显示添加信息后的学生数量。

⑤删除模块:

函数名为shanchu,。

输入要删除的学生代号,删除信息后显示学生数量。

排序模块:

函数名为paixu,按学生代号进行排序。

⑧.保存文件:

函数名为baocun。

将学生信息保存到指定位置.

⑨:

从文件读取信息:

函数名为duru,从保存的文件中读入学生信息.

⑩main函数:

调用以上各功能模块,实现程序功能。

六、调试情况,设计技巧及体会

调试情况:

心得体会:

通过这次课程设计,我对C语言有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也又模糊逐渐变的清晰了。

在程序的运行与调试过程中出现了很多错误,通过反复地复习课本上的相关知识,不停地修改与调试,我终于完成了这段程序。

在调试过程中,我认识到了C语言的灵活性与严谨性,同一个功能可以由不同的语句来实现,但编写程序时要特别注意细节方面的问题,因为一个小小的疏忽就能导致整个程序不能运行。

当然我也认识到了自己的薄弱之处,如对链表相关知识的欠缺,文件运用的不熟练,在以后的学习中我要集中精力、端正态度,争取把知识学得更扎实、更全面。

八、附录:

源代码

#include

#include

#include

#defineNsizeof(structmengtu)

#include

intn,k;

structmengtu

{intdaihao;

charmingzi[10];

intneili;

intdaofa;

intbufa;

structmengtu*next;};

structmengtu*creat(void)

{structmengtu*p1,*p2,*head;

n=0;

p1=p2=(structmengtu*)malloc(N);

system("cls");

printf("请输入资料,输0退出!

\n");

while

(1)

{if(n==1)

head=p1;

else

p2->next=p1;

p2=p1;

p1=(structmengtu*)malloc(N);

printf("请输入代号:

");

scanf("%d",&p1->daihao);

if(p1->daihao==0)

break;

printf("请输入名字:

");

scanf("%s",&p1->mingzi);

printf("请输入内力成绩:

");

scanf("%d",&p1->neili);

printf("请输入刀法成绩:

");

scanf("%d",&p1->daofa);

printf("请输入步法成绩:

");

scanf("%d",&p1->bufa);

n++;}

p2->next=NULL;

printf("输入的学生数为:

%d个!

\n",n);

printf("按任意键返回主菜单...");

getchar();

return(head);}

baocun(structmengtu*p1)

{FILE*fp;

chardizhi[20];

system("cls");

printf("请输入文件路径及文件名:

");

scanf("%s",dizhi);

if((fp=fopen(dizhi,"w+"))==NULL)

{printf("不能打开文件!

\n");

return0;}

while(p1!

=NULL)

{fprintf(fp,"%d\t%s\t%d\t%d\t%d\t\n",p1->daihao,p1->mingzi,p1->neili,p1->daofa,p1->bufa);

p1=p1->next;}

fclose(fp);

printf("文件已经保存!

\n");

fflush(stdin);

printf("按任意键返回主菜单...");

getchar();

return0;}

duru(structmengtu*head)

{structmengtu*p1,*p2;

chardizhi[10];

FILE*fp;

system("cls");

printf("请输入文件路径及文件名:

");

scanf("%s",dizhi);

if((fp=fopen(dizhi,"r+"))==NULL)

{printf("不能打开文件!

\n");

return0;}

printf("-----------------------------------------\n");

printf("|代号\t\t|名字\t\t|内力\t|刀法\t|步法\t|\n");

printf("-----------------------------------------\n");

p1=(structmengtu*)malloc(N);

p2=(structmengtu*)malloc(N);

fscanf(fp,"%d%s%d%d%d",&p1->daihao,p1->mingzi,&p1->neili,&p1->daofa,&p1->bufa);

printf("|%d\t|%s\t|%d\t|%d\t|%d\t|\n",p1->daihao,p1->mingzi,p1->neili,p1->daofa,p1->bufa);

head=NULL;

while(!

feof(fp))

{n++;

if(n==1)

head=p1;

else

p2->next=p1;

p2=p1;

p1=(structmengtu*)malloc(N);

fscanf(fp,"%d%s%d%d%d\n",&p1->daihao,p1->mingzi,&p1->neili,&p1->daofa,&p1->bufa);

printf("|%d\t|%s\t|%d\t|%d\t|%d\t|\n",p1->daihao,p1->mingzi,p1->neili,p1->daofa,p1->bufa);}

p2->next=p1;

p1->next=NULL;

n++;

printf("-----------------------------------------\n");

fclose(fp);

fflush(stdin);

printf("成功读取%d个学生信息!

\n",n);

printf("按任意键返回主菜单...");

getchar();

return(head);}

shanchu(structmengtu*head)

{structmengtu*p1,*p2;

intdaihao;

system("cls");

printf("输入要删除学徒的代号:

");

scanf("%d",&daihao);

getchar();

p1=head;

while(daihao!

=p1->daihao&&p1->next!

=NULL)

{p2=p1;

p1=p1->next;}

if(daihao==p1->daihao)

{if(p1==head)

head=p1->next;

else

p2->next=p1->next;

printf("已删除:

%d\n",daihao);

n=n-1;}

else

printf("%d不存在!

\n",daihao);

printf("现在数为:

%d个!

\n",n);

fflush(stdin);

printf("按任意键返回主菜单...");

getchar();

return(head);}

tianjia(structmengtu*head,structmengtu*stu)

{structmengtu*p0,*p1;

stu=(structmengtu*)malloc(N);

system("cls");

printf("\n输入要增加的学徒的资料!

\n");

printf("请输入代号:

");scanf("%d",&stu->daihao);

printf("输入名字:

");scanf("%s",stu->mingzi);

printf("请输入内力成绩:

");scanf("%d",&stu->neili);

printf("请输入刀法成绩:

");scanf("%d",&stu->daofa);

printf("请输入步法成绩:

");scanf("%d",&stu->bufa);

p1=head;p0=stu;

if(p1->next==NULL)

{p1->next=p0;

p0->next=NULL;}

else

{while(p1->next!

=NULL)

{p1=p1->next;}

p1->next=p0;

p0->next=NULL;}

n++;

printf(",添加完成!

现在门徒数为:

%d个!

\n",n);

fflush(stdin);

printf("按任意键返回主菜单...");

getchar();

return(head);}

voidxianshi(structmengtu*head)

{structmengtu*p;

system("cls");

printf("-----------------------------------------\n");

printf("|代号\t\t|名字\t\t|内力\t|刀法\t|步法\t|\n");

printf("-----------------------------------------\n");

p=head;

while(p!

=NULL)

{printf("|%d\t|%s\t|%d\t|%d\t|%d\t|\n",p->daihao,p->mingzi,p->neili,p->daofa,p->bufa);

printf("-----------------------------------------\n");

p=p->next;}

fflush(stdin);

printf("按任意键返回主菜单...");getchar();}

chaxun(structmengtu*head)

{intdaihao;

structmengtu*p1;

system("cls");

printf("输入要查询的门徒的代号:

");

scanf("%d",&daihao);

while(daihao!

=0)

{p1=head;

while(daihao!

=p1->daihao&&p1->next!

=NULL)

p1=p1->next;

if(daihao==p1->daihao)

{printf("-----------------------------------------\n");

printf("|代号\t\t|名字\t\t|内力\t|刀法\t|步法\t|\n");

printf("-----------------------------------------\n");

printf("|%d\t|%s\t|%d\t|%d\t|%d\t|\n",p1->daihao,p1->mingzi,p1->neili,p1->daofa,p1->bufa);

printf("-----------------------------------------\n");}

elseprintf("%d门徒不存在!

\n",daihao);

printf("输入要查询的门徒的代号:

");

scanf("%d",&daihao);}

fflush(stdin);

printf("按任意键返回主菜单...");

getchar();}

tongji(structmengtu*head)

{intsum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0,max=0;

structmengtu*p;

inty=0,i=0;

p=head;

system("cls");

printf("---------------------------------------------------------\n");

printf("|代号\t\t|名字\t\t|内力\t|刀法\t|步法\t|总分\t|平均分\t|\n");

printf("---------------------------------------------------------\n");

while(p!

=NULL)

{sum1=p->neili+p->daofa+p->bufa;

ave1=sum1/3;

printf("|%d\t|%s\t|%d\t|%d\t|%d\t|%d\t|%d\t|\n",p->daihao,p->mingzi,p->neili,p->daofa,p->bufa,sum1,ave1);

printf("---------------------------------------------------------\n");

p=p->next;}

fflush(stdin);

printf("按任意键返回主菜单...");getchar();

return(head);}

paixu(structmengtu*head)

{structmengtu*p,*max;

inti,j;intfen;chart[10];

max=p=head;

for(i=1;i

{for(j=i+1;j<=n;j++)

{max=p;

p=p->next;

if(max->daihao>p->daihao)

{k=max->daihao;

max->daihao=p->daihao;

p->daihao=k;

strcpy(t,max->mingzi);

strcpy(max->mingzi,p->mingzi);

strcpy(p->mingzi,t);

fen=max->neili;

max->neili=p->neili;

p->neili=fen;

fen=max->neili;

max->daofa=p->daofa;

p->daofa=fen;

fen=max->bufa;

max->bufa=p->bufa;

p->bufa=fen;}}

max=head;

p=head;}

fflush(stdin);

system("cls");

printf("排序已经完成...\n");

printf("按任意键返回主菜单...");getchar();

return(head);}

intmenu(k)

{inti;

system("cls");

printf("\t\t\t吕氏刀门学徒成绩管理系统\n");

printf("\t\t\t作者:

lpf学号:

05091044\n");

for(i=0;i<80;i++)

printf("*");

printf("*1输入学徒的资料\t\t*2从文件调入资料\t\t*3查询学徒的成绩\n");

printf("*4删除学徒的资料\t\t*5追加学徒的资料\t\t*6显示学徒的成绩\n");

printf("*7统计学徒的成绩\t\t*8保存输入的资料\t\t*9对成绩进行排序\n");

for(i=0;i<80;i++)printf("*");

printf("欢迎进入吕氏刀门管理系统,请选择您所要的操作(选择(0)退出):

");scanf("%d",&k);

return(k);}

charpassword[10]="900118";

main()

{structmengtu*head=0,*stu=0;

chars[10];intflag=0;intn=3;

do

{printf("请您输入刀门密令:

\n");

scanf("%s",s);

if(!

strcmp(s,password))

{system("cls");

printf("恭喜你成功登陆吕氏门徒成绩管理系统\n\n\n");

fflush(stdin);printf("按任意键继续...");getchar();

flag=1;break;}

else

{printf("密令错误!

请重新输入:

\n");

n--;}}

while(n>0);

if(!

flag)

{printf("输入次数已到...\n");

exit(0);}

while

(1)

{k=menu(k);

switch(k)

{case1:

head=creat();break;

case2:

head=duru(head);break;

case3:

head=chaxun(head);break;

case4:

head=shanchu(head);break;

case5:

head=tianjia(head,stu);break;

case6:

xianshi(head);break;

case7:

tongji(head);break;

case8:

baocun(head);break;

case9:

head=paixu(head);break;

case0:

exit(0);

default:

printf("输入错误,请重试!

\n");}}}

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2