c语言课程研究设计学生成绩管理系统 .docx

上传人:Che****ry 文档编号:13046640 上传时间:2022-04-27 格式:DOCX 页数:41 大小:166.46KB
返回 下载 相关 举报
c语言课程研究设计学生成绩管理系统 .docx_第1页
第1页 / 共41页
c语言课程研究设计学生成绩管理系统 .docx_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《c语言课程研究设计学生成绩管理系统 .docx》由会员分享,可在线阅读,更多相关《c语言课程研究设计学生成绩管理系统 .docx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习学号1305370318成果可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结题目要课程设计说明书成果治理系统2021 年 6 月 16 日 6 月 27 日治理学院工商治理工商 1303 班周玉琪杨英祥设计名称 运算机程序设计设计题目设计时间学院专业班级姓名指导老师2021 年 6 月 27 日目录同学成果治理程序可编辑资料 - - - 欢迎下载精品名师归纳总结求 3设计目的 3总体设计 3详细设可编辑资料 - - - 欢迎下载精品名师

2、归纳总结计4调试与测试13源程序 15总结 31同学成果治理程序一 题目要求1. 问题描述 :对在校同学几门课程的考试成果进行统一治理. 每个同学记录包括学号 ,姓名, 年龄, 数学, 英语, 物理成果 , 默认以学号为序存放 .2. 要求:(1) 一个文件按以班为单位储备同学记录 .(2) 将答应的操作分为四种 , 以 A,B ,C,D,E,F为标志: A: 插入一个同学记录。B: 修改同学记录。C:删除一个同学记录。D:查找一个同学记录。E: 浏览同学成果 :F: 退出3. 运算同学的总成果 .4. 按学号排序输出全班同学成果表.二 设计目的依据题目要求 , 由于同学信息是存放在文件中 ,

3、 所以应供应文件的输入 , 输出等操作。在程序中需要浏览同学的信息, 应供应显示 , 查找, 排序等操作。另外仍应供应键盘式选择菜单实现功能选择.三 总体设计可编辑资料 - - - 欢迎下载精品名师归纳总结同学成果治理系统数据输入数据显示数据修改数据删除数据查找四 详细设计1. 主函数:主函数一般设计得比较简洁 , 只供应输入 , 处理和输出部分的函数调用其中各功能模块用菜单方式选择.流程图:显示一系列功能模块N输入 n, 判定 n 是否是 A-FY依据 n 的值调用各功能模块函数 程序:/#include head.hint menu_select,依据上面的需求分析 , 可以将这个系统分为

4、以下模块: 输入模块 , 修改模块 , 删除模块, 查找模块 , 显示模块 .char c。printfnn。printf | 1.增加同学记录5.统计信息|n。printf | 2.查询同学记录6.打开文件|n。printf | 3.修改同学记录7.储存文件|n。printf | 4.同学纪录排序8.显示记录|n。printf | 0.退出系统 |n。printfnn。printf请选择 0-8:。c=getchar。getchar。 return c-0。2. 输入模块 : 分析:单独看各数据信息 , 学号, 姓名是字符型 , 可以接受字符型数组。分数为整数, 接受整数。数据信息存放在文件

5、中, 一条记录对应一个同学 , 既符合习惯又便利信息治理 .假如要存放如干同学信息就用结构体数组:void addrecordstudent studint i=0,j,num。可编辑资料 - - - 欢迎下载精品名师归纳总结char str5。ifnumstus.=0printf已有记录存在是否掩盖.y/nn。getsstr。ifstr0=Y|str0=y i=0。else i=numstus。printf请输入增加的同学信息条目数 : 。scanf%d,&num。ifi=0 numstus=num 。else numstus+=num 。ifnumstuslenslens+=50。poin

6、ter=student *reallocpointer,lens*LEN。printf请输入同学信息 :n。for。inumstus 。i+getchar。printf请输入学号 : 。getspointeri.number。printf请输入姓名 : 。getspointeri.name。printf请输入性别 男/ 女 1/0:。getspointeri.sex。ifpointeri.sex0=0 strcpypointeri.sex,女 。else strcpypointeri.sex,男 。printf请输入各科成果: 按“语文,数学,英语,历史,政治”的次序:。studi.score

