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

合集下载

c语言课程设计报告详细版

c语言课程设计报告详细版

c语言课程设计报告详细版一、课程目标知识目标:1. 掌握C语言的基本语法和结构,包括变量声明、数据类型、运算符、表达式和语句。

2. 理解并能运用控制结构,如顺序、选择和循环结构进行程序设计。

3. 学会使用数组、函数和指针进行程序开发,并能理解它们在解决复杂问题中的应用。

4. 熟悉基本的输入输出操作,文件操作以及简单的错误处理机制。

技能目标:1. 能够编写简单的C程序,解决实际问题,展现出逻辑思考和问题解决的能力。

2. 能够阅读和分析C程序代码,理解程序的结构和执行过程。

3. 能够使用调试工具检查和修正程序中的错误,提高程序的稳定性和可靠性。

4. 能够通过小组合作,完成一个综合性的项目,培养团队协作和项目管理的初步技能。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发探究计算机科学的热情,形成主动学习和终身学习的习惯。

2. 培养学生的创新思维和批判性思维,鼓励尝试不同的解决方案,勇于面对编程中的挑战。

3. 增强学生的信息意识和责任感,理解程序在现实生活中的应用和影响,认识到编程对社会发展的贡献。

4. 通过项目实践,培养学生的集体荣誉感,加强沟通能力,形成良好的团队合作精神。

课程性质分析:本课程为高年级的C语言程序设计,旨在通过项目驱动的教学方法,使学生在实践中掌握C语言的编程技能,并能够在日常生活和学习中应用。

学生特点分析:学生具备一定的逻辑思维能力,对计算机编程有一定兴趣,但个体差异较大,需要针对不同层次的学生设计不同难度和类型的教学活动。

教学要求:1. 结合实际案例进行教学,强调理论知识与实践操作的结合。

2. 注重培养学生的实际编程能力和问题解决能力,鼓励学生自主探索和协作学习。

3. 通过形成性评价和总结性评价相结合的方式,全面评估学生的学习成果。

二、教学内容1. C语言基础- 变量与数据类型- 运算符与表达式- 输入输出函数- 顺序结构程序设计2. 控制结构- 选择结构(if-else)- 循环结构(for、while、do-while)3. 函数与数组- 函数定义与调用- 数组的使用- 二维数组4. 指针与字符串- 指针的概念与使用- 指针与数组- 字符串处理函数5. 文件操作与错误处理- 文件的打开与关闭- 文件的读写操作- 简单错误处理6. 综合项目实践- 项目需求分析- 功能模块划分- 编程实现与调试- 项目展示与评价教学内容安排与进度:第一周:C语言基础第二周:控制结构第三周:函数与数组第四周:指针与字符串第五周:文件操作与错误处理第六周至第八周:综合项目实践教材章节关联:《C程序设计》第一章至第五章,涵盖课程教学内容中的所有知识点,为综合项目实践打下基础。

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

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

目录1.课程设计目的12.课程设计题目描述和要求1课程题目1课程要求13. 课程设计报告内容1算法描述1源程序 24.课程设计总结:65.参照书目 71课程设计目的练习自己的着手能力, 在学习理论的同时增强自己的编程能力, 使理论与实践相结合, 在学习书本的同时扩展自己的课外知识.2课程设计题目描述和要求课程题目单项选择题标准化考试系统课程要求〔一〕功能要求:〔1〕用文件保存试题库。

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

