c语言程序设计学生成绩管理系统Word文档格式.docx
- 文档编号:21205284
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:28
- 大小:32.70KB
c语言程序设计学生成绩管理系统Word文档格式.docx
《c语言程序设计学生成绩管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《c语言程序设计学生成绩管理系统Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
删除数据
修改数据
物理成绩排序
物理
总分
和平
均分
数学总分和平均分
英语总分和平均分
计算机平均分
显示数据
保存数据
五功能模块的说明
1输入初始学生信息:
其中包括学生姓名,学号,性别,物理数学英语计算机成绩等相关信息;
可用函数cin(stu*p1)来实现此操作。
2查询模块:
可用stu*lookdata(stu*p1)来实现。
找到就输出此学生全部信息包括学生物理数学英语计算机的成绩。
3插入模块:
可用insert()来实现。
其中通过学号的大小比较的,并且以此来排序。
4输出学生的信息及成绩:
通过学生的姓名来查看学生的语文数学英语计算机的有关成绩,同时也可以分别通过paverage()maverage()eaverage()comaverage()来输出物理数学英语计算机等成绩的平均分最高分最低分。
5退出系统:
可以用一个函数来实现,首先将信息保存在文件中,释放动态创建的内存空间,再退出次程序。
流程图如下
六.调试情况及运行结果
1、
对自己设计进行评价,指出合理和不足之处,提出改进的方案。
此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,于是就按课本上的例子编了超市管理系统,先把界面弄好然后再添加各模块,而且各模块也出现了不少问题,在同学们和老师的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。
可结果还不是太理想。
由于时间很短,在选题报告中设想到的好多功能都没有实现。
已有的那些功能虽已能基本上满足管理者和消费者的需要,但如果还有更多的功能程序就会更加完美。
如:
进入系统时没有设制密码,保护性不够强;
在输入商品号时没有出错提示,如果商品号输入负值
2、在设计过程中的感受。
本次C语言的实习课让我对C语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。
本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。
在同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。
七.参考文献
《C语言程序设计》王曙燕曹锰科学出版社
八。
附录:
#include<
stdio.h>
#include<
stddef.h>
string.h>
stdlib.h>
conio.h>
#defineMAX10
intsum=10;
typedefstructstudent/*定义结构体*/
{
charname[MAX];
/*姓名*/
intnum;
/*学号*/
charsex[MAX];
/*性别*/
floatphysic;
/*语文*/
floatmathematic;
/*数学*/
floatenglish;
/*英语*/
floatcomputer;
/*计算机*/
structstudent*next;
/*结构体指针*/
}stu;
stu*head;
/*读取信息*/
intread_message()
{FILE*fp;
stu*p;
inti=0;
if((fp=fopen("
student_manage.txt"
"
rb"
))==NULL)
{printf("
\n\n****暂时还没有任何信息,输入密码进入主菜单选择基本信息录入!
****\n"
);
return0;
}
while(feof(fp)!
=1)
{fread(head,sizeof(stu),1,fp);
if(p->
num==0)break;
elsei++;
fclose(fp);
return(i);
/*显示或打印函数*/
voidprint()
printf("
\t\t\tScoreManageSystem\n"
/*成绩管理系统*/
\t\t\t成绩管理系统\n"
<
1>
EnterRecord:
输入数据\n"
/*输入数据*/
2>
Display:
显示或打印\n"
/*显示*/
3>
find:
查找数据\n"
/*访问数据*/
4>
Renew_message:
更新模块\n"
/*更新模块*/
5>
Save:
保存数据\n"
6>
sort_physic:
成绩排名\n"
/*物理成绩排名*/
7>
Count:
数据统计\n"
/*数据统计*/
8>
PhysicAverage:
物理平均成绩\n"
/*物理平均成绩*/
9>
MathAverage:
数学平均成绩\n"
/*数学平均成绩*/
10>
EnglishAverage:
英语平均成绩\n"
/*英语平均成绩*/
11>
ComputerAverage:
计算机平均成绩\n"
/*计算机平均成绩*/
12>
Quit:
退出\t\n"
/*退出*/
/*****输入相关数据函数*****/
voidcin(stu*p1)
\nEntername:
\n"
scanf("
%s"
&
p1->
name);
Enternum:
%d"
num);
Entersex:
sex);
Enterscore\n"
Enterphysic:
%f"
physic);
Entermathematic:
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:
fflush(stdin);
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)
Name:
%s\t"
p1->
Num:
%d\t"
Sex:
Physic:
%f\t"
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))
p1=p1->
if(p2==head)
{p3->
next=head;
head=p3;
next=p3;
/*通过姓名来查找的函数*/
voidfind(stu*p2)
{charname[20];
intb=0;
Enterthenameofthesutdentyouwanttofind:
"
name);
while(p2!
if(strcmp(name,p2->
name)==0)
Thedatayouwanthasbefind"
p2->
Physic%f\t"
Math%f\t"
English%f\t"
Computer%f\t"
b=1;
elseif(b==0)
sorrynotfinddata!
p2=p2->
if(b==1)
print();
Findone\n"
else
Notfind\n"
/*求各学生物理平均成绩*/
voidpaverage()
{stu*p1;
inti;
floatmax=0.0,min=200.0;
floatsum=0.0,aver=0;
if(p1==NULL)
notdata!
{for(i=0;
p1!
=NULL;
next)
sum+=p1->
physic;
aver=sum/i;
for(i=0;
i++,p1=p1->
{if(max<
physic)
max=p1->
if(min>
min=p1->
%f"
aver);
PhysicMax:
max);
PhysicMin:
/*求各学生数学平均分最高和最低分成绩的函数*/
voidmaverage()
for(i=0;
mathematic;
next)
{if(max<
mathematic)
MathAverage:
MathMax:
MathMin:
min);
/*求各学生英语平均分最高和最低分成绩的函数*/
voideaverage()
english;
english)
printf("
EnglishMax:
EnglishMin:
/*求各学生计算机平均成绩最高和最低分*/
voidcomaverage()
computer;
computer)
ComputerMax:
ComputerMin:
/*统计物理平均和总分*/
voidaver_sum_physic()
floatsum=0,aver;
if(p1=NULL)
PhysicSum:
sum);
/*统计数学平均和总分*/
voidaver_sum_mathematic()
MathematicAverage:
MathematicSum:
/*统计英语平均和总分*/
voidaver_sum_english()
EnglishSum:
/*统计计算机平均和总分*/
voidaver_sum_computer()
ComputerSum:
/*统计模块*/
voidcount()
{intchoice;
do
{
*******统计学生平均分和总分********\n"
:
物理平均和总分\n"
数学平均和总分\n"
英语平均和总分\n"
计算机平均和总分\n"
0>
返回主菜单:
请选择(0~4):
scanf("
choice);
switch(choice)
{case1:
aver_sum_physic();
break;
case2:
aver_sum_mathematic();
case3:
aver_sum_english();
case4:
aver_sum_computer();
case0:
}while(choice!
=0);
/*物理成绩排序*/
/*库存排行*/
sort_physic()
{
inti=1,j=1;
floatmin;
stu*newh,*newp,*tp1,*tp2,*p;
newp=newh=NULL;
tp1=tp2=NULL;
p=head;
do
i++;
p=p->
}while(p->
while(head!
tp1=tp2=p;
min=p->
while(p->
next!
next->
physic<
min)
tp1=p;
tp2=p->
}
if(newh==NULL)newp=newh=tp2;
newp->
next=tp2;
newp=tp2;
if(tp2==head)head=tp2->
tp1->
next=tp2->
tp2->
}
head=newh;
for(j=1;
j<
=i;
j++)
if(p!
\n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 学生 成绩管理系统