7、=0。forj=0。j0i=menu_select。 /* 把握菜单 */ switchicase 1:addrecordpointer。break 。 /* 增加同学信息 */ case 2:findrecordpointer。break 。 /* 查询同学信息 */ case 3:amendrecordpointer。break 。 /* 修改同学信息 */ case 4:sortpointer。break 。 /* 同学信息排序 */case 5:statisticpointer。break 。 /* 统计信息 */ case 6:openfilepointer。break 。 /* 打

8、开文件 */ case 7:writetotextpointer。break 。 /* 储存文件 */case 8:displaypointer,0,numstus-1。break 。 /* 显示记录 */ case 0:ifnumstus.=0 printf是否储存当前记录 .y/n。getsstr。ifstr0=y|str0=Y writetotextpointer。i=-1。break 。 /* 退出系统 */default:printf请输入数字 08:n。i=1 。 /* 输入错误 */printftt欢迎再次使用本系统。 nn。display1。3. 修改模块 : 分析: 用户输入

9、要修改同学的学号, 依据同学的学号等信息查找同学记录,输入要修改的学号找到 .并提示用户修改该记录的哪部分信息 . 依据用户选择修改相应的信息 . 流程图:可编辑资料 - - - 欢迎下载精品名师归纳总结YN可编辑资料 - - - 欢迎下载精品名师归纳总结YN 程序 :显 示 记 录 , 调用修改函数提示没有找到可编辑资料 - - - 欢迎下载精品名师归纳总结void xiugai连续 .可编辑资料 - - - 欢迎下载精品名师归纳总结iffp=fopens_score.txt,rb+=NULL|fp1=fopentemp.txt,wb+=NULL/* 检查是否出错 */返回主菜单printf

10、Cannot open this file.n。exit0。printfnPLease shuru xiugai xuehao:。scanf%d,&i。 getchar。whilefread&data,sizeofdata,1,fp=1j=atoidata.xuehao。ifj=iprintfxuehao:%snmingzi:%snnianling:%sn,data.xuehao,data.mingzi,data.nianl ing 。printfPlease shuru mingzi:。getsdata.mingzi。printfPlease shuru shuxue score:。gets

11、temp。data.score0=atoftemp。printfPlease input yingyu score:。getstemp。data.score1=atoftemp。printfPlease input wuli score:。getstemp。data.score2=atoftemp。data.score3=data.score0+data.score1+data.score2。 fwrite&data,sizeofdata,1,fp1。fseekfp,0L,0。 /* 将位置指针移到离头文件0 个字节处 */ fseekfp1,0L,0。whilefread&data,size

12、ofdata,1,fp1=1fwrite&data,sizeofdata,1,fp。fclosefp。fclosefp1。可编辑资料 - - - 欢迎下载精品名师归纳总结4. 删除模块 :分析:该模块的功能是 , 用户输入要删除的同学的学号 , 依据同学学号查找记录并删除. 流程图:输入要删除的学号找到 .YN可编辑资料 - - - 欢迎下载精品名师归纳总结YN 程序 :显 示 记 录 , 调用删除函数提示没有找到可编辑资料 - - - 欢迎下载精品名师归纳总结void deleterecordstudent继st续u.,int i /*删除信息 */int j。whilei=0返回主菜单fo

13、rj=i。 jnumstus 。j+ stuj=stuj+1。numstus-。printf删除成功 .n。void countstudent studint i,j。fori=0。inumstus 。i+studi.index=1。 forj=0。 jstudi.score studi.index+。5. 查找模块 : 需求分析 :该模块的功能是依据输入的同学的姓名查找对应的记录, 找到以后 , 显示相应的同学信息 . 流程图:输入同学学号可编辑资料 - - - 欢迎下载精品名师归纳总结YNN可编辑资料 - - - 欢迎下载精品名师归纳总结Y 程序:/#include head.hint f

14、indrecordstudent stud /*char str2。int i,num显示。找到的ifnumstu记s录=0是 否 找到 学 生记录查找信息 */提示没有找到可编辑资料 - - - 欢迎下载精品名师归纳总结printf没有可被查找的记录 n 。可编辑资料 - - - 欢迎下载精品名师归纳总结return -1。else询 问 是否连续可编辑资料 - - - 欢迎下载精品名师归纳总结printf以何种方式查找? n1. 学号t2.姓名t3.名次n 。getsstr。可编辑资料 - - - 欢迎下载精品名师归纳总结ifstr0=1 /*按学号查找 */printf请输入学号 : 。