〔二〕其他要求:〔1〕只能使用C/C++语言,源程序要有合适的说明,使程序简单阅读(2〕最少采用文本菜单界面〔若是能采用图形菜单界面更好〕(3〕学生可自动增加新功能模块〔视情况可别的加分〕〔4〕写出课程设计报告,详尽要求见相关说明文档.3课程设计报告内容算法描述定义题目数组,选向数组,输入题目的及选向并给定正确答案。

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

输入的答案与标准答案进行比较,若是一致,那么正确,否那么错误。

最后依照题目数及答对题目数进行输出得分。

源程序#include <iostream>#include <fstream>#include ""using namespace std;struct question {char ask[200];/*选择题题目*/char answer[4][80];/*选择题选项*/int right;/*正确答案*/struct question *next;};。

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

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

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

2 任务概述(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案). (2)试题录入:可随时在试题库中增加试题.(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入). (4)答题:用户可以输入自己的答案.(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩. 3 模块划分单项选择体标准化考试系统判退添显答卷出加示题系试试统题题到库试题库4主要函数说明及N-S图(1)菜单Menu():用来给用户提供选项;输出菜单界面输入选项输入1 N Y添加Add 输入2 N Y ()函数添加Put输入3 N Y ()函数添加输入4 N Y Ask()函数exit(0)break break break(2)Read()函数:用于打开文件; FILE *fp ,int i=0 breakfp=fopen("单项选择题标准化考试系统设计.txt","r+")Y if(fp==NULL) Nprintf("文件打开失败");return 0;for(i=0;!feof(fp);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)return i(3)Save()函数:用于添加试题后保存试题;FILE *fpint i=0if((fp=fopen(“单项选择题标准化考试系统设计.txt”))==Null)Y Nprintf(“文件打开失败~”)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”) (4)Put()函数:用于显示试题;int i,nn=Read(que)打印表头i=0;i<n;i++fprintf(fp,”%s %s %s %s%s\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4”)getch()(5)Add()函数:用于添加试题(5)Adi FILE *fp int i,a,n . sruct question quen=Read(que)printf(“请输入增加试题的数目”)scanf(“%d“,&a);i=0;i<n; i++scanf(”%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”)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)(5)Ask()函数:用于答题并判卷。

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语言课程设计一、课程目标知识目标:1. 理解C语言在考试系统开发中的应用,掌握基本的C语言编程语法和结构;2. 学习并运用数组、函数、指针等C语言特性,实现对考试题目的存储、展示和评分功能;3. 掌握文件操作,能够将题目和成绩保存到文件中,实现数据的持久化存储。

技能目标:1. 培养学生运用C语言解决实际问题的能力,能独立完成一个简单的考试系统设计与实现;2. 提高学生的代码编写和调试技巧,培养良好的编程习惯;3. 增强学生的团队协作能力,学会与他人共同分析问题、讨论解决方案。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,提高学习积极性;2. 培养学生勇于面对问题,敢于挑战的精神,增强解决问题的自信心;3. 引导学生认识到编程对于解决现实问题的重要性,提高社会责任感。

本课程针对高年级学生,具有较强的实践性和应用性。

结合学生已掌握的C语言基础知识,通过本课程的学习,旨在提高学生的编程实践能力,培养具备实际项目开发经验的计算机人才。

课程目标具体、明确,便于学生和教师在教学过程中进行评估和调整。

二、教学内容1. C语言基础回顾:数据类型、运算符、表达式、控制语句(章节1-3);2. 函数与数组:函数定义、调用、数组的使用和操作(章节4-6);3. 指针:指针的概念、指针的运算、指针与数组、指针与函数(章节7-8);4. 文件操作:文件的打开、关闭、读写操作,以及文件存储结构(章节9);5. 考试系统设计:需求分析、功能设计、模块划分、界面设计(章节10);6. 编程实践:实现考试系统的各个功能模块,如题目管理、考试管理、成绩管理等;7. 调试与优化:代码调试技巧,性能优化策略。

教学内容安排和进度:第一周: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++;
}
}

《C语言课程设计》设计报告

《C语言课程设计》设计报告

《C语言课程设计》报告书指导教师:张娜课程名称: C语言程序设计班级: 0124071姓名:王者无疆学号: 0070082011河南城建学院、土木与材料工程系2011年1月目录一.课程设计目的二.课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告三.课程设计的基本过程1.程序的功能设计2.程序的数据设计3.程序的函数设计4.函数编程及调试5.整体调试6.设计总结四. 课程设计报告的内容五. 课程设计考核方式六. 进度计划第一天选择课程设计题目,分析课题的要求,编写详细设计说明第二天编程及调试第三天调试,修正,运行软件第四天写课程设计报告,检查程序及软件第五天提交课程设计报告(打印稿及电子稿)七、心得体会八、附一题一、课程设计目的课程设计是学习掌握C语言知识的重要实践环节,是在课程实验基础上进行的综合性实践教学活动。

