最新单项选择题标准化考试系统设计(C语言实训)

合集下载

c语言课程设计报告单项选择题标准化考试系统设计

c语言课程设计报告单项选择题标准化考试系统设计
2.1系统总框图
2.2主要结构组与函数
题目,选项ABCD答案:
typedef struct Exam
{
char question[1024];
char A[100];
char B[100];
char C[100];
char D[100];
char correct; //正确答案选项
}Exam;
void load_question();
计算机程序设计基础(C语言)
课程设计说明书
设计题目:单项选择题标准化考试系统设计
班级:
姓名:
学号:
2021年7月
填写格式及说明
1、系统概述
本系统是对学生测试的单项选择题标准化系统设计,顾名思义就是用于对学生的测试考量,方便进行学生的测试,同时也简化了老师的试题录入和判卷,是一个简单实用的考试系统。
2、数据结构设计
printf("1.导入试卷\n");
printf("2.试题录入\n");
printf("3.测试答题\n");
printf("4.浏览试题\n");
printf("5.保存退出\n");
printf("请选择:");
scanf("%d",&i);
fflush(stdin);
return i;
}
int main()
p = strtok(NULL, "\t");
questions[count].correct = p[0];
count++;
}
}

单项选择题考试标准化系统Word版

单项选择题考试标准化系统Word版

天津城市建设学院课程设计任务书2010—2011学年第1学期电子与信息工程系专业班级课程设计名称:数据结构课程设计设计题目:单项选择题考试标准化系完成期限:自 2012 年 1 月 2 日至 2012 年 1 月 6 日共 1 周一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。