15、getsstr。fori=0。i=numstus 。i+ ifstrcmpstr,studi.number=0displaystud,i,i。break。else continue。返回主菜单可编辑资料 - - - 欢迎下载精品名师归纳总结else ifstr0=2 /*按姓名查找 */printf请输入姓名 : 。getsstr。fori=0。i=numstus 。i+ ifstrcmpstr,studi.name=0displaystud,i,i。break。else continue。else ifstr0=3 /*按名次查找 */可编辑资料 - - - 欢迎下载精品名师归纳总结prin

16、tf请输入名次 : 。scanf%d,&num。getchar。fori=0。inumstusprintf没有查找所要的信息。 n 。return -1。return i。6. 显示模块 : 需求分析 :该模块的功能是显示全部同学记录信息. 程序:void welcomeprintft*n。printftttt*学 生成 绩 管 理系 统 *ntttt倾 情奉 献欢 迎使用.n。printft*n。void showtableprintf-n。printf学号t姓名t性别t语文t数学t英语t历史t政治t总分t平均分t名次n 。printf-n。可编辑资料 - - - 欢迎下载精品名师归纳总结v

17、oid displaystudent stud,int n1,int n2int i。showtable。 /* 显示表头 */ fori=n1。i=n2 。i+printf%st%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2ft%.2ft%dtn,studi.number,studi.name,studi.sex,studi.subject0,studi.subject1,studi.subject2,studi.subject3,studi.subject4,st udi.score,studi.average,studi.index。/* 通过循环输出数据 */vo

18、id display1printftt本系统由计科二班制作nn。printftt制作人员列表 : nn。printfttprintfnn殷增锋ttt邵超n。getchar。五 调试与测试在这次课程设计中,程序编写过程中遇到了很多的问题,各种函数的运用也让人头疼,在上机编译运行过程中显现了很多的错误,例如:各种数据类型的定义,函数的调用等等。但最终仍是在老师同学的帮忙下进行了各种代码的编写与修改, 最终程序成功的运行。下面是各个模块的界面图(1) 主菜单函数 :(2) :输入模块 :(3) :显示模块 :(4) :删除模块 :(5) :查找模块:(6) :修改模块 :六程序源#ifndef H_

19、STUDENT_HH #define H_STUDENT_HH可编辑资料 - - - 欢迎下载精品名师归纳总结#include stdio.h #include string.h #include malloc.h#define LEN sizeofstruct message_student /*一个结构体数组元素的长度*/#define numsubs 5 /*学科数目 */typedef struct message_student /*结构体定义 */char number6。char name20。char sex4。float subjectnumsubs。float score。

20、float average。int index。student。extern int numstus。 /* 同学数目 */extern student *pointer。 /* 指向结构体数组 */ extern int lens。int menu_select。 /* 函数声明 */ int openfilestudent stu。 int findrecordstudent stud。int writetotextstudent stud。void welcome。void display1。void showtable。void sortstudent stu。void deleter

21、ecordstudent stu,int i。void addrecordstudent stud。void displaystudent stud,int n1,int n2。void amendrecordstudent stud。void countstudent stud。 void sortnumstudent stud。void sortnum2student stud。void sortnamestudent stud。void sortname2student stud。void sortcountstudent stud。void sortcount2student stud

22、。void statisticstudent stud。void display1。#endif/#include head.h int menu_select可编辑资料 - - - 欢迎下载精品名师归纳总结char c。printfnn。printf | 1.增加同学记录5.统计信息|n。printf | 2.查询同学记录6.打开文件|n。printf | 3.修改同学记录7.储存文件|n。printf | 4.同学纪录排序printf | 0.退出系统 |nprintfnn。printf请选择 0-8:。8.显示记录。|n。c=getchar。getchar。 return c-0。/#i

23、nclude head.hint findrecordstudent stud /*查找信息 */char str2。int i,num。ifnumstus=0printf没有可被查找的记录n。return -1。elseprintf以何种方式查找? n1. 学号t2.姓名t3.名次n 。getsstr。ifstr0=1 /*按学号查找 */printf请输入学号 : 。getsstr。fori=0。i=numstus 。i+ ifstrcmpstr,studi.number=0displaystud,i,i。break。else continue。else ifstr0=2 /*按姓名查找

24、*/printf请输入姓名 : 。getsstr。fori=0。i=numstus 。i+可编辑资料 - - - 欢迎下载精品名师归纳总结ifstrcmpstr,studi.name=0displaystud,i,i。break。else continue。else ifstr0=3 /*按名次查找 */printf请输入名次 : 。scanf%d,&num。getchar。fori=0。inumstusprintf没有查找所要的信息。 n 。return -1。return i。/#includehead.hint openfilestudent stuint i=0,j。FILE *fp。

