《学生成绩管理系统》C语言课程设计上课讲义Word格式.docx
- 文档编号:19948391
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:19
- 大小:84.82KB
《学生成绩管理系统》C语言课程设计上课讲义Word格式.docx
《《学生成绩管理系统》C语言课程设计上课讲义Word格式.docx》由会员分享,可在线阅读,更多相关《《学生成绩管理系统》C语言课程设计上课讲义Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
四、定义数据结构及相关解释:
1)在《学生成绩管理系统》中,各模块功能系统之间构成的数据结构关系为非线性数据结构的树结构。
2)树结构:
每一个结点只有一个前件,称为父结点。
没有前件的结点只有一个,称为树的根结点,简称树的根。
在《学生成绩管理系统》中的数据结构图中“图书馆管理程序”为根;
在树结构中,每一个结点都可以有多个后件,他们都称为该结点的子结点,没有后件的结点称为叶子。
例如,在《学生成绩管理系统》中的数据结构图中“查看数据”、“通过比较学号来插入数据”、“通过姓名查找查看数据”、“通过姓名查找来更新数据”、“保留数据”以及求各学科的“平均分、最高分、最低分”为“学生成绩管理系统”的子结点,也是该树结构的叶子。
五、软件的模块划分:
根据对《学生成绩管理系统》功能分析的情况,可将《学生成绩管理系统》做如下模块划分:
1)main()主函数---学生成绩管理系统程序主函数;
2)print()
打印函数---设置学生成绩管理系统界面;
3)cin()
数据输入函数---数据多格式输入;
4)cindata()
其他数据继续输入函数;
5)lookdata()
查看数据函数---查看已保存的数据;
6)insert()插入数据的函数---通过比较学号来插入数据;
7)find()
查看数据的函数---通过姓名查找查看数据;
8)update()
更新数据的函数---姓名查找来更新数据;
9)save()保留数据函数---储存处理后的数据;
10)caverage();
求各学生语文平均分、最高和最低分成绩的函数;
11)maverage();
求各学生数学平均分、最高和最低分成绩的函数;
12)eaverage();
求各学生英语平均分、最高和最低分成绩的函数;
13)comaverage();
求各学生计算机平均分、最高和最低分成绩的函数
注:
(2)—(13)为自定义功能函数,通过main()主函数调用实现其功能。
六、程序流程设计:
根据《学生成绩管理系统》功能分析绘制流程图:
注:
其他功能的流程图可参照“其他数据输入”的流程图绘制。
七、各功能模块编写内容详细情况及调试:
1)数据类型的定义。
在定义数据类型时,由于学生成绩管理信息需要由不同类型的数据反映出来。
如:
姓名、性别都需要用char型数据,而学号和成绩则需要用int型数据,并且每位同学的以上信息都需要一次性输入,所以采用结构体类型定义。
typedefstructstudent/*定义结构体*/
{
charname[MAX];
--------------------定义char型姓名
intnum[MAX];
--------------------定义int型学号
charsex[MAX];
--------------------定义char型性别
intchinese;
--------------------定义int型语文成绩
intmathematic;
--------------------定义int型数学成绩
intenglish;
--------------------定义int型英语成绩
intcomputer;
--------------------定义int型计算机成绩
structstudent*next;
--------------------结构体指针
}stu;
说明:
在定义结构体类型和变量时,可采用先定义结构体类型再定义结构提变量,也可同时定义结构体类型和变量,还可以直接定义结构提变量。
上例中的定义方式为同时定义结构体的类型和变量。
结构体定义的格式如下:
struct[结构体名]
{
类型标识符成员名;
};
2)函数的命名和库函数的使用。
A.函数命名是遵循标识符的命名规则,并且要尽量做到顾名思义的效果。
lookdata()为查看数据函数。
B.库函数使用时要提前声明(#include<
math.h>
等)用到的函数必须包括在库函数或者已自定义的函数中,否则编译出错。
C.函数调用时要注意形参和实参数据类型的对应。
3)函数结构和功能实现。
A.数据输入函数“cin()”
B.查看数据函数“lookdata()”
C.插入数据的函数“insert()”
D.查看数据的函数“find()”
E.更新数据的函数“update()”
F.保留数据函数“save()”
以上的六个功能函数为《学生成绩管理系统》的输入、读取、修改等主要功能函数,其中主要运用字符串比较,定义指针变量,输入输出等多种函数和操作实现其对外界输入内容进行处理功能以及防止出错的备份功能。
G.管理系统中的各个模块函数的功能实现基本都依靠与以上三中函数类似的编辑方法编写。
主要通过以下结构实现对应功能。
for循环结构——对使用者输入内容与内部资料内容进行核对。
switch选择结构——对使用者所选择的项目进行判断并调用对应的函数。
if-else选择结构——配合for循环核对内容的正确与否选择对应的操作。
while、do-while循环结构——条件判断并进行对应的操作。
H.具体功能函数源程序的编辑内容见后文的《图书馆管理系统》源程序。
八、源程序内容及调试结果。
1)源程序(原始密码是123456):
#include"
stdio.h"
stddef.h"
string.h"
#defineMAX10
typedefstructstudent{
/*定义结构体*/
charname[MAX];
/*姓名*/
intnum[MAX];
/*学号*/
charsex[MAX];
/*性别*/
intchinese;
/*语文*/
intmathematic;
/*数学*/
intenglish;
/*英语*/
intcomputer;
/*计算机*/
structstudent*next;
/*结构体指针*/
stu*head;
/*头指针*/
voidprint()
/*显示或打印函数*/
{
system("
cls"
);
printf("
\t\t\tScoreManageSystem\n"
/*成绩管理系统*/
<
1>
EnterRecord\t"
/*输入数据*/
2>
Display\t"
/*显示*/
3>
Insert\t"
/*插入数据*/
4>
Quest\t"
/*访问数据*/
5>
Update\t"
/*以前数据*/
6>
Save\t"
/*保留数据*/
7>
Fresh\t"
/*更新数据*/
8>
ChineseAverage\t"
/*语文平均成绩*/
9>
MathAverage\t"
/*数学平均成绩*/
10>
EnglishAverage\t"
/*英语平均成绩*/
11>
ComputerAverage\t"
/*计算机平均成绩*/
12>
Quit\t\n"
/*退出*/
}
voidcin(stu*p1)
/*输入相关数据的函数*/
{printf("
Entername:
\n"
scanf("
%s"
&
p1->
name);
Enternum:
%d"
num);
Entersex:
sex);
Enterscore:
Enterchinese:
chinese);
Entermath:
mathematic);
EnterEnglish:
english);
EnterComputer:
computer);
stu*cindata()
/*其他数据是否继续输入的函数*/
stu*p1,*p2;
inti=1;
charch;
p1=(stu*)malloc(sizeof(stu));
head=p1;
while(i)
cin(p1);
DoyouWanttoContinue?
yesorno"
/*是否继续输入数据*/
ch=getchar();
if(ch=='
n'
||ch=='
N'
)
{i=0;
p1->
next=NULL;
else
{p2=p1;
p2->
next=p1;
return(p1->
next);
}
stu*lookdata(stu*p1)
/*查看数据的函数*/
while(p1!
=NULL)
{printf("
Num:
%d\t"
p1->
Name:
%s\t"
Sex:
Chinese:
Math:
English:
Computer:
p1=p1->
next;
returnp1;
}
voidinsert()
/*通过比较学号来插入数据的函数*/
{stu*p1,*p3,*p2;
p1=head;
p3=(stu*)malloc(sizeof(stu));
p3->
if(head==NULL){head=p3;
return;
cin(p3);
=NULL&
&
(p1->
num<
p3->
num))
/*通过学号的比较来插入*/
{
p2=p1;
p1=p1->
if(p2==head){p3->
next=head;
head=p3;
next=p3;
find(stu*p2)
/*通过姓名查找查看数据的函数*/
{charname[20];
intb=0;
Enterthenameofthestudentyouwanttofind:
"
/*通过姓名查看*/
name);
while(p2!
{if(strcmp(name,p2->
name)==0)
Thedatayouwanthasbefound\n"
Name:
p2->
sex%s\t"
b=1;
elseif(b==0)
sorrynotfinddata!
p2=p2->
if(b==1)
print();
Findone\n"
{print();
Notfind\n"
voidcaverage()
/*求各学生语文平均分、最高和最低分成绩的函数*/
stu*p1;
inti;
floatmax=0.0,min=200.0;
floatsum=0.0,aver=0;
if(p1==NULL)
notdata!
{for(i=0;
p1!
=NULL;
i++,p1=p1->
next)
sum+=p1->
chinese;
aver=sum/i;
for(i=0;
{if(max<
chinese)
max=p1->
if(min>
min=p1->
ChineseAverage:
%f"
aver);
ChineseMax:
max);
ChineseMin:
min);
voidmaverage()
/*求各学生数学平均分、最高和最低分成绩的函数*/
{stu*p1;
mathematic;
mathematic)
MatheAverage:
MatheMax:
MatheMin:
voideaverage()
/*求各学生英语平均分、最高和最低分成绩的函数*/
english;
english)
EnglishAverage:
EnglishMax:
EnglishMin:
voidcomaverage()
/*求各学生计算机平均分、最高和最低分成绩的函数*/
computer;
computer)
p1=head
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生成绩管理系统 学生 成绩管理系统 语言 课程设计 上课 讲义
![提示](https://static.bdocx.com/images/bang_tan.gif)