学生成绩管理系统含源码教案资料.docx

上传人:b****0 文档编号:17795085 上传时间:2023-08-03 格式:DOCX 页数:16 大小:47.82KB
下载 相关 举报
学生成绩管理系统含源码教案资料.docx_第1页
第1页 / 共16页
学生成绩管理系统含源码教案资料.docx_第2页
第2页 / 共16页
学生成绩管理系统含源码教案资料.docx_第3页
第3页 / 共16页
学生成绩管理系统含源码教案资料.docx_第4页
第4页 / 共16页
学生成绩管理系统含源码教案资料.docx_第5页
第5页 / 共16页
学生成绩管理系统含源码教案资料.docx_第6页
第6页 / 共16页
学生成绩管理系统含源码教案资料.docx_第7页
第7页 / 共16页
学生成绩管理系统含源码教案资料.docx_第8页
第8页 / 共16页
学生成绩管理系统含源码教案资料.docx_第9页
第9页 / 共16页
学生成绩管理系统含源码教案资料.docx_第10页
第10页 / 共16页
学生成绩管理系统含源码教案资料.docx_第11页
第11页 / 共16页
学生成绩管理系统含源码教案资料.docx_第12页
第12页 / 共16页
学生成绩管理系统含源码教案资料.docx_第13页
第13页 / 共16页
学生成绩管理系统含源码教案资料.docx_第14页
第14页 / 共16页
学生成绩管理系统含源码教案资料.docx_第15页
第15页 / 共16页
学生成绩管理系统含源码教案资料.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统含源码教案资料.docx

