ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:445KB ,
资源ID:4513579      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于c语言的学分管理系统样本.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于c语言的学分管理系统样本.doc

1、1引言现今大学对学生成绩管理以及学生水平评估过程中,不但依托学生分数,并且把各个科目掌握状况通过学分来反映,众所周知,大学人数众多, 单靠人工在纸质介质上记录,既挥霍资源又不以便管理,并且错误率高,学分管理系统就是基于现今大学在学生成绩管理过程中采用学分制,应运而生计算机数据管理系统,对在校生进行学分数据录入、修改、删除、查找、排序以及对学分得分初步记录,并存储学生学分数据计算机数据管理系统。运用学分管理系统可以有效协助管理者,来管理学生学分数据,并可以理解各个班级学生学分完毕状况,从而节约了管理过程中人力物力,并且存贮以便、精确。学生学分管理系统是运营于计算机系统下应用软件,重要用于对学生学

2、号、姓名以及各项学科学分进行录入、删除、修改、查询、排序、记录、存盘等操作,为学校教师和学生提供了一种对学生学分进行管理和查看平台,给顾客提供了一种简朴和谐顾客接口,重要任务如下:1.1查看所有学生信息依照菜单提示,选取该功能,可以逐条显示所有学生学分记录1.2输入学生记录顾客依照菜单提示选取输入学生记录选项,进行关于学生学号、姓名、班级、基本课学分、专业课学分、选修课学分、人文类课学分以及实验课学分录入。可一次性输入多条学生学分信息记录。1.3删除学生记录依照提示,顾客输入要进行删除学生学号,如果在不存在该学号,则显示没有找到该学生;如果在文献中有该学号信息存在,则将该学号所相应姓名、学号、

3、班级、各科学分等在相应文献中加以删除。1.4修改学生记录依照提示,顾客输入要进行修改学分记录学生学号,如果在文献中不存在该学号,则显示没有找到该学生;如果在文献中有该学生信息存在,则将提示顾客选取要修改某课程,当顾客选取某课程代码后,则将显示你所要修改课程。然后提示顾客选取与否继续进行修改操作。1.5查询学生信息查询学生信息,分为依照学号查询和依照班级查询两个详细需求,菜单选项分别提示顾客输入要查询学生信息学号或班级,如果在磁盘文献中有相应输入信息,则提示顾客已找到,并逐项列出相应查找到学生学分状况。1.6依照学号排序学生记录该项功能依照学生学号项进行排序,以便顾客对学生学分状况有较为直观以便

4、理解,并可以让学号有规律排列学生项,在显示时集中浮现,让浏览者更加清晰明白。1.7记录学生学分完毕状况该项是记录各班学生学分完毕状况,可以很以便理解该班学生学习水平。2总体设计进行总体设计,以比较抽象方式概括拟定系统如何完毕预定任务,进而拟定构成系统每个子程序构造,从而将一种大程序按功能分割成某些模块,是每个模块具备功能单一、构造清晰、接口简朴易于理解小程序,并且拟定各个函数之间调用关系。本系统重要应用构造化设计思想,实现学生学分输入、删除、修改、查询以及浏览等管理功能,各重要模块数据均存储在文献中,因而包括对文献读、写等基本操作。在软件开发过程中应用了高档语言程序设计中基本控制构造,如选取、

5、循环、顺序等构造。系统设计办法是构造化设计办法,采用C语言进行开发。系统功能构造图,如图1所示。退出系统查看所有学生信息输入学生记录删除学生记录修改学生记录依照学号查询学生记录依照班级查询学生记录依照学号排序学生记录记录学生学分完毕状况学分管理程序图1 系统构造图3详细设计本系统采用主函数调用子函数设计办法,先整体在逐渐细化过程,详细办法如下:在主函数前,进行子函数声明,如下:void menu();/菜单函数void to_menu();/返回菜单函数void view_data();/查看所有学生信息void save_data();/保存数据void add_data();/输入学生数据

6、void read_data();/读取数据void delete_data();/删除数据void edit_data();/修改数据void query_data_no();/查找(按学号)void query_data_clas();/查找(按班级)void sort_data_no();/排序(学号)void tongji();/记录某班学生学分完毕状况3.1主函数设计编写主函数,主函数运营时,先调用void read_data()函数,将数据从文献读取到构造体数组中,再调用菜单函数void menu(),显示菜单选取项,设计一种while循环,让函数进入循环,设计switch函数,对

7、菜单各项功能进行选取,使各项功能可以运营,最后退出循环,调用to_menu()函数,返回主菜单。main() int fun; read_data(); menu(); while(1) printf(请输入功能号0-8:,&fun); scanf(%d,&fun); switch(fun) case 0:break; / 退出 case 1:view_data();break; / 查看所有学生信息 case 2:add_data();break; / 输入学生记录 case 3:delete_data();break; / 删除学生记录 case 4:edit_data();break;

