最新C语言学生成绩管理系统实验报告数组.docx
《最新C语言学生成绩管理系统实验报告数组.docx》由会员分享,可在线阅读,更多相关《最新C语言学生成绩管理系统实验报告数组.docx(57页珍藏版)》请在冰豆网上搜索。
最新C语言学生成绩管理系统实验报告数组
民族性手工艺品。
在饰品店里,墙上挂满了各式各样的小饰品,有最普通的玉制项链、珍珠手链,也有特别一点如景泰蓝的手机挂坠、中国结的耳坠,甚至还有具有浓郁的异域风情的藏族饰品。
5、你认为一件DIY手工艺制品在什么价位可以接受?
成功秘诀:
好市口+个性经营
参考文献与网址:
功能性手工艺品。
不同的玉石具有不同的功效,比如石榴石可以促进血液循环,改善风湿和关节炎;白水晶则可以增强记忆力;茶晶能够帮助镇定情绪,缓解失眠、头昏等症状。
顾客可以根据自己的需要和喜好自行搭配,每一件都独一无二、与众不同。
民族性手工艺品。
在饰品店里,墙上挂满了各式各样的小饰品,有最普通的玉制项链、珍珠手链,也有特别一点如景泰蓝的手机挂坠、中国结的耳坠,甚至还有具有浓郁的异域风情的藏族饰品。
自制性手工艺品。
自制饰品其实很简单,工艺一点也不复杂。
近两年来,由于手机的普及,自制的手机挂坠特别受欢迎。
(一)上海的经济环境对饰品消费的影响
我们从小学、中学到大学,学的知识总是限制在一定范围内,缺乏在商业统计、会计,理财税收等方面的知识;也无法把自己的创意准确而清晰地表达出来,缺少个性化的信息传递。
对目标市场和竞争对手情况缺乏了解,分析时采用的数据经不起推敲,没有说服力等。
这些都反映出我们大学生创业知识的缺乏;
300元以下918%
《C语言应用》实验报告
题目
学生成绩管理系统(数组版)
专业名称
班级
学号
学生姓名
指导教师
完成时间
第1章需求分析3
第2章总体设计4
2.1系统的程序流程图4
4
2.2系统的全局变量和常量4
2.3系统的函数介绍5
第3章详细设计5
3.1主函数设计5
3.2menu函数设计6
3.3录入函数设计6
3.4show函数设计6
3.5find函数设计6
3.6find_xuhao函数设计6
3.7find_num函数设计6
3.8find_name函数设计6
3.9edit函数设计7
3.10modify函数设计7
3.11dele函数设计7
3.12input函数设计7
3.13sore函数设计7
3.14sort_sum函数设计7
3.15save函数设计7
3.16open函数设计7
3.17total函数设计7
3.18sort_num函数设计7
3.19yuwen_total函数设计7
3.20shuxue_total函数设计7
3.21yingyu_total函数设计7
3.22zongfen_total函数设计7
3.23exit1函数设计7
第4章测试7
总结16
参考文献16
附录程序源代码16
第1章需求分析
主要功能有:
1.录入信息功能。
主要包括录入学生学号、学生姓名、学生数学语文英语成绩。
2.显示信息功能。
主要包括显示学生学号、姓名、数学语文英语成绩以及三门课程的总分。
3.按条件查找功能。
主要包括按序号查找、按学号查找、按姓名查找三种查找方式。
4.编辑功能。
主要包括修改、删除、插入功能。
5.排序功能。
主要包括按学号排序。
按总分排序。
6.保存、打开文件功能。
将内存中的数据写入文件,将文件中的数据写入内存。
7.统计功能。
按各科成绩段以及总分成绩段统计各段的人数。
8.退出系统功能。
9.欢迎界面。
第2章总体设计
2.1系统的程序流程图
2.2系统的全局变量和常量
本系统包含的头文件有:
、、、
全局变量有i,
常量有
2.3系统的函数介绍
因为定义了全局变量,所以此程序所用到的函数均没有参数。
voidmenu();显示菜单选项,根据不同选择调用不同功能的函数
voidluru();向系统内存中录入学生信息
voidshow();显示系统内存中录入的学生信息
voidfind();根据用户实际不同的查找条件调用不同的查找函数
voidfind_xuhao();按序号查找学生信息
voidfind_name();按姓名查找学生信息
voidfind_num();按学号查找学生信息
voidedit();编辑函数调用修改、删除、插入函数
voidmodify();修改学生信息函数
voiddele();删除学生信息函数
voidinput();插入新学生信息函数
voidsort();排序函数调用按学号排序、按总分排序
voidsort_sum();按总分条件排序
voidsort_num();按学号条件排序
voidsave();将内存数据保存到物理文件函数
voidtotal();调用统计各分数段的成绩情况
voidzongfen_total();统计各总分段的人数情况
voidyuwen_total();统计语文各分数段的人数情况
voidshuxue_total();统计数学各分数段的人数情况
voidyingyu_total();统计英语各分数段的人数情况
voidopen();将数据从物理文件放到系统内存中
voidexit1();退出系统函数
第3章详细设计
按函数,写出函数的原型声明,并画出每个函数的程序流程图。
3.1主函数设计
3.2menu函数设计
3.3录入函数设计
3.4show函数设计
3.5find函数设计
3.6find_xuhao函数设计
3.7find_num函数设计
3.8find_name函数设计
3.9edit函数设计
3.10modify函数设计
3.11dele函数设计
3.12input函数设计
3.13sore函数设计
3.14sort_sum函数设计
3.15save函数设计
3.16open函数设计
3.17total函数设计
3.18sort_num函数设计
3.19yuwen_total函数设计
3.20shuxue_total函数设计
3.21yingyu_total函数设计
3.22zongfen_total函数设计
3.23exit1函数设计
第4章测试
欢迎界面正常
菜单功能正常
录入信息功能正常
显示功能正常
按序号查找功能正常
按学号查找功能正常
按姓名查找功能正常
修改学生信息功能正常
删除学生信息功能正常
插入学生信息功能正常
按总分排序功能正常
按学号排序功能正常
保存文件功能正常
文件打开功能正常
按语文成绩统计各段学生人数功能正常
按数学成绩统计各段学生人数功能正常
按英语成绩统计各段学生人数功能正常
按总分成绩统计各段学生人数功能正常
程序退出功能正常
总结
将以前在课堂上学习的知识运用到了实际案例中,从而对C的编程有了新的认识,学会了如何对数组操作,以及函数声明,定义,调用等,同时也有一些失误,详见链表版实验报告
参考文献
C课本等资料
附录程序源代码
/*吴江20121016学生管理系统数组版
注意;stu学生数组的i值从1开始,循环时注意数值的开始*******************弊端**********程序的健壮性有待改进*************注意内存会出现残余问题**************
注意:
学生学号用的是longint型
注意小细节*/
#include
#include//比较函数需要用到
#include//退出函数用到
#include//屏幕清除函数的头文件
structstudent
{
longintnum;//注意此处
charname[20];
intmath;//结构体学生的数据结构
intchinese;
intenglish;
intsum;
}stu[10];//定义结构体学生数组
inti;//计数器,序号,全局变量
voidmenu();
voidluru();//声明函数
voidshow();
voidfind();
voidedit();
voidsort();
voidsave();
voidtotal();
voidexit1();
voidopen();
voidmain()//主函数
{chara;
//charid[10];//密码验证系统所需声明
printf("\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n");
printf("\1\1\n");
printf("\1**欢迎进入学生管理系统**\1\n");
printf("\1\1\n");
printf("\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n");
/*printf("请输入管理员账号ID:
\n");
scanf("%s",id);
printf("请输入管理员密码:
\n");
scanf("%s",&password);
do
{
if(strcmp(id,"wujiang"))
{
printf("管理员账号ID输入有误!
!
!
\n请重新输入。
");//密码验证系统
printf("请输入管理员账号ID:
\n");
scanf("%s",id);
}
}
while(strcmp(id,"wujiang"));*/
printf("现在打开菜单?
(y/n)\n");//欢迎系统
scanf("%c",&a);
system("cls");
if(a=='y'||a=='Y')
{
menu();
}
elseif(a=='n'||a=='N')
{
exit1();
}
else
{printf("******输入不合法,请重新输入。
*******\n");
main();
}
}
//*******以下是菜单函数********
voidmenu()
{
intb=0;
do
{
b=0;
printf("进入菜单:
\n");
printf("************************\n");
printf("*1.录入信息*\n");
printf("*2.显示信息*\n");
printf("*3.按条件查找信息*\n");
printf("*4.编辑信息*\n");
printf("*5.排序*\n");
printf("*6.保存*\n");
printf("*7.打开文件*\n");
printf("*8.统计*\n");
printf("*9.退出*\n");
printf("*****请输入数字选项*****\n");//菜单
scanf("%d",&b);
system("cls");//屏幕清除函数
switch(b)
{
case1:
luru();break;//录入函数
case2:
show();break;//显示函数
case3:
find();break;//查找函数
case4:
edit();break;//编辑函数
case5:
sort();break;//排序函数
case6:
save();break;//保存函数
case7:
open();break;//打开文件函数
case8:
total();break;//统计函数
case9:
exit1();return;break;//退出函数
default:
printf("***输入有误,请重新输入***\n");menu();break;//输入错误,重新调用menu函数
}
}
while(b!
=9);
}
//*********以下是录入函数***********
voidluru()//录入函数
{
intn;
printf("录入信息:
\n");
for(i=1;i<=10;i++)
{printf("(录入—1,返回菜单—0)\n");
scanf("%d",&n);
if(n!
=0)
{
printf("\n\n学生%d\n\n输入学号:
\n",i);
scanf("%ld",&stu[i].num);
printf("输入名字:
\n");
scanf("%s",stu[i].name);
printf("输入数学成绩:
(0-100)\n");
scanf("%d",&stu[i].math);
if((stu[i].math<0)||(stu[i].math>101))
{
printf("输入不合法,请重新输入。
(0-100)\n");
scanf("%d",&stu[i].math);
}
printf("输入语文成绩:
(0-100)\n");
scanf("%d",&stu[i].chinese);
if((stu[i].chinese<0)||(stu[i].chinese>101))
{
printf("输入不合法,请重新输入。
(0-100)\n");
scanf("%d",&stu[i].chinese);
}
printf("输入英语成绩:
(0-100)\n");
scanf("%d",&stu[i].english);
if((stu[i].english<0)||(stu[i].english>101))
{
printf("输入不合法,请重新输入。
(0-100)\n");
scanf("%d",&stu[i].english);
}
stu[i].sum=stu[i].math+stu[i].chinese+stu[i].english;
system("cls");
}
else
{
menu();
}
}
}
//********以下是显示函数**********
voidshow()//显示函数
{intj=1;
if(j
{
for(j=1;j
{printf("学生%d\n",j);
printf("\t学号:
%d",stu[j].num);
printf("姓名:
%s",stu[j].name);
printf("数学:
%d",stu[j].math);
printf("语文:
%d",stu[j].chinese);
printf("英语:
%d",stu[j].english);
printf("总分:
%d\n",stu[j].sum);
}
}
else
{
printf("没有数据可以显示。
\n");
}
}
//*******以下是查找函数***********
voidfind_xuhao();
voidfind_name();
voidfind_num();
voidfind()//查找函数
{intb;
voidfind_xuhao();
voidfind_num();
voidfind_name();
printf("请选择查找的条件\t\n1.按序号查找\n2.按学号查找\n3.按姓名查找\n0.返回主菜单\n");//查找方式
scanf("%d",&b);//输入查找方式
switch(b)
{
case1:
find_xuhao();break;//序号查找函数
case2:
find_num();break;//学号查找函数
case3:
find_name();break;//名字查找函数
case0:
menu();break;
default:
printf("***输入有误,请重新输入***\n");find();break;//输入错误,重新调用find函数
}
}
//以下是find函数中的各个所用函数
voidfind_xuhao()//按序号查找函数
{intj;
if(i>1)
{
printf("请输入所要查询学生的序号:
\n");
scanf("%d",&j);//j代表所查学生序号
printf("学生%d\n",j);
printf("\t\t学号:
%d\n",stu[j].num);
printf("\t\t姓名:
%s\n",stu[j].name);
printf("\t\t数学:
%d\n",stu[j].math);
printf("\t\t语文:
%d\n",stu[j].chinese);
printf("\t\t英语:
%d\n",stu[j].english);
printf("\t\t总分:
%d\n",stu[j].sum);
}
else
show();
}
voidfind_num()//按学号查找函数
{longintb;//b代表所查学生学号
intj;
if(i>1)
{
printf("请输入你要查找学生的学号:
\n");
scanf("%ld",&b);
for(j=1;j
{
if(b==stu[j].num)
{
printf("学生%d\n",j);
printf("\t\t学号:
%d\n",stu[j].num);
printf("\t\t姓名:
%s\n",stu[j].name);
printf("\t\t数学:
%d\n",stu[j].math);
printf("\t\t语文:
%d\n",stu[j].chinese);
printf("\t\t英语:
%d\n",stu[j].english);
printf("\t\t总分:
%d\n",stu[j].sum);
menu();
}
}
}
else
show();
}
voidfind_name()//按名字查找函数
{chara[20];//存放名字数组
intj;
if(i>1)
{
printf("请输入要查学生姓名\n");
scanf("%s",a);
for(j=1;j
{
if((strcmp(a,stu[j].name))==0)//两字符串比较,相等返回0
{
printf("学生%d\n",j);
printf("\t\t学号:
%d\n",stu[j].num);
printf("\t\t姓名:
%s\n",stu[j].name);
printf("\t\t数学:
%d\n",stu[j].math);
printf("\t\t语文:
%d\n",stu[j].chinese);
printf("\t\t英语:
%d\n",stu[j].english);
printf("\t\t总分:
%d\n",stu[j].sum);
menu();
}
}
}
else
show();
}
//********以下是修改信息函数*********
voidmodify();//修改函数
voiddele();//删除函数
voidinput();//插入函数
voidedit()//编辑信息函数editmodify
{
inta;
printf("*1.修改信息\n");
printf("*2.删除信息\n");
printf("*3.插入信息\n");
printf("*0.返回主菜单\n");
printf("请输入要进行的操作的选项:
\n");
scanf("%d",&a);
switch(a)
{
case1:
modify();break;//修改函数
case2:
dele();break;//删除函数
case3:
input();break;//插入函数
case0:
menu();break;
default:
printf("输入有误,请重新输入。
\n");edit();break;
}
}
voidmodify()//修改函数
{
longinta;
intn,b;
if(i>1)
{
show();
printf("请输入要修改学生的学号:
\n");
scanf("%ld",&a);
for(n=1;n
{
if(a==stu[n].num)
{
printf("******开始修改******\n");
printf("请输入修改后的学生学号:
\n");
scanf("%ld",&stu[n].num);
printf("请输入修改后的学生名字:
\n");
scanf("%s",stu[n].name);
printf("请输入修改后的学生数学成绩:
\n");
scanf("%d",&stu[n].math);
if((stu[n].math<0)||(stu[n].math>101))
{
printf("输入不合法,请重新输入。
(0-100)\n");
scanf("%d",&stu[n].math);
}
printf("请输入修改后的学生语文成绩:
\n");
scanf("%d",&stu[n].chinese);
if((stu[n].chinese<0)||(stu[n].chinese>101))
{
printf("输入不合法,请重新输入。