二、设计要求(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。

凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;(4)认真编写课程设计报告。

三、设计内容单项选择题考试标准化系统设计一单项选择题标准化考试系统,实现考试的标准化管理。

实现试题录入。

试题抽取,答题和叛卷功能。

四、参考文献1.王红梅.数据结构.清华大学出版社2.王红梅.数据结构学习辅导与实验指导.清华大学出版社3.严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社目录一需求分析 (3)该设计是设计一个单项选择题考试标准化系统,使用动态链表设计这个程,它的功能主要有: (3)二、概要设计 (3)1程序设计组成框图 (3)2程序流程框图 (4)三、详细设计 (5)算法的设计 (5)四、调试分析 (6)五、核心源程序清单和执行结果 (6)1源程序 (6)2执行结果 (12)六心得体会 (14)七参考文献 (14)一需求分析该设计是设计一个单项选择题考试标准化系统,使用动态链表设计这个程,它的功能主要有:(1)用文件保存试题库。

(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时增加试题到试题库中(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可实现输入自己的答案(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩二、概要设计1程序设计组成框图2.程序流程框图三、详细设计算法的设计主函数的实现:int main(){ char x;while(1){system("cls"); //清屏cout<<"+---------------------------------------------------------------------+"<<endl;cout<<" | 1.查看试题库 2.录入新的试题|"<<endl;cout<<"+---------------------------------------------------------------------+"<<endl;cout<<" | 3.清空试题库 4.随机抽取试题|"<<endl;cout<<"+---------------------------------------------------------------------+"<<endl;cout<<" | 5.做练习题 6.自动判卷|"<<endl;cout<<"+---------------------------------------------------------------------+"<<endl;cout<<" | 7.删除题目0.退出系统|"<<endl;cout<<"+---------------------------------------------------------------------+"<<endl;cout<<endl;cout<<" 请输入操作代码:";cin>>x;switch(x){case '1':read();system("pause");break;case '2':creat();write();break;case '3':clear();break;case '4':get();break;case '5':answer();break;case '6':mark();break;case '7':delet();break;default :cout<<"代码错误,请重输:"<<endl;system("pause");break;}}return 0;}一些重要的方法:void write() //录入文件void read() //从文件读取数据void get() //随机抽取试题void answer() //答题void mark() //评分四、调试分析每次进行抽取试题时就会出现错误,没法运行,后来发现只有先录入试题才能正常操作其他功能。

大学c语言实践考试题及答案

大学c语言实践考试题及答案

大学c语言实践考试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. -variableD. variable$答案:B3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World'D. 'Hello World'答案:A4. C语言中,以下哪个运算符用于逻辑与操作?A. &&B. ||C. !D. ~答案:A5. 下列哪个函数用于计算两个数的和?A. max()B. pow()C. sqrt()D. sum()答案:D6. 在C语言中,以下哪个关键字用于定义函数?A. intB. voidC. structD. function答案:B7. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][4];B. int array[3,4];C. int array(3)(4);D. int array[3 4];答案:A8. 下列哪个选项是C语言中正确的条件语句?A. if x > 0 then y = x;B. if x > 0 { y = x; }C. if x > 0 y = x;D. if (x > 0) y = x;答案:D9. 在C语言中,以下哪个选项是正确的无限循环?A. for(;;)B. while(1)C. do {} while(1)D. All of the above答案:D10. 下列哪个选项是C语言中正确的函数声明?A. int function();B. function int();C. int function int();D. int function(int x);答案:D二、填空题(每空2分,共20分)1. 在C语言中,使用________关键字可以定义一个指针变量。

C语言课程设计报告---单项选择题标准化考试系统

C语言课程设计报告---单项选择题标准化考试系统

《C语言程序设计》课程设计题目:单项选择题标准化考试系统专业:计算机科学与技术班级:计科1001目录《C语言程序设计》课程设计 (1)1. 程序分析与设计 (3)2.流程图 (3)3. 源程序清单 (3)4.调试过程 (4)参考文献 (5)附录 (5)单项选择题标准化考试系统1. 程序分析与设计系统给用户提供一个简单的人机界面,使用户可以根据提示输入操作项,调用相关的函数实现对应的功能,主要功能描述如下:①用文件保存试题库:每个试题包括题干、4个备选答案、标准答案,本模块的功能是将单链表中的信息存储到文本文件中,系统将提示用户输入文本文件名,确认后单链表中的信息存储到文本文件中;②试题抽取:从磁盘读取文本文件,可以随机的从中选取N个题目并显示出来给用户进行测验,每次从试题库中可以随机抽出N道题(N由键盘输入);③自动判卷:用户答完所选的题目后,系统可根据用答题户答案与标准答案的对比实现判卷并给出成绩;④试题录入:用户可以随时增加试题到试题库中,根据提示输入题目的主干、四个基本选项和一个标准答案;⑤退出:退出系统;⑥系统主控平台:显示该系统可以进行的操作选项,允许用户进行其想要进行的操作,包括添加试题信息、随机抽取试题、保存到文件和退出系统等;总体设计:1)添加试题(add()函数)首先建立单链表,调用input_exam()函数输入试题的基本信息,将用户输入试题的基本信息储存到单链表中,提示用户是否继续输入,用户输入“Y”或“y”,则调用add()函数实现继续添加试题的操作;用户输入“”或“”,则返回主菜单界面。

2)随机抽取试题(ran_choice()函数)首先用typedef定义试题的结构体类型的全局变量ran及rans,从键盘输入,将该数及单链表的头指针传给ran_choice()函数,调用rand()随机数产生函数及srand(seed)设置一个独特的随机数种子,运用for()循环产生N个随机数,根据指针运算从单链表中取出N个试题的信息并显示出来。

c语言标准化考试系统课程设计

c语言标准化考试系统课程设计

c语言标准化考试系统课程设计一、教学目标本课程的目标是让学生掌握C语言编程的基本知识和技能,能够运用C语言进行简单的程序设计。

具体目标如下:知识目标:理解C语言的基本语法、数据类型、运算符、控制结构等;掌握函数的定义和调用、数组的声明和使用、指针的概念和应用;了解程序的编译和运行过程。

技能目标:能够使用C语言编写简单的程序,解决实际问题;具备基本的编程思维和调试能力;能够阅读和理解C语言程序代码。

情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生分析问题和解决问题的能力;培养学生团队合作精神和自主学习能力。

二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.C语言基本语法和数据类型:变量声明、数据类型、运算符、表达式等。

2.控制结构:条件语句、循环语句、跳转语句等。

3.函数:函数的定义和调用、形参与实参、局部变量和全局变量等。

4.数组和指针:一维数组、多维数组、指针的概念和应用等。

5.程序的编译和运行:编译过程、运行过程、调试技巧等。

6.实战项目:根据所学知识,完成一些实际的编程项目,提高学生的编程能力。

三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符等知识,为学生提供清晰的学习思路。

2.案例分析法:通过分析实际案例,让学生理解控制结构、函数、数组等知识在程序设计中的应用。

3.实验法:让学生动手编写程序,培养学生的编程能力和调试能力。

4.讨论法:学生进行小组讨论,分享学习心得和编程经验,提高学生的团队合作精神和自主学习能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材。

2.参考书:《C Primer Plus》、《C和指针》等。

3.多媒体资料:教学PPT、视频教程等。

4.实验设备:计算机、编程软件(如Code::Blocks、Visual Studio等)。

c考试系统课程设计

c考试系统课程设计

c 考试系统课程设计一、课程目标知识目标:1. 学生能够理解C考试系统的基本组成部分及其功能,掌握相关的专业术语。

2. 学生能够掌握C考试系统中常见题型的出题原则和解题策略。

3. 学生能够运用C语言知识,分析并解决实际编程问题。

技能目标:1. 学生能够运用C考试系统进行自主学习和在线测试,提高自我评价和解决问题的能力。

2. 学生能够通过C考试系统,熟练掌握C语言的语法和编程技巧。

3. 学生能够运用所学知识,设计并实现简单的C语言程序。

情感态度价值观目标:1. 培养学生积极的学习态度,激发学生对计算机编程的兴趣和热情。

2. 增强学生的团队合作意识,培养学生良好的沟通能力和协作精神。

3. 培养学生的创新意识,鼓励学生勇于尝试,不断探索新知识。

课程性质:本课程为C语言编程实践课程,结合C考试系统,注重培养学生的实际操作能力和解决问题的能力。

学生特点:学生处于高年级阶段,具备一定的C语言基础,学习能力强,具备一定的自学能力和团队协作能力。

教学要求:教师应充分运用C考试系统,结合学生的特点,设计丰富多样的教学活动,引导学生主动参与,提高学生的编程实践能力。

同时,关注学生的学习过程,及时给予反馈,确保课程目标的实现。

通过本课程的学习,使学生能够更好地掌握C语言知识,为后续学习打下坚实基础。

二、教学内容本课程教学内容主要包括以下几部分:1. C考试系统概述:介绍C考试系统的基本功能、操作流程和注意事项。

2. C语言基础知识回顾:复习C语言的基本语法、数据类型、运算符、控制语句等,为后续学习打下基础。

3. 题型分析与解题策略:针对C考试系统中常见的题型,如选择题、填空题、编程题等,进行深入剖析,总结解题方法和技巧。

4. 编程实践:结合C考试系统,进行编程实践,包括顺序结构、循环结构、函数、数组、指针等内容的练习。

5. 案例分析与讨论:分析典型的C语言编程案例,引导学生运用所学知识解决实际问题,提高学生的编程能力。

c 单项选择题标准化考试系统

c  单项选择题标准化考试系统

c 单项选择题标准化考试系统在现代教育体系中,考试是对学生学习成果的一种重要评估方式。

而单项选择题作为其中的一种形式,在标准化考试系统中扮演着至关重要的角色。

本文将就单项选择题标准化考试系统进行探讨,分析其特点和优势,并提出一些改进建议。

首先,单项选择题作为标准化考试系统的一部分,具有明确的题目结构和选项设置。

这种题型要求考生在给定的选项中选择最符合题意的答案,具有一定的客观性和标准性。

这种特点使得单项选择题在大规模考试中得以广泛应用,例如高考、托福、雅思等。

其次,单项选择题的设计可以全面覆盖考试范围,从而有效地检验学生的知识掌握情况。

通过设计不同难度和类型的题目,可以全面地考察学生对知识点的掌握程度,从而更加客观地评价学生的学习成果。

另外,单项选择题的批改和成绩统计相对简便快捷。

通过自动化的评分系统,可以快速准确地对学生的答题情况进行统计和分析,节约了人力和时间成本。

然而,单项选择题也存在一些不足之处。

首先,它可能会导致学生的应试心理过重,而忽视了对知识的深入理解和应用能力的培养。

其次,单项选择题的设计需要十分严谨和精准,一旦出现错误的选项或者模糊的题意,就可能导致考生的答题错误,影响了评价的准确性。

为了改进单项选择题的考试系统,我们可以采取一些措施。

首先,可以适当增加题目中的案例分析和实际应用题型,从而更好地考察学生的综合能力。

其次,可以加强对题目设计的质量把控,确保题目清晰明了,选项准确无误。

此外,也可以结合现代技术手段,开发更加智能化的评分系统,提高评分的准确性和效率。

总的来说,单项选择题作为标准化考试系统的一部分,具有一定的优势和不足之处。

通过合理的设计和改进,可以更好地发挥其作用,促进学生的全面发展和知识水平的提高。

希望未来能够有更加科学合理的考试评价体系,为学生的学习和成长提供更好的支持和指导。

c考试系统课程设计

c考试系统课程设计

c考试系统课程设计一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握C考试系统的基本原理、方法和应用;技能目标要求学生能够熟练使用C考试系统进行实践操作,提高考试效率;情感态度价值观目标要求学生树立正确的考试观念,注重诚信,遵守考试纪律。

通过分析课程性质、学生特点和教学要求,我们将目标分解为具体的学习成果。

学生需能够:1)描述C考试系统的基本原理和方法;2)运用C考试系统进行实践操作;3)阐述正确的考试观念和诚信原则。

二、教学内容本课程的教学内容主要包括C考试系统的原理、操作方法和实践应用。

详细的教学大纲如下:1.第一章:C考试系统概述学习C考试系统的定义、功能、分类和应用领域。

2.第二章:C考试系统原理学习C考试系统的原理、算法和评分标准。

3.第三章:C考试系统操作方法学习如何使用C考试系统进行练习和考试,包括题库构建、考试设置、答题技巧等。

4.第四章:C考试系统实践应用学习C考试系统在实际考试中的应用,如模拟考试、在线测评等。

三、教学方法为激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过讲解C考试系统的原理、方法和应用,使学生掌握基本知识。

2.讨论法:学生针对实际案例进行讨论,提高学生分析问题和解决问题的能力。

3.案例分析法:分析典型考试案例,使学生了解C考试系统在实际中的应用。

4.实验法:让学生动手操作C考试系统,提高实际操作能力。

四、教学资源本课程将充分利用校内外教学资源,包括教材、参考书、多媒体资料和实验设备。

1.教材:选用权威、实用的C考试系统教材,为学生提供系统、全面的学习资料。

2.参考书:推荐学生阅读相关参考书籍,丰富知识体系。

3.多媒体资料:制作课件、教学视频等,提高课堂教学效果。

4.实验设备:保障实验教学的需求,让学生充分实践操作。

五、教学评估本课程的教学评估将采用多元化评价方式,包括平时表现、作业、考试等,以全面、客观、公正地反映学生的学习成果。

C程序设计实训题目[精选合集]

C程序设计实训题目[精选合集]

C程序设计实训题目[精选合集]第一篇:C程序设计实训题目选题1、小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART” ,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”2、物业费管理系统完成小区物业费用管理系统设计。

功能要求:(1)新住户信息的添加。

(户主姓名、性别、身份证号、联系电话、楼号、单元号、房号、平米数、每平米物业价格、应缴纳物业费,备注信息)(2)修改住户信息的功能。

(3)删除住户信息的功能。

(4)应缴物业费自动生成。

每月1号,自动生成本月份的物业费。

如果该住户之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该用户应缴纳的物业费。

(5)缴费功能。

根据用户缴纳金额,修改“应缴纳物业费”。

(6)统计功能:能够按楼号分类统计所有未交清物业费的记录。

能够按拖欠款项多少,对所有用户信息进行从大到小排序。

(7)用菜单进行管理3、歌手比赛系统对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。

2、显示主菜单如下:1)输入选手数据2)评委打分3)成绩排序(按平均分)4)数据查询5)追加学生数据 6)写入数据文件7)退出系统。