8、/ 修改学生记录 case 5:query_data_no();break; / 查询(学号) case 6:query_data_clas();break; / 查询(班级) case 7:sort_data_no();break; / 排序(学号) case 8:tongji();break; /记录某班学生学分完毕状况 default:printf(输入错误!);break; if(fun=0) break; to_menu(); 3.2子函数设计3.2.1菜单函数设计菜单函数一方面运营库函数system(cls)进行清屏,然后运营各个printf语句,显示主菜单,如图2所示。图2 系统

9、主菜单 3.2.2返回主菜单函数设计设计字符c1,c2,用c1来接受第一次输入回车,然后再次输入回车时,调用函数menu(),返回主菜单,来实现各次操作完毕后返回主菜单任务。3.2.3查看所有学生信息函数设计设计for循环,定义i=0,学生总数为dd.count,运用for循环,可以显示所有学生已经记录信息。如图3所示:图3 查看所有学生信息3.2.4数据从构造体数组保存到文献函数设计创立文献data.txt,运用for循环,把数据逐个写入文献。3.2.5输入学生记录函数设计依照printf语句提示,逐个输入学号、姓名、班级,调用库函数strcpy(),把各个输入项,拷贝到数组中,再对各项分数

10、进行赋值,如果不不大于最大值,则显示最大值,设计成循环模式,末尾提示与否继续添加数据,运用break终结循环,最后存盘,退出程序,显示主菜单。输入学号为106学生信息后如图4所示。图4 输入学生信息3.2.6删除学生记录函数设计设计for循环以及库函数strcmp(),把输入学号,跟已有学号进行对比,如果没有相似窗号,则提示没有找到该学生,如果找到相似窗号,则把该学号后来数据向前移动一位,再把学生总数减一,实现删除学生。删除过程如下图5和图6所示。图5 输入要删除学生图6 删除后显示3.2.7修改学生记录函数设计依照printf语句提示,输入要修改学生学号,设计for循环和库函数strcmp,

11、对输入学号进行查找,如果没有查找到,显示没有找到该学生,如果可以查找到给学生,则进一步提示输入学生姓名、班级,然后选取要修改学生记录项,最后提示,与否继续录入,退出后可返回主菜单。修改过程如下图7和图8所示。图7 编辑学生信息窗口图8 修改学生信息完毕3.2.8查询学生记录函数设计查询学生记录分为,依照学生学号查询和依照班级查询该班所有学生成绩,设计for循环和调用ctrcmp()函数,把要查询成果进行显示,如果没有找到与输入匹配字符,则显示没有找到该班级或没有找到该学生。查询显示如下图,依照学号查询如图9所示,依照班级查询如图10所示。图9 依照学号查询学生信息图10 依照班级查询学生信息3

12、.2.9排序函数设计设计while循环,用for循环和库函数strcmp将学号依次比较,然后用冒泡排序法将学号数据由小到大排列,并且各数据互换,完毕排序。排序成果如下图11所示。图11 依照学号排序成果3.2.10记录函数设计输入要记录班级号,调用strcmp函数,查找相似班级号学生数据,再设计for循环并调用strcmp函数,把差找出学生数据,与规定完毕学分原则进行对比,记录出符合规定和不符合规定学生个数,最后显示。记录成果如下图12所示。图12 依照班级记录成果4总结本系统可以完毕学生学分录入、查询、修改、删除、排序以及班级总体水平记录功能,但是对于系统访问权限设立,访问途径(网络访问还是

13、单机使用)等功能,还没有提出解决方案,在这些问题上尚有待于对系统进一步开发完善。学分管理系统是介于学生管理者和学生之间一种数据库平台,她让数据管理者可以以便录入修改学生成绩,在管理过程中可以节约时间,增长工作效率,如果学生可以通过网络来进行查询,就可以避免学分改动而引起矛盾,同步也可以给学生带来以便,因而在访问途径上可以设立为单机服务器管理,网络访问数据库模式,来为学生和学校之间提供一种信息查询平台。本系统开发过程,重要运用了for循环、switch循环、库函数strcmp与strcpy等,在排序函数设计时,略显繁琐,有待于使用者在使用时,提出宝贵意见和建议。通过对本程序开发,让我理解到一种完