课程设计围绕课程的整体教学目标进行,课程设计的题目具有一定的综合性和应用性,只靠个别单元的知识一般不能实现课程设计的目标,需要对课程知识进行综合运用。

要完成好课程设计,就要对课程知识进行系统学习、复习、总结、应用,达到在实践中学习知识、掌握知识、应用知识和培养能力的目的。

①通过课程设计,进一步熟悉掌握以下知识:数据类型、分支控制、循环控制、函数的定义及调用、结构体及数组、指针、文件操作、编译预处理等。

②通过课程设计,达到系统理解、综合运用课程知识的学习目标。

③通过课程设计,学会用C语言程序解决实际问题的方法。

④通过课程设计,掌握程序的局部测试、调试方法,建立程序系统调试、测试的基本概念和思想,学会较大程序的系统测试和调试方法。

二. 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告三.课程设计的基本过程C语言课程设计一般包括6个步骤,即程序的功能设计、程序的数据设计、程序的函数设计、函数编码及调试、程序整体调试和课程设计总结等,各个步骤都有其特定的任务。

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

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

《高级语言程序设计》说明书设计题目:单项选择题标准化考试系统一、课程设计的内容题目:单项选择题标准化考试系统(一)功能要求:(1)用文件保存试题库。

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

(二)其它要求:(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档二、课程设计的要求与数据1、进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程序设计开发文档的能力。

三、课程设计应完成的工作1、编写完成相应题目的程序;2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 总体设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图);5) 总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;6) 附录:主要源程序代码,含必要的注释。

3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解决问题、运行程序和回答教师提出的问题。

c语言课程设计设计报告

c语言课程设计设计报告

c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。

(]1.2 实验要求在报告中记录建立、保存C程序实习过程。

1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。

执行Build-命令。

3)运行。

执行Build Execute 命令。

显示结果。

4)关闭程序工作区。

(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。

第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。

()(2)通过编程进一步理解和掌握运算符的确切含义和功能。

2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。

执行Build-命令。

3)运行。

执行Build Execute 命令。

显示结果。

4)关闭程序工作区。

2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。

c语言课程设计报告

c语言课程设计报告

c语言课程设计报告c语言课程设计报告在现在社会,我们都不可避免地要接触到报告,报告成为了一种新兴产业。

那么报告应该怎么写才合适呢?以下是店铺收集整理的c语言课程设计报告,欢迎阅读与收藏。

c语言课程设计报告11、题目要求◆ 建立通讯录信息,信息至少包含编号、姓名、年龄、电话、居住街道、省份、城市、电子邮箱等;◆ 能够提供添加、删除和修改通讯录信息的功能;◆ 能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;◆ 将通讯录保存在文件中;◆ 能够按表格方式输出通讯录信息。

2、需求分析本程序将用到文件系统,其中单行内容代表一张纸条。

程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。

3、总体设计根据项目的任务要求及以上分析,在设计方法上,采用模块化的程序设计思想,即将通讯录管理系统划分为数据输入模块,数据查询模块,数据修改模块,数据插入模块,数据删除模块,,并对每个模块按照其功能分别独立完成对应的程序设计。

在数据处理上,各模块中的数据处理(如数据读/写操作)均用文件形式来实施,并在主程序中完成操作界面的设计功能,设计思路如下:1、采用模块设计思想;2、将通讯录信息定义成结构体类型,并通过文件实施数据操作;3、通过设计一菜单界面完成具体操作。

4、详细设计c语言课程设计报告2一、传统C语言课程设计教学模式C语言是最基本的计算机编程,是计算机、电子信息类等相关专业学生的专业入门课,在其学习过程中,要求必须掌握编程的技能。

但是C语言的学习有其特点,规则比较多、知识点多,涉及到的编程程序等也比较难懂,在运行上代码的要求较高,程序执行效率高,因此更讲究教学和学习的方式方法,但是在我们的教学中,目前教学方法比较单一,随着信息化的发展,传统的教学模式已经无法适应,亟需改革。

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语言课程设计报告书3篇