《学生成绩管理系统含源码教案资料.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统含源码教案资料.docx(16页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统含源码教案资料.docx

学生成绩管理系统含源码教案资料

学生成绩管理系统

该系统是用C实现的控制台程序,用文件保存数据。

程序遵循模块化的设计思想,尽量做到高类聚,低耦合的特性,已实现一些基本功能,读者可根据自己的需要进行功能添加或删除,只需另写有关函数即可。

由于笔者水平有限,读者可自行优化。

本程序紧供大家学习参考。

复制代码用vc6.0或devc即可直接编译运行,该程序主要函数:

voidmenu();//主菜单函数用于输出主菜单界面

voidintroduce();//系统使用介绍函数

voidinput(Link);//输入函数用于输入一条记录

voiddel(Link);//删除记录函数

voidsearch(Link);//查询函数

voidmodify(Link);//修改函数

voidinsert(Link);//插入函数

voidtongji(Link);//统计函数

voidsort(Link);//排序函数

voiddisplay(Link);//显示记录函数

voidsave(Link);//保存函数

运行结果:

主界面

选择显示记录功能后

选择排序后

删除记录后

//文件stuscore.h

#include

#include

#include

#defineNULL0

shortsaveflag=0;

structstudent

{

charnum[11];//学号

charname[15];//姓名

shortchgrade;//语文成绩

shortmgrade;//数学成绩

shortegrade;//英语成绩

shorttotal;//总分

floataverage;//平均分

intmingci;//名次

};

typedefstructnode

{

structstudentdata;//数据域

structnode*next;//指针域

}Node,*Link;

//main文件

#include"stuscore.h"

voidmenu();//主菜单函数用于输出主菜单界面

voidintroduce();

voidinput(Link);

voiddel(Link);

voidsearch(Link);

voidmodify(Link);

voidinsert(Link);

voidtongji(Link);

voidsort(Link);

voiddisplay(Link);

voidsave(Link);//保存函数

voidmain()

{

shortchoice=30;

charch;

Linkl;

FILE*fp;

Node*p,*r;

fp=fopen("E:

\\C_count\\studentscore\\stuscore","ab+");

if(!

fp){printf("allocatememoryfilure1!

");exit

(1);}

l=(Node*)malloc(sizeof(Node));

if(l==NULL){printf("allocatememoryfilure2!

");exit

(1);}

l->next=NULL;

r=l;

while(!

feof(fp))

{

p=(Link)malloc(sizeof(Node));

if(!

p){printf("allocatememoryfilure3!

");exit

(1);}

if(fread(p,sizeof(Node),1,fp)==1)

{

r->next=p;

p->next=NULL;

r=p;

}

}

fclose(fp);

do{

menu();

printf("Pleaseenteryourchoice(0-9):

");

scanf("%d",&choice);

if(choice==9)

{

if(saveflag==1)

{

printf("whethersavethemodifiedrecordtofile?

(y/n):

");getchar();

scanf("%c",&ch);

if(ch=='Y'||ch=='y')save(l);

}

printf("thankyouforuseness!

\n");

break;

}

switch(choice)

{

case0:

introduce();break;//调用系统使用说明函数

case1:

input(l);break;//调用输入函数

case2:

del(l);break;//调用删除函数

case3:

search(l);break;//调用查询函数

case4:

modify(l);break;//调用修改函数

case5:

insert(l);break;//调用插入函数

case6:

tongji(l);break;//调用统计函数

case7:

sort(l);break;//调用排序函数

case8:

display(l);break;//调用输出函数

default:

printf("error!

\n\n\n");

}

}while

(1);

}

voidmenu()

{

printf("===========================欢迎使用学生成绩管理系统============================\n");

printf("0systemintroduce1inputrecord\n");

printf("2deleterecord3searchrecord\n");

printf("4modiryrecord5insertrecord\n");

printf("6countrecord7sortrecord\n");

printf("8displayrecord9quitsystem\n");

}

voidintroduce()

{

system("cls");

printf("欢迎使用学生成绩管理系统,在功能选择界面您可以输入数字0至9其中任一一个数字进行功能选择。

\n\n\n");

}

voidinput(Linkl)//每次添加一条记录

{

Linkp,r,s;

charnum[11],name[15];

shortchgrade,mgrade,egrade;

p=l;s=l;

while(p->next){p=p->next;}

r=(Node*)malloc(sizeof(Node));

if(!

r){printf("allocatememoryfilure!

");return;}

system("cls");

printf("请输入学号:

");

scanf("%s",num);

if(l->next!

=NULL)

{

while(s->next)

{

s=s->next;

if(!

strcmp((s->data).num,num))

{

printf("输入的学号已经存在,请重新输入:

");

scanf("%s",num);

s=l;

}

}

}

strcpy((r->data).num,num);

printf("请输入姓名:

");scanf("%s",name);strcpy((r->data).name,name);

printf("请输入语文成绩:

");scanf("%d",&chgrade);(r->data).chgrade=chgrade;

printf("请输入数学成绩:

");scanf("%d",&mgrade);(r->data).mgrade=mgrade;

printf("请输入英语成绩:

");scanf("%d",&egrade);(r->data).egrade=egrade;

(r->data).total=chgrade+mgrade+egrade;

(r->data).average=(float)(chgrade+mgrade+egrade)/3;

p->next=r;r->next=NULL;

saveflag=1;

printf("一个学生信息记录已经添加完成\n\n\n");

}

voiddel(Linkl)

{

Linkp,r;

charnum[11];

system("cls");

p=r=l;

printf("请输入要删除记录的学号:

");

scanf("%s",num);

while(p->next)

{

p=p->next;

if(strcmp((p->data).num,num)==0){break;}

r=r->next;

}

if(p!

=r)

{

if((l->next)->next==NULL)l->next=NULL;

if((p->next)==NULL)r->next=NULL;

r->next=p->next;

printf("记录%s%s%d%d%d%d%.2f已删除\n\n\n",(p->data).num,(p->data).name,(p->data).chgrade,(p->data).mgrade,(p->data).egrade,(p->data).total,(p->data).average);

saveflag=1;

}

elseprintf("无此学号的记录\n\n\n");

}

voidsearch(Linkl)

{

Linkp;

charnum[11];

shorttemp=0;

p=l;

system("cls");

printf("请输入要查询记录的学号:

");

scanf("%s",num);

system("cls");

if(p->next==NULL){printf("系统无记录\n\n\n");return;}

while(p->next)

{

p=p->next;

if(!

strcmp((p->data).num,num))

{

printf("学号姓名语文数学英语总分平均分\n");

printf("%s%s%d%d%d%d%.2f\n\n\n",(p->data).num,(p->data).name,(p->data).chgrade,(p->data).mgrade,(p->data).egrade,(p->data).total,(p->data).average);

temp=1;

break;

}

}

if(temp==0)printf("不存在学号为%s的记录\n\n\n",num);

}

voidmodify(Linkl)

{

Linkp,r;

charnum[11],tem[11];

charname[15];

shortchgrade=0;

shortmgrade=0;

shortegrade=0;

shorttemp=0;

p=l;r=l;

system("cls");

printf("请输入要修改记录的学号:

");

scanf("%s",num);strcpy(tem,num);

system("cls");

while(p->next)

{

p=p->next;

if(!

strcmp((p->data).num,num))

{

temp=1;

printf("学号姓名语文数学英语总分平均分\n");

printf("%s%s%d%d%d%d%.2f\n\n\n",(p->data).num,(p->data).name,(p->data).chgrade,(p->data).mgrade,(p->data).egrade,(p->data).total,(p->data).average);

break;

}

}

if(temp==1)

{

printf("请重新输入该记录的学号、姓名、语文、数学、英语成绩\n");

printf("请输入修改后的学号:

");

scanf("%s",num);

while(r->next)

{

r=r->next;

if(!

strcmp((r->data).num,num)){if(strcmp(num,tem)==0)break;r=l;printf("该学号已存在,请重新输入:

");scanf("%s",num);}

}

strcpy((p->data).num,num);

printf("请输入修改后的姓名:

");scanf("%s",name);strcpy((p->data).name,name);

printf("请输入修改后的语文成绩:

");scanf("%d",&chgrade);(p->data).chgrade=chgrade;

printf("请输入修改后的数学成绩:

");scanf("%d",&mgrade);(p->data).mgrade=mgrade;

printf("请输入修改后的英语成绩:

");scanf("%d",&egrade);(p->data).egrade=egrade;

(p->data).total=chgrade+mgrade+egrade;

(p->data).average=(float)(chgrade+mgrade+egrade)/3;

system("cls");

printf("学号为%s的记录已修改为:

\n",tem);

printf("%s%s%d%d%d%d%.2f\n\n\n",(p->data).num,(p->data).name,(p->data).chgrade,(p->data).mgrade,(p->data).egrade,(p->data).total,(p->data).average);

saveflag=1;

}

if(temp==0)printf("不存在学号为%s的记录\n\n\n",num);

}

voidinsert(Linkl)

{

input(l);

}

voidtongji(Linkl)

{

Linkp;

inttcount=0;

intchcount=0;

intmcount=0;

intecount=0;

p=l;

while(p->next)

{

p=p->next;

if((p->data).chgrade<60)chcount++;

if((p->data).mgrade<60)mcount++;

if((p->data).egrade<60)ecount++;

tcount++;

}

system("cls");

printf("系统共有%d条学生成绩记录,其中语文不及格人数为%d人,数学不及格人数为%d人,英语不及格人数为%d人\n\n\n\n",tcount,chcount,mcount,ecount);

}

voidsort(Linkl)

{

Linkr,t1,p,s;

chart[11];

chark[15];

shorttemp;

floatfemp;

p=l;t1=l;

if((p->next)==NULL){printf("系统无记录\n\n\n\n");return;}

p=p->next;

if((p->next)==NULL){display(l);return;}

p=l;

while(p->next)

{

p=p->next;

r=p;s=p;

while(r->next)

{

r=r->next;

if((s->data).total<(r->data).total)

{

temp=(r->data).chgrade;(r->data).chgrade=(s->data).chgrade;(s->data).chgrade=temp;

temp=(r->data).mgrade;(r->data).mgrade=(s->data).mgrade;(s->data).mgrade=temp;

temp=(r->data).egrade;(r->data).egrade=(s->data).egrade;(s->data).egrade=temp;

temp=(r->data).total;(r->data).total=(s->data).total;(s->data).total=temp;

femp=(r->data).average;(r->data).average=(s->data).average;(s->data).average=femp;

strcpy(t,(r->data).num);strcpy((r->data).num,(s->data).num);strcpy((s->data).num,t);

strcpy(k,(r->data).name);strcpy((r->data).name,(s->data).name);strcpy((s->data).name,k);

}

}

t1->next=s;

t1=t1->next;

}

t1->next=NULL;

display(l);

}

voiddisplay(Linkl)

{

Linkp;

2.www。

cer。

net/artide/2003082213089728。

shtml。

三、主要竞争者分析system("cls");

300元以下918%p=l;

if((p->next)==NULL){printf("无记录\n\n\n");return;}

printf("学号姓名语文数学英语总分平均分\n");

新材料手工艺品。

目前,国际上传统的金银、仿金银制成饰品的销售在逐步下降,与此形成鲜明对比的是,数年以前兴起的崇尚然风格、追求个性的自制饰品--即根据自己的创意将各种材质的饰珠,用皮、布、金属等线材串出的品,正在各国的女性中大行其道。

while((p->next)!

=NULL){p=p->next;printf("%s%s%d%d%d%d%.2f\n",(p->data).num,(p->data).name,(p->data).chgrade,(p->data).mgrade,(p->data).egrade,(p->data).total,(p->data).average);}

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

}

voidsave(Linkl)

2、价格“适中化”{

Linkp;

FILE*fp;

大学生对手工艺制作兴趣的调研

300元以下□300~400元□400~500□500元以上□fp=fopen("E:

\\C_count\\studentscore\\stuscore","wb");

if(!

fp){printf("cannotopenfile!

\n");return;}

据调查统计在对大学生进行店铺经营风格所考虑的因素问题调查中,发现有50%人选择了价格便宜些,有28%人选择服务热情些,有30%人选择店面装潢有个性,只有14%人选择新颖多样。

如图(1-5)所示system("cls");

§8-4情境因素与消费者行为2004年3月20日p=l;

现在是个飞速发展的时代,与时俱进的大学生当然也不会闲着,在装扮上也不俱一格,那么对作为必备道具的饰品多样性的要求也就可想而知了。

while(p->next)

{

p=p->next;

if(fwrite(p,sizeof(Node),1,fp)!

=1){printf("filewirteerror!

\n");return;}

}

}

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

当前位置:首页 > 医药卫生 > 基础医学

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

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