14、整系统开发过程,将一种大工程问题可以细化到各个模块,让每个模块可以独立去完毕各自功能,最后用函数之间调用来解决程序开发所有问题,让我在后来开发程序道路上更加拥有信心。参照文献1 赵启兰库存管理M北京:高等教诲出版社,2 谭浩强,张基温C语言程序设计教程(第3版)M北京:高等教诲出版社,3 黄明、梁旭、万洪莉C语言课程设计M北京:电子工业出版社,4 郭宁,郑小玲管理信息系统M北京:人民邮电出版社,5 赵池龙,杨林,陈伟实用软件工程M北京:电子工业出版社,附 录#include #include #include #include #define MAX 60struct student char

15、 no10; / 学号 char name50;/ 姓名 char clas5; / 班级 int score5;/ 学分;struct data int count; / 当前学生数组中学生个数 struct student stuMAX;/ 学生数组 dd;/子函数声明void menu();/菜单函数void to_menu();/返回菜单函数void view_data();/查看所有学生信息void save_data();/保存数据void add_data();/输入学生数据void read_data();/读取数据void delete_data();/删除数据void ed

16、it_data();/修改数据void query_data_no();/查找(按学号)void query_data_clas();/查找(按班级)void sort_data_no();/排序(学号)void tongji();/记录某班学生学分完毕状况/ 主函数main() int fun; read_data(); menu(); while(1) printf(请输入功能号0-8:,&fun); scanf(%d,&fun); switch(fun) case 0:break; / 退出 case 1:view_data();break; / 查看所有学生信息 case 2:add_

17、data();break; / 输入学生记录 case 3:delete_data();break; / 删除学生记录 case 4:edit_data();break; / 修改学生记录 case 5:query_data_no();break; / 查询(学号) case 6:query_data_clas();break; / 查询(班级) case 7:sort_data_no();break; / 排序(学号) case 8:tongji();break; /记录某班学生学分完毕状况 default:printf(输入错误!);break; if(fun=0) break; to_m

18、enu(); void menu()/*显示主菜单*/ system(cls);/清屏 printf(n); printf(ttn); printf(tt n); printf(tt 学分管理系统 n); printf(tt n); printf(tt 0 退出 1 查看所有学生信息 n); printf(tt n); printf(tt 2 输入学生记录 3 删除学生记录 n); printf(tt n); printf(tt 4 修改学生记录 5 查询(学号) n); printf(tt n); printf(tt 6 查询(班级) 7 排序(学号) n); printf(tt n); p

19、rintf(tt 8记录某班学生学分完毕状况 n); printf(tt n); printf(ttnn);void to_menu()/ 等待顾客按回车后回到主菜单 char c1,c2; printf(nnn按回车键返回主菜单.); scanf(%c%c,&c1,&c2);/第一种字符吸取上次确认回车键 menu();void view_data()/ 查看所有学生信息 int i; printf(学号t姓名t 班级t 基本课t 专业课 选修课 人文类课 实验课n); printf(n-n); for(i=0;idd.count;i+) printf(%st %st %st %dt %dt

20、 %dt %dt %dn,dd.stui.no,dd.stui.name,dd.stui.clas,dd.stui.score0,dd.stui.score1,dd.stui.score2,dd.stui.score3,dd.stui.score4);void save_data()/ 将数据从构造体数组保存到文献中 FILE *fp;/文献指针 int i,k; k=dd.count; fp=fopen(dada.txt,w);/文献存储位置:当前文献夹 fwrite(&k,sizeof(int),1,fp); for(i=0;i50) dd.stuk.score0=50; else dd.

21、stuk.score0=a; printf(n请输入专业课学分(0-50):); scanf(%d,&a); if(a50) dd.stuk.score1=50; else dd.stuk.score1=a; printf(n请输入选修课学分(0-24):); scanf(%d,&a); if(a24) dd.stuk.score2=24; else dd.stuk.score2=a; printf(n请输入人文课学分(0-8):); scanf(%d,&a); if(a8) dd.stuk.score3=8; else dd.stuk.score3=a; printf(n请输入实验课学分(0

22、-20):); scanf(%d,&a); if(a20) dd.stuk.score4=20; else dd.stuk.score4=a; dd.count+; printf(nn继续添加学生信息1-yes 0-no:); scanf(%d,&b); if(b=0) break; save_data();void read_data()/ 将数据从文献读到构造体数组中 FILE *fp; int i,k; struct student st; k=0; if(access(dada.txt,0)=-1) / 如果文献不存在 fp=fopen(dada.txt,w); fwrite(&k,s

23、izeof(int),1,fp); fclose(fp); fp=fopen(dada.txt,r); fread(&k,sizeof(int),1,fp); dd.count=k; for(i=0;ik;i+) fread(&st,sizeof(struct student),1,fp); strcpy(dd.stui.no,st.no); strcpy(dd.stui.name,st.name); strcpy(dd.stui.clas,st.clas); dd.stui.score4=st.score4; dd.stui.score3=st.score3; dd.stui.score2=