c语言课程设计报告书3篇

c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理。

简单界面程序。

高级界面程序。

程序的添加修改。

用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

c语课程设计报告

c语课程设计报告

c语课程设计报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,具备使用C语言进行程序设计的能力。

具体目标如下:1.知识目标:–理解C语言的基本语法,包括数据类型、运算符、控制结构等。

–掌握C语言的基本数据结构,包括数组、链表、栈和队列。

–了解C语言的基本算法,包括排序、查找、递归等。

2.技能目标:–能够使用C语言编写简单的程序,解决实际问题。

–能够使用C语言进行调试和优化程序。

–具备一定的编程思维和问题解决能力。

3.情感态度价值观目标:–培养学生的编程兴趣和主动性,提高学生对计算机科学的热爱。

–培养学生的团队合作意识和沟通能力,提高学生的问题解决能力。

–培养学生的创新思维和持续学习的意识。

二、教学内容根据教学目标,本课程的教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.C语言的基本语法:–数据类型、变量和常量–运算符和表达式–控制结构,包括条件语句和循环语句2.C语言的基本数据结构:–数组和字符串–队列和排序算法3.C语言的基本算法:–查找算法,包括线性查找和二分查找–排序算法,包括冒泡排序和快速排序–递归算法,包括递归求解和递归遍历三、教学方法为了实现教学目标,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。

1.讲授法:通过教师的讲解和演示,向学生传授C语言的基本语法和概念。

2.讨论法:通过小组讨论和课堂讨论,促进学生之间的交流和合作,培养学生的编程思维和问题解决能力。

3.案例分析法:通过分析实际案例,让学生了解C语言在实际中的应用,提高学生的编程实践能力。

4.实验法:通过实验室实践,让学生亲手编写和调试C语言程序,培养学生的实际编程能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将选择和准备以下教学资源:1.教材:选择一本适合学生水平的C语言教材,作为学生学习的主要参考资料。

2.参考书:提供一些相关的参考书籍,供学生深入学习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语言考试系统程序设计报告

《程序设计基础》课程设计报告考试系统指导教师:任姚鹏班级:计科系1204班学生姓名:丁晓荟加雪梅姚乐2012100422 2012100427 2012100434张进吕亚斌2012100440 2012100426完成日期:2013.11.26 运城学院计算机科学与技术系目录一、系统分析 -2-二、系统设计 -2-三、流程图 -3-四、系统实现 -5-五、运行结果 -15-六、总结 -20-一、系统分析该考试系统主要针对单选题与填空题进行随机出题与答题。

首先要在程序设计中录入备选的选择题与填空题,然后设计随机选题,在原本录入的试题库中随机选取20道题组成一份试题,让学生做答。

1、主要数据输入(数据以文件形式存储)试题类型主要有填空题和选择题,每道题目包括题目所在章节、题目难度系数、分值和标准答案。

(难度系数分为难、中等、容易三个等级)2、主要功能1)根据用户输入的选择标准,从题库中选择20道选择题和10道填空题;2)进行在线测试,并在用户完成作答后给出答题分数;3)可以进行用户成绩的查询;4)列出用户的答题情况。

二、系统设计1、菜单操作:Main函数,实现程序的菜单操作。

根据用户选择的菜单的不同选项调用不同的函数,实现“登录进入考题系统”、“显示所有参考人员信息”、“查询成绩”、“显示考试信息”、“退出”等功能。

2、主要结构体设计struct Info //定义最大参考人数的结构数组{int count; //用于答对题数计数器int overall; //总分char num[6+1]; //存储ID号char name[20]; //存储姓名}Information[20];struct problem //定义题目结构数组{int Id; //题目编号char subject[200]; //题目char select[200]; //题目选项char right[100]; //正确答案}pro[N]={ //结构变量初始化3、主要功能分析1)学生进入考试系统a、输入准考证号(准考证号为六位数)。

c语言课程设计设计报告

c语言课程设计设计报告

c语言课程设计设计报告一、教学目标本课程的教学目标是让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,培养学生编写简单C程序的能力,使学生了解程序设计的基本思路和方法,培养学生的逻辑思维和问题解决能力。

