还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
武汉轻工大学数计学院C语言课程设计报告班级:计算机类1307班学号1305110009姓名韩晶指导教师贾瑜日期2014年6月18日
一、实验目的.在编辑应用程序过程中,逐步加深对C语言编程的理解;.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;.培养初步编程的能力,为以后的学习奠定基础
二、实验内容运用所学的C语言知识编辑应用程序班级成绩管理系统以及运动的时钟.系统软件环境本程序主要运行在VisualC++
6.0TurboC/C++
3.0head=student*maHoc_LEN;〃为头结点申请空间if!head{〃如果申请空间失败,返回returnOVERFLOW;}head-next=NULL;〃指向下一节点空curr:head-〉next;〃当前节点指针指向第一个结点total=0;〃当前节点个数初始化为0头结点不计算在内returnDONE;}/*功能头插法添加新节点,并刷新学生人数intadd_stu{student*add=student*malloc_LEN;curr二head-next;〃当前节点指针指向第一个节点printf〃\t==当前已存入%d个同学\n〃,total;printf〃请输入第%d个学生的信息\n〃,total+1;ifBACK==enteringadd{freeadd;returnBACK;}head-next=add;〃头结点指针域指向新建的节点add-next二curr;〃新建节点指针域指向第一个节点curr=add;〃当前节点指向新建的节点total+=1;〃更新学生总人数returnDONE;/*功能显示所有学生信息*/intshow_all{if0==total{printf〃\t====没有可供显示的学生信息!\n〃;returnNOFOUND;}curr=head-next;〃当前节点指针指向第一个节点printf〃\t%4s%12s%12s〃,〃序号〃,〃学号〃,〃姓名〃;forintm=0;m_C0URSES;m++{printf〃%7s〃,〃科目〃;}printf〃\n〃;printf〃\t\n〃;forinti=l;i=total;i++{show_stucurri;curr=curr-next;〃当前节点指针后移}printf〃\t\n〃;returnDONE;/*功能查找指定学生信intfindstu{charstu_name[ll];intflag=l;printf〃请输入要查找的学生姓名〃;scanf〃%s〃,stu_name;curr=head-next;//指向第一个节点whilecurr!=NULL{ifstrcmpstu_namecurr-name==0{printf〃\t%4s%12s%12s〃,〃序号〃,〃学号〃,〃姓名〃;forintm=0;m_C0URSES;m++{printf级7s〃,〃科目〃;}printf〃\n〃;printf〃\t\n〃;.课程设计题目.必做题班级成绩管理系统对一个有N个学生的班级,每个学生有M门课程该系统实现对班级成绩的录入、显示、修改、排序、保存、查询等操作的管理功能要求
(1)本系统采用一个结构体数组,每个数据的结构应当包括学号、姓名、M门课程名称
(2)本系统显示这样的菜单请选择系统功能项a、成绩录入b、成绩显示c、成绩保存d、成绩排序e、成绩修改(要求先输入密码)成绩统计1)显示每门课程成绩最高的学生的基本信息2)显示每门课程的平均成绩,柱状图显示3)显示超过某门课程平均成绩的学生人数4)显示某门课程每个分数段区间的人数,用饼状图显示g、退出系统3执行一个具体的功能之后,程序将重新显示菜单4将学生成绩保存到文件中五.数据结构设计描述-班级成绩管理系统主函数I菜单函数I添加显示查找修改删除排序存档读档退出六.源程序-班级成绩管理系统#includestring.httincludestdio.hftincludestdlib.h#includegraphics.h#includeconio.hftdefine.COURSES3〃定义科目数#define_LENsizeof(student)〃定义结构体大小〃枚举返回值情况enumstatus(OVERFLOW=-1〃内存(溢出)问题DONE=0〃成功NOFOUND=1〃不存在OPENFAIL=2〃打开(文件)失败BACK=3〃返回};//end〃定义学生信息结构体typedefstructStudentlnfo〃数据域unsignedintnum;〃学号charnamelll];〃姓名floatscores[.COURSES];〃各科成绩〃指针域structStudentlnfo*next;〃存放下一节点的地址}student;//endstudent*head=NULL;〃声明链表头结点student*curr=NULL;〃声明指向当前节点的指针inttotal=0;〃声明当前节点个数intinit;//初始化链表intadd_stu;〃添加新节点intshow_all;〃显示所有学生信息intfind_stu;〃查找指定信息节点intmodify_stu;〃修改指定信息节点intremove_stu;〃删除指定信息节点intsort_list;〃对链表排序intsave_to_file;〃将所有信息保存至文件intread_from_fi1e;〃从文件中读取信息intpicture;〃画分布图intquit;〃释放所有节点空间intenteringstudent*input;//录入学生信息voidmenu;voidshowstustudent*showintserial;〃显示指定学生信息voidstart;〃程序开始界面voidchangestudent*formerstudent*latterstudent*temp;〃交换两个节点的数据域voidmain{inthflaglflag2;charname
[20]=,/hyw,zpassword
[10]=//hywz/;charperson
[20]passwordl
[10];欢迎进入学生成绩管理系统!********\n\n〃;用户登录\n\n〃;forh=0;h!=5;printf,z\t\t\t\t用户名“;getsperson;flagl=strcmppersonname;printfz/\t\t\t\t密码:〃;getspasswordl;flag2=strcmppasswordpasswordl;ifflagl==0flag2==0printfz,\t\t\t\t登陆成功!\n\rT;menu;break;else用户名或密码错误!\n\n〃;printf/z\t\t\t请注意您还剩%d次机会!\n\n〃4-h;h++;}}ifh=5printf〃对不起,您输入的用户名或密码有误,已被强制退出\n〃;voidmenuintchoice、;init;while1{system〃cls〃;〃清屏start;printf请选择〃;scanf〃%d〃,fechoice;fflushstdin;〃清空缓冲区switchchoice{addstu;break;showall;break;find_stu;break;modify_stu;break;removestu;break;sort_list;break;save_to_file;break;readfromfile;break;picture;break;case0:quit;exit0;break;default:break;systeni〃pause〃;〃暂停批文件的处理并显示消息intinit{。