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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

在线考试系统C语言课程设计报告.docx

1、在线考试系统C语言课程设计报告课程报告课程 名称: 程序设计实践 专业班级: 计算机1306 学生姓名: 王永森学 号: *学 期:2013-2014学年第二学期题 目标准化考试系统主要内容开发出一个标准化考试系统,所谓标准化考试系统即仅支持选择题型地考试系 统,要求实现以下基本功能:(1) 提供给教师添加试卷地功能(试卷信息用文件保存) -输入(2) 试卷地浏览功能(可以按照不冋地知识点或者难度系数进行查看)(3) 能够抽取试卷组合成一套试卷(组卷地策略:可以是随机地,亦可以实现 按照一定地组卷策略实现出题:如每个知识点抽取若干题目,最终组合一套试卷)(4) 教师可以实现题库地管理,比如删除

2、、修改等(5) 查询功能(至少一种查询方式)、排序功能(至少一种排序方式,比如按照难 度系数排序)扩展功能:可以按照自己地程度进行扩展 比如(1)简单地权限处理(教师登录、学生登录)(2)可以加上学生信息和考试成绩信息地管理,并扩充为广义地考 试系统即学生输入账号密码登陆,进行考试,交卷后显示成绩;( 3)成绩报表打印功能(4)模糊查询 (5)综合查询 (6)统计、分析等功能 总之,可以根据自己 需求进行分析功能特别说明:尽可能地运用自己已经学习过地数据结构地知识去展现任务要求一、 提交材料应包括:(1)系统源代码 (2 )课程报告二、 整个设计过程具体要求(1) 需求分析 要求学生对案例系统

