C程序设计综合实验报告信管.docx
《C程序设计综合实验报告信管.docx》由会员分享,可在线阅读,更多相关《C程序设计综合实验报告信管.docx(15页珍藏版)》请在冰豆网上搜索。
C程序设计综合实验报告信管
华北科技学院计算机系综合性实验
实验报告
课程名称C程序设计
实验学期2011至2012学年第二学期
学生所在系部计算机学院
年级11级专业班级信管B11-1班
学生姓名学号
任课教师
实验成绩
计算机系制
《C程序设计》课程综合性实验报告
开课实验室:
计算机基础实验室2012年06月28日
实验题目
学生成绩管理系统的设计
一、实验目的
通过该实验把C语言中基本知识(如:
顺序结构、选择结构、循环结构、数组、函数、指针、链表等)得到综合应用。
完成学生成绩管理系统基本功能设计,提高学生的编程能力和分析问题、解决问题的能力。
二、设备与环境
硬件:
多媒体计算机
软件:
Windows系列或DOS系列的操作系统、C语言
三、实验内容
1、实验内容
对学生基本信息,包括学号、姓名、至少三门课成绩。
1学生基本信息录入;
2学生基本信息的输出;
3按学号查询学生信息;
4按学号修改某学生信息并输出;
5求每个人平均成绩;
6删除某学生信息;
7添加某学生信息
8输出平均分大于80分的同学信息;
9根据总成绩或平均成绩综合排名;(此功能用链表处理的同学可不做)
2、实验要求
a、用结构体数组或链表存储学生信息
b、基本功能用函数实现;
c、至少完成实验内容中4个功能,学生可以自己增加或减少题目功能;
d、程序能正确执行、输入与输出有必要的提示信息、界面美观;
e、用菜单调用加分。
用链表加分。
3、最后结果输出。
要求:
输出格式要界面直观、清晰大方、格式规范。
四、实验结果及分析
1、实验运行过程及分析
2、运行结果
3、心得体会
通过c语言的学习我初步了解了c语言这门学科,虽然学起来会有一定的难度。
但是我觉得要学好这门学科是还是要学好的,为学其他语言打下一个基础。
通过这次期末实验报告的完成,自己充分的认识到了在这门学科上的所认知的局限与自己学习不足,但同时通过这次的实验报告自己的收获也颇丰,这个学习系统将以往所有的知识全部串联起来,是对我们对基础知识掌握的一次大的考验。
C语言是与我的专业的一门基础学科,这一学期的不足,比如在指针方面的知识运用的还不是很理想,结构体方面运用的还是不太熟,知识的范围还只是局限在书本上,课外的了解的还是不太多,希望在下学期的学习中可以能够有所改善,同时也希望在老师的指导下能够进步更大。
C语言的学习,我找到了一些C语言的学习上的小窍门,我相信这将有助于我对这一门学科的学习。
C语言这门学科是一门灵活,时间能力强,知识运用丰富的课程,当然,在这门学科中遇到的问题也是多不可数,通过一次一次对困难的克服,让我信心倍增,尤其是能把学生管理系统的基本功能的代码写出来,一种自豪感油然而生,这种小小的成就感增加了我对程序设计语言的学习的信心,希望在以后程序设计语言的学习上面有更大的突破。
程序源代码:
#include
#include
#include
#include
#defineN4
#defineE8
#defineS4
#defineW6
structstudent
{
intnum;
charname[E];
intscore[S];
}stu[W],stud,stun,student;
intave[W]={0},sum[W]={0};
inti,j,k,count=0;
voidInput(structstudentstu[])/*学生信息输入*/
{
structstudents;
for(i=0;i{
printf("\npleaseinput%dof%d\n",i+1,N);
printf("num:
");
scanf("%d",&stu[i].num);
printf("name:
");
scanf("%s",&stu[i].name);
for(j=0;j
{
printf("score%d:
",j+1);
scanf("%d",&stu[i].score[j]);
}
count++;
printf("Thestatisticalnumberofstudents:
count=%d",count);
printf("\n");
}
}
voidPrint(structstudentstu[])/*学生信息输出*/
{
if(count==i)
{
printf("\nNumNameScorelScore2Score3Score4\n");
for(i=0;i{
printf("%-6d%-10s",stu[i].num,stu[i].name);
for(j=0;j<4;j++)
printf("%-12d",stu[i].score[j]);
printf("\n");
}
}
if(count!
=i)
{
printf("\nNumNameScorelScore2Score3Score4\n");
for(i=0;i{
printf("%-6d%-10s",stu[i].num,stu[i].name);
for(j=0;j<4;j++)
printf("%-12d",stu[i].score[j]);
printf("\n");
}
for(i=N;i{
printf("%-6d%-10s",stu[count].num,stu[count].name);
for(j=0;j<4;j++)
printf("%-12d",stu[count].score[j]);
printf("\n");
}
}
}
voidAverage(structstudentstu[])/*求平均分和总分*/
{
if(count==i)
{
for(i=0;i{
for(j=0;j
{
sum[i]=sum[i]+stu[i].score[j];
}
ave[i]=sum[i]/S;
}
printf("Numnameavesum\n");
for(i=0;i{
printf("%-8d%-8s%-6d%-6d",stu[i].num,stu[i].name,ave[i],sum[i]);
printf("\n");
}
}
else
{
for(i=0;i{
for(j=0;j
{
sum[i]=sum[i]+stu[i].score[j];
}
ave[i]=sum[i]/S;
}
printf("Numnameavesum\n");
for(i=0;i{
printf("%-8d%-8s%-6d%-6d",stu[i].num,stu[i].name,ave[i],sum[i]);
printf("\n");
}
for(i=N;i{
for(j=0;j
{
sum[count]=sum[count]+stu[count].score[j];
}
ave[count]=sum[count]/S;
}
for(i=N;i{
printf("%-8d%-8s%-6d%-6d",stu[count].num,stu[count].name,ave[count],sum[count]);
printf("\n");
}
}
}
voidAdd(structstudentstu[])/*添加新学生信息*/
{
if(count==6)
{
printf("Studentachievementtableisfull!
");
return;
}
count+=1;
printf("Newnum:
");
scanf("%d",&stu[count].num);
printf("Newname:
");
scanf("%s",&stu[count].name);
for(j=0;j
{
printf("Newscore%d:
",j+1);
scanf("%d",&stu[count].score[j]);
}
printf("\n");
}
voidmenu()/*主目录*/
{
printf("---------------------------------------------------------------\n");
printf("\n\n");
printf("*********Studentachievementmanagementdirectory*********\n");
printf("\n");
printf("1Inputstudentachievementinformation.\n");
printf("2Querystudentachievementinformation.\n");
printf("3Deletestudentachievementinformation.\n");
printf("4Addtostudentperformanceinformation.\n");
printf("5Theaveragescoreandtotalscoreofstudentachievement.\n");
printf("6Theoutputofstudentachievementinformation.\n");
printf("\n\n");
printf("---------------------------------------------------------------\n");
printf("\n");
}
voidmain()
{
intnum;
printf("*****Studentachievementmanagementsystem*****\n");
printf("\n\n");
menu();
printf("Pleasechoosethecorrespondingnumber:
");
scanf("%d",&num);
while(num!
=0)
{
switch(num)
{
case1:
Input(stu);break;
case2:
Search(stu);break;
case3:
Delete(stu);break;
case4:
Add(stu);break;
case5:
Average(stu);break;
case6:
Print(stu);break;
default:
break;
}
menu();
printf("Pleaseinputthecorrespondingoptionsnumber:
");
scanf("%d",&num);
}
getch();
}
教师评价
评定项目
A
B
C
D
评定项目
A
B
C
D
算法正确
界面美观,布局合理
程序结构合理
操作熟练
语法、语义正确
解析完整
实验结果正确
文字流畅
报告规范
题解正确
其他:
评价教师签名:
2012年6月29日