C语言课程设计报告单项选择题标准化考试系统_第1页
C语言课程设计报告单项选择题标准化考试系统_第2页
C语言课程设计报告单项选择题标准化考试系统_第3页
C语言课程设计报告单项选择题标准化考试系统_第4页
C语言课程设计报告单项选择题标准化考试系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z仲恺农业工程学院课程设计报告单项选择题标准化考试系统课程名称C语言程序设计姓名院〔系〕信息科学与技术学院专业班级学号指导教师目录1目的插入试题模块:确定插入题目数,选择需要插入的题目类型,翻开文件,插入题目,关闭文件.删除试题模块:确定删除题号,选择需要删除的题目类型,读出文件,删除题目,并创立一个新的文件覆盖原文件,把剩下的试题读入文件.3系统设计3.1主要构造体题目,选项A,B,C,D,答案structTest{ charquestion[200];charoption1[100]; charoption2[100]; charoption3[100]; charoption4[100];charkey;}3.2主要功能函数intaddtest()//增加试题voidanswerq()//答题voidchangeface()//选择试题类型界面intchangeopenfile()//选择翻开文件intpare(chara,charb)//答案对照voidreadfile(inti,Testp)//显示题目voidshowtest(intn,intm)//展示题目或删除构造体元素voidstartinterface()//开场界面