24、st.score2; dd.stui.score1=st.score1; dd.stui.score0=st.score0; fclose(fp);void delete_data()/ 删除学生记录 int i,k,j; char no10; printf(n请输入要删除学生学号:); scanf(%s,no); k=-1; for(i=0;idd.count;i+) if(strcmp(dd.stui.no,no)=0) k=i; break; if(k=-1) printf(nn没有找到该学生(学号-%s)!,no); else for(j=k;jdd.count-1;j+)dd.stu

25、j=dd.stuj+1; save_data(); printf(nn删除学生(学号-%s)记录成功!,no);dd.count-; void edit_data()/ 修改学生记录 struct student st; int i,k,a,b,select; char no10; printf(n请输入要编辑学生学号:); scanf(%s,no); k=-1; for(i=0;i50) dd.stuk.score0=50; else dd.stuk.score0=a;break; case 2:printf(n请输入专业课学分(0-50):); scanf(%d,&a); if(a50)

26、dd.stuk.score1=50; else dd.stuk.score1=a;break; case 3:printf(n请输入选修课学分(0-24):); scanf(%d,&a); if(a24) dd.stuk.score2=24; else dd.stuk.score2=a;break; case 4:printf(n请输入人文课学分(0-8):); scanf(%d,&a); if(a8) dd.stuk.score3=8; else dd.stuk.score3=a;break; case 5:printf(n请输入实验课学分(0-20):); scanf(%d,&a); if

27、(a20) dd.stuk.score4=20; else dd.stuk.score4=a;break; printf(nn继续修改学生信息1-yes 0-no:); scanf(%d,&b); if(b=1) edit_data(); else save_data(); printf(nn编辑学生记录(学号-%s)成功!,no); void query_data_no()/ 查询(学号) int i,k; char no10; printf(n请输入要查询学生学号:); scanf(%s,no); k=-1; for(i=0;idd.count;i+) if(strcmp(dd.stui.

28、no,no)=0) if(k=-1) printf(nn学号t姓名t班级t基本课t专业课t选修课t人文类课t实验课); printf(n-n); k=i; printf(%st%st%st%dt%dt%dt%dt%dn,dd.stui.no,dd.stui.name,dd.stui.clas,dd.stui.score0,dd.stui.score1,dd.stui.score2,dd.stui.score3,dd.stui.score4); if(k=-1) printf(nn没有找到该学生(学号-%s)!,no); void query_data_clas()/ 查询(班级) int i,

29、k; char clas10; printf(n请输入要查询学生班级:); scanf(%s,clas); k=-1; for(i=0;i0) for(i=0;i0)/最大放末尾 strcpy(tmp.no,dd.stui.no); strcpy(tmp.name,dd.stui.name);strcpy(tmp.clas,dd.stui.clas); tmp.score4=dd.stui.score4;tmp.score3=dd.stui.score3;tmp.score2=dd.stui.score2;tmp.score1=dd.stui.score1;tmp.score0=dd.stui

30、.score0; strcpy(dd.stui.no,dd.stui+1.no); strcpy(dd.stui.name,dd.stui+1.name); strcpy(dd.stui.clas,dd.stui+1.clas); dd.stui.score4=dd.stui+1.score4;dd.stui.score3=dd.stui+1.score3;dd.stui.score2=dd.stui+1.score2;dd.stui.score1=dd.stui+1.score1;dd.stui.score0=dd.stui+1.score0; strcpy(dd.stui+1.no,tmp

31、.no); strcpy(dd.stui+1.name,tmp.name); strcpy(dd.stui+1.clas,tmp.clas); dd.stui+1.score4=tmp.score4;dd.stui+1.score3=tmp.score3;dd.stui+1.score2=tmp.score2;dd.stui+1.score1=tmp.score1;dd.stui+1.score0=tmp.score0; k-; save_data(); printf(nn排序成功!); void tongji() /*记录某班学生学分完毕状况*/ char clas5; int i,j=0,

32、k=0; printf(n请输入要记录班级:); scanf(%s,clas); for(i=0;idd.count;i+) if(strcmp(clas,dd.stui.clas)=0) j+; for(i=0;i=50 &dd.stui.score1=50&dd.stui.score2=24& dd.stui.score3=8&dd.stui.score4=20) k+; printf(n %s 班中有 %d 个学生完毕学分!n有 %d 个学生未完毕!,clas,k,j-k); scanf(%*c); /*用于吸取上面所按下字符*/ printf(nn按回车键回主菜单!); getchar(); menu();

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服