if(s[j].avscore
{strcpy,s[j].name);
strcpy,s[j].num);
=s[j].avscore;
strcpy(s[j].name,s[j+1].name);
strcpy(s[j].num,s[j+1].num);
s[j].avscore=s[j+1].avscore;
strcpy(s[j+1].name,;
strcpy(s[j+1].num,;
s[j+1].avscore=;}}
4.2fame,s[i].num,s[i].avscore);}}
错题重做
测试过程中的已将错题和错题的答案分别存入到和文件中,直接进行打开存储错题的文件逐个读取错题,这时利用scanf函数输入答题者的答案,最后再打开储存错题答案的文件进行核对正确答案具体程序为:
voidrework()体实现过程如下;
voidFileCopy()um,".txt");xt"连接到字符串student[0].num后,即以学号为文件名,后缀为.txt的文件中,保存在工程目录下
if((in=fopen("","r"))==NULL)
{in=fopen("","w+");
printf("无文件记录,已新建.\n");}
if((out=fopen(s[0].num,"w"))==NULL)xt文件(如),"w"方式为只写方式
{printf("打开文件失败\n");
exit(0);}
while(!
feof(in))um);问题三:
错题重做有一定的困难,怎样将错题一个个及记录下来,并且能读出来重新做,产生了一定的困难。
解决方法:
采用了文件记录错题和错题的答案,用fgetc函数实现了读出记录的错题,从而实现了错题重做功能。
此外在调试过程中也遇到了相当多的其他问题,从整体结构的设计,到各个功能的实现.
5课程设计总结
这次的课程设计实验是对我们进入大学以来学习C语言结果的是一次大考验。
自己动手,发现问题和解决问题。
并发现了许多自己的不足,平时没掌握的知识在实践中暴漏,经过不断的思考,查阅书籍和上网查资料及上机运行,解决了大部分问题,还稍微有些小问题。
但是,我相信在今的学习中,一定能把它解决好。
当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。
我不仅巩固《C语言程序设计》课程学习的内容,掌握设计的基本方法,强化上机动手能力。
。
本次课程设计编写的小学数学测试系统,它具有随机出题、自动评分、自动排名,查看正确答案、错题重做等功能,本系统功能强大,程序大,编写难度相当大,在编程中,很多知识,几乎是一片空白。
不过后来通过书本和网络慢慢知道了一点。
通过这次课程设计,使我更加深刻地体会到c语言程序编写过程的严谨与细致,还有无论做任何事都要有耐心。
也懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,是生活也更加好。
谢谢田老师这几天时间对我们指导
计算机科学与技术系课程设计评分表
课程名称:
C语言程序设计
项目
评价
设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
答辩陈述与回答问题情况
课程设计周表现情况
综合成绩
教师签名:
日期:
附录:
源程序
#include<>ame);
printf("输入学号:
");
scanf("%s",&s[0].num);
fwrite(&s[0],sizeof(structStudent),1,fp);ame);um);
fclose(fp);n");}
while(!
feof(fp))n");
fclose(fp);
exit(0);}}}
/*--------------------------------------------------------------------------------------------------------------------------------*/
voidAddition(intnumber)单-------------------------*\n");
printf("*-------------------------2.一般-------------------------*\n");
printf("*-------------------------3.困难-------------------------*\n");
printf("*-------------------------------------------------------------*\n\n\n");
printf("请选择难度:
");scanf("%d",&m);system("cls");单-------------------------*\n");
printf("*-------------------------2.一般-------------------------*\n");
printf("*-------------------------3.困难-------------------------*\n");
printf("*-------------------------------------------------------------*\n\n\n");
printf("请选择:
");scanf("%d",&m);system("cls");单-------------------------*\n");
printf("*-------------------------2.一般-------------------------*\n");
printf("*-------------------------3.困难-------------------------*\n");
printf("*-------------------------------------------------------------*\n\n\n");
printf("请选择:
");}
scanf("%d",&m);
system("cls");单-------------------------*\n");
printf("*-------------------------2.一般-------------------------*\n");
printf("*-------------------------3.困难-------------------------*\n");
printf("*-------------------------------------------------------------*\n\n\n");
printf("请选择:
");
scanf("%d",&m);system("cls");.1f.1f.1f.1f.1fvscore=A/nu;
fp5=fopen("","a+");
fprintf(fp5,"%s%s%f\n",s[0].name,s[0].num,s[0].avscore);ame,s[i].num,&s[i].avscore);}vscore
{
strcpy,s[j].name);um);
=s[j].avscore;
strcpy(s[j].name,s[j+1].name);
strcpy(s[j].num,s[j+1].num);
s[j].avscore=s[j+1].avscore;
strcpy(s[j+1].name,;
strcpy(s[j+1].num,;
s[j+1].avscore=;
}
4.2fame,s[i].num,s[i].avscore);}}
/*--------------------------------------------------------------------------------------------------------------------------------*/
voidTestOver()um);um,".txt");xt"连接到字符串student[0].num后,即以学号为文件名,后缀为.txt的文件中,保存在工程目录下
if((in=fopen("","r"))==NULL)
{in=fopen("","w+");
printf("无文件记录,已新建.\n");
}
if((out=fopen(s[0].num,"w"))==NULL)xt文件(如),"w"方式为只写方式
{printf("打开文件失败\n");
exit(0);
}
while(!
feof(in))法测试-----------------------*\n");
printf("*--------------------------2.减法测试-----------------------*\n");
printf("*--------------------------3.乘法测试-----------------------*\n");
printf("*--------------------------4.除法测试-----------------------*\n");
printf("*--------------------------5.返回主菜单----------------------*\n");
printf("*------------------------------------------------------------*\n\n\n");
intchoose,thnum;5/10/205/10/205/10/205/10/205/10/205/10/205/10/205/10/20始测试-----------------------*\n");
printf("*--------------------------2.查看结果-----------------------*\n");
printf("*--------------------------3.查看排名-----------------------*\n");
printf("*--------------------------4.错题重做-----------------------*\n");
printf("*--------------------------5.结束测试----------------------*\n");
printf("*-----------------------------------------------------------*\n\n\n");
intchoose,time;
printf("选择功能:
");
scanf("%d",&choose);
while(choose<1||choose>5)//不在以上所列的功能以内时循环
{
printf("超出功能范围,请重新选择(1---5):
");
scanf("%d",&choose);
}
switch(choose)//switch语句选择执行功能
{
case1:
//功能1
system("cls");
printf("*************************************************************\n");
{printf("请计时输入开始时间(点,分):
");//开始时间
scanf("%d,%d",&hourA,&minA);
system("cls");}
//显示时间
/*gettime(&tim);printf("\n开始时间为:
%02d:
%02d:
%02d\n",,,;*/
begain();
break;
case2:
//功能2
system("cls");
printf("\n\n");
ShowResult();//调用此函数,即输出测试结果
ChooseFunc();
break;
case3:
//功能2
system("cls");
printf("\n\n");
sort();//调用此函数,即输出测试结果
ChooseFunc();
break;
case4:
//功能4
system("cls");//清屏
printf("\n\n");
rework();//调用此函数,即输出测试结果
ChooseFunc();
break;
case5:
//功能5
system("cls");//清屏
printf("\n\n");
{printf("请输入结束时间:
点,分");//结束时间
scanf("%d,%d",&hourB,&minB);
time=(hourB-hourA)*60+(minB-minA);
printf("*-----------------------------------------------------------------*\n");
printf("*------------------小朋友你答题用时为:
---------------------------*\n");
printf("*-----------------%d分钟--------------------------------*\n",time);}
FileCopy();//调用此函数,即复制测试结果
TestOver();
break;}}
/*----------------------------------------------------------*/
/***********************************************************************************************************************************/
voidmain()
{
FILE*fp,*fp2,*fp3;
fp=fopen("","w");//以只写方式打开文件,如果文件存在,则清空,这就是为什么结束程序时要复制测试结果了
fp2=fopen("","w");//清空之前数据
f