4系统调试(1)操作界面(2)选择界面:(3)答题:(4)插入试题:(5)显示题库试题(6)删除题目:(7)退出系统总结经过这两个星期的C语言课程设计的训练,我学到了很多,最主要的一点是怎样去自学一种东西,怎样去找到你所需要的资料,并在短时间把它学会,运用到你所需要的方面。这个过程是很困难的,要花费很多的时间和精力,但是,在事情过后,自己就会发现自己已经在这个过程中学到了自己想要的东西,这种获得是更深刻的。在做这个C语言课程设计的时候,我原先也是知之甚少,什么是构造体数据,什么是定义类型,怎样在一个main函数中调用别的定义函数,等等,可以说是一无所知。然而,在这门课程设计中,这些方面却是特别重要的,可以说,掌握了这个,你就完全可以完成自己的任务。这就要求我们要自己去学,自己去探索。当然,跑图书馆是必不可少的,还有,身边有非常丰富的网络资源给我们好好利用,百度就是个很不错的地方。这样就从另一方面锻炼了我们检索知识获取信息的能力,在这个过程中,可以学到的是一种提升自我的能力。当然,由于个人能力所限,这份课程设计有一些别的方面还是要参考人家的的资料,在读懂别人材料的同时,自己取人所长,补己之短,经过屡次的调试,总结,最后交出一份自己比拟满意的答卷。通过这次的课程设计,让我进一步的了解到C语言在我们日常生活中的重要性,而且,也更进一步的激发了我学习这门语言的兴趣.经过这次的训练,我相信自己以后会用更多的时间来把这门语言学好,掌握好这门必修的根底语言。源程序清单*include<stdio.h>*include<stdlib.h>*include<time.h>*include<conio.h>*defineMA*50typedefstructTest{charquestion[200];charoption1[100];charoption2[100];charoption3[100];charoption4[100];charkey;}Test;FILE*fp;voidchangeface()//选择试题类型界面{printf("\n\n\n\n\n");printf("\t\t\n");printf("\t\t|选择试题类型|\n");printf("\t\t||\n");printf("\t\t|1.数据构造|\n");printf("\t\t||\n");printf("\t\t|2.c/c++|\n");printf("\t\t||\n");printf("\t\t\n");}intaddtest()//增加试题{inti,num;Testtitle[MA*]={"\0"};FILE*fp;changeface();do{scanf("%d",&i);fflush(stdin);switch(i){case1:fp=fopen("questionbank1.t*t","a+");break;case2:fp=fopen("questionbank2.t*t","a+");break;default:printf("你输入的指令不正确,请重新输入\n");}}while(i!=1&&i!=2);system("cls");while(1){printf("请输入要插入的题目数(<=50)\n");scanf("%d",&num);fflush(stdin);if(num<=MA*&&num>0)break;elseprintf("输入有误,请重新输入题目数\n");}for(i=0;i<num;i++){printf("请输入第%d道题题目,选项和答案:\n",i+1);//输入构造体元素容printf("请输入题目\n");gets(title[i].question);printf("请输入选项A:");gets(title[i].option1);printf("\n请输入选项B:");gets(title[i].option2);printf("\n请输入选项C:");gets(title[i].option3);printf("\n请输入选项D:");gets(title[i].option4);fflush(stdin);printf("\n请输入答案:\n");scanf("%1c",&title[i].key);fflush(stdin);system("cls");}for(i=0;i<num;i++){printf("%d.%s\n%s\t%s\t",i+1,title[i].question,title[i].option1,title[i].option2);printf("%s\t%s\n答案:%c\n",title[i].option3,title[i].option4,title[i].key);}if(fp==NULL)return0;else{for(i=0;i<num;i++)fprintf(fp,"%s\t%c\n%s\t%s\t%s\t%s\n",title[i].question,title[i].key,title[i].option1,title[i].option2,title[i].option3,title[i].option4);fclose(fp);}return1;}voidstartinterface()//开场界面{printf("\n\n\n\n\n");printf("\t\t\n");printf("\t\t|单项选择题标准化考试系统|\n");printf("\t\t||\n");printf("\t\t|1.答题|\n");printf("\t\t||\n");printf("\t\t|2.试题插入|\n");printf("\t\t||\n");printf("\t\t|3.显示题库题目|\n");printf("\t\t||\n");printf("\t\t|4.删除试题|\n");printf("\t\t||\n");printf("\t\t|5.退出系统|\n");printf("\t\t\n");}intchangeopenfile()//选择翻开文件{inti;do{scanf("%d",&i);fflush(stdin);switch(i){case1:fp=fopen("questionbank1.t*t","r+");break;case2:fp=fopen("questionbank2.t*t","r+");printf("rrrrrrrrr\n");break;default:printf("你输入的指令不正确,请重新输入\n");}}while(i!=1&&i!=2);system("cls");returni;}intpare(chara,charb)//答案对照{if(a==b||(a-32)==b){printf("答对了\n");return1;}else{printf("答错了\n正确答案是%c\n",b);return0;}}voidreadfile(inti,Testp)//显示题目{printf("%d.%s\n",i+1,p.question);printf("A.%s\t",p.option1);printf("B.%s\n",p.option2);printf("C.%s\t",p.option3);printf("D.%s\n",p.option4);}voidanswerq()//答题{Testtitle[MA*];intn,i,j,k,num[MA*],score,sum=0;charh;if(fp==NULL){printf("\n不能翻开questionbank.dat文件,按任何键退出程序!\n");getch();e*it(-1);}for(j=0;!feof(fp);j++)//统计文件中的构造体项数{fscanf(fp,"%s\t%c\n%s\t%s\t%s\t%s\n",&title[j].question,&title[j].key,&title[j].option1,&title[j].option2,&title[j].option3,&title[j].option4);}fclose(fp);while(1){printf("请输入需要答题的题目数\n");scanf("%d",&n);//n必须小于jfflush(stdin);if(n>j)printf("输入的题目数大于题库的题目数,请重新输入\n");elsebreak;}for(i=0;i<n;i++)//产生n个不同的随机数{srand(time(NULL));num[i]=rand()%j;while(1){for(k=0;k<i;k++)//排除一样随机数if(num[k]==num[i])break;if(k==i)break;num[i]=rand()%j;}readfile(i,title[num[i]]);printf("输入答案:");scanf("%c",&h);fflush(stdin);score=pare(h,title[num[i]].key);sum+=score;}printf("答对%d题\n",sum);printf("按任意键返回主界面\n");getch();}voidshowtest(intn,intm)//展示题目或删除构造体元素{inti,j,k;Testtitle[MA*];if(fp==NULL){printf("\n不能翻开questionbank.dat文件,按任何键退出程序!\n");getch();e*it(-1);}for(j=0;!feof(fp);j++)//统计文件中的构造体项数{fscanf(fp,"%s\t%c\n%s\t%s\t%s\t%s\n",&title[j].question,&title[j].key,&title[j].option1,&title[j].option2,&title[j].option3,&title[j].option4);}fclose(fp);for(i=0;i<j;i++)readfile(i,title[i]);if(n==1){printf("按任意键返回主界面\n");getch();system("cls");}else{printf("输入需要删除的题号:\n");scanf("%d",&k);switch(m){case1:fp=fopen("questionbank1.t*t","w+");break;case2:fp=fopen("questionbank2.t*t","w+");break;}for(i=0;i<j;i++){if(k-1==i)continue;fprintf(fp,"%s\t%c\n%s\t%s\t%s\t%s\n",title[i].question,title[i].key,title[i].option1,title[i].option2,title[i].option3,title[i].option4);}fclose

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论