具体来说,知识目标包括:1.理解C语言的基本语法和编程规范;2.掌握基本数据类型、运算符和表达式;3.熟悉控制结构,如条件语句、循环语句等;4.了解函数的定义和调用方法。

技能目标包括:1.能够使用C语言编写简单的程序;2.能够阅读和理解简单的C语言程序;3.能够使用调试工具对程序进行调试和优化。

情感态度价值观目标包括:1.培养学生对编程的兴趣和热情;2.培养学生克服困难、解决问题的决心和勇气;3.培养学生团队协作、共同进步的精神。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法和编程规范;2.数据类型、运算符和表达式;3.控制结构,如条件语句、循环语句等;4.函数的定义和调用方法;5.简单程序的设计和调试。

教材选用《C程序设计语言》(K&R),章节安排如下:1.第1-3章:C语言基本语法和编程规范;2.第4-5章:数据类型、运算符和表达式;3.第6-7章:控制结构;4.第8章:函数的定义和调用方法;5.课后练习和案例分析。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本语法、数据类型、运算符、控制结构和函数等基础知识;2.案例分析法:分析典型程序,使学生了解编程思路和方法;3.实验法:上机编程实践,培养学生的动手能力;4.讨论法:分组讨论问题,培养学生的团队协作和问题解决能力。

四、教学资源本课程所需教学资源包括:1.教材:《C程序设计语言》(K&R);2.参考书:C语言相关辅导书籍;3.多媒体资料:PPT课件、教学视频等;4.实验设备:计算机、编程环境等。

以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。

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

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

沈阳航空航天大学课程设计任务书学院:自动化专业:测控技术与仪器班级:14070102学号:2011040701075 题目:单项选择题标准化考试系统(1)一、课程设计时间2012~2013第1学期第2周,共计1周,20学时。

二、课程设计内容用C语言编写标准化考试中的一些基本功能:用文件保存试题库。

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

三、课程设计要求1. 程序质量:●贯彻结构化的程序设计思想。

●用户界面友好,功能明确,操作方便。

用户界面中的菜单至少应包括“试题录入”、“试题抽取”、“答题”、“退出”4项。

●代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。

课程设计说明书的格式和内容参见提供的模板。

四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录一、需求分析 (1)二、设计分析 (3)三、主要界面截图 (6)四、技术要点 (8)五、个人总结 (11)六、参考文献 (12)七、源程序 (12)一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。

本系统用于考试,鉴于使用环境的特殊要求,本系统应具有稳定、便捷的特点。

1.稳定性分析本系统用于考试,故考试中本系统的稳定性将决定考试是否成功。

对于考生的操作应该有正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。

2.便捷性分析本系统用于考试,为方便考试的进行。

便捷性是本系统所必须的特性。

功能明确,操作方便将会改善考生的心情,减少考生不必要的心理压力。

3. 主要功能分析(1)题库存储:允许试题管理人员输入新的试题,并永久保存在磁盘中。

C语言课程设计报告

C语言课程设计报告

C语言课程设计报告一、设计目的本次课程设计旨在帮助学生熟悉C语言的基本语法和编程思想,通过设计一个简单的C语言程序,掌握C语言的基本编写技巧和调试方法,加深对C语言的理解。

二、设计内容本次C语言课程设计要求学生设计一个简易的学生信息管理系统,包括学生的基本信息录入、查询、修改和删除功能。

三、设计思路1. 需要定义一个学生信息的结构体,包括学号、姓名、年龄等基本信息。

2. 定义一个学生信息数组,用于存储学生信息。

3. 实现录入学生信息的功能,通过用户输入学生的学号、姓名、年龄等信息,并将其存储到学生信息数组中。

4. 实现查询学生信息的功能,用户输入要查询的学生学号,系统通过遍历学生信息数组找到对应的学生信息并输出。

5. 实现修改学生信息的功能,用户输入要修改的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并提示用户输入新的学生姓名、年龄等信息,并将其更新到学生信息数组中。

6. 实现删除学生信息的功能,用户输入要删除的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并将其从学生信息数组中删除。

