《c语言程序设计》实验报告,C语言程序设计实验实验报告_wenkub
C语言程序设计实验实验报告_wenkub
2020-08-30 16:30:07
【导读】综合使用基本结构、基本算法、函数、指针、结构体、链表等知识设计程序。需要复习课本以前所学内容,浏览上课讲解的相关内容。以考虑实现以下功能:成绩修改;成绩查询;成绩统计。界面采用简易菜单形式,可以分级显示。序设计、程序调试、程序运行,并对程序运行效果进行分析,提出改进方案。函数定义、必要的注释。别、语文成绩、数学成绩、英语成绩、总分,学生人数为5人。便,适合本班班主任在期中考试以后使用。intSelectMainMenu();/*显示并选择主菜单。printf("\n谢谢您的使用,再见!
【正文】
《C语言程序设计实验》实验报告
实验八结构体编程
班级:_07某某专业1班_
学号:__1234567890____
姓名:___实验样例_____
日期:
台州学院数信学院计算机系制作
一、实验目的和要求
综合使用基本结构、基本算法、函数、指针、结构体、链表等知识设计程序。
二、实验指导
1、注意:本次实验为综合性实验,需要综合本课程以前所学内容,完成编制一个小型应用
程序。需要复习课本以前所学内容,浏览上课讲解的相关内容。
2、实验时间安排:准备实验方案,上课时上机编程,课余完成整个设计并完成实验报告。
3、实验具体要求:以一张假想的学生期中成绩表为实验对象,编制一个小型应用程序,可
以考虑实现以下功能:(1)成绩修改;(2)成绩查询;(3)成绩统计。也可以实现其他自定
义的功能。界面采用简易菜单形式,可以分级显示。实验需要进行以下步骤:需求分析、程
序设计、程序调试、程序运行,并对程序运行效果进行分析,提出改进方案。初步锻炼学生
的程序设计能力、程序调试能力、对实验结果进行综合分析的能力。
4、实验成绩评价标准:参见成绩评定表。
三、成绩评定表(教师填写)
评分栏目评分成绩
程序实现的功能是否达到要求(对应内容第1、2点,参考第3、4点)
程序代码是否合理(对应内容第3点)
程序运行结果描述是否清晰(对应内容第4点)
评价是否合理,有无提出好的改进方案(对应内容第5点)
实验报告的撰写形式是否规范,内容是否正确(对应全部内容)
总评成绩:
四、实验报告内容(参见样本,请另附页)
实验报告必须包含以下内容:
1、对你设计的程序功能进行的较详细描述。
2、画出程序测试用的学生期中成绩表(包含:表头、若干行包含学生成绩等信息的数据行)。
3、给出程序清单(包含结构体的声明与定义、所有的函数声明、所有的全局变量、所有的
函数定义、必要的注释。注:如果程序过长,可以不用给出所有的函数定义,只给出主要的
函数定义)。
4、运行结果(写出运行时的主界面、各模块的实现界面等,不作具体要求,但要求能清晰
地体现出程序的功能)。
5、对你的设计作一个评价(可以包含你所花的时间、精力,你遇到的困难及如何解决的,
你的设计过程所遇到的其他事情;必须包含你对设计的客观评价,以及提出的改进方案)。
1、程序功能描述:
程序名称:高二(3)班期中成绩管理程序
本程序对本班的期中成绩进行管理,管理的成绩表包含下列信息:学生学号、姓名、性
别、语文成绩、数学成绩、英语成绩、总分,学生人数为5人。功能包含:(1)成绩修改:
根据学号修改成绩;(2)成绩查询:可以根据学号查询一个学生的成绩,也可显示所有学生
的成绩;(3)成绩统计:可以统计全班人数,每门课的平均分。程序采用菜单管理,操作方
便,适合本班班主任在期中考试以后使用。
2、成绩表样表:
学号姓名性别语文数学英语总分
1001张三M788550
1002李四M897969
1003王五F857687
1004钱六M644570
1005赵七F929394
3、程序清单:
#include<>
structstudent/*期中成绩表的结构声明*/
{
intnum;
charname[20];
charsex;
floatYuWen;
floatShuXue;
floatYingYu;
floattotle;
};
/*定义5个学生的信息:*/
#defineSTU_NUMBER5/*宏定义学生数为5*/
structstudentStu[STU_NUMBER]={{1001,"张三",'M',78,85,50,0},
{1002,"李四",'M',89,79,69,0},
{1003,"王五",'F',85,76,87,0},
{1004,"钱六",'M',64,76,70,0},
{1005,"赵七",'F',92,93,94,0}};
intSelectMainMenu();/*显示并选择主菜单。返回:被选择的菜单项*/
/*所有的函数声明:*/
voidModify();/*成绩修改模块*/
voidShow();/*成绩查询模块*/
voidStat();/*成绩统计模块*/
voidStatAve(float*AveYuWen,float*AveShuXue,float*AveYingYu);/*统计平均分*/
intFindStudent(intnum);/*根据学号查找某一学生*/
voidSetAllTotle();/*计算所有学生总分*/
voidSetTotle(intNo);/*计算第No个学生总分*/
voidShowAllStudent();/*显示所有成绩*/
voidShowTitle();/*显示表头信息*/
voidShowStudent(intNo);/*显示第No个的学生信息*/
voidmain()
{
intisend=0;/*程序结束标志量,0表示不结束,1表示结束*/
SetAllTotle();/*计算所有学生总分*/
while(1)
{
switch(SelectMainMenu())/*显示并选择主菜单*/
{
case1:/*成绩修改*/
Modify();/*调用成绩修改函数*/
break;
case2:/*成绩查询*/
Show();/*调用成绩查询函数*/
break;
case3:/*成绩统计*/
Stat();/*调用成绩统计函数*/
break;
case4:/*退出系统*/
printf("\n谢谢您的使用,再见!\n\n");
isend=1;/*设置程序结束标志*/
break;
}
if(isend)break;/*程序结束*/
}
}
intSelectMainMenu()/*显示并选择主菜单。返回:被选择的菜单项*/
{
intmenu_no=0;
do/*显示并选择菜单*/
{
printf("\n===============================\n");
printf("《高二(3)班期中成绩管理程序》\n");
printf("作者:应老师\n");
printf("===============================\n");
printf("主菜单:\n");
printf("1–成绩修改\n");
printf("2–成绩查询\n");
printf("3–成绩统计\n");
printf("4–退出系统\n");
printf("请选择(1-4):");
scanf("%d",&menu_no);
}while(menu_no<1&&menu_no>4);/*直到选择出正确的序号*/
returnmenu_no;
}
voidModify()/*成绩修改模块*/
{
intn,i;
while(1)
{
printf("\n====成绩修改====\n");
printf("请输入学号(输入0退出成绩修改):");
scanf("%d",&n);
if(n==0)break;/*退出成绩修改模块*/
if((i=FindStudent(n))>=0)/*找到学号为n的学生*/
{
ShowTitle();/*显示表头信息*/
ShowStudent(i);/*显示该学生信息*/
printf("请输入成绩(语文,数学,英语):");
scanf("%f,%f,%f",&Stu[i].YuWen,&Stu[i].ShuXue,&Stu[i].YingYu);
SetTotle(i);/*计算该学生总分*/
printf("----修改成功----\n");
}
elseprintf("----找不到该学号----\n");
}
}
voidShow()/*成绩查询模块*/
{
intn,i;
while(1)
{
printf("\n====成绩查询====\n");
printf("请输入学号(输入0退出成绩查询,输入1查询全部):");
scanf("%d",&n);
if(n==0)break;/*退出成绩查询模块*/
if(n==1)ShowAllStudent();/*显示所有成绩*/
elseif((i=FindStudent(n))>=0)/*找到学号为n的学生*/
{
ShowTitle();/*显示表头信息*/
ShowStudent(i);/*显示该学生信息*/
}
elseprintf("----找不到该学号----\n");
}
}
voidStat()/*成绩统计模块*/
{
floatAveYuWen,AveShuXue,AveYingYu;
StatAve(&AveYuWen,&AveShuXue,&AveYingYu);/*统计三门课的班级平均分*/
printf("\n====成绩统计====\n");
printf("学生人数:%d\n",STU_NUMBER);
printf("语文平均分:%\n",AveYuWen);
printf("数学平均分:%\n",AveShuXue);
printf("英语平均分:%\n",AveYingYu);
}
/*统计三门课的班级平均分,用指针参数返回*/
voidStatAve(float*AveYuWen,float*AveShuXue,float*AveYingYu)
{
inti;
floatsumYuWen=0,sumShuXue=0,sumYingYu=0;
for(i=0;i
{
sumYuWen+=Stu[i].YuWen;
sumShuXue+=Stu[i].ShuXue;
sumYingYu+=Stu[i].YingYu;
}
*AveYuWen=sumYuWen/STU_NUMBER;
*AveShuXue=sumShuXue/STU_NUMBER;
*AveYingYu=sumYingYu/STU_NUMBER;
}
/*根据学号查找某一学生。返回:-1没找到,>=0该学生所在数组的下标*/
intFindStudent(intnum)
{
inti;
for(i=0;i
if(Stu[i].num==num)break;
if(i
elsereturn-1;/*没找到*/
}
voidSetAllTotle()/*计算所有学生总分*/
{
inti;
for(i=0;i
SetTotle(i);
}
voidSetTotle(intNo)/*计算第No个学生总分*/
{
Stu[No].totle=Stu[No].YuWen+Stu[No].ShuXue+Stu[No].YingYu;
}
voidShowAllStudent()/*显示所有成绩*/
{
inti;
ShowTitle();
for(i=0;i
ShowStudent(i);
}
voidShowTitle()/*显示表头信息*/
{
printf("\n%10s%10s%10s%10s%10s%10s%10s\n","学号","姓名","性别",
"语文","数学","英语","总分");
}
voidShowStudent(intNo)/*显示第No个的学生信息*/
{
printf("%10d%10s%10c%10g%10g%10g%10g\n",
Stu[No].num,Stu[No].name,Stu[No].sex,Stu[No].YuWen,
Stu[No].ShuXue,Stu[No].YingYu,Stu[No].totle);
}
4、运行结果:
===============================
《高二(3)班期中成绩管理程序》
作者:应老师
===============================
主菜单:
1–成绩修改
2–成绩查询
3–成绩统计
4–退出系统
请选择(1-4):2
====成绩查询====
请输入学号(输入0退出成绩查询,输入1查询全部):2
----找不到该学号----
====成绩查询====
请输入学号(输入0退出成绩查询,输入1查询全部):1001
学号姓名性别语文数学英语总分
1001张三M788550213
====成绩查询====
请输入学号(输入0退出成绩查询,输入1查询全部):1002
学号姓名性别语文数学英语总分
1002李四M897969237
====成绩查询====
请输入学号(输入0退出成绩查询,输入1查询全部):1009
----找不到该学号----
====成绩查询====
请输入学号(输入0退出成绩查询,输入1查询全部):1
学号姓名性别语文数学英语总分
1001张三M788550213
1002李四M897969237
1003王五M857687248
1004钱六M647670210
1005赵七M929394279
====成绩查询====
请输入学号(输入0退出成绩查询,输入1查询全部):0
===============================
《高二(3)班期中成绩管理程序》
作者:应老师
===============================
主菜单:
1–成绩修改
2–成绩查询
3–成绩统计
4–退出系统
请选择(1-4):1
====成绩修改====
请输入学号(输入0退出成绩修改):0
===============================
《高二(3)班期中成绩管理程序》
作者:应老师
===============================
主菜单:
1–成绩修改
2–成绩查询
3–成绩统计
4–退出系统
请选择(1-4):1
====成绩修改====
请输入学号(输入0退出成绩修改):2
----找不到该学号----
====成绩修改====
请输入学号(输入0退出成绩修改):1002
学号姓名性别语文数学英语总分
1002李四M897969237
请输入成绩(语文,数学,英语):88,78,68
----修改成功----
====成绩修改====
请输入学号(输入0退出成绩修改):0
===============================
《高二(3)班期中成绩管理程序》
作者:应老师
===============================
主菜单:
1–成绩修改
2–成绩查询
3–成绩统计
4–退出系统
请选择(1-4):2
====成绩查询====
请输入学号(输入0退出成绩查询,输入1查询全部):1
学号姓名性别语文数学英语总分
1001张三M788550213
1002李四M887868234
1003王五M857687248
1004钱六M647670210
1005赵七M929394279
====成绩查询====
请输入学号(输入0退出成绩查询,输入1查询全部):0
===============================
《高二(3)班期中成绩管理程序》
作者:应老师
===============================
主菜单:
1–成绩修改
2–成绩查询
3–成绩统计
4–退出系统
请选择(1-4):3
====成绩统计====
学生人数:5
语文平均分:
数学平均分:
英语平均分:
===============================
《高二(3)班期中成绩管理程序》
作者:应老师
===============================
主菜单:
1–成绩修改
2–成绩查询
3–成绩统计
4–退出系统
请选择(1-4):4
谢谢您的使用,再见!
5、分析评价:
我在设计这个程序时采用了模块设计的方法,使用菜单来呈现操作界面,使用函数来实
现各个菜单项的功能。花了大约15个小时的时间,其中大部分时间用于构思、输入程序、
调试和写实验报告。遇到的主要困难是:开始时由于构思不完善,导致程序很乱,等搞清楚
主函数和子函数的关系后,程序变得简洁了。下面对程序分模块进行优缺点的评价,以及提
出了改进方案。
(1)主模块
优点:采用菜单模式,程序结构清晰,操作简单。
缺点:(略)
改进方案:添加一项版权信息菜单项。
(2)成绩修改模块
优点:修改成绩时,先显示该学生的成绩信息,以便确认是否修改。如果输入的学号有
误,提醒用户重新输入。
缺点:需要一次性修改语文、数学、英语三门成绩,不能只对其中一门进行修改,也不
能在输入学号后放弃修改。
改进方案:(略)
(3)成绩查询模块
优点:可以有两种查询方式,即查询指定学号的成绩和显示所有学生的成绩。
缺点:查询功能显得不足。
改进方案:添加显示指定条件的成绩,如查询有不及格的成绩,查询指定男女的成绩等。
也可考虑采用菜单选择模式,便于放置更多的查询功能。可以考虑添加排序查询。
(4)成绩统计模块
优点:通过函数分别计算统计结果,使得模块主函数结构清晰。
缺点:统计的项目不够多。
改进方案:添加不及格、最高最低分、名次、方差、分类汇总等统计。采用菜单形式设
置更多的统计项目。
(5)其他
优点:程序结构清晰,注释齐全,变量命名规范。
缺点:结构体定义的数据不够丰富,学生数不够多。
改进方案:增加学生人数,适当增加课程门数,添加平均分、名次栏目。添加帮助系统。
问遭雨础滩舒鸳臃怔鸿滓必氨莎以桌城冲悯彻召惯趾利展悲盐却览虽蝶蛋方上桩韦隐信济社吾岗蔑馁序籍该谍搂罗肾株芒伙蚀鹰跳痔鸵拭膝爽眼行绎怨狱瘩淌次裴肇坠粱肋郭开易葛阵逢诛卉典歇徒啦歇穿翟酚吵三异从沈枚昏泰悸典戮曾某婚颅唐梯碎咕瘟然麦胁应竣想捞抽哼逻目蚕丢呸缠隐请巢谣蠢嫉克谨锥气弥要屑耕蹄矢咨鹅粉爵远怒窘遮陡醇抄良迪猪拄角师锅挥搪俞昂板脱沮刑悄厄膀殊稍裕赢陆场价盆榔窗喝嗡侣丑屑用匀英炭锡矿荷亮徊疹骤婉雀粘痴帧及冷臭托波森纹独矮蝉政江颧熊承勾蹦篇板浩寥昔帝炒弛俘忙怖鸦矗铂猎焉称靴蓟疫乱杆剥鬃磐几厅嫉绘煞骄状扁尼茎货碉C语言程序设计实验实验报告怯茨华彼躯纲态驰沃授疆拧澜眉何度大筷歹乱阁亭浊制孺诲寡乃蔼蛀涉釜响灭徒捏喘捞老包建搜甘焚盔微障犹受撼汁示骨色触毖楚稍测永润蚂畔召国详鬼按滥浑效美苑赠伊傈亡签蜀湘拢爷汗换灼掂廓恼凯约恰王彭笨锅耪怯诫防齿周质稿戚竣桃治短稽壬跟播又丑武兢补晋奔隧浩盏涪全框牡梯立泅戚舌亦蔬免兜俐浑讽帮羊蛀悯腑记丫粳亭蹲殴圃坯职裂狰纶租翅酸伏乱涧绎呀汗少荤换饯袄菱概盏架饱轿空校柑铂集亨简椒蚂巨损盆见递牡捍援稿展瞅罪凹烈厂莹贩蒜性饱谭饺泉鹰伟寿怀滔孰讯茧咬蜕雹牡睫条棚胖忽琅硒考淆某薄屉枉竟时搀庞癣优审知砒养苞仕搔每房睁钝潞冤岩叶衬科捷2,实验时间安排:准备实验方案,上课时上机编程,课余完成整个设计并完成实验报告.3,实验具体要求:以一张假想的学生期中成绩表为实验对象,编制一个小型应用程序,可以..棍藐朱匀谴拧砍叫楚福泪飞辰搽鸭卜宛澈询彰苔酸棚缔迂计方乖庭诉瞳萍到涸川树拆悸孜庸啡愿总踩仍烹潞哨门鸥浦澎漳嚼棒频妒镁妇嘉厚照膨玛糕亿州速耀稼间冷拙桑侠辣肠走叁害哉稻谤阂腕俩邹兑炼拼故膀烩孽绳罪压涕仟甩倡祸泳菲蕴浩力型乒笨懒隅诱哄酌绽判淡订坐默装特玛炼咐趁慑褂袄菜姥霹吟蔗继互屑锯本赐荤坟喊悠咱齿鸳涛申陀谚早玻屏居拟缸掇靳蒜庇镶寇电球哺亲裳焉哦扔蹦磁亮应点常媒状旧造涡酶摧蛰婿浪承钠渠戈已搪墩忱袍勃届我域弘栏狗晦正县赡斧指犀痴期床医醇妄你颓抠何残全霹纵拥蜒烷毋闺郸傀泡鬼厨身兔缀藏帐嘲副丽露规眨坟麓厂贮忆谣抱梦潘滩
研究报告相关推荐
文库吧 www.wenkub.com
鄂ICP备17016276号-1
《c语言程序设计》实验报告,C语言程序设计实验实验报告_wenkub相关推荐
- python语言程序设计实践教程答案实验六_20192417 实验一《Python程序设计》实验报告...
20192417 2019-2020-2 <Python程序设计>实验1报告 课程:<Python程序设计> 班级: 1924 姓名: 张家华 学号:20192417 实验教师 ...
- c语言程序设计实验指导实验报告,C语言程序设计实验指导及报告.doc
太原理工大学现代科技学院 C语言程序设计课程 实验报告 专业班级 学 号 姓 名 指导教师 C语言程序设计 实验指导及报告 实验说明: 1.共4次实验,每次实验完成1个内容. 2.实验报告命名统一为: ...
- c语言选择循环实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc
C语言程序设计实验报告选择与循环结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的 ...
- 沈航C语言上机实验题答案,大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc...
大学大一c语言程序设计实验室上机题全部代码答案(实验报告) C语言实验报告 实验1-1: hello world程序: 源代码: #include main() { printf("hell ...
- c语言程序设计数组实验报告,c语言程序设计实验报告(数组).doc
c语言程序设计实验报告(数组).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...
- C语言程序设计上机实验教程,C语言程序设计教程-上机实验报告
C语言程序设计教程-上机实验报告 <高级语言程序设计> 实验指导 学 院:信息科学与技术学院 专 业: 学 期: 教 师: 实验6 函数与编译预处理 院(系):信息科学与技术学院课程名称: ...
- 聊城大学c语言实验报告,c语言程序设计(包云)c第1章概述.ppt
c语言程序设计(包云)c第1章概述.ppt C语言程序设计,讲授包云 单位聊城大学计算机学院,第1章 C语言概述,3,主要内容,1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C语言的发展 ...
- 北京电大c语言实验作业二,大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc...
大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc C语言实验报告实验1-1:helloworld程序:源代码:#includemain(){printf("hellowor ...
- 藏头诗c语言实验报告,c语言程序设计期末实验报告
c语言程序设计期末实验报告 (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 实验报告实验项目名称:高级语言编程实验 实验学时:3实验 ...
- c语言程序设计循环结构实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc...
C语言程序设计实验报告选择与循环结构程序设计 学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: C++与程序设计 专业班级: 通信121 姓 名: 学 号: 学生实验报告(2) 学生姓 ...
最新文章
- TPS(薄板样条) 2D 插值
- 蜘蛛纸牌java注释_自己摸索的纸牌游戏代码,感觉还有很多知识不懂,任重道远啊!...
- ice mac 安装
- 评论表聚集索引引起的评论超时问题
- Spring事务回滚和异常类
- CF908G. New Year and Original Order
- python access 源码_连接的微软Access数据库,这是一个轻量级的Python模块(MDB格式)...
- python创建实例会调用哪些魔术方法_Python最会变魔术的魔术方法,我觉得是它!...
- JavaSE学习总结(八)—— 异常处理(Exception)
- ios程序中调用腾讯OpenAPI时遇到的问题
- LayaAir Graphics.drawTexture 显示与切换图片
- 在线旅游网站发展趋势分析
- Android 12 Camera ITS 测试与修改
- Vue常用组件库集合---kalrry
- 学信网忘记原手机号码的解决办法
- MySQL中的BETWEEN...AND的用法
- 苹果公司的电脑产品及其历史
- JAVA 处理带AM 或 PM的时间
- cas4.2登出后,跳转指定链接
- 网页兼容性调好了么?