| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

小学数学测试系统C课程设计报告及源程序代码

文***享

贡献于2021-06-03

字数:25637




课 程 设 计 报 告

课程名称 C语言课程设计
课题名称 学数学测试系统

专 业
班 级
学 号
姓 名
指导教师

2016年 X 月 X 日


XX学院
课 程 设 计 务 书


课程名称 C语言课程设计
课 题 学数学测试系统


专业班级
学生姓名
学 号
指导老师
审 批




务书达日期 2015 年 12 月 26 日
务完成日期 2016年 01 月 06 日


设计容设计
课题九:学数学测试系统具体容见附录
2.设计求:
1)设计正确方案合理
2)界面友方便
3)程序精炼结构清晰
4)机演示
3.设计报告求:
课程设计报告格式:
1)正文格式:级标题3号黑体二级标题四号宋体加粗正文四号宋体行距22
2)正文容:课题功课题功模块划分功实现程序调试总结附件(程序源代码求程序写出必注释)课程设计报告需5000字左右(含附件)
3)课程设计报告装订序:封面务书目录正文评分程序清单附件

二进度安排
星期日
(17周)
星期
(18周)
星期四
(18周)
星期五
(18周)
星期日
(18周)
14001700
18002100
18002100
18002100
交报告
课时间外安排










附录:
设计课题九:学数学测试系统

问题描述:
系统进行简单数学测试累计成绩包括户注册户登录户删题目测试信息保存等功
二功描述:
1系统采结构体数组数结构应包括:户名户密码测试题目数答题目数
2系统功:
a 户注册:添加新户名户密码
b 户登录:进行数学测试前需进行登录没该户需进行注册
c 题目测试:系统动生成题目(注意题目合理性题目结果负数数0等)户出答案系统动测试正确性时统计成绩
d 信息保存 注册成功题目测试完毕户信息成绩保存文件
e退出系统
3系统说明:执行具体功程序重新显示功菜单系统功限述进行扩充完善题目动生成简单加减运算生成复杂四混合运算时户界面友重输入错误答案需出提示信息
三测试数:
户>3题目数>5





目 录

1 系统需求分析 6
2 概设计 6
3 详细设计 10
4 系统测试 15
5 课程设计总结 18
















1 系统需求分析
学生数学测试系统具机出题动评分查答案错题重做等功系统属性:
1 界面设计选择种功
2 系统机出题显示算式含加减四运算
3 练时系统机出题键入答案显示错
4 测试时系统动出题题分统计分
5 题错信息错误出答案

2 概设计
系统功模块图:
学数学测试系统
学生成绩理模块
测试模块
注册登录模块
查结果模块
错题重做模块

21注册登录模块
提示户输入姓名学号果已记录次登录户信息追加储存文件中果没记录创建新文件储存:模块图图示:


注册登录模块
提示输入姓名学号
创建文件记录学生信息
判断否记录
22测试模块
进入开始测试菜单开始计时选择加减四种运算类型总体说测试模块分:加法运算减法运算法运算法运算四部分
四部分功相似选择类型选择题数目(5102050100)然选择难度时开始做题(题目利机函数机出题)然判断正误出正确率错误结果存入文件中备错题重做做题结果存入文件中便查结果

测试模块
加法运算
减法运算
法运算
法运算

23 学生成绩理模块
模块首先次测试学姓名学号成绩存入文件中次测试学信息覆盖前学信息然文件中信息读取结构体中进行排序利结构体排序成绩显示屏幕模块示图:
学生成绩理模块
存入测试学生成绩信息
查排名榜
创建学生成绩信息文件
排列序

24 查结果模块
利测试模块存储结果信息文件进行直接读取期间fgetc函数文件信息读取出图图示:
查结果模块
开存储结果文件
读取文件




25 错题重做模块
测试模块程已错题错题答案分出入文件中直接进行开存储错题文件逐读取错题时利scanf函数输入答题者答案开储存错题答案文件进行核正确答案模块图示:


错题重做模块
读取错题
进行重做
核答案
开错题存储文件

系统流程图:

开始
输入姓名

输入学号
菜单




查排名
错题重做
查结果

结束测试

加法
减法


选择题数
选择难度
测试
退出
返回
保存








