四、设计步骤1. 定义一个学生信息的结构体,并在主函数中定义一个学生信息数组。

2. 实现录入学生信息的功能,通过用户输入学生的学号、姓名、年龄等信息,并将其存储到学生信息数组中。

3. 实现查询学生信息的功能,用户输入要查询的学生学号,系统通过遍历学生信息数组找到对应的学生信息并输出。

4. 实现修改学生信息的功能,用户输入要修改的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并提示用户输入新的学生姓名、年龄等信息,并将其更新到学生信息数组中。

5. 实现删除学生信息的功能,用户输入要删除的学生学号,系统通过遍历学生信息数组找到对应的学生信息,并将其从学生信息数组中删除。

6. 编写主函数,实现菜单选择功能,用户可以通过选择不同的菜单选项进行录入、查询、修改和删除学生信息的操作。

五、实验成果经过设计和编码,最终实现了一个简易的学生信息管理系统,能够完成学生信息的录入、查询、修改和删除功能。

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

重庆理工大学课程设计课程程序设计基础 C 题目 C 语言综合程序设计院系名称班级学生姓名学号指导教师评阅教师时间2011.61 问题描述题目十四:单项选择题标准化考试系统设计功能要求:(1)、用文件保存试题库。

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

2 系统分析2.1 题目要求程序分 4 个函数来实现菜单操作、将题目装入内存、开始答题、题目的录入。

1. 菜单操作:Main 函数,实现程序的菜单操作。

根据用户选择的菜单的不同选项调用不同的函数,实现“开始答题” 、“添加试题” 、“退出系统”等功能。

2. 将试题装入内存:此函数由“开始答题”函数调用。

调用此函数时传递一个整型参数m,函数开辟内存空间将试题文件(“ C:\test.txt ”)中第m道题装入内存中,并返回总题数。

如果传递参数m 为-1 ,函数将直接返回试题文件中所储存的总题数,不将任何试题装入内存中。

3. 开始答题:函数会让用户输入要答的题目数并进行判断,若用户要求的答题数大于总题数程序会要求用户重新输入。

程序生成随机数并判断是否合法,如果合法就调用“将试题装入内存”函数,参数为随机数。

在屏幕上输出题干和选项并让用户输入答案。

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

4. 添加试题:打开储存试题的文件(“ C:\test.txt ”),开辟内存空间。

进行试题信息输入。

自动保存文件。

2.2 算法设计(1)模块一:菜单操作模块该模块实现程序的菜单操作。

实现算法如下○1 在屏幕上输出菜单选项。

○2 接受用户输入。

○3 判断用户输入,跳转到对应函数入口。

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

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

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

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

○4 关闭文件返回题目总数。

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

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

实现算法如下:○1接受用户输入题目数,判断是否合法(大于0、小于总题数) 。

○2置随机数并判断随机数是否合法。

○3 调用将题目装入内存模块题目装入内存。

○4在屏幕上输出题目,接受用户输入答案。

○5判断用户输入的答案是否正确,输出答题结果统计。

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

实现算法如下:○1打开文件。

○2 开辟内存空间,接受用户输入题目信息。

○3 判断用户输入是否合法。

○4 写到文件并保存。

