下载

2下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 C语言课程设计报告-XX

C语言课程设计报告-XX.doc

C语言课程设计报告-XX

情人
2010-11-15 0人阅读 举报 0 0 暂无简介

简介:本文档为《C语言课程设计报告-XXdoc》,可适用于工程科技领域

华中科技大学中国地质大学本科生课程设计论文课程名称C语言课程设计教师姓名XXX本科生姓名XX本科生学号XXXXXXX本科生专业XX学所在院系XXXX学院类别:本科生日期:XXXX课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总成绩:评阅人签名:注:、无评阅人签名成绩无效、必须用钢笔或圆珠笔批阅用铅笔阅卷无效、如有平时成绩必须在上面评分表中标出并计算入总成绩。目录TOCo""hzuHYPERLINKl"Toc"课程设计评语HYPERLINKl"Toc".程序代码课程论文题目设计一个学生成绩管理系统对在校某班学生几门课程的考试成绩进行统一管理。每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩默认以学号为序存放。()一个文件按以班为单位存储学生记录。()将允许的操作分为六种以A、B、C、D、E、F为标志(若设置菜单操作更加):A插入一个新的学生记录(录入学生信息)B修改学生记录C删除一个学生记录D登记成绩E修改成绩F浏览全班成绩计算学生的总成绩按学号排序输出全班成绩表程序设计思路首先题目中要求一个文件按以班为单位存储学生记录所以学生的信息应当存放在文件中,要有相应的文件操作其次题目中要求有录入学生信息、登录成绩所以应当有文件的输入,输出等操作第三题目中要求浏览学生的信息,应提供显示,查找,排序等操作。所以应有文件的操作功能:输入、修改、删除、查找、显示。功能模块图依照题目可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块数据结构设计对于单个的学生数据:学生的学号、姓名是字符型应当采用字符型数组学生的成绩用整数表示应当采用整形数据类型应当将单个的学生数据信息存放在文件中每条记录对应一个学生。对于全班同学的成绩应当用结构体数组。算法设计主函数:主函数提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择流程图:显示一系列功能模块N输入n,判断n是否是AFY根据n的值调用各功能模块函数程序:main(){while(){clrscr()printf("*************welcometousestudentmanage******************n")printf("*************************menu********************************n")printf("*=========================================================*n")printf("*A>shuruB>xiugai*n")printf("*C>shanchuD>chazhao*n")printf("*E>xianshiF>exit*n")printf("**n")printf("**n")printf("Pleaseinputwhichyouwant(AF):")ch=getch()switch(ch){case'A':shuru()breakcase'B':xiugai()breakcase'C':shanchu()breakcase'D':chazhao()breakcase'E':xianshi()breakcase'F':exit()default:continue}}}输入模块:对于单个的学生数据信息,学号、姓名是字符型,可以采用字符型数组学生的分数为整数,采用整数数据信息存放在文件中,一条记录对应一个学生,方便于学生信息的管理。如果要存放若干学生信息就用结构体数组:structscore*结构体score*{intmingcicharxuehaocharmingzicharnianlingfloatscore}data,infointi,j,k=chartemp,chFILE*fp,*fp程序:voidshuru(){if((fp=fopen("sscoretxt","ab"))==)*以读写方式打开名为sscore的文件*{printf("cannotopenthisfilen")getch()exit()}for(i=i<=i){printf("nPleaseshuruxuehao:")gets(dataxuehao)printf("Pleaseshurumingzi:")gets(datamingzi)printf("pleaseshurunianling:")gets(datanianling)printf("Pleaseshurushuxuescore:")gets(temp)datascore=atof(temp)printf("Pleaseinputyingyuscore:")gets(temp)datascore=atof(temp)printf("Pleaseshuruwuliscore:")gets(temp)datascore=atof(temp)datascore=datascoredatascoredatascorefwrite(data,sizeof(data),,fp)printf("anotheryn")ch=getch()if(ch=='n'||ch=='N')break}fclose(fp)}修改模块:输入要修改学生的学号,根据学生的学号查找学生记录,并提示用户修改该记录的哪部分信息根据用户选择修改相应的信息流程图:输入要修改的学号YNYN程序:voidxiugai(){if((fp=fopen("sscoretxt","rb"))==||(fp=fopen("temptxt","wb"))==)*检查是否出错*{printf("Cannotopenthisfilen")exit()}printf("nPLeaseshuruxiugaixuehao:")scanf("d",i)getchar()while((fread(data,sizeof(data),,fp))==){j=atoi(dataxuehao)if(j==i){printf("xuehao:snmingzi:snnianling:sn",dataxuehao,datamingzi,datanianling)printf("Pleaseshurumingzi:")gets(datamingzi)printf("Pleaseshurushuxuescore:")gets(temp)datascore=atof(temp)printf("Pleaseinputyingyuscore:")gets(temp)datascore=atof(temp)printf("Pleaseinputwuliscore:")gets(temp)datascore=atof(temp)datascore=datascoredatascoredatascore}fwrite(data,sizeof(data),,fp)}fseek(fp,L,)*将位置指针移到离头文件个字节处*fseek(fp,L,)while((fread(data,sizeof(data),,fp))==){fwrite(data,sizeof(data),,fp)}fclose(fp)fclose(fp)}删除模块:该模块的功能是:用户输入要删除的学生的学号,根据学生学号查找记录并删除流程图:输入要删除的学号YNYN程序:voidshanchu(){if((fp=fopen("sscoretxt","rb"))==||(fp=fopen("temptxt","wb"))==){printf("nopenscoretxtwasfailed!")getch()exit()}printf("nPleaseinputIDwhichyouwanttodel:")scanf("d",i)getchar()while((fread(data,sizeof(data),,fp))==){j=atoi(dataxuehao)if(j==i){printf("Anykeywilldeletitn")getch()continue}fwrite(data,sizeof(data),,fp)}fclose(fp)fclose(fp)remove("sscoretxt")rename("temptxt","sscoretxt")printf("Datadeletwassuccesful!n")printf("Anykeywillreturntomain")getch()}查找模块:该模块的功能是根据输入的学生的姓名查找对应的记录,找到以后,显示相应的学生信息流程图:YNNY程序:voidchazhao(){if((fp=fopen("sscoretxt","rb"))==){printf("nCannotopenthisfilen")exit()}printf("nPLeaseshuruxuehaochakan:")scanf("d",i)while(fread(data,sizeof(data),,fp)==){j=atoi(dataxuehao)if(i==j){printf("xuehao:smingzi:snnianling:snshuxue:fnyingyu:fnwuli:fnzongfen:fn",dataxuehao,datamingzi,datanianling,datascore,datascore,datascore,datascore)}getch()}}显示模块:该模块的功能是显示所有学生记录信息程序:voidxianshi(){floatsintnif((fp=fopen("sscoretxt","rb"))==)*以读写方式打开名为sscore的文件*{printf("Cannotreadingthisfilen")*先检查打开的操作是否出错*exit()}for(i=i<=i){if((fread(infoi,sizeof(infoi),,fp))!=)*检查是否出错*break*指针要读写字节数要读写size字节的数据项文件型指针*}printf("nxuehaomingzinianlingshuxueyingyuwulizongfenn")for(j=,k=j<ij,k){infojmingci=kprintf("sssffffn",infojxuehao,infojmingzi,infojnianling,infojscore,infojscore,infojscore,infojscore)}getch()fclose(fp)}程序代码源程序:#include"stdioh"*IO函数*#include"stdlibh"*其它说明*#include"stringh"*字符串函数*#include"conioh"*屏幕操作函数*#include"memh"*内存操作函数*#include"ctypeh"*字符操作函数*#include"alloch"*动态地址分配函数*structscore*结构体score*{intmingcicharxuehaocharmingzicharnianlingfloatscore}data,infointi,j,k=chartemp,chFILE*fp,*fpvoidshuru(){if((fp=fopen("sscoretxt","ab"))==)*以读写方式打开名为sscore的文件*{printf("cannotopenthisfilen")getch()exit()}for(i=i<=i){printf("nPleaseshuruxuehao:")gets(dataxuehao)printf("Pleaseshurumingzi:")gets(datamingzi)printf("pleaseshurunianling:")gets(datanianling)printf("Pleaseshurushuxuescore:")gets(temp)datascore=atof(temp)printf("Pleaseinputyingyuscore:")gets(temp)datascore=atof(temp)printf("Pleaseshuruwuliscore:")gets(temp)datascore=atof(temp)datascore=datascoredatascoredatascorefwrite(data,sizeof(data),,fp)printf("anotheryn")ch=getch()if(ch=='n'||ch=='N')break}fclose(fp)*读文件结束*}voidxianshi(){floatsintnif((fp=fopen("sscoretxt","rb"))==)*以读写方式打开名为sscore的文件*{printf("Cannotreadingthisfilen")*先检查打开的操作是否出错*exit()}for(i=i<=i){if((fread(infoi,sizeof(infoi),,fp))!=)*检查是否出错*break*指针要读写字节数要读写size字节的数据项文件型指针*}printf("nxuehaomingzinianlingshuxueyingyuwulizongfenn")for(j=,k=j<ij,k){infojmingci=kprintf("sssffffn",infojxuehao,infojmingzi,infojnianling,infojscore,infojscore,infojscore,infojscore)}getch()fclose(fp)}voidxiugai(){if((fp=fopen("sscoretxt","rb"))==||(fp=fopen("temptxt","wb"))==)*检查是否出错*{printf("Cannotopenthisfilen")exit()}printf("nPLeaseshuruxiugaixuehao:")scanf("d",i)getchar()while((fread(data,sizeof(data),,fp))==){j=atoi(dataxuehao)if(j==i){printf("xuehao:snmingzi:snnianling:sn",dataxuehao,datamingzi,datanianling)printf("Pleaseshurumingzi:")gets(datamingzi)printf("Pleaseshurushuxuescore:")gets(temp)datascore=atof(temp)printf("Pleaseinputyingyuscore:")gets(temp)datascore=atof(temp)printf("Pleaseinputwuliscore:")gets(temp)datascore=atof(temp)datascore=datascoredatascoredatascore}fwrite(data,sizeof(data),,fp)}fseek(fp,L,)*将位置指针移到离头文件个字节处*fseek(fp,L,)while((fread(data,sizeof(data),,fp))==){fwrite(data,sizeof(data),,fp)}fclose(fp)fclose(fp)}voidchazhao(){if((fp=fopen("sscoretxt","rb"))==){printf("nCannotopenthisfilen")exit()}printf("nPLeaseshuruxuehaochakan:")scanf("d",i)while(fread(data,sizeof(data),,fp)==){j=atoi(dataxuehao)if(i==j){printf("xuehao:smingzi:snnianling:snshuxue:fnyingyu:fnwuli:fnzongfen:fn",dataxuehao,datamingzi,datanianling,datascore,datascore,datascore,datascore)}getch()}}voidshanchu(){if((fp=fopen("sscoretxt","rb"))==||(fp=fopen("temptxt","wb"))==){printf("nopenscoretxtwasfailed!")getch()exit()}printf("nPleaseinputIDwhichyouwanttodel:")scanf("d",i)getchar()while((fread(data,sizeof(data),,fp))==){j=atoi(dataxuehao)if(j==i){printf("Anykeywilldeletitn")getch()continue}fwrite(data,sizeof(data),,fp)}fclose(fp)fclose(fp)remove("sscoretxt")rename("temptxt","sscoretxt")printf("Datadeletwassuccesful!n")printf("Anykeywillreturntomain")getch()}main(){while(){clrscr()printf("*************welcometousestudentmanage******************n")printf("*************************menu********************************n")printf("*=========================================================*n")printf("*A>shuruB>xiugai*n")printf("*C>shanchuD>chazhao*n")printf("*E>xianshiF>exit*n")printf("**n")printf("**n")printf("Pleaseinputwhichyouwant(AF):")ch=getch()switch(ch){case'A':shuru()breakcase'B':xiugai()breakcase'C':shanchu()breakcase'D':chazhao()breakcase'E':xianshi()breakcase'F':exit()default:continue}}}程序运行结果各个模块的运行界面:()主菜单函数:()输入模块:()显示模块:()删除模块:()查找模块:()修改模块:编程中遇到的困难及解决方法问题:学生数据信息输入包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息当正确输入存在的学生学号时系统进行判断时提示不存在此学生。解决办法及步骤:、逐个检查文件中是否有此学生、有这个学生那么检查循环判断是否有此学生的语句发现没有错、输出用于循环检查语句中的学生信息发现有乱码、仔细分析乱码的原因最后发现是变量的类型错误错将学生类型的结构体指针变量定义为了其他类型的指针变量。问题:在查询模块当正确输入查找信息时系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。解决办法及步骤:、检查所编写的程序代码是否完全正确若不是则改之然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。检查当我们在输入查找信息时看是否我们输入的信息有误若是这样的话我们应当仔细输入查找信息。问题:在插入模块当输入插入信息时系统却提示插入不进数据。解决办法及步骤:、检查所编写的程序代码是否完全正确若不是则改之然后再继续正确输入插入信息看能否插入进去得到所要插入的学生信息以及学生的语文、数学、英语和计算机的成绩。、检查当我们在输入插入信息时看是否我们输入的插入信息有总结心得及良好建议让我感触最深的是:有些东西不是简简单单地想出来就可以了而是需要实际动手做做才行才会收获乐趣。在这次身临其境的C课程设计中让我体会很多:要增强实践能力书本和生活正遇到的具体问题是有差别的。在开始编程的时候我发现问题并不是像书上说的那么清楚明白C语言非常的灵活与书上讲的用法有许多不同所以不能生搬硬套书上的算法要结合C语言的特点采用书上的思想这样才能解决实际问题。数据结构很重要在编写代码的过程中最常出现的现象就是反复修改数据结构甚至在进行优化的时候还回过头去修改中间代码的数据结构。这就导致了编写代码效率的降低还有由于数据结构的反复修改使得整个工程维护起来极其困难。因而数据结构的设计在整个设计阶段是很重要的。交流和沟通在程序的编写、调试、运行过程中遇到了前所未有的困难是通过与同学交流和沟通解决的。同学的热情、耐心的讲解让整个课程设计进展顺利。这次编译课程设计对我来说真的是受益匪浅通过这次实践让我对书本上的知识有了深刻的理解同时增强了自己的动手能力更重要的是我学会了一系列处理问题的方法。致谢在短短的一周C语言课程设计中真的学到了很多的东西。在课程设计过程中真的遇到太多的麻烦,非常感谢同学们热情的帮助同时感谢老师不辞辛苦的指导我们课程设计非常感谢中国地质大学(武汉)免费为我们提供机房使课程设计能够顺利的实现。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/22

C语言课程设计报告-XX

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利