25、char filename20,str2。ifnumstus.=0printf已经有记录存在,是否储存 .y/n。getsstr。ifstr0=y|str0=Y writetotextstu。printf请输入文件名 : 。getsfilename。numstus=0 。可编辑资料 - - - 欢迎下载精品名师归纳总结iffp=fopenfilename,rb+=NULLprintf无法打开该文件 n 。return-1。fscanffp,%d,&numstus。fgetcfp。 whileinumstusfscanffp,%s,stui.number。fscanffp,%s,stui.nam

26、e。fscanffp,%s,stui.sex。forj=0。jnumsubs。j+ fscanffp,%f,&stui.subjectj。fscanffp,%f,&stui.score。fscanffp,%f,&stui.average。fscanffp,%d,&stui.index。i+。fclosefp。printf文件读取成功 n 。printf是否显示纪录 .y/n。getsstr。ifstr0=y|str0=Y displaystu,0,numstus-1。return0。/#include head.hvoid sortstudent studint i。char str5。stu

27、dent *p。p=stud 。ifnumstus=0printf没有可供查询的记录 . 。while1fori=0。i+printf请输入查询方式 : 。printf(直接输入回车就终止查询操作) n 。可编辑资料 - - - 欢迎下载精品名师归纳总结printf1.依据学号 t。printf2.依据姓名 t。printf3.getsstr依据名次 n。ifstrlenstr=0 break。ifstr0=1printf请输入排序次序: n 。printf1.升序排列 t。printf2.降序排列 n 。getsstr。ifstr0=1 sortnum2p。elsesortnump。disp

28、laystud,0,numstus-1。else ifstr0=2printf请输入排序次序: n 。printf1.升序排列 t。printf2.降序排列 n 。getsstr。ifstr0=1sortname2p。elsesortnamep。displaystud,0,numstus-1。else ifstr0=3printf请输入排序次序: n。printf1.升序排列 t。printf2.降序排列 n 。getsstr。ifstr0=1sortcount2p。elsesortcountp。displaystud,0,numstus-1。else printf请输入 13 。printf

29、是否退出排序 .y/n。getsstr。可编辑资料 - - - 欢迎下载精品名师归纳总结ifstr0=y|str0=Y break。return。void sortnumstudent studint i,j。student temp。student *p。p=stud 。fori=0。inumstus 。i+forj=0。j0temp=*p+j。*p+j=*p+j+1。*p+j+1=temp。void sortnum2student studint i,j。student temp。student *p。p=stud 。fori=0。inumstus 。i+forj=0。j0temp=*p+

30、j。*p+j=*p+j+1。*p+j+1=temp。void sortnamestudent studint i,j。student temp。student *p。可编辑资料 - - - 欢迎下载精品名师归纳总结p=stud 。fori=0。inumstus 。i+ forj=0。j0temp=*p+j。*p+j=*p+j+1。*p+j+1=temp。void sortcountstudent studint i,j。student temp。student *p。p=stud 。fori=0。inumstus 。i+ forj=0。jstudj.indextemp=*p+j。*p+j=*p

31、+j+1。*p+j+1=temp。void sortcount2student studint i,j。student temp。student *p。p=stud 。fori=0。inumstus 。i+ forj=0。jstudj+1.indextemp=*p+j。*p+j=*p+j+1。可编辑资料 - - - 欢迎下载精品名师归纳总结*p+j+1=temp。/#includehead.hvoid statisticstudent stud /*新增功能,输出统计信息 */int i,j=0,k=0。char c1,str2。float averagenumsubs,sum=0。ifnumstus=0printfelse没有可被查找的记录n 。while1printf printf下面将统计考试成果 n 。请选择你要统计哪科的成果 1.At2.Bt3.Ct4.Dt5.En。c1=getchar。printftswitchc1一共有个 %d记录n,numstus。 /*总共记录数 */

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