2.3 流程图1. 菜单操作模块:2. 将题目装入内存模块:3. 开始答题模块:4. 添加试题模块:2.4 关键问题文件读写时文件指针的移位:{ 当用 fgetc() 函数遍历文件时文件指针是顺序移动的, 当遇到回车符时才会判断出文件在第几行。

而当读取文件信息的时候文件指针的位置应该在行首,这是就要用到 数将文件指针移位。

而且还要恢复文件指针的位置,用于继续判断当前是文件的第几行。

3 系统实现3.1 源代码#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct test)struct test{char que[81];char answer1[81];char answer2[81];char answer3[81];char answer4[81];char ture;struct test *next;};struct test *head;// 全局变量储存第一个结构体的指针int zts(int m)//将第 m 道题装入内存,输入 -1 时将返回总题数{ FILE *fp;struct test *p1=NULL;char ch,ch1[5];int i,n=0,wz,py;if((fp=fopen("c:\\test.txt","r"))==NULL)// 只读方式打开文件{printf(" 文件打开失败请检查 C 盘下的 test.txt 文件。

\n");exit(0);}dopy=1;ch=fgetc(fp);fseek() 函for(i=0;ch!='\n'&&ch!=-1;i++)// 循环判断回车符个数{py++;ch=fgetc(fp);}n++; // 储存行数的变量if(n==m)// 如果当前行数与传入参数相等{if(p1==NULL)// 判断是否是第一次开辟内存空间{p1=(struct test *)malloc(LEN);head=p1;p1->next=NULL;}else{p1->next=p1;p1=(struct test *)malloc(LEN);p1->next=NULL;}wz=ftell(fp);// 记录指针当前位置fseek(fp,(wz-py-1),0);// 调整指针位置到行首fscanf(fp,"%s%s%s%s%s%s",&p1->que,&p1->answer1,&p1->answer2,&p1->answer3,&p 1->answer4,&ch1);fseek(fp,wz+1,0);// 调整指针位置到行末p1->ture=ch1[0];break;// 将数据装入内存后跳出循环}}while(!feof(fp));// 文件结束跳出循环fclose(fp);return n;// 返回题目总数n}void exe1()void main();void exe2();int n,m=0,tm,i,t=0,f=0;char ans[2];struct test *p1;system("cls");printf(" 请输入要答题数:");scanf("%d",&n);tm=zts(-1);if(0>n||n>tm){printf(" 答题数应小于总数!");exe1();}for(i=0;i<n;i++)//n 为用户要答题数{do{m=rand();// 置随机数}while(!(0<m&&m<=tm));// 判断产生的随机数是否符合要求zts(m);p1=head;// 将zts 开辟的结构体首地址赋给p1printf("\n 第%d题:\n",i+1);答案printf("%s\n%s\n%s\n%s\n%s\n 请输入",p1->que,p1->answer1,p1->answer2,p1->answer3,p1->answer4);scanf("%s",&ans);if(toupper(ans[0])==p1->ture)// 判断用户输入答案是否正确{printf(" 恭喜你答对了!\n\n");t++;// 回答正确统计}else{printf(" 对不起,你答错了。

\n 正确答案是:%c\n\n",p1->ture);f++;// 回答错误统计}}p1=head;do{ head=p1->next;free(p1);p1=head;}while(p1!=NULL);// 释放结构体占用内存printf("*******************************\n");printf("\n 已完成测试!\n 共做%d 道题:%d 错误,%d 正确。

\n 正确率:%5.2f%%\n\n",n,f,t,(float)t/n*100); printf("*******************************\n");printf("\n\n1. 继续答题; 2. 添加题目; 3. 返回主菜单;\n 请选择:"); i=0;scanf("%d",&i);if(i==1)exe1();// 继续答题elseif(i==2)exe2();// 添加题目elsemain();// 返回主菜单}void exe2()// 实现用户自主输入题目{void main();system("cls");int n;FILE *fp;if((fp=fopen("c:\\test.txt","a"))==NULL){printf(" 文件打开失败请检查 C 盘下的test.txt 文件。

\n"); exit(0); }struct test *p1=NULL;p1=(struct test *)malloc(LEN);// 开辟内存空间do{printf(" 请输入题目:"); scanf("%s",&p1->que);}while(p1->que[0]=='\0');do{printf(" 请输入选项A:"); scanf("%s",&p1->answer1);}while(p1->answer1=='\0');do{printf(" 请输入选项B:"); scanf("%s",&p1->answer2);}while(p1->answer2=='\0');do{printf(" 请输入选项C:"); scanf("%s",&p1->answer3);}while(p1->answer3=='\0');do{printf(" 请输入选项D:"); scanf("%s",&p1->answer4);}while(p1->answer4=='\0'); printf(" 请输入答案:");doscanf("%c",&p1->ture);{p1->ture=toupper(p1->ture); }while(p1->ture!='A'&&p1->ture!='B'&&p1->ture!='C'&&p1->tur e!='D'); printf("\n 确认输入题目?\n1. 是。

相关文档
最新文档