完整word版c语言程序设计成绩管理系统Word格式.docx

上传人:b****6 文档编号:18612031 上传时间:2022-12-29 格式:DOCX 页数:19 大小:227.13KB
下载 相关 举报
完整word版c语言程序设计成绩管理系统Word格式.docx_第1页
第1页 / 共19页
完整word版c语言程序设计成绩管理系统Word格式.docx_第2页
第2页 / 共19页
完整word版c语言程序设计成绩管理系统Word格式.docx_第3页
第3页 / 共19页
完整word版c语言程序设计成绩管理系统Word格式.docx_第4页
第4页 / 共19页
完整word版c语言程序设计成绩管理系统Word格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

完整word版c语言程序设计成绩管理系统Word格式.docx

《完整word版c语言程序设计成绩管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《完整word版c语言程序设计成绩管理系统Word格式.docx(19页珍藏版)》请在冰豆网上搜索。

完整word版c语言程序设计成绩管理系统Word格式.docx

通过本系统软件,能帮助教研人员利用计算机,快速方便地对学生成绩管理进行管理、输入、输出、查找的所需操作,使散乱的人事档案能够具体化,直观化、合理化。

本软件适用于教育界,对学生的信息可以随时输入、输出、查找、修改、汇总。

2.题目描述:

对学生信息(包括英语、数学、计算机、平均分、总分)进行管理,包括学生成绩的信息输入、输出、排序、查询、插入、删除、统计、退出.

(注:

本程序中将学生记录存在文件score中。

功能模块分工:

黄志慧负责:

输入功能、输出功能、排序功能及主函数;

刘纯和负责:

查询功能、插入功能、删除功能、统计功能。

3.课程设计报告内容

3.1.算法与流程

学生信息的结构体表示;

structstudent

{

intno;

charname[MAX_NAME];

intenglish;

intmath;

intcomputer;

intmark_ave;

intmark_tot;

}STUDENT;

系统化分为如下模块(即如下函数)

1、输入信息:

输入信息包括学生的姓名、学号以及学生的成绩等相关信息;

可用函数voidinput(STUDENT*data,int*len)来实现此操作。

2、输出信息:

输出学生的信息以及成绩voidoutput(STUDENT*data,intlen):

通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage() 

、maverage() 

、eaverage() 

和comaverage() 

来输出成绩的平均分数、最高和最低分数。

3.排序功能:

用函数voidsort(STUDENT*data,intlen)来实现

4、查询模块:

可用voidfind(STUDENT*data,intlen) 

来实现。

找到就输出此学生全部信息。

3、插入模块:

可用voidinsert(STUDENT*data,int*len)函数来实现。

其中通过学号的大小来比较的,并且以此来排序。

6.删除功能:

用函数voiddelete_item(STUDENT*data,int*len)来实现

7.统计功能:

用函数voidstat(STUDENT*data,intlen)来实现

8、退出系统:

可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

3.2、流程

12345678

3.3.源程序代码

#include<

stdlib.h>

stdio.h>

string.h>

#defineMAXN35

#defineMAX_NAME256

typedefstructstudent//学生信息

doubleenglish;

doublemath;

doublecomputer;

doublemark_ave;

doublemark_tot;

/*-----------输入信息子程序---------*/

voidinput(STUDENT*data,int*len)

putchar('

\n'

);

printf("

%s\n"

"

请输入新的记录,如果需要退出当前菜单请输入-1."

格式:

\n学号\n"

姓名英语数学计算机"

如:

\n"

5\n"

黄志慧100100100\n"

scanf("

%d"

&

no);

while(no!

=-1){

data[*len].no=no;

scanf("

%s%lf%lf%lf"

data[*len].name,&

data[*len].english,&

data[*len].math,&

data[*len].computer);

data[*len].mark_ave=(data[*len].english+data[*len].math+data[*len].computer)/3.0;

data[*len].mark_tot=data[*len].english+data[*len].math+data[*len].computer;

(*len)++;

}

}

/*---------------输出信息子程序---------------*/

voidoutput(STUDENT*data,intlen)

inti;

system("

cls"

%8s"

学号"

姓名"

英语"

数学"

%10s"

计算机"

%12s"

平均分"

总分"

for(i=0;

i<

80;

i++)

='

for(i=0;

i<

len;

{

%8d"

data[i].no);

data[i].name);

%8.1lf"

data[i].english);

data[i].math);

%10.1lf"

data[i].computer);

%12.1lf"

data[i].mark_ave);

data[i].mark_tot);

}

按回车键继续."

getchar();

/*--------------排序子程序------------*/

voidsort(STUDENT*data,intlen)

inti,j,k;

STUDENTtemp;

