欢迎来到天天文库
浏览记录
ID:47675306
大小:274.50 KB
页数:30页
时间:2020-01-26
《《C语言程序设计》大作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南昌大学软件学院C语言程序设计工程实训大作业班级:09软件技术(2)班学号:8001509107姓名:吴承增指导老师:危建国2010年12月10日 系统说明书1.问题描述:该程序包内容包括以下的模块,均用子函数完成:(1)主菜单(2)输入若干条记录并保存文件(指学生的信息)(3)学生信息录入、修改、删除、查询、存储。(4)学生信息的浏览及排序(冒泡排序算法)。(5)学生成绩的录入、修改。(6)统计及格和优秀人数(7)退出系统2.程序设计和程序流程图:解决方案:学生成绩档案管理主菜单学生成绩管理学生档案管理查询统计录入成绩修改成绩读入学生信息录入学生成绩查询学生成绩修改学生信息删除学生信息存储
2、学生信息按学号查询按姓名查询按学号排序浏览按数学成绩排序按成绩排序按英语成绩排序按C语言排序按总成绩排序主函数流程图:For(;;)循环用“cls”清屏P>5
3、
4、p<0进入主菜单MainMemu()输出switch语句句输入case语句开始选择功能键进入系统定义学生str[MAX]定义结构体student各部分功能的流程图:录入学生成绩流程图:i=i+1开始用”cls”清屏dowhile输出成绩退回主菜单Ncount=1YN统计功能流程图如图3所示:图3统计模块流程图冒泡排序流程图:声明存储数列变量nCardArray[]声明外层循环控制变量i声明内层循环控制变量j声明临时变量temp开始结
5、束nCarrdArray[j]与nCrrdArray[j+1]值互换输出结果fori=0to5forj=0to5-inCarrdArray[j]>nCrrdArray[j+1]forj=0to6真假排序学生信息流程图:开始把第i+1个学生信息复制传递到下一个结构体中switch语句case(q)定义指向char数组形式排序q<0,q<=5Case1…case5返回主菜单用”cls”清屏定义结构体student删除学生成绩信息流程图:NYNY开始n=SearchStudnCOUNT-=1是否删除?for(i=0;i6、=1结束3.系统的基本功能(主要数据和函数功能描述):charxh[15];//以字符串数组形式存储学生学号charname[25]//以字符串数组形式存储学生姓名charsex[5];//性别floatsxcj;//数学成绩floatyycj;//英语成绩floatCyycj;//C语言成绩floatave;//平均成绩floatsum;//总成绩#defineN4//宏定义学生#defineMAX60//学生最大个数intnCOUNT=0;//记录当前学生个数structstudent//定义结构体学生intScoreNew()//录入学生成绩intaverage()//求平均数intx7、sxscj()//显示输入学生信息、将学生打印到屏幕上intxsxsxx()//显示学生信息intxhcjpx()//按学生学号排序学生信息intsxcjpx()按数学成绩排序学生信息intyycjpx()按英语成绩排序学生信息intCyypx()//按C语言成绩排序学生信息intzcjpx()按总成绩排序学生信息intpxxsxx()//排序学生信息intaxhcx()//按学号查询intaxmcx()//按姓名查询intSearchStud()//查询学生成绩信息intzjxsxx()//增加学生信息intxgxsxx()//修改学生信息intscxsxx()//删除学生信息intgxx8、scj()//更新学生信息inttjxscj()//统计学生成绩intsave()//保存到文件((fp=fopen("stu_list.txt","wb"))==NULL)//以只读方式打开文件stu_list.txt(fwrite(&str[i],sizeof(structstudent),1,fp)!=1)//创建文件并以二进制形式打开intxswj()//显示文件信息intmain()//主函数mainmemu4.拟采用开发平台:VisualC++,BorlandC++等。实验分析与结论:成绩录入函数按次序录入系统中现存所有学生的所有科目上,每录入一个学生的成绩,首先显示其姓名和学号9、,然后依次输入英语、高数和C语言成绩。各科成绩初始化为0.修改学生信息函数调用函数对需要修改信息的学生进行查找,找到后返回该学生所对应的下标值n,将用户录入的新值存入数组中.删除学生信息函数调用SeachStud()函数对需要删除信息的学生进行查找,找到后返回该学生所对应的下标值n,用数组中第n个后面的元素依次向前覆盖,学生总数减1,即nCount-1。需要强调的是,数组是静态存储分配方式,在声明时,系统已经
6、=1结束3.系统的基本功能(主要数据和函数功能描述):charxh[15];//以字符串数组形式存储学生学号charname[25]//以字符串数组形式存储学生姓名charsex[5];//性别floatsxcj;//数学成绩floatyycj;//英语成绩floatCyycj;//C语言成绩floatave;//平均成绩floatsum;//总成绩#defineN4//宏定义学生#defineMAX60//学生最大个数intnCOUNT=0;//记录当前学生个数structstudent//定义结构体学生intScoreNew()//录入学生成绩intaverage()//求平均数intx
7、sxscj()//显示输入学生信息、将学生打印到屏幕上intxsxsxx()//显示学生信息intxhcjpx()//按学生学号排序学生信息intsxcjpx()按数学成绩排序学生信息intyycjpx()按英语成绩排序学生信息intCyypx()//按C语言成绩排序学生信息intzcjpx()按总成绩排序学生信息intpxxsxx()//排序学生信息intaxhcx()//按学号查询intaxmcx()//按姓名查询intSearchStud()//查询学生成绩信息intzjxsxx()//增加学生信息intxgxsxx()//修改学生信息intscxsxx()//删除学生信息intgxx
8、scj()//更新学生信息inttjxscj()//统计学生成绩intsave()//保存到文件((fp=fopen("stu_list.txt","wb"))==NULL)//以只读方式打开文件stu_list.txt(fwrite(&str[i],sizeof(structstudent),1,fp)!=1)//创建文件并以二进制形式打开intxswj()//显示文件信息intmain()//主函数mainmemu4.拟采用开发平台:VisualC++,BorlandC++等。实验分析与结论:成绩录入函数按次序录入系统中现存所有学生的所有科目上,每录入一个学生的成绩,首先显示其姓名和学号
9、,然后依次输入英语、高数和C语言成绩。各科成绩初始化为0.修改学生信息函数调用函数对需要修改信息的学生进行查找,找到后返回该学生所对应的下标值n,将用户录入的新值存入数组中.删除学生信息函数调用SeachStud()函数对需要删除信息的学生进行查找,找到后返回该学生所对应的下标值n,用数组中第n个后面的元素依次向前覆盖,学生总数减1,即nCount-1。需要强调的是,数组是静态存储分配方式,在声明时,系统已经
此文档下载收益归作者所有