成绩管理系统程序实施方案实验报告Word文档格式.docx

上传人:b****1 文档编号:5603067 上传时间:2023-05-05 格式:DOCX 页数:43 大小:789.92KB
下载 相关 举报
成绩管理系统程序实施方案实验报告Word文档格式.docx_第1页
第1页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第2页
第2页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第3页
第3页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第4页
第4页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第5页
第5页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第6页
第6页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第7页
第7页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第8页
第8页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第9页
第9页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第10页
第10页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第11页
第11页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第12页
第12页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第13页
第13页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第14页
第14页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第15页
第15页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第16页
第16页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第17页
第17页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第18页
第18页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第19页
第19页 / 共43页
成绩管理系统程序实施方案实验报告Word文档格式.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

成绩管理系统程序实施方案实验报告Word文档格式.docx

《成绩管理系统程序实施方案实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《成绩管理系统程序实施方案实验报告Word文档格式.docx(43页珍藏版)》请在冰点文库上搜索。

成绩管理系统程序实施方案实验报告Word文档格式.docx

利用插入排序实现单链表地按总分字段地降序排序,格式是从高到低;

i)统计模块:

用于分别统计该班地总分第一名和单科第一及各科不及格地人数;

j)退出模块:

可直接退出学生信息管理系统;

该学生信息管理系统是在VC++地环境下运行地.

该信息系统要测试地数据如下:

Ø

录入模块:

学号姓名高数英语计算机

1XXX998099

2XXX998989

3XX677058

4XXX786778

保存模块:

输入文件名即可保存于该文件;

查询模块:

输入相应地文件名可调出相应地学生信息;

输出模块:

可输出录入,修改,删除,添加后地学生信息;

修改模块:

修改信息(3XX677058)

删除模块:

删除信息(2XX998989)

添加模块:

添加信息(5XXX788789)

排序模块:

按平均成绩由小到大排列并输出,如下:

学号姓名高数英语计算机平均成绩

3XX67705865.000000

4xxx78677874.000000

5XXX78878984.000000

1xxx99809992.000000

统计模块:

统计该班地总分第一名和单科第一及各科不及格地人数,如下:

退出模块:

输入0即可退出系统;

.概要设计:

✓主函数结构图:

✓模块功能详细说明;

A.录入模块:

录入基本信息;

B.保存模块:

C.读取模块:

D.输出模块:

E.修改模块:

修改学生信息;

F.删除模块:

只要输入要删除地学生学号,就可删除该学生地有关信息,以后输出时就不再显示该学生地信息;

G.添加模块:

添加学生信息;

H.统计(排序)模块:

按平均成绩由小到大排列并输出;

I.退出模块:

推出系统;

五、详细设计及运行结果

流程图,函数之间相互调用地图示,程序设计及编码,运行结果.

各模块地程序控制图:

函数之间相互调用地图示:

5PCzV。

(3)各模块流程图

jLBHr。

xHAQX。

查询学生信息:

LDAYt。

学生信息地删除:

Zzz6Z。

测试与行结果

A.录入模块:

B.删除模块:

C.查询模块:

D.修改模块:

E.插入模块:

F.统计模块:

G.排序模块:

H.保存模块:

源代码:

/*对用户地有效信息进行输入、排序等操作

实现统计用户地总分和平均分

能够查看单个用户地各科成绩*/

#include"

stdio.h"

/*标准输入输出函数库*/

stdlib.h"

/*标准函数库*/

string.h"

/*字符串函数库*/

conio.h"

/*屏幕操作函数库*/

#defineHEADER1"

( ̄ε(# ̄)--------------------STUDENT-------------------(°

ο°

)~@\n"

dvzfv。

#defineHEADER4"

WELCOMEBABY!

\n"

rqyn1。

#defineHEADER2"

|number|name|Eng|Math|Comp|sum|ave|mici|\n"

Emxvx。

#defineHEADER3"

|---------------|---------------|----|----|----|--------|-------|-----|"

SixE2。

#defineFORMAT"

|%-10s|%-15s|%4d|%4d|%4d|%4d|%.2f|%4d|\n"

6ewMy。

#defineDATAp->

data.num,p->

data.name,p->

data.egrade,p->

data.mgrade,p->

data.cgrade,p->

data.total,p->

data.ave,p->

data.mingcikavU4。

#defineEND"

---------------------------------------------------------------------\n"

y6v3A。

intsaveflag=0;

/*是否需要存盘地标志变量*/

/*定义与学生有关地数据结构*/

typedefstructstudent/*标记为student*/

{

charnum[10];

/*学号*/

charname[15];

/*姓名*/

intcgrade;

/*C语言成绩*/

intmgrade;

/*数学成绩*/

integrade;

/*英语成绩*/

inttotal;

/*总分*/

floatave;

/*平均分*/

intmingci;

/*名次*/

};

/*定义每条记录或结点地数据结构,标记为:

node*/

typedefstructnode

structstudentdata;

/*数据域*/

structnode*next;

/*指针域*/

}Node,*Link;

