ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:67.26KB ,
资源ID:16443412      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16443412.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言集中上机报告Word下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言集中上机报告Word下载.docx

1、 void add(); (3) 显示所有试题。 void show(void)(4) 修改题库。 void modify(void)(5) 删除试题。 void del(void) (6)退出并保存。 void save() 该程序主要的设计思想就是处理一系列的链表。包括链表的新建、查询、删除、保存等。还有一些基本的算法。二 总体方案设计首先,采用了模块化的编程思想,把每一个功能都单独写到各个函数中。具体来说,本程序有一个主函数main,显示菜单的函数menu,增加题库的函数,抽取试题的函数,输入用户答案的函数,查看标准答案的函数,用户打分的函数共N个函数。这个程序主要解决的关键性问题就是使

2、用文件操作来对试题进行各种管理,包括增加数据、查看数据等。本程序的整体框图如下:三 详细设计1. 主函数部分:通过调用menu函数,返回一个整数,然后用多重选择switch来选择相关的操作。2. 菜单函数部分:通过输入选择的序号返回主函数相应的整数。3. 把文件读入链表部分:首先打开文件,如果文件为空,则提示题库为空,否则就通过fscanf把文件中的信息输出到链表。4. 录入试题部分:malloc开辟空间,输入相关资料,因为定义的head为全局变量,所以函数不需要传递参数,通过head即可完成传递。5. 显示所有试题部分:从head开始,通过循环逐个显示,指导head-next=NULL。6.

3、 用户选题、答题、评分部分:用户选题通过rand()函数产生一个随机数,这个随机数作为选题的标准。选题后有就是用户答题,通过输入答题选项与正确选项比较,若答题正确,则给与相应的分数,否则不给分。7. 修改试题部分:先输入要修改题目的代号,通过循环寻找该题目,找到题目后重新输入该节点对应的各个字符串。8. 删除试题部分:跟修改试题一样,也是先通过循环找到该题目,然后将只向该题目的节点只向下一个。9. 退出保存部分:通过选择询问用户是否保存,这里的保存是指对录入试题的保存,如果保存,则将链表中的函数写到文件中。四 程序的调试及运行结果说明程序运行一开始:因为这里还没有创建文件,所以提示题库为空,下

4、面是从运行结果标记复制来的调试结果: 题库为空!/*/* 1.试题录入 */* 2.试题抽取 */* 3.show所有试题 */* 4.修改试题 */* 5.删除题目 */* 6.答题 */* 7.评分 */* 0.退出 */请选择:1请输入题目编号:请输入题目:1+1=?请输入选项A:请输入选项B:2请输入选项C:3请输入选项D:4请输入标准答案:B( )A:1 B:C:3 D:请输入要选择的题目数N:6题1:请输入你的答案:A你输入的答案是:7你所得的分数如下:0.000000请输入你要查找题目的编号:你要修改的题目信息如下:编号 题目 备选答案A 备选答案B 备选答案C 备选答案D标准答

5、案1 1+1=? 1 2 3 4请输入一个题目编号:请输入新的题目:2+2=?请输入新的备选答案A:请输入新的备选答案B:请输入新的备选答案C:请输入新的备选答案D:请输入新的标准答案:D你修改后的题目信息如下:5你要删除的题目信息如下:11+1=?1 23 4 0要保存吗? Y/NY保存成功!Press any key to continue.五 课程设计总结该程序目前基本上达到了题目的要求,实现了试题的录入,试题的抽取,答题并判卷。并且还增加了几个功能,比如试题的删除,试题的修改查询,进一步设想是想实现程序的排序功能,比如按照题目编号进行排序,还可以实现权限的访问,通过设置密码来实现对录入

6、试题或查询答案的权限控制。六 后记通过这一周的上机实验,使我对c语言有了更进一步的认识,想要学好它,必须注重实践。这道题达到了题目的要求,功能齐全。程序中运行时输入的数据排列整齐,具有很好的美感。每一步骤严密性很好,连接紧凑,输入输出间隔清晰。不足之处:就是修改函数不够完善。可以再设计一个菜单用于显示修改函数这部分。可以实现要修改哪个数据,就直接找到该数据进行修改。如果再加一个菜单函数,程序将变得很复杂,如果出错,就不易于修改。但总的来说,自己还是受益匪浅。首先,该程序涉及到的知识很多,自己在编写程序时对各个知识又做了进一步的复习付诸于实践,自己的基本知识变得更加牢固了。其次,在编写过程中锻炼