4、文件加密文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。

D单项选择题标准化考试系统设计

D单项选择题标准化考试系统设计

石家庄铁道大学课程设计单项选择题标准化考试系统单位电气与电子工程学院分院(系)专业电气信息类学号学生姓名指导教师石玉晶完成日期:2012 年9 月14日摘要单项选择题标准化考试系统是一款比较实用的小型软件,其原理及相关软件在现在生活中有着广泛的应用。

本设计主要应用语言进行编程,利用C语言中的结构体、文件、数组、函数等知识实现系统的试题库维护、答题、判卷各个功能,并用文件对修改后的试题库进行保存。

应用本设计思路可以进行同类及相关软件的开发报告首先介绍了选题的意义及功能要求,其次介绍了程序的设计思路并包括基本算法和流程图,接着介绍了源程序代码和相关函数功能,最后是系统的实现并对系统做了调试。

本程序应用C语言运行环境实现了全部功能。

报告还附录了参考用书,并提交了实验总结及实验感想。

关键词:单项选择题标准化考试系统、结构体、数组、文件、C语言程序设计。

目录第1章选题意义 (4)1.1 考试系统的意义 (4)1.2 程序设计的意义 (4)第2章系统功能需求分析 (5)2.1 系统的基本要求 (5)2.2 功能实现 (5)第3章系统设计 (6)3.1 设计思路 (6)3.2 基本算法及流程图 (7)3.3 各自定义函数及其功能 (8)3.4 源程序代码 (9)第4章系统实现 (24)第5章总结 (29)参考文献第1章选题的意义•1.1 单项选择题标准化考试系统的意义在计算机技术和互联网飞速发展的今天,生活中自主学习、自主考察测试日益增多,各种学科上机考试已成为一种趋势,因此,单项选择题标准化考试系统及其相关软件在生活中的应用日益增多。

本系统可以实现从题库随机抽题,并自动判卷,将大大方便考生进行练习、自测和考试,同时减轻相关工作人员的负担,提高工作效率,计算机运行的准确性还能降低出错率,提高公平度。

所以,设计并编写单项选择题标准化考试系统及其相关软件是极为有必要的。

•1.2 程序设计的意义本课题的实现主要应用了C语言中的结构体的使用、数组应用和文件应用等内容,还涉及到循环语句、分支选择结构等内容并且用C语言编程。

单项选择题标准化考试系统课程设计论文

单项选择题标准化考试系统课程设计论文

单项选择题标准化考试系统课程设计论文数据结构课程设计设计说明书单项选择题标准化考试系统起止日期: 2013年 12月 23 日至 2013 年 12月27日学生姓名班级成绩指导教师(签字)课程设计任务书2013—2014学年第1学期计算机与信息工程学院专业班级课程设计名称: 数据结构课程设计设计题目: 单项选择题标准化考试系统完成期限:自 2013 年 12 月 23日至 2013年12 月 27 日共 1 周设计依据、要求及主要内容(可另加附页):一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。

二、设计要求在本课程设计过程中要求学生:(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。

凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩。

(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表。

(4)认真编写课程设计报告。

三、设计内容1)问题描述设计一单项选择题标准化考试系统,实现考试的标准化管理。

2) 基本要求功能要求:(1) 用文件保存试题库。