3 详细设计
31登录功具体实现:
两函数Savemessage()Judge()两函数中 Savemessage()函数保存学生输入信息输入学生信息保存studentmessagetxtTestResulttxt文件中保存程中先输入结构体中利fwrite(&s[0]sizeof(struct Student)1fp)语句文件studentmessagetxt中写入条记录刚刚输入学生姓名学号
利fprintf(fp1姓名:s\ns[0]name)fprintf(fp1 学号:s\ns[0]num) 文件TestResulttxt中写入刚刚输入学生信息
登录完进入测试界面时开始计时
语句{printf( 请计时输入开始时间(点分)) scanf(dd&hourA&minA)}进行输入计时
然进入测试界面菜单:
32 测试功实现
①选测试类型:
测试功菜单分5中1~4选择类型5返回菜单具体实现选择功
while(choose<1||choose>5) {printf( 超出功范围请重新选择(15))scanf(d&choose)}输入1~5间数switch(choose) { }进行选择应功
图选择1进入
②选题数目:
进行选择题目数目输入测试题目数限制(5102050100)五数句
while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)
{printf(超出功范围请重新选择(5102050100))scanf(d&thnum)} 语句实现题目数限制超出范围提示重新输入begain()中调Addition(int number)控制循环语句for(int i0i{ if(m1){num1rand()n num2rand()n } 产生位机数num1num2
if(m2){num110+rand()(n10) 产生两位机数 num1num2
num210+rand()(n10)}
if(m3){num1100+rand()(n100) 产生三位机数 num1num2
num2100+rand()(n100)}
printf( d + d num1num2)
scanf(d&num4)通控制循环次数控制产生题数目
③选难度实现:
利机函数rand()n中n值产生位数机书实现难度控制n10时语句num1rand()n产生位数n100时语句num110+rand()(n10)产生二位数n1000时num1100+rand()(n100)产生三位数
具体语句
printf(请选择难度 ) scanf(d&m)system(cls) 清屏
{ if(m1) n10 if(m2) n100
else if(m3) n1000 }
for(int i0i { if(m1){num1rand()n num2rand()n }
if(m2){num110+rand()(n10)
num210+rand()(n10)}
if(m3){num1100+rand()(n100)
num2100+rand()(n100)}}
实现控制难度rand()n产生机数实现机出题功
④动评分实现数储存
系统会输入答案正确答案进行逐较果正确结果记录TestResulttxt中便查结果果错误错误题正确结果记录failedResulttxt中便错题重做错误题正确结果记录rightResulttxt中TestResulttxt中便核错题答案程中系统会动统计正确结果数错误数利averagefloat(count1)float(number)动分数
具体程序
if(num3num4)
{fprintf(fp d + d d d \nnum1num2num4num3)
count1++}
else
{fprintf(fp d + d d d ×\nnum1num2num4num3) fprintf(fp2 d + d \nnum1num2num4num3)
错误题记录failedResulttxt中
fprintf(fp3 d + d d \nnum1num2num3)}}} averagefloat(count1)float(number)
fprintf(fp 正确 d 道错误 d 道正确率:f\n\ncount1count2average)
AA+average*100总分
nu++记录做类型题次数便算均分
⑤减程原理加法样工作界面分
减法法法
法功实现加法样分母零num2n10+rand()(nn10)语句进行实现中rand()(nn10)产生0nn101数n10+rand()(nn10)产生n10n1数例n100时产生1099两位数实现分母零时实现难度控制
33查结果实现
测试程中已结果记录存TestResulttxt中需开文件读取出记录
void ShowResult()显示测试结果函数
{FILE *fp
if((fpfopen(TestResulttxtr))NULL) exit(0)}
char ch chfgetc(fp) 文件开头字符
while(chEOF) 文件没尾时直循环
{ putchar(ch) 输出字符
chfgetc(fp)}
fclose(fp)} 函数直接读取查结果
34 排名实现
程中次做题情况学生信息记录文件nrecordtxt中然nrecordtxt中条条记录读取结构体中泡法进行排序直接结构体中读取排序成绩具体程序:
void sort() 实现排序
{FILE *fp5
int ijm
s[0]avscoreAnu
fp5fopen(nrecordtxta+)
fprintf(fp5s s f\ns[0]names[0]nums[0]avscore)刚刚做测试记录文件nrecordtxt中
fclose(fp5)
fp5fopen(nrecordtxtrb)
for(i0feof(fp5)i++)
{fscanf(fp5s sf\ns[i]names[i]num&s[i]avscore)} fclose(fp5) mi
struct Student temp
for(i0i{ for(j0j if(s[j]avscore {strcpy(tempnames[j]name)
strcpy(tempnums[j]num)
tempavscores[j]avscore

strcpy(s[j]names[j+1]name)
strcpy(s[j]nums[j+1]num)
s[j]avscores[j+1]avscore

strcpy(s[j+1]nametempname)
strcpy(s[j+1]numtempnum)
s[j+1]avscoretempavscore}}
输出排名结果
printf******************************************************\n)
printf( 查排名(排序结果高低)\n)
printf( 姓名 学号 分数\n)
for(i0i {printf( s s42f\ns[i]names[i]nums[i]avscore)}}
35错题重做
测试程中已错题错题答案分存入failedResulttxt rightResulttxt文件中直接进行开存储错题文件逐读取错题时利scanf函数输入答题者答案开储存错题答案文件进行核正确答案具体程序:
void rework() 错题重做
{int a
char ch
FILE *fp2*fp3
if((fp2fopen(failedResulttxta+))NULL)
{printf(开文件失败\n)
exit(0)}

if((fp3fopen(rightResulttxta+))NULL)
{printf(开文件失败\n)
exit(0)}
printf(********************错题重做***************************************\n)
while(feof(fp2))
{chfgetc(fp2)printf(cch)读取failedResulttxt中错题
if(ch'')
scanf(d&a)} 输入答案
fp2fopen(failedResulttxtw)清空前数
fclose(fp2)
printf(朋友请查正确答案\n)
while(feof(fp3))
{ chfgetc(fp3)printf(cch)}读取rightResulttxt中错题答案
fclose(fp3)fp3fopen(rightResulttxtw)清空
fclose(fp3)}
36结束测试
选择菜单结束功时系统提示输入结束时间输入系统动生成时间然系统学生信息记录学生学号命名文件中具体实现程
void FileCopy()文件复制函数保存测试结果然文件名重复
{FILE *in*out
strcat(s[0]numtxt)字符串txt连接字符串student[0]num学号文件名缀txt文件中保存工程目录
if((infopen(TestResulttxtr))NULL)
{ infopen(TestResulttxtw+)
printf(文件记录已新建\n)}
if((outfopen(s[0]numw))NULL)开文件学号txt 文件(030txt)w方式写方式
{ printf(开文件失败\n)
exit(0)}
while(feof(in))文件TestResulttxt没结束时循环
fputc(fgetc(in)out)逐字符写入
fclose(in)
fclose(out)}
void TestOver()程序测试完毕函数
{printf(\n\n测试完毕测试结果保存 s 中\n\ns[0]num) 输出测试结果记录提示}





4 系统测试
41注册登录模块

42测试模块

①选测试类型



②选题数目



③选难度实现



43 查学生成绩模块


44 错题重做模块


45 测试时出现错误分析总结
程序设计结构化模块化函数间相互调实现系统功调试带定方便 调试程中出现问题中文件结构体间转换困难段时间影响错题重做排名等功实现
问题:程序中次文件读写文件记录信息次出现读出记录文件中出现乱码
解决方法认真学反复研究文件读写函数fprintffscanffreadfwritefgetc反复调试中终解决问题
问题二学生信息均记录文件中文件直接排序需转换结构体中进行排序整排序程带相困难出现转换结构体中乱码现象
解决方法首先检查文件否信息记录确认数fscanf fread进行反复更换程中反复运行查结构体否输出终实现文件结构体间数传递实现排序功
问题三:错题重做定困难样错题记录读出重新做产生定困难
解决方法:采文件记录错题错题答案fgetc函数实现读出记录错题实现错题重做功
外调试程中遇相问题整体结构设计功实现

5 课程设计总结
次课程设计实验进入学学C语言结果次考验动手发现问题解决问题发现许足时没掌握知识实践中暴漏断思考查阅书籍网查资料机运行解决部分问题稍微问题相信学中定解决计算机应生活中说处作二十世纪学说掌握程序开发技术十分重C语言常见功强种高级语言做C语言课程设计十分必 仅巩固C语言程序设计课程学容掌握设计基方法强化机动手力
次课程设计编写学数学测试系统具机出题动评分动排名查正确答案错题重做等功系统功强程序编写难度相编程中知识片空白通书网络慢慢知道点
通次课程设计更加深刻体会c语言程序编写程严谨细致做事耐心懂理实际相结合重理知识远远够学理知识实践相结合起理中出结真正社会服务提高实际动手力独立思考力课程设计程中收获知识提高力时学生哲理懂样制定计划样实现计划掌握执行程中样克服心理良情绪生活学程中定会课程设计精神带生活中生活更加
谢谢田老师天时间指导





计算机科学技术系课程设计评分表


课程名称: C语言程序设计



项 目
评 价
设计方案合理性创造性

设计调试结果

设计说明书质量

答辩陈述回答问题情况

课程设计周表现情况

综合成绩



教师签名:
日 期: 20160110












附录:
源程序
#include C语言标准输入输出头文件
#include 字符串操作需头文件
#include 文件操作需头文件
#include 产生机数需头文件
float A0
int nu0
int hourAhourBminAminB
struct Student
{ char name[21] 姓名
char num[10] 学号
float avscore}s[50] 结构体数组存储学生信息初定50改


**

void Savemessage() 保存学生输入信息函数
{
FILE *fp*fp1定义文件指针判断文件开否 a方式开文件尾写数

if((fpfopen(studentmessagetxtwb+))NULL)开文件studentmessagetxt
{ printf(开文件失败\n)
exit(0)}
if((fp1fopen(TestResulttxta))NULL)开文件TestResulttxt
{ printf(开文件失败\n)
exit(0)}

printf( 输入姓名:) 学生输入信息
scanf(ss[0]name)

printf( 输入学号:)
scanf(s&s[0]num)


fwrite(&s[0]sizeof(struct Student)1fp)文件studentmessagetxt中写入条记录刚刚输入学生信息
fprintf(fp1 姓名:s\ns[0]name)文件TestResulttxt中写入刚刚输入学生信息
fprintf(fp1 学号:s\ns[0]num)
fclose(fp)关闭文件studentmessagetxt
fclose(fp1)
system(cls) 清屏
}


void Judge()判断函数
{int i0
FILE *fp 文件指针判断文件开否 r读开方式
printf(\n\n\n)
printf( *************************学数学测试系统********************\n)
printf( **\n)
printf( **\n)
printf( *************************************************************\n)
printf( *注 册*\n)
printf( **\n)
printf( *输入姓名*\n)
printf( **\n)
printf( *输入学号*\n)
printf( **\n\n\n)
if((fpfopen(studentmessagetxtr))NULL) 判断文件开否 a方式开文件尾写数开文件studentmessagetxt
{ fpfopen(studentmessagetxtw+) 果没studentmessagetxt文件新建文件w+开方式新建文件
printf(文件记录已新建\n)}

while(feof(fp))判断否文件尾
{fread(&s[i]sizeof(struct Student)1fp)行行文件中读出学生信息保存结构体数组student[]中
fscanf(fp\n) 读取换行符
i++ i变量保存学生记录数
if(i50) 数满时50满时数组标0开始i29时
{printf(数已满已法测试\n)
fclose(fp)
exit(0)}}}

**
void Addition(int number) 加法运算函数number题目数形参
{

FILE *fp*fp2*fp3
if((fpfopen(TestResulttxta))NULL)
{ printf(开文件失败\n)
exit(0)}
if((fp2fopen(failedResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}

if((fp3fopen(rightResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}
int num1num2num3num4mncount10count20
float average00 正确率变量注意float类型
srand(time(0)) 初始化机数果没语句次运行程序时机数样
fprintf(fp 加法测试:\n) 文件写入
fprintf(fp 加数 + 加数 结果 正确结果 否正确\n)文件写入
{
printf( *************************************************************\n)*选择难度*
printf( * 请选择难度*\n)
printf( * 1简 单 *\n)
printf( * 2 般 *\n)
printf( * 3困 难 *\n)
printf( **\n\n\n)
printf(请选择难度 ) scanf(d&m)system(cls) 清屏
{ if(m1) n10 *m值转化应n值机函数出现位2位3位*
if(m2) n100
else if(m3) n1000 }
printf( \n **************************************************************************\n\n)
for(int i0i {if(m1)
{num1rand()n num2rand()n } 产生位机数num1num2

if(m2)
{num110+rand()(n10) 产生两位机数 num1num2
num210+rand()(n10)}
if(m3)
{num1100+rand()(n100) 产生三位机数 num1num2
num2100+rand()(n100)}
num3num1+num2 num3保存正确结果
printf( d + d num1num2)终端屏幕输出题目
scanf(d&num4)输入计算结果

if(num3num4)正确结果计算结果较正确话
{fprintf(fp d + d d d √\nnum1num2num4num3)结果记录TestResulttxt中
count1++}变量count1记录正确题目数

else错误话num1num2时
{fprintf(fp d + d d d ×\nnum1num2num4num3)结果记录TestResulttxt中
fprintf(fp2 d + d \nnum1num2num4num3)错误题记录failedResulttxt中
fprintf(fp3 d + d d \nnum1num2num3)}}}错误题正确结果记录failedResulttxt中

averagefloat(count1)float(number)计算正确率注意int整型转换float类型

fprintf(fp 正确 d 道错误 d 道正确率:f\n\ncount1count2average)
AA+average*100
nu++
fclose(fp)
fclose(fp3)
fclose(fp2)}
**

void Subtracter(int number) 减法运算函数注释加法样
{
FILE *fp*fp2*fp3
if((fpfopen(TestResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}
if((fp2fopen(failedResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}
if((fp3fopen(rightResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}

int num1num2num3num4count10nmcount20
float average00
srand(time(0))
fprintf(fp 减法测试:\n)
fprintf(fp 减数 减数 结果 正确结果 否正确\n)

printf( *************************************************************\n)*选择难度*
printf( * 请选择难度*\n)
printf( * 1简 单 *\n)
printf( * 2 般 *\n)
printf( * 3困 难 *\n)
printf( **\n\n\n)
printf(请选择 ) scanf(d&m)system(cls) 清屏
{if(m1) n10
if(m2) n100
else if(m3) n1000 }
printf( \n **************************************************************************\n\n)
for(int i0i {if(m1)
{num1rand()n num2rand()n } 产生位机数num1num2

if(m2)
{num110+rand()(n10) 产生两位机数 num1num2
num210+rand()(n10)}
if(m3)
{num1100+rand()(n100) 产生三位机数 num1num2
num2100+rand()(n100)}
num3num1num2
printf( d d num1num2)
scanf(d&num4)
if(num3num4)
{fprintf(fp d d d d √ \nnum1num2num4num3)
count1++}
else
{fprintf(fp d d d d ×\nnum1num2num4num3)
count2++
fprintf(fp2 d d \nnum1num2num4num3)
fprintf(fp3 d d d \nnum1num2num3)}}
averagefloat(count1)float(number)

fprintf(fp 正确 d 道错误 d 道正确率:f\n\ncount1count2average)
AA+average*100
nu++
fclose(fp)fclose(fp2)
fclose(fp3)
}
**

void Multiplication(int number)法运算函数注释加法样
{
FILE *fp*fp2*fp3
if((fpfopen(TestResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}

if((fp2fopen(failedResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}
if((fp3fopen(rightResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}

int num1num2num3num4mncount10count20
float average00
srand(time(0))
fprintf(fp 法测试:\n)
fprintf(fp 数 * 数 结果 正确结果 否正确\n)

{ printf( *************************************************************\n)*选择难度*
printf( * 请选择难度*\n)
printf( * 1简 单 *\n)
printf( * 2 般 *\n)
printf( * 3困 难 *\n)
printf( **\n\n\n)
printf(请选择 )}
scanf(d&m)
system(cls) 清屏

{if(m1) n10
if(m2) n100
else if(m3) n1000 }
printf( \n **************************************************************************\n\n)
for(int i0i{if(m1)
{num1rand()n num2rand()n }
if(m2)
{num110+rand()(n10)
num210+rand()(n10)}
if(m3)
{num1100+rand()(n100)
num2100+rand()(n100)}
num3num1*num2
printf( d * d num1num2)
scanf(d&num4)
if(num3num4)
{fprintf(fp d * d d d √\nnum1num2num4num3)
count1++}
else
{fprintf(fp d * d d d ×\nnum1num2num4num3)
count2++
fprintf(fp2 d * d \nnum1num2num4num3)
fprintf(fp3 d * d d \nnum1num2num3)}}
averagefloat(count1)float(number)

fprintf(fp 正确 d 道错误 d 道正确率:f\n\ncount1count2average)
AA+average*100
nu++
fclose(fp)
fclose(fp2)
fclose(fp3)
}
**
void Division(int number) 加法运算函数注释样
{FILE *fp*fp2*fp3
if((fpfopen(TestResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}

if((fp2fopen(failedResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}
if((fp3fopen(rightResulttxta))NULL)
{printf(开文件失败\n)
exit(0)}

int num1num2mncount10count20
float num3num4average 正确率变量注意float类型
srand(time(0)) 初始化机数果没语句次运行程序时机数样
fprintf(fp 加法测试:\n) 文件写入
fprintf(fp 数数数结果 正确结果 否正确\n)文件写入

{ printf( *************************************************************\n)*选择难度*
printf( * 请选择难度*\n)
printf( * 1简 单 *\n)
printf( * 2 般 *\n)
printf( * 3困 难 *\n)
printf( **\n\n\n)
printf(请选择:)
scanf(d&m)system(cls) 清屏

{if(m1) n10
if(m2) n100
else if(m3) n1000 }

printf( \n **************************************************************************\n\n)
printf( 请保留保留数点位 \n)
for(int i0i{if(m1)
num1rand()n
if(m2)
num110+rand()(n10)

if(m3)
num1100+rand()(n100)
num2n10+rand()(nn10) 产生等零机数num3
num3(float)(num1)(float)(num2) num3保存正确结果
printf( d d num1num2)终端屏幕输出题目
scanf(f&num4)输入计算结果
num3(int)(num3*10)100 实现保留数点位
if(num3num4) 正确结果计算结果较正确话
{fprintf(fp d d 1f 1f √\nnum1num2num4num3)文件中写入
count1++ 变量count1记录正确题目数
}
else 错误话num1num2时
{fprintf(fp d d 1f 1f ×\nnum1num2num4num3)
count2++变量count2记录错误题目数
fprintf(fp2 d d \nnum1num2)
fprintf(fp3 d d 1f \nnum1num2num3)}}}
averagefloat(count1)float(number)计算正确率注意int整型转换float类型
fprintf(fp 正确 d 道错误 d 道正确率:f\n\ncount1count2average)
AA+average*100
nu++
fclose(fp)
fclose(fp2)
fclose(fp3)
}
**
void rework() 错题重做
{int a
char ch
FILE *fp2*fp3

if((fp2fopen(failedResulttxta+))NULL)
{printf(开文件失败\n)
exit(0)}

if((fp3fopen(rightResulttxta+))NULL)
{printf(开文件失败\n)
exit(0)}
printf(********************错题重做***************************************\n)
while(feof(fp2))
{chfgetc(fp2)printf(cch)读取failedResulttxt中错题
if(ch'')
scanf(d&a)} 输入答案
fp2fopen(failedResulttxtw)清空前数
fclose(fp2)
printf(朋友请查正确答案\n)
while(feof(fp3))
{ chfgetc(fp3)printf(cch)}读取rightResulttxt中错题答案
fclose(fp3)fp3fopen(rightResulttxtw)清空
fclose(fp3)}



void sort() 实现排序
{FILE *fp5
int ijm
s[0]avscoreAnu
fp5fopen(nrecordtxta+)
fprintf(fp5s s f\ns[0]names[0]nums[0]avscore)刚刚做测试记录文件nrecordtxt中
fclose(fp5)
fp5fopen(nrecordtxtrb)
for(i0feof(fp5)i++)
{fscanf(fp5s s f\ns[i]names[i]num&s[i]avscore)}文件nrecordtxt记录存结构体struct Student中
fclose(fp5)
实现排序
mi
struct Student temp
for(i0i{
for(j0j if(s[j]avscore {
strcpy(tempnames[j]name) 利时结构变量temp实现数组元素交换
strcpy(tempnums[j]num)
tempavscores[j]avscore

strcpy(s[j]names[j+1]name)
strcpy(s[j]nums[j+1]num)
s[j]avscores[j+1]avscore

strcpy(s[j+1]nametempname)
strcpy(s[j+1]numtempnum)
s[j+1]avscoretempavscore
}
n0意味着没交换排序已完成
}
输出排名结果
printf( ****************************************************************\n)
printf( 查排名(排序结果高低)\n)
printf( 姓名 学号 分数\n)
for(i0i {printf( s s 42f\ns[i]names[i]nums[i]avscore)}}


**


void TestOver()程序测试完毕函数
{
printf(\n\n测试完毕测试结果保存 s 中\n\ns[0]num) 输出测试结果记录提示
}


void ShowResult()显示测试结果函数
{
FILE *fp
if((fpfopen(TestResulttxtr))NULL)
{ printf(开文件失败\n)
exit(0)}
char ch
chfgetc(fp)文件开头字符
while(chEOF)文件没尾时直循环
{ putchar(ch)输出字符
chfgetc(fp)}
fclose(fp)
}


void FileCopy()文件复制函数保存测试结果然文件名重复
{
FILE *in*out
strcat(s[0]numtxt)字符串txt连接字符串student[0]num学号文件名缀txt文件中保存工程目录
if((infopen(TestResulttxtr))NULL)
{ infopen(TestResulttxtw+)
printf(文件记录已新建\n)
}
if((outfopen(s[0]numw))NULL)开文件学号txt 文件(03071361txt)w方式写方式
{ printf(开文件失败\n)
exit(0)
}
while(feof(in))文件TestResulttxt没结束时循环
fputc(fgetc(in)out)逐字符写入
fclose(in)
fclose(out)}
**
void ChooseFunc()
void begain()
{printf(\n\n\n)
printf( \n)
printf( *************************************************************\n)
printf( *1加法测试*\n)
printf( *2减法测试*\n)
printf( *3法测试*\n)
printf( *4法测试*\n)
printf( *5返回菜单*\n)
printf( **\n\n\n)
int choosethnum bool judgefalse
printf( 选择功:)
scanf(d&choose)
while(choose<1||choose>5)列功时循环
{
printf( 超出功范围请重新选择(15))
scanf(d&choose)
}
switch(choose)switch语句选择执行功
{
case 1执行功1
system(cls) 清屏
printf(\n\n\n)
printf( 加法测试:输入测试题目数(5102050100):&thnum)
scanf(d&thnum)

while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<20||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)列功时循环
{ printf(超出功范围请重新选择(5102050100))
scanf(d&thnum)}

system(cls) 清屏
Addition(thnum)调加法运算函数
begain()

break
case 2
system(cls) 清屏
printf(\n\n\n)
printf( 减法测试:输入测试题目数(5102050100)&thnum)
scanf(d&thnum)

while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<20||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)列功时循环
{ printf(超出功范围请重新选择(5102050100))
scanf(d&thnum)}

system(cls) 清屏
Subtracter(thnum)
begain()
break
case 3
system(cls) 清屏
printf(\n\n\n)
printf( 法测试:输入测试题目数(5102050100)&thnum)
scanf(d&thnum)
while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<20||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)列功时循环
{ printf(超出功范围请重新选择(5102050100))
scanf(d&thnum)}

system(cls) 清屏
printf(\n\n\n)
Multiplication(thnum)
begain()
break
case 4
system(cls) 清屏
printf(\n\n\n)
printf( 法测试:输入测试题目数(5102050100)&thnum)
scanf(d&thnum)
while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<20||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)列功时循环
{ printf(超出功范围请重新选择(5102050100))
scanf(d&thnum)}
system(cls) 清屏
printf(\n\n\n)
Division(thnum)begain()
break
case 5
system(cls) 清屏

ChooseFunc()
break}}
**

void ChooseFunc()功选择函数
{
printf(\n\n\n)
printf( *************************************************************\n)
printf( *1开始测试*\n)
printf( *2查结果*\n)
printf( *3查排名*\n)
printf( *4错题重做*\n)
printf( *5结束测试 *\n)
printf( **\n\n\n)
int choosetime

printf( 选择功:)
scanf(d&choose)
while(choose<1||choose>5)列功时循环
{
printf( 超出功范围请重新选择(15))
scanf(d&choose)
}
switch(choose)switch语句选择执行功
{
case 1功1
system(cls)
printf( *************************************************************\n)
{printf( 请计时输入开始时间(点分)) 开始时间
scanf(dd&hourA&minA)
system(cls) }
显示时间
*gettime(&tim)printf(\n开始时间:02d02d02d\ntimti_hourtimti_mintimti_sec)*

begain()

break
case 2功2
system(cls)
printf(\n\n)
ShowResult()调函数输出测试结果
ChooseFunc()
break
case 3功2
system(cls)
printf(\n\n)
sort()调函数输出测试结果
ChooseFunc()
break

case 4功4
system(cls) 清屏
printf(\n\n)
rework()调函数输出测试结果
ChooseFunc()
break
case 5功5
system(cls) 清屏
printf(\n\n)

{ printf(请输入结束时间:点分) 结束时间
scanf(dd&hourB&minB)
time(hourBhourA)*60+(minBminA)
printf( **\n)
printf( *朋友答题时*\n)
printf( * d分钟 *\n time) }
FileCopy()调函数复制测试结果
TestOver()
break}}
**
***********************************************************************************************************************************
void main()
{
FILE *fp*fp2*fp3
fpfopen(TestResulttxtw) 写方式开文件果文件存清空什结束程序时复制测试结果
fp2fopen(failedResulttxtw)清空前数
fclose(fp2)
fp3fopen(rightResulttxtw)清空
fclose(fp3)
Judge() 调函数
Savemessage() 调函数
ChooseFunc() 调函数

}






湖nna工程学院
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

c++超市管理系统课程设计报告

c++超市管理系统课程设计报告第1章 任务描述本次C++实践课题为“超市管理系统”。要求功能有A、添加商品信息,有商品编号、商品名、供应商代号、进货价、售出价、存货数等。进货:若商品已存在,只需修改存货数;若不存在,需增加新纪录。B、售出:输入商品编号,修改相应的存货数与销售额。C、查询:查询商品,销售额。

文***品 2年前 上传550   0

C语言代码大全

 乘法口诀表 #include <stdio.h> #include <conio.h> void main(void) { int i,j,x,y; clrscr(); printf(“\n\n * * * 乘法口诀表 * * * \n\n“); x=9; y=5; for(i=1;i<=9;i++) { gotoxy(x,y); printf(“%2d “,i);

山***1 5年前 上传1760   0

快递管理系统项目测试报告C

成绩 课程设计报告 题 目 快递管理系统 项目测试报告 课 程 名 称 软件项目实践 院 部 名 称 龙蟠学院 专 业 计算机科学与技术 班 级 计算机科学与技术Ⅱ学 生 姓

z***u 2年前 上传395   0

C语言课程设计学生考勤系统

设计任务:C语言课程设计任务书题目:学生考勤系统设计功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。分步实施:1、 初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、 建立一个文件,将每条记录信息写入文件中并能显示于

文***品 2年前 上传523   0

C语言课程设计通讯录管理系统

 课程设计报告书 课程名称: C语言课程设计 班 级: 学 号: 姓 名: 指导老师: 设计时间:

文***品 5年前 上传2399   0

C语言通讯录报告及源代码

XX学院《C语言程序设计》课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 计科班 学生姓名: 学 号: 设计地点(单位)________计算机基础自主学习中心 __ __设计题目:__ 个人通讯录设计_________________

文***享 3年前 上传356   0

软件测试课程设计医院管理系统

成绩 课程设计报告 题 目 易非医院管理系统 课 程 名 称 软件测试课程设计 院 部 名 称 专 业 计算机科学与技术 班 级 学 生 姓 名

z***u 1年前 上传326   0

课程设计报告《某中小学视频监控系统设计报告》

计算机网络技术教研室目录第1章 概述 11.1 课程设计的核心任务 21.2 课程设计工作进程 2第2章 需求分析 32.1 用户需求2.2 可行性分析 32.2.1 技术可行性 32.2.2 经济可行性 42.3 系统功能 5第3章 概要设计 73.1 系统设计思想 83.2 系统(或网络)总体结构 83.3 系统规划或总体设计 8第4章 详细设计 93

文***享 3年前 上传573   0

小学数学圆的课程设计

教学目标:• 了解圆的概念;• 认识圆的直径和半径;• 会画圆;• 能测量圆的周长和面积。教学重难点:• 理解圆的直径和半径;会画圆;能测量圆的周长和面积。教学准备:

q***8 2个月前 上传158   0

C语言课程设计学生通讯录管理系统设计

C语言课程设计学生通讯录管理系统设计一、题目内容的描述学生通讯录管理系统设计设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类型定义为结构体类型。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。功能要求

文***享 4年前 上传721   0

银行账户管理系统(c++课程设计)

 2015-2016学年第二学期 面向对象程序设计(c++)大作业说明书学院名称: 计算机与信息工程学院 班级名称: 计算机科学与技术(对口) 学生姓名: 学 号: 题 目: 银行账户管理系统

文***品 3年前 上传729   0

C语言课程设计学校运动会管理系统

C语言课程设计 学 校 运 动 会 管理系统代码有误运行不了 专业:网络工程 班级: 报告人: 指导老师: 报告日期:2014年X月X号一、 需求分析1、 问题描述: 建立运动员信息系统,包括运

文***品 1年前 上传232   0

c++课程设计及图书管理系统(窗口界面)

C++课程设计课程设计系部:计算机应用技术系专业:计算机应用技术班级学号: 姓名: 一、系统功能分析: 图书管理系统设计说明报告: 图书馆作为学生学习知识的重要场所,作为信息资源的集散地,图书馆和用户借阅资料繁多,包含很多的信息数据的管理。介

文***享 3年前 上传585   0

小学算术运算测试程序JAVA课程设计报告

面向对象程序设计(JAVA)课程设计说明书学院名称: 计算机与信息工程学院 班级名称: 20XX级计算机科学与技术 题 目: 小学算术运算测试程序 面向对象程序设计(JAVA)课程设计任务书学 院计算机与信息工程学院专 业20XX级计算机科学与技术

文***品 3年前 上传699   0

C课程设计题目及要求

课程设计题目 选题一: 学生信息管理系统设计 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。(测试数据不少5个人,可以用本班同学的具体数据为背景) 软件由下列几个功能模块组成: (1)增加一个学生的信息(需输入要增加学生的所有信息);当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入; (2)统计本班学生总人数及男女生人数。 (3)分别按照学号

1***9 7年前 上传3876   0

物料代码输入ERP系统流程6

1. 目的 使MRPⅡ系统的供应商规格范围吻合合格供应商的限定。 2. 适用范围 本公司所有合格供应商的物料代码。 3. 流程/职责和工作要求 流 程 职 责 工作要求 相关文件 /记录 开 始 物料选型 申请料号 将通用物 料输入ERPⅡ 项目工程师安排送样 采购安排送样及提供规格书 开发新机型/ECN

l***4 8年前 上传12880   0

Web系统开发课程设计报告

录入学生基本信息的功能学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。1.2、修改学生基本信息的功能

N***u 4年前 上传1232   0

物流信息系统课程设计报告

课程设计指导教师评定成绩表项目分值优秀(100>x≥90)良好(90>x≥80)中等(80>x≥70)及格(70>x≥60)不及格(x<60)评分参考标准参考标准参考标准参考标准参考标准学习态度15学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务学习态度尚好,

知***享 3年前 上传930   0

某中学的排课管理系统课程设计报告

学号《某中学的排课管理系统》课程设计报告题目:某中学的排课管理系统专业:网络工程班级:姓名:指导教师:成绩:计算机学院2017年X月X日目录一、 设计内容及要求 21.1研究的目的和意义 21.2数据字典 21.3全系统的数据项 31.4数据流图 4二、 概要设计 42.1E-R图 4学生实体E-R图 42.

文***享 1年前 上传288   0

物业管理系统课程设计报告

物业管理系统课程设计报告目 录第一章 前 言 11. 物业管理系统研究的意义 12. 数据库开发简介 13. asp.net简介 2第二章 数据库设计 31.选择数据库管理系统 32.数据流图 32.1 住户管理 32.2 财政管理 32.3 设备管理 42.4 投诉信息管理 42.5 物业管理 52.6系统功能结构图 53.数据字典 63.1数据项

文***享 3年前 上传868   0

物流系统课程设计报告书

 XX大学 物流系统课程设计报告书 学院名称 : 经济与学院 学生姓名 : 专业名称 : 物流管理 班级 : 物流班 时间 : 20XX年5月23日至20XX年6月3日 实验报告正文 1.在第三方物流系统中增加一个货品的操作步骤 实验步骤 (1)在仓储管理系统中,选择【仓储管理】—【基础管理】—【货品管理】

文***品 5年前 上传1596   0

教务管理系统数据库课程设计报告

 《数据库原理》课程设计报告课程名称: 《数据库原理》课程设计 设计题目: 《教务管理系统》 指导教师: 班 级:   学 号: 学生姓名:

文***享 1年前 上传269   0

车辆管理系统实验报告课程设计

 成绩: 《C++程序设计实践》报告专 业: 软件工程 班 级: 学 号: 姓 名: 日期:2016年 X月 X日目录一、设计目的 1二、总体设计 2三、 详细设计(以c

z***u 10个月前 上传275   0

进销存管理系统测试分析报告数据库课程设计

数据库课程设计Life mart进销存管理系统 需求分析规格说明书 目 录第1章 引言 11.1 背景 11.2 读者对象 11.3 编写目的 11.4 定义 11.5 参考资料 2第2章 任务概述 22.1测试目的 22.2运行环境 22.3测试策略 32.4条件与限制 3第3章 测试计划 33.

文***品 1年前 上传349   0

ATM自动取款机系统测试计划课程设计

学校代码: 课程设计题 目:ATM自动取款机系统(测试计划)学生姓名: 学 院: 系 别: 专 业:软件工程 班 级:软件班指导教师: 2012年X月X日 目录1.引言 11.1编写目的 11.2项目背景 11.3定义 21.4参考资料 22

文***享 3年前 上传710   0