7、了自己的动手能力,以及如何运用所学的知识来解决在编程中遇到的问题。在实际应用中,我们会遇到很多的问题,譬如像编写这个程序时,我刚开始遇到了前所未有的问题,在书中乃至一些的资料中都无法找到的问题。通过自己亲身实践,以及不断地摸索,不断地询问,才能有效地解决问题。这次编程过程中遇到了一些问题,比如一开始不会生成随机数,但是通过网络等手段的查询,让我又学会了一些其他库函数的使用,更加深入的了解了C语言。这次编程还遇到的一个问题就是缓冲区的问题,一开始会出现一些错误,比如scanf输入后系统会保留一个换行,所以下次如果输入字符的时候它会自动输入刚才的换行,这让我又初步了解到了C语言中缓冲区的问题。在这

8、里我要感谢网上的一切给与我帮助的网友,以及指导老师和同学的帮助。七 附录/*/*C题目二十四:单项选择题标准化考试系统(限最多2人完成)(一) 功能要求:(1) 用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2) 试题录入:可随时增加试题到试题库中(3) 试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4) 答题:用户可实现输入自己的答案(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。(二)其它要求:(1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动

9、增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档*/*/#include malloc.h /*新建链表所用头文件*/conio.h /*清屏函数所用头文件*/stdlib.h /* 求随机数所用的头文件*/string.h#define LEN sizeof(struct info) /*定义结构体长度*/#define N 300struct option /*定义四个选项*/ char a50; char b50; char c50; char d50;/*定义结构体,包括题目编号,题目,四个选项,正确答案,只向下个节点的指针*/struct info c

10、har num10; char stem100; struct option op; char ranswer2; struct info *next;infN;typedef struct info INF;INF * head=NULL; /*定义全局变量head利于操作*/char menu();void open();void save();void add();void QUIT();void anw(); /*自定义函数声明部分*/void show();void del();void modify();INF * choose();void main() char a; int

11、quit=0; open(); /*文件信息录入链表*/ while(!quit) a=menu(); /*调用菜单函数*/ switch(a) /*通过多重选择决定操作*/ case 1:add();break; /*录入试题部分*/2anw(); /*用户抽提并答题部分*/3show(); /*显示所有题目*/4modify(); /*修改题目*/5del(); /*删除题目*/0QUIT();quit=1; /*退出,并选择是否保存*/ default:printf(输入错误,重试:n); /*/char menu() printf(/*/n/* 1.试题录入 */n/* 2.试题抽取

12、*/n/* 3.show所有试题 */n/* 4.修改试题 */n/* 5.删除题目 *n/* 6.答题 */n/* 7.评分 *n/* 0.退出 */nnn请选择n a=getchar(); return(a);/*/void show() INF *p=NULL; for(p=head-next;p!=NULL;p=p-next) printf(%st %st A.%st B.%st C.%st D%sn,p-num,p-stem,p-op.a,p-op.b,p-op.c,p-op.d);/*/void del() char num2;输入你要删除的题目编号n gets(num); if(

13、head=NULL)目前试题库为空n return; else for(p=head;p-next! if( !strcmp(p-next-num,num) ) printf(你要删除的信息如下: printf( p-next=p- /*通过只想下一个节点实现删除*/*/void save() FILE *fp; char *filename=test.txt;n记录为空n else p=head- if( (fp=fopen(filename,a) =NULL) /*通过a打开可以实现追加功能*/nn 打开文件错误! while(p!=NULL) fprintf(fp,%st %st A.%

14、st B.%st C.%st D%st %snop.d,p-ranswer); p=p- fclose(fp); for(;head-) /*此处为释放链表内存部分*/ p=head- head-next=head- free(p); free(head);/*/void QUIT() Y/Nn do getchar(); /*吸收一个回车键*/ a=getchar(); if(Y=a|y=a) /*若满足条件则运行保存函数*/ save(); return; else if(Nn=a) else输入有误,重试: while(1);void open() /*将文件信息系输出到链表*/ INF

15、 *p1=NULL,*p2=NULL,*temp=NULL; if( (fp=fopen(,r)=NULL) head=(INF*)malloc(sizeof(INF); /*开辟一块内存*/ head-next=NULL; temp=p2=head; feof(fp) ) /*循环知道文件结束*/ p1=(INF*)malloc(LEN); temp=p2; p2-next=p1; p2=p1; fscanf(fp,%st %st %st %st %st %st %st,&p1-num,p1-stem,p1-op.a,p1-op.b,p1-op.c,p1-op.d,p1- temp-void add() /*录入试题函数*/ INF *p1=NULL,*p2=NULL; p1= (INF *)malloc( sizeof(INF) ); getchar();输入题号: gets(p1-num);输入题目:stem);输入选项A:op.a);输入选项B:op.b);输入选项C:op.c);输入选项D:输入正确答案的选项:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1