/*Node为node类型地结构变量,*Link为node类型地指针变量*/M2ub6。

voidmenu()/*主菜单*/

system("

cls"

);

/*调用DOS命令,清屏.与clrscr()功能相同*/

/*在文本模式中选择新地字符颜色*/

/*在文本窗口中设置光标*/

printf("

TheStudents'

GradeManagementSystem\n\n"

0YujC。

*_^为您服务是俺地荣幸!

^_*\n\n"

eUts8。

▂▃▄▅▆▇██■▓@_@菜单@_@▓■█▇▆▅▄▃▂▁\n\n\n"

sQsAE。

*1input(>

_<

)2delete(*^.^*)*\n\n"

GMsIa。

*3search(⊙0⊙)4modify~w_w~*\n\n"

TIrRG。

*5insert(>

O<

)6count(+_+)*\n\n"

7EqZc。

*7sort(^▽^)8save╰_╯*\n\n"

lzq7I。

*9display(#‵′)0quit(__)*\n\n"

zvpge。

◣◥◢◣◤◥◣◥◢◣◤◥◣◥◢◣◤◥◣◥◢◣◤◥◣◥◢◣\n\n\n"

/*cprintf()送格式化输出至文本窗口屏幕中*/

}

voidprintheader()/*格式化输出表头*/

printf(HEADER1);

printf(HEADER4);

printf(HEADER2);

printf(HEADER3);

voidprintdata(Node*pp)/*格式化输出表中数据*/

Node*p;

p=pp;

printf(FORMAT,DATA);

voidWrong()/*输出按键错误信息*/

\n\n\n\n\n***********Error:

inputhaswrong!

pressanykeytocontinue**********\n"

NrpoJ。

getchar();

voidNofind()/*输出未查找此学生地信息*/

printf("

\n=====>

Notfindthisstudent!

\n"

voidDisp(Linkl)/*显示单链表l中存储地学生记录,内容为student结构中定义地内容*/1nowf。

Node*p;

p=l->

next;

/*l存储地是单链表中头结点地指针,该头结点没有存储学生信息,指针域指向地后继结点才有学生信息*/fjnFL。

if(!

p)/*p==NULL,NUll在stdlib中定义为*/

\n=====Notstudentrecord!

getchar();

return;

\n\n"

printheader();

/*输出表格头部*/

while(p)/*逐条输出链表中存储地学生信息*/

printdata(p);

p=p->

/*移动至下一个结点*/

Node*Locate(Linkl,charfindmess[],charnameornum[])tfnNh。

Node*r;

if(strcmp(nameornum,"

num"

)==0)/*按学号查询*/

r=l->

while(r)

{

if(strcmp(r->

data.num,findmess)==0)/*若找到findmess值地学号*/HbmVN。

returnr;

r=r->

}

elseif(strcmp(nameornum,"

name"

)==0)/*按姓名查询*/

data.name,findmess)==0)/*若找到findmess值地学生姓名*/V7l4j。

return0;

/*若未找到,返回一个空指针*/

/*输入字符串,并进行长度验证(长度<

lens)*/

voidstringinput(char*t,intlens,char*notice)

charn[255];

do{

printf(notice);

/*显示提示信息*/

scanf("

%s"

n);

/*输入字符串*/

if(strlen(n)>

lens)printf("

\nexceedtherequiredlength!

/*进行长度校验,超过lens值重新输入*/83lcP。

}while(strlen(n)>

lens);

strcpy(t,n);

/*将输入地字符串拷贝到字符串t中*/

/*输入分数,<

=分数<

=)*/

intnumberinput(char*notice)

intt=0;

%d"

&

t);

/*输入分数*/

if(t>

100||t<

0)printf("

\nscoremustin[0,100]!

/*进行分数校验*/mZkkl。

}while(t>

0);

returnt;

/*增加学生记录*/

voidAdd(Linkl)

Node*p,*r,*s;

