最新C语言学生成绩管理系统实验报告数组.docx

上传人:b****7 文档编号:10438614 上传时间:2023-02-11 格式:DOCX 页数:57 大小:1.50MB
下载 相关 举报
最新C语言学生成绩管理系统实验报告数组.docx_第1页
第1页 / 共57页
最新C语言学生成绩管理系统实验报告数组.docx_第2页
第2页 / 共57页
最新C语言学生成绩管理系统实验报告数组.docx_第3页
第3页 / 共57页
最新C语言学生成绩管理系统实验报告数组.docx_第4页
第4页 / 共57页
最新C语言学生成绩管理系统实验报告数组.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

最新C语言学生成绩管理系统实验报告数组.docx

《最新C语言学生成绩管理系统实验报告数组.docx》由会员分享,可在线阅读,更多相关《最新C语言学生成绩管理系统实验报告数组.docx(57页珍藏版)》请在冰豆网上搜索。

最新C语言学生成绩管理系统实验报告数组.docx

最新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("输入不合法,请重新输入。

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

当前位置:首页 > 自然科学 > 数学

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

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