(每个试题包括题干、4个备选答案、标准答案)(2) 试题录入:可随时增加试题到试题库中(3) 试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4) 答题:用户可实现输入自己的答案(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

四、参考文献1、王红梅,数据结构,清华大学出版社2、王红梅,数据结构学习辅导与实验指导,清华大学出版社3、严蔚敏、吴伟民,《数据结构C语言版》,清华大学出版社目录1、设计目的 (1)2、总体设计 (1)3、详细设计 (1)3.1、程序具体功能 (1)3.2、调试分析.............................................................. 2 4、源程序和运行结果 (2)4.1、源程序 (2)4.2、运行结果............................................................. 12 5、心得体会 ..................................................................15 6、参考文献 (15)单项选择题标准化考试系统 1、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。

C++ 单项选择题标准化考试系统

C++ 单项选择题标准化考试系统

目录1.课程设计目的 (1)2.课程设计题目描述和要求 (1)2.1课程题目 (1)2.2课程要求 (1)3.课程设计报告内容 (1)3.1算法描述 (1)3.2 源程序 (2)4.课程设计总结: (6)5.参考书目 (7)1 课程设计目的练习自己的动手能力,在学习理论的同时增强自己的编程能力,使理论与实践相结合,在学习书本的同时扩展自己的课外知识.2 课程设计题目描述和要求2.1课程题目单项选择题标准化考试系统2.2课程要求(一)功能要求:(1)用文件保存试题库。

(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时增加试题到试题库中(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可实现输入自己的答案(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

(二)其它要求:(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档.3 课程设计报告内容3.1算法描述定义题目数组,选向数组,输入题目的及选向并给定正确答案。

输入所要答的题目数,然后进行答题。

输入的答案与标准答案进行比较,如果一致,则正确,否则错误。

最后根据题目数及答对题目数进行输出得分。

3.2 源程序#include <iostream>#include <fstream>#include "dos.h"using namespace std;struct question {char ask[200];/*选择题题目*/char answer[4][80];/*选择题选项*/int right;/*正确答案*/struct question *next;};//函数声明int MenuChoice(void); //选择菜单struct question *charu_timu(struct question *fst, const struct question *ad); //向列表中插入试题函数struct question *da_an_weizhi(struct question *seek, long len, long max); //确定一个读取答案的位置的函数void GetQuestion(struct question *src); //获取问题,选项,以及正确答案函数void bao_cun(const struct question *ed, FILE *saf); //将列表中的试题保存在文件中的函数struct question *LoadFile(struct question *td, FILE *laf); //从文件中读取题目,将题目添加到列表中的函数int GetAnswer(void); //输入选择题的答案void huida_Question(const struct question *que, int n); //回答问题函数main(){struct question *start = NULL, temp;long choice, line = 0, c;FILE *fp = fopen("wangkun.dat", "a+");while ((choice = MenuChoice()) != 3)if (choice == 1){GetQuestion(&temp);start = charu_timu(start, &temp);++line;/*统计列表的长度*/system("cls");}else if (choice == 2){c =8;while (c > 6 || c > line) {cout<<"请输入要回答的问题数量: ";cin>>c;}huida_Question(start, line);}return 0;}/*da_an_weizhi函数确定一个读取答案的位置,len代表要读取的答案数,max 代表列表的长度*/struct question *da_an_weizhi(struct question *seek, long len, long max) {int i;while (i--)seek = seek->next;//找到指定的位置return seek;}//向列表中插入试题struct question *charu_timu(struct question *fst, const struct question *ad){struct question *newPtr = (struct question *)malloc(sizeof(struct question));if (newPtr == NULL)exit(0);*newPtr = *ad;newPtr->next = fst;return newPtr;}/*获取问题,选项,以及正确答案*/void GetQuestion(struct question *src){int i = 0;cout<<"请输入选择题题目:"<<endl;cin>>src->ask;while (i < 4) {cout<<"请输入选项"<<char(i + 'A')<<"的答案:"<<endl;cin>>src->answer[i++];}src->right = GetAnswer();}/*从文件中读取题目,将题目添加到列表中*/struct question *LoadFile(struct question *td, FILE *laf){struct question temp;while (fread(&temp, 1, sizeof(struct question), laf))td = charu_timu(td, &temp);return td;}/*将列表中的试题保存在文件中*/void bao_cun(const struct question *ed, FILE *saf){fclose(saf);if ((saf = fopen("wankun.dat", "w")) == NULL)//以写的方式重新打开文件 return ;while (ed) {fwrite(ed, 1, sizeof(struct question), saf);ed = ed->next;}}//得到选择题的答案(不保证是正确的答案)int GetAnswer(void){char c=0 ;//必须进行初始化,避免出现偶然性的错误fflush(stdin);while (c < 'A' || c > 'D') //确保输入的答案是A, B, C, D中的一个{cout<<"请输入正确的答案: "<<endl;cin>> c;}return c;}//回答问题,并统计答对题目数,显示得分void huida_Question(const struct question *que, int n){int i = 0, t = n;char result[1001], *p = result;for (i = 0; n--; que = que->next) {cout<<que->ask<<endl;cout<<que->answer[0]<<endl;cout<<que->answer[1]<<endl;cout<<que->answer[2]<<endl;cout<<que->answer[3]<<endl;if ((*p = que->right) == (*(p + 1) = GetAnswer()))++i;}*p = '\0';cout<<"标准答案"<<" 您的答案 "<<endl;for (p = result; *p != '\0'; )cout<<*p<<" "<<*(p+1)<<endl;cout<<"您回答了"<<t<<"道题, 答对"<<i<<"道题目, 得分:"<< (float)i / t * 100.00<<endl;}//选择菜单int MenuChoice(void){int value;cout<<" **********************************"<<endl;cout<<" * *"<<endl;cout<<" * 1 :添加选择题 *"<<endl;cout<<" * 2 :回答选择题 *"<<endl;cout<<" * 3 :退出 *"<<endl;cout<<" * *"<<endl;cout<<" **********************************"<<endl;cin>>value;return value;}4 课程设计总结:经过编写程序,检验了我们的编程的水平,从这次编程中,我发现我才学到了一点点的知识,有好多的东西都不够熟练,还需要好好的努力学习,在编写这个程序时,出现了好多的问题,经过别人的帮助和自己的认真的调试才完成,这个程序还有好多的不足,还不够美观。

单项选择题标准化考试系统

单项选择题标准化考试系统

摘要随着科技的逐渐进步,计算机的各类技术也正以飞速发展,我们所熟知的软件技术,也做出了一次次的创新与改良,无数种新类型的软件也逐渐向世人展示它的棱角。

当然,科学是一把双刃剑,在这些软件被创造的过程中,总会留下一些不当或者漏洞,毕竟人不是万能的,我们在开发这些软件的过程中并不能全面了解它会接触到什么样的数据,所以一个个漏洞逐渐被不法分子所发现,利用,并且对使用该软件的人造成或大或小的经济损失。

因此,越来越频繁的软件安全损失对软件的开发者提出了更高的要求,对于开发者来说,能够避免以及时修复软件出现的突发问题,才能最大限度的保证使用者的经济财产不受损失。

安全编程,是软件质量的重要保证,在软件开发和程序设计中具有重要地位。

然而,实际的软件工程中,安全隐患的出现往往来源于多个方面,给软件系统带来的危害也是多方面的。

安全问题的出现,由于原因众多,而某些安全问题又具有不间断发生,难于调试等特点,因此,很难用一个单纯的理论来完全地阐述安全编程问题。

基于这个考虑,安全编程的内容只能针对各个侧面来进行阐述,如异常情况下的安全、线程操作中的安全、数据安全加密等等。

关键词:软件,安全,C语言目录摘要 (1)第1章绪论 (1)1.1功能分析 (1)1.2系统分析 (2)第2章输入安全 (4)2.1概念 (4)2.2输入安全分析 (4)第3章内存安全 (7)3.1概念 (7)3.2内存安全分析 (7)第4章数据安全 (10)4.1概念 (10)4.2数据安全分析 (10)总结 (12)第1章绪论1.1功能分析本系统为单项选择题标准化考试系统,本系统主要是靠结构体来完成、实现的,经过实际的需求分析,采用功能强大的C语言程序运行的单项选择题标准化考试系统。

整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成单项选择题标准化考试系统的全过程,包括学生信息的录入、浏览、查询、排序以及修改和删除功能,查询功能主要包括按学号查询和按姓名查询。

c语言标准化考试系统课程设计

c语言标准化考试系统课程设计

课程报告课程名称:标准化考试系统专业班级:学生姓名:学号:任课教师:学期:课程报告任务书成绩评定教师:1 需求分析设计一个标准化考试系统,让学生和老师都能登录。

老师可以输入试题、修改试题,学生可以答题、查分,实现不同功能。

2 概要设计int main()Int jiao_deng(struct jiaoshi su) /*教师登录验证*/void jiao_xin(struct jiaoshi su) /*将教师的用户信息存入文件*/ void jiao_xin(struct jiaoshi su) /*将教师的用户信息存入文件*/ void jiao_xun(struct tiku tm) /*教师验证通过后,可对题目进行修改*/ void jiao_zeng(struct tiku tm) /*在原有文件基础上,进行新增题目*/ Voidxiu_gai(struct tiku tm,int n) /*修改函数*/int xue_deng(struct xuesheng sb) /*学生登录验证*/void xue_xin(struct xuesheng sb) /*将学生的用户信息存入文件*/3 详细设计#include<stdio.h> #include<stdlib.h> #include<string.h> int count=0;struct jiaoshi{ //教师用户信息结构体 char username[20]; //用户名 char password[12]; //用户密码 }su;struct xuesheng{ //学生用户信息结构体 char username1[20]; //用户名 char password1[12]; //用户密码}sb;struct tiku{ //题库结构体 int nb; //题号 char tigan[100]; //题目内容 char option1[80]; //选项 char option2[80]; char option3[80]; char option4[80];char daan[10]; //答案 }tm;struct chaxun{ int num;char name[20];int chengji;}ch;void jiao_xin(struct jiaoshi su);void xue_xin(struct xuesheng su);void jiao_cha(struct tiku tm);void jiao_zeng(struct tiku tm);void xue_kaoshi(struct tiku tm);void xue_cha(struct chaxun ch,int chengji);void xue_chax(struct chaxun ch);void xue_hao(struct chaxun ch);void xing_ming(struct chaxun ch);void cheng_ji(struct chaxun ch);int xue_deng(struct xuesheng sb);int jiao_deng(struct jiaoshi su);void jiao_xun(struct tiku tm);void cha_tihao(struct tiku tm);void xiu_gai(struct tiku tm,int n);int main(){int choice,choice1,choice2;printf("\t\t\t欢迎进入标准化考试系统\n");printf("\t\t\t选择1:以学生身份登录\n");printf("\t\t\t选择2:以教师身份登录\n");printf("\t\t提示:如果你是第一次使用该系统,请先注册你的基本信息!\n");while(1){printf("\t\t\t请输入你的选择项:");scanf("%d",&choice);getchar();if(choice==1||choice==2)break;elseprintf("\t\t\t对不起,输入有误,请重新输入!\n");}if(choice==1)while(1){{printf("\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~\n");printf("\t\t\t选择1:注册!\n");printf("\t\t\t选择2:开始考试!\n");printf("\t\t\t选择3:成绩查询!\n");printf("\t\t\t选择0:退出\n");printf("\n");printf("\t\t\t请输入你的选择:");scanf("%d",&choice1);switch(choice1){case 1: xue_xin(sb); break; //调用文件,录入用户信息case 2: xue_kaoshi(tm); break; //调用函数,开始考试case 3: xue_chax(ch); break; //调用文件,查询信息case 0: return;}}}if(choice==2)while(1){{printf("\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~\n");printf("\t\t\t选择1:注册!\n");printf("\t\t\t选择2:查看题库中的题目\n");printf("\t\t\t选择3:向题库中增加题目\n");printf("\t\t\t选择4:对题库题目进行修改\n");printf("\t\t\t选择0:退出\n");printf("\t\t\t请输入你的选择:");scanf("%d",&choice2);switch(choice2){case 1:jiao_xin(su); break; //调用文件,录入用户信case 2:jiao_cha(tm); break; //调用文件开始录入题目case 3:jiao_zeng(tm); break; //调用文件,增加题目case 4:jiao_xun(tm); break; //调用文件,对题库进行修改case 0: return;}}}}void jiao_xin(struct jiaoshi su) /*将教师的用户信息存入文件*/{FILE *fp;int i;if((fp=fopen("g:\\标准化考试.txt","a"))==NULL){printf("文件打开有误!\n");exit(0);}for(i=1;i<=1;i++){printf("请输入第%d个用户的姓名和密码:",i);scanf("%s%s",ername,su.password);fprintf(fp,"%s %s\n",ername,su.password);}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void xue_xin(struct xuesheng sb) /*将学生的用户信息存入文件*/{FILE *fp;int i;if((fp=fopen("g:\\标准化考试.txt","a"))==NULL){printf("文件打开有误!\n");exit(0);}for(i=1;i<=1;i++){printf("请输入第%d个用户的姓名和密码:",i);scanf("%s%s",ername1,sb.password1);fprintf(fp,"%s %s\n",ername1,sb.password1);}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void jiao_cha(struct tiku tm) /*查看题库中的题目*/{FILE *fp;while(1){if(jiao_deng(su)==0){printf("\t\t对不起,用户名或密码错误!请重新输入!\n");}else{printf("\t\t*登录成功,现在可以查看试题了!*\n");break;}}if((fp=fopen("g:\\标准化考试.txt","r"))==NULL){printf("文件打开有误!\n");exit(0);}while(!feof(fp)){printf("\n");fscanf(fp,"%d %s %s %s %s %s %s",&tm.nb,tm.tigan,tm.option1,tm.opti on2,tm.option3,tm.option4,tm.daan);printf("%d%s\n",tm.nb,tm.tigan);printf("%s\n",tm.option1);printf("%s\n",tm.option2);printf("%s\n",tm.option3);printf("%s\n",tm.option4);printf("\n");printf("\t\t\t答案:%s\n",tm.daan);}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void jiao_zeng(struct tiku tm) /*在原有文件基础上,进行新增题目*/{FILE *fp;int i;int n;while(1){if(jiao_deng(su)==0){printf("\t\t对不起,用户名或密码错误!请重新输入!\n");}else{printf("\t\t*登录成功,欢迎使用*\n");break;}}printf("请输入本次要添加的题目个数n:");scanf("%d",&n);if((fp=fopen("g:\\标准化考试.txt","a"))==NULL){printf("文件打开有误!\n");exit(0);}for(i=1;i<=n;i++){printf("请输入题号:");scanf("%d",&tm.nb );printf("请输入第%d个题目的题干:\n",tm.nb);scanf("%s",tm.tigan );printf("请输入答案:\n");printf("A:");scanf("%s",tm.option1 );printf("B:");scanf("%s",tm.option2 );printf("C:");scanf("%s",tm.option3 );printf("D:");scanf("%s",tm.option4 );printf("请输入第%d个题目的答案:",tm.nb);scanf("%s",tm.daan );fprintf(fp,"%d %s %s %s %s %s %s\n",tm.nb,tm.tigan,tm.option1,tm.op tion2,tm.option3,tm.option4,tm.daan);}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void xue_kaoshi(struct tiku tm) /*读出文件,学生开始答题,并将成绩存入文件*/{FILE *fp;int i;int j,k;char s[10];int chengji=0;while(1){if(xue_deng(sb)==0){printf("\t\t对不起,用户名或密码错误!请重新输入!\n");}else{printf("\t恭喜你登陆成功,现在可以开始考试了!\n");break;}}if((fp=fopen("g:\\标准化考试.txt","r"))==NULL){printf("文件打开有误!\n");exit(0);}printf("\t\t##共有三种难度系数1-2-3##");printf("请选择难度系数:");scanf("%d",&j);if(j==1){k=10;}if(j==2){k=20;}if(j==3){k=30;}for(i=1;i<=k;i=i+j){printf("\n");fscanf(fp,"%d %s %s %s %s %s %s",&tm.nb,tm.tigan,tm.option1,tm.opti on2,tm.option3,tm.option4,tm.daan);printf("%d%s\n",tm.nb,tm.tigan);printf("%s\n",tm.option1);printf("%s\n",tm.option2);printf("%s\n",tm.option3);printf("%s\n",tm.option4);printf("\n");//printf("%s\n",tm.daan);printf("请输入你的选项:");scanf("%s",s);if(strcmp(tm.daan,s)==0)chengji=chengji+10;}printf("你的成绩是:%d\n",chengji);printf("\t\t为方便你以后查询成绩,请再次输入你的信息:\n");xue_cha(ch,chengji);if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void xue_cha(struct chaxun ch,int chengji) /*考试结束,将成绩录入文件*/{FILE *fp;int i;if((fp=fopen("g:\\标准化考试.txt","a"))==NULL){printf("文件打开有误!\n");exit(0);}/*printf("请输入你的学号和姓名:");scanf("%d %s ",&ch.num,);printf("请输入你本次考试的成绩:");*/printf("请输入你本次考试的成绩:");while(1){scanf("%d",&i);if(i==chengji)printf("请输入你的学号和姓名和成绩:");scanf("%d %s ",&ch.num,,&ch.chengji );fprintf(fp,"%d %s %d\n",ch.num,,chengji);break;}else{printf("\t\t对不起,你输入的成绩与本次考试成绩有误,请重新输入!");}}//fprintf(fp,"%d %s\n",ch.num,);if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void xue_chax(struct chaxun ch) /*成绩查询函数1.按学号2.按姓名3.按成绩*/{int choice;printf("\t\t\t选择1,按学号查询成绩\n");printf("\t\t\t选择2,按姓名查询成绩\n");printf("\t\t\t选择3,按成绩信息\n");printf("请输入你的选择:");scanf("%d",&choice);switch(choice){case 1:xue_hao(ch); break;case 2:xing_ming(ch); break;case 3:cheng_ji(ch); break;}}void xue_hao(struct chaxun ch) /*按学号查询成绩*/{FILE *fp;//int i;int num;int flag=0;if((fp=fopen("g:\\标准化考试.txt","r"))==NULL){printf("文件打开有误!\n");exit(0);}printf("请输入你的学号:");scanf("%d",&num);while(!feof(fp)){fscanf(fp,"%d%s%d",&ch.num,,&ch.chengji);if(num==ch.num){printf("学号:%d\t姓名:%s\t成绩:%d\n",ch.num,,ch.chengji);flag=1;break;}}if(flag==0){printf("对不起,没有找到,请检查你的输入是否正确!");}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void xing_ming(struct chaxun ch) /*按姓名查询成绩*/{FILE *fp;char name[20];int flag=0;if((fp=fopen("g:\\标准化考试.txt","r"))==NULL){printf("文件打开有误!\n");exit(0);}printf("请输入你的姓名:");scanf("%s",name);while(!feof(fp))fscanf(fp,"%d%s%d",&ch.num,,&ch.chengji);if(strcmp(name,)==0){printf("学号:%d\t姓名:%s\t成绩:%d\n",ch.num,,ch.chengji);flag=1;break;}}if(flag==0){printf("对不起,没有找到,请检查你的输入是否正确!");}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void cheng_ji(struct chaxun ch) /*按成绩查询信息*/{FILE *fp;int chengji;int flag=0;if((fp=fopen("g:\\标准化考试.txt","r"))==NULL){printf("文件打开有误!\n");exit(0);}printf("请输入你的成绩:");scanf("%d",&chengji);while(!feof(fp)){fscanf(fp,"%d%s%d",&ch.num,,&ch.chengji);if(chengji==ch.chengji){printf("学号:%d\t姓名:%s\t成绩:%d\n",ch.num,,ch.chengji);flag=1;}if(flag==0){printf("对不起,没有找到,请检查你的输入是否正确!");}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}int xue_deng(struct xuesheng sb) /*学生登录验证*/{FILE *fp;int flag=0;char name[20];char password[12];printf("\n");printf("\t\t>>>>>请先登录该系统<<<<<\n\n");printf("\t\t>>>>>请输入你的登录名和密码:");scanf("%s%s",name,password);if((fp=fopen("g:\\标准化考试.txt","r"))==NULL){printf("文件打开有误!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s%s",ername1,sb.password1);if(strcmp(name,ername1)==0&&strcmp(password,sb.password1)==0) {flag=1;break;}}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}return flag;}int jiao_deng(struct jiaoshi su) /*教师登录验证*/{FILE *fp;int flag=0;char name[20];char password[12];printf("\n");printf("\t\t>>>>>请先登录该系统<<<<<\n\n");printf("\t\t>>>>>请输入你的登录名和密码:");scanf("%s%s",name,password);if((fp=fopen("g:\\标准化考试.txt","r"))==NULL){printf("文件打开有误!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s%s",ername,su.password);if(strcmp(name,ername)==0&&strcmp(password,su.password)==0) {flag=1;break;}}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}return flag;}void jiao_xun(struct tiku tm) /*教师验证通过后,可对题目进行修改*/{int choice;while(1){if(jiao_deng(su)==0){printf("\t\t对不起,用户名或密码错误!请重新输入!\n");}else{printf("\t\t*登录成功,欢迎使用*\n");break;}}while(1){printf("\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~\n");printf("\t\t请选择按何种方式进行修改!\n");printf("\t\t选择1:按题号查找,并修改!\n");printf("\t\t选择2:输入部分题目内容查找并进行修改!\n");printf("\n");printf("\t\t\t请输入你的选择:");scanf("%d",&choice);switch(choice){case 1: cha_tihao(tm); break; //按题号查找,并修改case 2: return; //输入部分题目内容查找并进行修改!}}}void cha_tihao(struct tiku tm) /*先查询出题目,然后调用函数进行修改*/{int n;FILE *fp;int flag=0;printf("请输入你要修改的题目的题号:");scanf("%d",&n);if((fp=fopen("g:\\标准化考试.txt","r"))==NULL){printf("文件打开有误!\n");exit(0);}while(!feof(fp)){printf("\n");fscanf(fp,"%d %s %s %s %s %s %s",&tm.nb,tm.tigan,tm.option1,tm.option2,tm.option3,tm.option4,tm.daan);if(n==tm.nb){printf("%d%s\n",tm.nb,tm.tigan);printf("%s\n",tm.option1);printf("%s\n",tm.option2);printf("%s\n",tm.option3);printf("%s\n",tm.option4);printf("\t\t\t答案:%s\n",tm.daan);printf("\n");printf("%d",ftell(fp));flag=1;break;}}if(flag==0){printf("对不起,没有找到,请检查你的输入是否正确!");}if(flag==1)xiu_gai(tm,n);if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}void xiu_gai(struct tiku tm,int n) /*修改函数*/{FILE *fp;int i;if((fp=fopen("g:\\标准化考试.txt","a"))==NULL){printf("文件打开有误!\n");exit(0);}for(i=1;i<=1;i++){printf("请输入改后题目的题号:");scanf("%d",&tm.nb );printf("请输入改后题目的题干:\n");scanf("%s",tm.tigan );printf("A:\n");scanf("%s",tm.option1 );printf("B:\n");scanf("%s",tm.option2 );printf("C:\n");scanf("%s",tm.option3 );printf("D:\n");scanf("%s",tm.option4 );printf("请输入改后第题的答案:");scanf("%s",tm.daan );fprintf(fp,"%d %s %s %s %s %s %s\n",tm.nb,tm.tigan,tm.option1,tm.op tion2,tm.option3,tm.option4,tm.daan);}if(fclose(fp)){printf("无法关闭此文件!\n");exit(0);}}4 调试分析登录时,解决账号密码错误问题,修改试题后存入的问题。

c 单项选择题标准化考试系统

c   单项选择题标准化考试系统

c 单项选择题标准化考试系统在当今社会,随着教育水平的不断提高,考试已经成为人们学习和评价能力的重要方式。

而单项选择题作为考试中常见的一种形式,对于考生来说具有一定的挑战性。

因此,建立一个标准化的单项选择题考试系统显得尤为重要。

首先,一个标准化的单项选择题考试系统应当具备科学性和客观性。

考题的设计应该严格遵循教学大纲和教学要求,确保考试内容符合教学大纲的要求和教学内容的实际情况。

同时,考题应当客观公正,避免主观性和片面性,确保考试结果的客观性和公正性。

其次,考试系统应当注重题目的多样性和灵活性。

题目应当涵盖教学内容的各个方面,既要考查学生对基础知识的掌握程度,也要考查学生对知识的灵活运用能力。

同时,考试系统应当灵活运用不同类型的题目,如单选题、多选题、判断题等,以满足不同学生的学习需求。

另外,一个标准化的单项选择题考试系统还应当具备合理性和公平性。

考试系统应当合理确定考试的难易程度,确保考试结果的真实性和可比性。

同时,考试系统应当公平对待每一位考生,避免题目的偏颇性和不公正性,确保每一位考生都能在公平的环境下进行考试。

最后,考试系统还应当具备及时性和有效性。

考试系统应当及时更新考题,确保考试内容与时俱进,适应教学内容的变化和发展。

同时,考试系统应当有效评价学生的学习成果,为学生提供及时的反馈和指导,帮助学生更好地提高学习能力。

综上所述,建立一个标准化的单项选择题考试系统对于提高教学质量、促进学生学习具有重要意义。

只有建立科学、客观、多样、合理、公平、及时、有效的考试系统,才能更好地推动教育教学工作的发展,促进学生全面发展。

希望我们可以共同努力,建立一个更加完善的单项选择题标准化考试系统。

单项选择题标准化考试系统设计

单项选择题标准化考试系统设计

沈阳航空航天大学课程设计报告课程设计名称:C语言课程设计课程设计题目:单项选择题标准化考试系统设计院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:孙伟东完成日期:2014年03月1日目录第1章概要设计题目的内容与要求内容:设计并实现一个单项选择题标准化考试系统。

该系统可以完成试题录入、试题抽取、自动判卷等功能。

要求:(1)用文件保存试题库。

(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时增加试题到试题库中(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可实现输入自己的答案(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

总体结构本程序主要分为四个模块(功能模块图见下图):(1)模块一:菜单操作模块该模块实现程序的菜单操作。

2)模块二:将题目装入内存模块函数开辟内存空间将试题文件中题目装入内存中。

(3)模块三:开始答题模块函数会让用户输入要答的题目数,在屏幕上输出题干和选项并让用户输入答案。

判断用户输入答案是否正确。

4)模块四:添加试题模块打开储存试题的文件进行试题信息输入。

第2章详细设计菜单操作模块:控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能,流程如图所示。

接受用户输入。

.将题目装入内存模块:将题目装入内存模块函数开辟内存空间将试题文件中题目装入内存中图2.函数开辟内存空间将试题文件中题目装入内存中。

实现算法如下:遍历文件判断回车符个数(计算题目数)。

根据提供参数判断是否将当前题目装入内存。

开辟内存空间,将题目信息装入内存。

关闭文件返回题目总数。

开始答题模块:开始答题模块函数会让用户输入要答的题目数,在屏幕上输出题干和选项并让用户输入答案。

判断用户输入答案是否正确。

流程图如图第3章调试分析问题1:文本文件无法删除指定的一行方法:所以要用类似于进栈出栈的方法,把要删的信息过滤出去问题2:程序不能运行方法:解决办法就是不断的按F10进行调试,最终找到错误的地方。

C语言单项选择题标准化考试系统(精品文档)_共17页

C语言单项选择题标准化考试系统(精品文档)_共17页
二、课程设计的要求与数据
1、进一步掌握和利用 C 语言进行程设计的能力; 2、进一步理解和运用结构化程序设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或 N-S 图表示算法; 6、掌握书写程序设计开发文档的能力。
三、课程设计应完成的工作
1、编写完成相应题目的程序; 2、编写课程设计报告,课程设计报告的内容应包括以下 6 个部分:
1) 需求分析:包括设计题目、设计要求以及系统功能需求分析; 2) 总体设计:包括系统总体设计框架和系统功能模块图; 3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图; 4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在
录入;
Page 4 of 17
4
3、 试题的抽取,可以定义一个” void printNode(TestNode p,int n)”的函数,用到”Rand”函数进行 随机抽取;
4、答题方面,,则定义一个” void answer(int sum)”函数用于答题者的输入答案; 5、自动判卷,则可以定义一个” Status Match(TestNode p,char m)”函数,用来对比答题者答案和
实验 3#517
6.18 6.19 6.20 6.21
五、应收集的资料及主要参考文献
[1] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9 [2] 谭浩强. C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,
2005.7 [3] 刘振安等.C++程序设计课程设计[M]-北京:机械工业出版社,2004.8 [4] 张淑平.C 语言程序设计学习指导,西安电子科技大学出版社,2004.6

c语言单项选择题标准化考试系统设计

c语言单项选择题标准化考试系统设计

c语言单项选择题标准化考试系统设计Last revision on 21 December 2020课程设计任务书学院、系:专业:学生姓名:学号:设计题目:单项选择题标准化考试系统设计起迄日期:指导教师:1.设计目的设计单项选择题标准化考试系统。

2 任务概述(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案). (2)试题录入:可随时在试题库中增加试题.(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入). (4)答题:用户可以输入自己的答案.(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩.3 模块划分单项选择体标准化考试系统(3)Save()函数:用于添加试题后保存试题;(5)Ask()函数:用于答题并判卷。

还有一点就是没有思路的时候千万不要放弃,要学会思考,学会独立有耐心的完成一些事情,等到做完成功之后,便会收获很多的信心和欣慰。

总之就是要有耐心,坚持多做练习,不会的多请教别人,一切困难都会迎刃而解。

附录:#include<>#include<> xt","r+");opic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real);}fclose(fp);return i;}void save(struct question que[N],int n)xt","w+"))==NULL){printf("文件打开失败!\n");return ;}else{for(i=0;i<n;i++)fprintf(fp,"%s %s %s %s %s %c\n",que[i].topic,que[i].a1 ,que[i].a2,que[i].a3,que[i].a4,que[i].real);}fclose(fp);}void Put()opic,que[i].a1,que[i].a2,que[i].a3,que[i].a4); getch();}void Add()xt","a+");opic,&que[i].a1,&que[i].a2,&que[i].a3,&que[i].a4,&que[i].rea l);fprintf(fp,"\n%s\n%s\n%s\n%s\n%s\n%c\n",que[i].topic,que[i]. a1,que[i].a2,que[i].a3,que[i].a4,que[i].real);}printf("添加信息成功!");fclose(fp);getchar();getchar();}void Ask()xt","r+");printf("请输入要答得题目数:");scanf("%d",&m);for(int i=1;i<=m;i++){fread(&que[i],sizeof(struct question)-1,1,fp);printf("%s\n%s\n%s\n%s\n%s\n",que[i].topic,que[i].a1,qu e[i].a2,que[i].a3,que[i].a4);printf("\n请输入您的答案:");scanf("%c",&r);getchar();if(que[i].real==r){ printf("\n答案正确!\n");score++;}else {printf("\n答案错误!\n");score=score;}printf("\n你的总成绩为:%d\n",score);getchar();getchar();}}int main(){ Menu1();}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include<string.h>
#include<time.h>
struct test
{
char ask[500];//选择题题目
char answer1[100];
char answer2[100];
char answer3[100];
char answer4[100];
char da[100];
int title[100];//随机抽题
char right[10];
} m[1000];
void menu()
{
printf(" ***********单项选择题标准化考试系统³*********\n");
printf(" *********************************************\n");
printf(" 1.试题录入***\n");
printf(" 2.查看所有试题***\n");
printf(" 3.试题抽取并答题***\n");
printf(" 4.判卷并打分***\n");
printf(" 5.退出系统***\n");
printf(" ********************************************\n");
}
int input(int cnt)
{
int i,count,choice=0;
printf("开始输入记录...\n");
count=cnt;
for(i=cnt;i<1000;i++)
{
printf("Continue?(1 Yes 0 No):");
scanf("%d",&choice);
getchar();
if(choice==0)
break;
else
if(choice==1)
{
printf("请输入第%d道题题目,题干和选项:\n",i+1);
printf("请输入题目:");
gets(m[i].ask);
printf("请输入选项A:");
gets(m[i].answer1);
printf("请输入选项B:");
gets(m[i].answer2);
printf("请输入选项C:");
gets(m[i].answer3);
printf("请输入选项D:");
gets(m[i].answer4);
printf("请输入答案:");
scanf("%c",&m[i].right);
cnt++;
}
}
if(count!=cnt)
printf("\n题目输入成功:");
else
printf("\n未输入记录!");
return cnt;
}
void list(int cnt)
{
int i;
printf("开始显示所有题目...");
printf("\n当前文件夹中所有记录显示如下:\n\n");
for(i=0;i<cnt;i++)
{
printf("第(%d)题目:%s\n",i+1,m[i].ask);
printf("A:%s\n",m[i].answer1);
printf("B:%s\n",m[i].answer2);
printf("C:%s\n",m[i].answer3);
printf("D:%s\n",m[i].answer4);
getchar();
}
printf("所有题目显示完成...");
}
void rande(int cnt)
{
int i,j,x=1,n,t;
int title[100];
printf("请输入你想抽取的题数:");
scanf("%d",&n);
if(n>cnt)
printf("您抽取的题目超过了题目总数");
else
{
for(i=1;i<=n;i++)
{
here:x=rand()%n;
title[i]=x;
for(j=0;j<i;j++)
if(title[i]==title[j])
{
goto here;
}
printf(" =============================================\n");
printf("输出抽取到的第%d题目",i);
printf("ÌâÄ¿:%s\n",m[x].ask);
printf("A:%s\n",m[x].answer1);
printf("B:%s\n",m[x].answer2);
printf("C:%s\n",m[x].answer3);
printf("D:%s\n",m[x].answer4);
printf("请输入你的答案:");
scanf("%s",m[x].da);
printf(" =============================================\n");
}
}
printf("´答题成功,按任意键返回主菜单...");
}
void ask(int cnt)
{
int i,n;
int count=0;
printf("请输入已经答题的数目:");
scanf("%d",&n);
for(i=0;i<cnt;i++)
{
if(!strcmp(m[i].da,m[i].right))
{
count++;
}
}
printf("你答对的总题数是%d\n",count);
printf("你最后的得分为%d",(100/n)*count);
system("pause");
}
int main()
{
FILE * fp;
int i=0,count=0,select;
fp=fopen("tiku.txt","a+");
if(fp==NULL)
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&m[i],sizeof(struct test),1,fp)==1)
{
i++;
count++;
}
}
fclose(fp);
while(1)
{
printf("当前文件夹总共有%d条记录.\n",count);
menu();
printf("请输入你的选择:");
scanf("%d",&select);
switch(select)
{
case 1:
count=input(count);break;
case 2:
list(count);break;
case 3:
rande(count);break;
case 4:
ask(count);break;
case 5:
fp=fopen("tiku.txt","w");
printf("开始保存文件,按任意键继续........");
getchar();
getchar();
for(i=0;i<count;i++)
{
fwrite(&m[i],sizeof(struct test),1,fp);
}
fclose(fp);
printf("\n文件保存成功,按任意键退出系统.....");
getchar();
exit(0);
default:printf("输入错误,请重新输入.....");
}
}
}。

相关文档
最新文档