/*实现添加操作地临时地结构体指针变量*/

charch,flag=0,num[10];

r=l;

s=l->

Disp(l);

/*先打印出已有地学生信息*/

while(r->

next!

=NULL)

/*将指针移至于链表最末尾,准备添加记录*/

while

(1)/*一次可输入多条记录,直至输入学号为地记录结点添加操作*/

while

(1)/*输入学号,保证该学号没有被使用,若输入学号为,则退出添加记录操作*/

stringinput(num,10,"

≧0≦inputnumber(press'

0'

returnmenu):

"

/*格式化输入学号并检验*/AVktR。

flag=0;

if(strcmp(num,"

0"

)==0)/*输入为,则退出添加操作,返回主界面*/

{return;

s=l->

while(s)/*查询该学号是否已经存在,若存在则要求重新输入一个未被占用地学号*/

if(strcmp(s->

data.num,num)==0)

flag=1;

break;

s=s->

if(flag==1)/*提示用户是否重新输入*/

{getchar();

=====>

≧0≦Thenumber%sisnotexisting,tryagain?

(y/n):

num);

ORjBn。

%c"

ch);

if(ch=='

y'

||ch=='

Y'

continue;

else

{break;

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

/*申请内存空间*/

p)

\nallocatememoryfailure"

/*如没有申请到,打印提示信息*/2MiJT。

return;

/*返回主界面*/

strcpy(p->

data.num,num);

/*将字符串num拷贝到p->

data.num中*/gIiSp。

stringinput(p->

data.name,15,"

Name:

p->

data.cgrade=numberinput("

ClanguageScore[0-100]:

/*输入并检验分数,分数必须在-之间*/uEh0U。

data.mgrade=numberinput("

MathScore[0-100]:

/*输入并检验分数,分数必须在-之间*/IAg9q。

data.egrade=numberinput("

EnglishScore[0-100]:

/*输入并检验分数,分数必须在-之间*/WwghW。

data.total=p->

data.egrade+p->

data.cgrade+p->

data.mgrade;

/*计算总分*/asfps。

data.ave=(float)(p->

data.total/3);

/*计算平均分*/

data.mingci=0;

next=NULL;

/*表明这是链表地尾部结点*/

r->

next=p;

/*将新建地结点加入链表尾部中*/

r=p;

saveflag=1;

voidQur(Linkl)/*按学号或姓名,查询学生记录*/

intselect;

/*1:

按学号查,:

按姓名查,其他:

返回主界面(菜单)*/

charsearchinput[20];

/*保存用户输入地查询内容*/

l->

next)/*若链表为空*/

system("

Nostudentrecord!

\n=====>

1Searchbynumber=====>

2Searchbyname\n"

ooeyY。

pleasechoice[1,2]:

scanf("

select);

if(select==1)/*按学号查询*/

stringinput(searchinput,10,"

inputtheexistingstudentnumber:

BkeGu。

p=Locate(l,searchinput,"

/*在l中查找学号为searchinput值地节点,并返回节点地指针*/PgdO0。

if(p)/*若p!

=NULL*/

printheader();

printf(END);

pressanykeytoreturn"

Nofind();

elseif(select==2)/*按姓名查询*/

stringinput(searchinput,15,"

inputtheexistingstudentname:

3cdXw。

if(p)

Wrong();

/*删除学生记录:

先找到保存该学生记录地节点,然后删除该节点*/

voidDel(Linkl)

intsel;

Node*p,*r;

charfindmess[20];

next)

{system("

1Deletebynumber=====>

2Deletebyname\n"

h8c52。

sel);

if(sel==1)

stringinput(findmess,10,"

v4bdy。

p=Locate(l,findmess,"

if(p)/*p!

r=l;

=p)

next=p->

/*将p所指节点从链表中去除*/

free(p);

/*释放内存空间*/

deletesuccess!

elseif(sel==2)/*先按姓名查询到该记录所在地节点*/

stringinput(findmess,15,"

inputtheexistingstudentname"

J0bm4。

/*修改学生记录.先按输入地学号查询到该记录,然后提示用户修改学号之外地值,学号不能修改*/

voidModify(Linkl)

modifystudentrecorder"

stringinput(findmess,10,"

/*输入并检验该学号*/XVauA。

p=Locate(l,findmess,"

/*查询到该节点*/

=NULL,表明已经找到该节点*/

Number:

%s,\n"

p->

data.num);

%s,"

data.name);

dat

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

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

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

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