c语言_学生成绩管理 .docx
《c语言_学生成绩管理 .docx》由会员分享,可在线阅读,更多相关《c语言_学生成绩管理 .docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结c 语言课程设计 _同学成果治理系统 3课程设计的内容 : 1 、每一条记录包括一个同学的学号、姓名、3 门课成果、平均成果。2、输入功能:可以一次完成如干条记录的输入。3、显示功能:完成全部同学记录的显示。4、查找功能:完成按姓名查找同学记录,并显示。5、排序功能:按同学平均成果进行排序。6、插入功能:按平均成果高低插入一条同学记录。7、将同学记录存在文件 score 中。8、应供应一个界面来调用各个功能 , 调用界面和各个功能的操作界面应尽可能清晰美观 .课程设计的要求 :1、用 C语言实现系统。2、3、利用结构体数组实现同学成果的数据结构设计。系统具有增加,查询,插入,排
2、序等基本功能。4、5、系统的各个功能模块要求用函数的形式实现。完成设计任务并书写课程设计报告。6、将同学成果信息存在文件中。#include /*暂停函数 */#include /*I/O函数*/#include /* 其它说明 */#include /* 字符串操作函数 */#defineM 1000int N=0 。/* 记录已经存在的记录条数*/ int H=0 。struct student/* 定义数据结构 */ char number8 。char name16 。float score3 。float average。可编辑资料 - - - 欢迎下载精品名师归纳总结studM,t
3、emp。/*以下是函数声明 */void loadvoid。/* 读入记录 */void inorderstruct student stud。/* 排列记录 */ void insertstruct student stud。/* 插入记录 */ void savestruct student stud。/* 储存记录 */ void printstruct student stud。/* 显示记录 */ void searchstruct student stud。/* 查找记录 */ void enterstruct student stud。/* 输入记录 */void delvoid
4、。/*删除记录 */void changevoid。/* 转变记录 */void quitvoid。/* 退出系统 */int flagstruct student stud。/* 返回值为 0 或 1*/int menuvoid。/*菜单 */main/* 主函数 */ /*以下 printf语句为打印欢迎界面语句 */ printfnnnnnnnttttttttt.n。printfwweeeeeeelcccccccooooommmmmmmmmeeeeeee.n。printfwwwene。lcoommmee.mprintf mprintfmw eeeeeeew ww www.e eeeeen
5、。lcoowelcoommme.n。printfwweeeeeeellllllcccccccooooommmeeeeeeen。可编辑资料 - - - 欢迎下载精品名师归纳总结printftttttttttb0。sleep1。printfnnnnntttttttt- pan。sleep1。load。/* 调用读入记录函数 */for。/* 无限循环 */ switchmenu/* 调用主菜单函数,返回值整数作开关语句的条件*/ case 1: enterstud。break 。/* 输入记录 */case 2: printstud。break 。/* 显示要看的一页的记录 */ case 3:
6、searchstud。 break 。/* 查找记录 */case 4: inorderstud。break 。/* 排序 */ case 5: insertstud。 break 。/* 插入记录 */case 6: savestud。break 。/* 储存文件 */ case 7: change。break 。/* 转变记录 */case 8: del。break 。/* 删除记录 */case 9: quit。/*如菜单返回值为 9 程序终止 */* 输入数据函数 */void enterstruct student stud int n=0,i,j,k,c。char b4。 floa
7、t sum。printfHow many students record do you want to enter. n=.bbb。scanf%d,&n。/* 输入一次要输入记录数 */ fori=0。in 。 sum=0 。/* 统记三科总分 */ printfInput the %dth students number ,N+1。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf%s,studN.number。/* 输入学号 */*以下 if-else语句判定所输记录是否存在 */ifflagstud/* 调用返回值为0 或 1 函数, 判定所输入的学号是否已经存在, 存在就执行
8、if语句 */printfThe record has exist.n。printfInput again.。getch。else printfInput the %dth students name ,N+1。scanf%s,studN.name。/* 输入姓名 */ forj=0。j3 。j+ doprintfInput the %dth students score%d,N+1,j+1。/*打印提示 */scanf%s,b。/* 输入分数 */ studN.scorej=atofb。/* 将字符串强制转换成实型, 得值赋给studN.scorej*/ifstudN.scorej100/*
9、 判定分数是否在 0-100 之间 */k=1 。/* 分数不在 0-100 之间时 k 值为 1*/printfError input .n。printfInput again .n。/* 打印出错提示 */else可编辑资料 - - - 欢迎下载精品名师归纳总结k=0 。/* 分数在 0-100之间时 k 值为 0*/whilek。/* 由 k 值准备是否要循环*/sum+=studN.scorej。/* 统记三科总分 */studN.average=sum/3.0。/* 平均分 */ printfnEnter success .n。printfnPress any key to retu
10、rn.getch。N+。i+ 。/* 记录数加 1*/H=1 。clrscr。/*清屏 */clrscr。/*清屏 */*显示记录函数 */void printstruct student stud int i=0,k,max,maxb,n,flag=y。char m6。/*以下 if-else为判定文件中是否有记录 */ ifN=0printfThere are not record.n。printfPress any key to return.。/* 当 N为 0 时(即没有记录)打印没有记录提示 */getch。可编辑资料 - - - 欢迎下载精品名师归纳总结else whilefla
11、g.=n maxb=0 。i=0 。/*以下分页输出记录 */ do ifN%10.=0 printfnttThere are %d pages in all.,N/10+1。printfnttWhich page do you want to see. 。else printfnttThere are %d pages in all.,N/11+1。printfnttWhich page do you want to see. 。scanf%s,m。/* 输入要显示的页数 */ k=atoim。/* 强制把 m转换成整形 */ ifk k=10*k-1。/* 此时 k 变为第 k 页的第一条
12、信息的序号 */ ifk=N/* 判定页数是否存在 */ printfnttThe page is not exist .。printfnttInput again .n。elsek=N+1。whilek=N。/*假如页数不存在进入do-whie 循环 */*以下 if-else语句是判定第 k 页是否有 10 条语句 */ ifk+10Nmax=N。/* 当第 k 页不够 10 条记录时 */else可编辑资料 - - - 欢迎下载精品名师归纳总结max=k+10 。/*当第 k 页够 10 条记录时 */clrscr。/*以下fori=kfor语句为取得第。imaxb maxb=n 。i=
13、k 。/*以下 if-else是为了保证表美观 */*假如最大字符长度不大于8 就按 if输出,就按名字方格长度为8 输出 */ ifmaxb8 whileimax /*以下为输出记录 */ ifi%10=0 printfntttt Page:%d,k+10/10。printfnt|-|-|-|-|-|-|-|。printfnt|NO:| number|name|score1|score2|score3|average |n。printft|-|-|-|-|-|-|-|n。printft| %-2d|%-6s|%-8s|%-5.1f |%-5.1f |%-5.1f | %- 7.2f|n,i+
14、1,studi.number,studi.name,studi.score0,studi.score1,studi.score2,studi.average。i+ 。可编辑资料 - - - 欢迎下载精品名师归纳总结printft|-|-|-|-|-|-|-|n。/*假如最大字符长度大于8 就按 else输出,见就按名字格长度为16 输出 */else whileimax /*以下为输出记录 */ ifi%10=0 printfntttt Page:%d,k+10/10。printfntbb|-|-|-|-|-|-|-|。printfntbb|NO:| number|name|score1|sc
15、ore2|score3|average |n。printftbb|-|-|-|-|-|-|-|n。printftbb| %-2d|%-6s|%-16s|%-5.1f |%-5.1f |%-5.1f | %- 7.2f|n,i+1,studi.number,studi.name,studi.score0,studi.score1,studi.score2,studi.average。i+ 。printftbb|-|-|-|-|-|-|-|n。printftttbbDo you want to go on. y or n.bbbbbbb。flag=getch。/*猎取一个字符判定是否要连续显示*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言_学生成绩管理 语言 学生 成绩 管理
限制150内