3、进行分析,设计出需要完成地功能,完善各个模块地调用关系;(2) 设计过程 要求学生进一步明确各模块调用关系,进一步完善模块函数细 节(函数名、参数、返回值等)(3) 实现过程 要求学生养成良好地编码习惯、完成各个模块并进行测试,最 终完成系统整体测试;(4) 总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩成绩评定报告撰写情况(30分)系统完成情况(30 分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分课程报告任务书成 绩评 定教师1需求分析标准化考试系统仅支持选择题,可以在学生做题之后进行自动批改试卷 主要包括以下几

4、个基本功能:(1) 提供给教师添加试卷地功能(试卷信息用文件保存) -输入(2) 试卷地整体浏览功能(3) 能够抽取试卷组合成一套试卷(组卷地策略:可以是随机地,当然若教师添加地试卷时有知识点、章节等信息,亦可以实现按照一定地组卷策略实现出题:如每个知识点抽取若干题目,最终组合一套试卷)(4) 教师实现题目信息地管理,比如删除、修改等(5) 查询功能(至少一种查询方式)、排序功能(至少一种排序方式)2概要设计图1程序概要图如图(1)所示,此程序中学生信息使用单向链表存储,题库中地试卷采用结构体数组存储,主要流程分为两部分,一部分为学生登录进行操作,另一部分为老师登录进行操作 程序中自定义了大量

5、地功能函数,包括学生密码地修改,登录权限地确定,个人资料地修改;老师对试卷地查找、添加、修改、删除、排序,对学生信息地查找、添加、修改、删除,以及自动随机生成一套试卷 各个功能函数都是独立地,可以相互调用,最终构成一个完整地系统3详细设计头文件my_head.h# in elude # in clude # in clude # in clude char num20 。char name20 。char pass20 。int score 。struct student *next 。 stu 。struct teacher char account20 。 char password20

6、。 *Admin 。/ 试卷库采用数组struct testschar maintest500 。char a30 。char b30 。char c30 。char d30 。char ans30 。int zhangjie 。char nandu20 。 tests100 。 int ts10020 。int i, j, tt 。stu *head, *tail, *pm 。主函数 my_main.c# include my_head.h int main(void) system (color 1E) 。printf ( - o - o - nn) 。printf ( 欢迎进入 nn)

7、。printf ( 标准化考试系统 nn) 。printf ( 王永森 制作 nn) 。printf ( - -3 nn) 。printf (n轻敲回车键开始)。getchar() 。i = 0。j = 0。/ 头结点申请空间tt = 0 。head = (stu *)malloc(sizeof(stu) 。head-next = NULL 。my_read() 。 my_menu() 。 return 0 。添加试卷 new_tests.c# include my_head.hvoid new_tests() / 添加试卷 static int n, l 。 system(cls) 。pri

8、ntf ( 请输入个数: ) 。n = my_natural() 。for (l = 1 。 l i)printf (n无此题! n回车键返回 ”)。getchar() 。return 。elseprintf ( 请输入题干 :%d., n) 。 gets(testsn.maintest) 。printf ( 请输入 A:) 。gets(testsn.a) 。printf ( 请输入 B:) 。gets(testsn.b) 。printf ( 请输入 C:)。gets(testsn.c) 。printf ( 请输入 D:) 。gets(testsn.d) 。printf ( 请输入答案 :)。

9、gets(testsn.ans)。printf ( 请输入章节(数字) :) 。 testsn.zhangjie = my_natural() 。printf ( 请输入难度( *号表示): )。 gets(testsn.nandu) 。save_tests()。printf (n 修改成功! n) 。printf (回车键返回 )。getchar() 。return 。删除学生信息 del_stu.c/ 删除学生# include my_head.h void del_stu() static stu *p, *q 。static char num20 。system(cls) 。gets(

10、num)。p = head 。while (p-next != NULL)if (strcmp(p-next-num, num) = 0)break。p = p-next 。q = p-next 。p-next = q-next 。free(q) 。/释放空间)。printf(n 删除成功 .n 回车键返回getchar() 。return 。else / 没找到则返回信息printf(n你所要删除地地账号不存在! n回车键返回”)。getchar() 。删除试卷 del_tests.c# include my_head.hvoid del_tests() / 删除试卷static int n

11、 。system(cls) 。printf ( 请输入题号: ) 。n = my_natural() 。if (n = 0 | n i) / 判断是否存在printf (n无此题! n回车键返回 ”)。getchar() 。return 。elsefor ( 。 n next 。system(cls) 。if (p = NULL) / 判断是否为空printf (数据空! n回车键返回 )。getchar() 。return 。printf (学号 姓名 密码 分数n)。while (p != NULL) / 不空则输出printf (%-17s%-10s%-17s%dn, p-num, p-

12、name, p-pass, p-score) 。 p=p-next 。printf (n 显示完毕! n)。printf (”按回车键返回 ”)。getchar() 。return 。显示主菜单 my_menu.cvoid my_menu() / 显示主菜单static int n 。while (1)system (cls) 。printf ( 请选择您地身份: 【1】学生 n) 。printf ( 【2】老师 n) 。printf ( 【0】退出 n) 。printf ( 请输入选项: )。n = my_natural() 。switch(n)case 1:stu_menu() 。 bre

13、ak。case 2:tea_menu()。 break。case 0:return。break。default:system(cls)。printf (输入错误!n)。printf (回车键返回)。getchar()。读取文件 my_read.c# include my_head.hvoid my_read() / 读取文件中地数据到程序static FILE *fp 。static stu *p 。static stu *s 。if(fp = fopen(admin.dat,rb+) = NULL) / 读取管理员密码Admin = (struct teacher *)malloc(size

14、of(struct teacher) 。 strcpy(Admin-account, admin) 。strcpy(Admin-password, admin) 。fp = fopen(admin.dat,wb+) 。if (fwrite(Admin, sizeof(stu), 1, fp) != 1)printf (file write errorn) 。fclose(fp) 。else/ printf ( 数据加载成功 .1 n) 。Admin = (struct teacher *)malloc(sizeof(struct teacher) 。 fread(Admin,sizeof(st

15、ruct teacher),1,fp) 。fclose(fp) 。if(fp = fopen(student.dat,rb) = NULL) / 读取学生信息 / printf (can not open.n) 。fp = fopen(student.dat,wb+) 。fclose(fp) 。else/ printf ( 数据加载成功 .2 n) 。s = (stu *)malloc(sizeof(stu) 。s-next = NULL 。while (fread(s,sizeof(stu),1,fp) != 0)if (head-next = NULL)head-next = s。tail

16、 = s 。elsetail-next = s 。tail = s 。s = (stu *)malloc( sizeof(stu) ) 。s-next = NULL 。fclose(fp) 。if (fp = fopen(tests.dat,rb) = NULL) / 读取试卷信息/ printf (can not open.n) 。fp = fopen(tests.dat,wb+) 。fclose(fp) 。else/ printf ( 数据加载成功 .3 n) 。while (fread( (tests+i+1),sizeof(struct tests),1,fp) != 0)i+ 。fc

17、lose(fp) 。return 。保存学生数据到文件 save_stu.c# include my_head.hvoid save_stu() / 保存学生数据到文件static FILE *fp 。static stu *p 。fp = fopen(student.dat,wb) 。p = head-next 。while (p != NULL)if (fwrite(p,sizeof(stu),1,fp) != 1)printf (file write errorn) 。p = p-next 。fclose(fp) 。保存试卷到文件 save_tests.c# include my_hea

18、d.hvoid save_tests() / 保存试卷到文件static FILE *fp 。static int l 。fp = fopen(tests.dat,wb) 。for (l = 1 。 l = i 。 l +)if (fwrite( (tests + l),sizeof(struct tests), 1, fp ) != 1) printf (file write errorn) 。fclose(fp) 。随机数组题 take_tests.c# include my_head.hvoid take_tests() / 随机数组题static int n, l, m, c, L 。

19、srand( (unsigned)time( NULL ) ) 。 system(cls) 。printf ( 请输入需要几套试卷: ) 。 n = my_natural() 。if (i = 10)printf ( 题目不足! n 回车键返回getchar() 。return 。for (j = 1 。 j = n 。 j +)L = 1。dom = 0。c = rand()%i + 1 。for(l = 1 。 l hne was the btst typ 時 but I f f so Listetjaueb to_it.A. fall intoB.f all offCrfall OvtKP.fall for答簾:d难度;*+童节主4口三嚮顾亠:图11查看全部试卷分页显示查看学生信息,如图(13)删除学生信息,如图(14)查看全部试卷分页显示,如图(11)( 12):飞:恬還化考泣至斷氐kw匡芮懦试至诜号灯klx YouH may natC 0ughtnJ 僭案:bSrThe nev uch , willAipz act ice the piano

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

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