for(i=0;

len-1;

i++){

for(k=i,j=i+1;

j<

len;

j++)

if(data[k].mark_ave>

data[j].mark_ave)k=j;

if(k!

=i){

temp=data[i];

data[i]=data[k];

data[k]=temp;

}

/*--------------------搜索子程序-----------------------*/

voidfind(STUDENT*data,intlen)

intfind_no,result;

lab:

result=0;

printf("

请输入需要查找的学生的学号,退出当前菜单请输入-1."

find_no);

if(find_no==-1)return;

/*exitthefinesubprogram*/

while(data[result].no!

=find_no&

&

result<

len)result++;

if(result>

=len){

printf("

未查询到相关信息"

gotolab;

}

else{

system("

查询信息如下:

"

for(i=0;

putchar('

putchar('

data[result].no);

data[result].name);

data[result].english);

data[result].math);

data[result].computer);

data[result].mark_ave);

data[result].mark_tot);

/*-----------------插入子程序-------------*/

voidinsert(STUDENT*data,int*len)

intno,pos;

doubleenglish,math,computer,mark_ave,mark_tot;

输入新的记录,退出当前菜单请输入-1."

姓名英语数学计算机"

if(no==-1)return;

name,&

english,&

math,&

computer);

mark_ave=(english+math+computer)/3.0;

mark_tot=english+math+computer;

pos=0;

while((data[pos].mark_ave<

mark_ave)&

(pos<

*len))

pos++;

for(i=*len-1;

i>

=pos;

i--)

data[i+1]=data[i];

data[pos].no=no;

strcpy(data[pos].name,name);

data[pos].english=english;

data[pos].math=math;

data[pos].computer=computer;

data[pos].mark_ave=mark_ave;

data[pos].mark_tot=mark_tot;

gotolab;

/*-------------删除子程序--------------*/

voiddelete_item(STUDENT*data,int*len)

intno,i,pos;

pos=0;

输入需要删除的学生的学号,退出当前菜单请输入-1."

while((data[pos].no!

=no)&

*len))pos=pos+1;

if(pos>

=*len){

未找到需要删除的学生"

for(i=pos+1;

i<

*len;

data[i-1]=data[i];

*len=*len-1;

if(*len==0){

printf("

没有任何记录,请按回车键返回."

getchar();

return;

/*---------------统计子程序------------*/

voidstat(STUDENT*data,intlen)

intno_59=0,no_69=0,no_79=0,no_89=0,no_100=0;

if(data[i].mark_ave<

=59)no_59++;

elseif(data[i].mark_ave<

=69)no_69++;

elseif(data[i].mark_ave<

=79)no_79++;

=89)no_89++;

elseno_100++;

分数"

0--59"

60--69"

70--79"

80--89"

90--100"

学生"

%10d"

no_59);

no_69);

no_79);

no_89);

no_100);

按回车键返回"

/*---------------显示信息子程序------------*/

voidpaint()

%43s\n"

菜单"

1输入2输出\n"

3按平均分排序4按学号查找\n"

5插入6按学号删除\n"

7按平均分输出统计信息8保存到文件\n"

0退出\n"

=79;

请输入各操作对应的序号:

voidsave(STUDENT*data,intlen)//将数据保存到文件

FILE*fp;

fp=fopen("

成绩统计表.txt"

"

w"

fprintf(fp,"

%10s\n"

========================================================================\n"

%10.1lf\n"

fclose(fp);

文件已保存到\"

成绩统计表.txt\"

getchar();

/*-----------主程序--------------*/

voidmain()

STUDENTdata[MAXN];

intlen=0;

charctrl_ch;

paint();

%c"

ctrl_ch);

while(ctrl_ch!

='

0'

){

switch(ctrl_ch){

case'

1'

:

input(data,&

len);

break;

2'

output(data,len);

3'

sort(data,len);

4'

find(data,len);

5'

insert(data,&

6'

delete_item(data,&

7'

stat(data,len);

8'

save(data,len);

default:

if(ctrl_ch!

)printf("

输入错误!

if(ctrl_ch!

)paint();

3.4.算法调试过程中出现的问题及解决方法

问题一、

C:

\DocumentsandSettings\Administrator\桌面\C课程设计.cpp(20):

errorC2065:

'

data'

:

undeclaredidentifier

C课程设计.obj-1error(s),0warning(s)

解决方法:

在源程序第六行前加上typedef

问题二、

\DocumentsandSettings\Administrator\桌面\C课程设计.cpp(289):

fatalerrorC1004:

unexpectedendoffilefound

执行cl.exe时出错.

在源程序最后加上“}”

问题三

\DocumentsandSettings\Administrator\桌面\C课程设计.cpp(257):

errorC2059:

syntaxerror:

constant'

C课程设计.obj-1error(s),0warning(s)

将主程序中的“if”换成“cas

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

当前位置:首页 > 小学教育 > 英语

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

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