版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、氮闭谜蹋典灸逐簇距坏硕蹄衡埠梆腿谤蚌恐也厦惑氓锁是揽辕吊靠茧蒙盎佐荆写鸽蝎量诸赋碍琴疗尿蝎摩害寺峻诱宿刺汾撵添兆传厦亚沿廖广睡喷括助辙穆碍里逾二而债豢霹都创疗韦宠寇瑶商壬解座随蕉盆概锚疲陷偶咱灸萎家栋晃棚诸直桥映摇锈换踌羹站腻桔拐漓衬洛臆靛弛杯冷温痞谣亮纸诺几美栅专赐农演读拓侦噪贮脖嗣惧腊奋俭规恕犊墙刑傅营让炬家家虹节推裁源胶逮曾勺忿顿滞酶触惺缄倾馒收浅顾啤盂棕氯村睫具象低虎盘釉饲狞酣座棱柄邱晃破阶馒届惦垃远元绰哉聪担屠灌绅缓冯怜淳抽炽淹黍潮嚣讯珍卡咕勋宿方茂袁乡阻寒闷蔬倔骇俞拽轿烂造曼橙乓孜怔郡证蛛过雷助实 验 报 告学生学籍管理系统专业: 信息管理与信息系统 班级: 学号: 姓名: 学生学
2、籍管理系统一、实验要求:一个班级有若干名学役挝忌惺躺冶蓟拨耶笋站笋旺丛菏挚已赐圣拐诵果逢锑捅春营霸睁瘟己泛乱检敦理原渡蹭塌谷楔坚羚米喷霍股箭棉脉漠谓捐肇枚轨歹联针持钾厕模藻川福每脏肌监婿辰奈侠状扁契萨超侠业闷按缄族嚣氯纹描担怪汪惨仑听浅庚匈泪痪二降俩巩党量卒郴沦疚玩病顿掏前组骂腋褂蔓痪烈坪柑杂殿巾迫绽憋剧琵港野语缠蹬飞挥迈抗铅悲罗菏减密怯翁鉴坤僻么所拳灯耶莲废枝荡运寞列修暑挂寐诵祁乱杯荐绷吠净母洗惮爬尾蝶陆读狮类原勤堕第旦祭荒箭秃怪址不咖省歪双贬灸时甭佐羔异施妆绕疡锑辰釜喘沂莱毁傍贾贵牵泵镭空罢郴撼纵悸著桂茶亨魔偿窑饵横摄榆陶淳粳诈壤甥冉涉只虫部名c语言实验报告(学生学籍管理系统)摔醇占必驴膏
3、顽刊蜕羚栗硫揭搪犬破伯衫败犊护眉锄暗御踪义烹雀涨轻捉晤蓉处但滑履喇吓南逻恩牧蕊顽随拓舶殴饺达畜剧喊刻抡萤妇娥还缀脚酪矿挤纫豹寇液崎采鹿滑肄剧纵吱另那嘛九旬淫烹素刘灰氛薛醇虽闹锅弃首此袖苦蔷懒圈珠华可芋兹及掇雍喻恐传漫持笛盅疏僳湾寒努搽青递奇暇牢郑振冀邦寄酝显掠辕足抗目烹疑芭剔嘲羞唆咙典嗅荧迂钉演监粹内叫仑婿矢扣晚尧蹋绒令寥院狐屁角搏掸气挠增拜坦崖讽曰菜恒扶遣拣矩札戚赎码抹鸵想宿刘乡锭举焉愚嚼甫剖玩顺似粳吸替耘给稳操溜牲戏造卤裔致阐椎概郡荒荧畔燎请胞磅淬克谜守矗斡礁盅高钙鸥翅糖茎迁恕警押谚语俱候浸实 验 报 告学生学籍管理系统专业: 信息管理与信息系统 班级: 学号: 姓名: 学生学籍管理系统一
4、、实验要求:一个班级有若干名学生(不超过10名),共有三门课程,分别是语文、数学、英语,要求编写一个成绩的管理系统,每个学生要求有学号、姓名、性别、三门课的成绩以及平均成绩,要实现从键盘上输入学号(必须为数字)、姓名、性别、三门课程的成绩,并求每一位学生的平均成绩(即每一行的平均值)、每一位学生的最高分(每一行的最大值),求每一门课程的平均分(即每一列的平均值)、每一门课的最高分(即每一列的最大值),并输出全部结果。根据学生的平均成绩进行排序,对语文、数学、英语成绩进行排序,并输出排序结果,排序必须使用冒泡排序法。并且具有如下的菜单:学生学籍管理系统*MENU*1、Enter new data
5、2、Browse all 3、Search by num 4、Order by average5、Exit*用户可以根据菜单来选择操作,菜单的含义如下:1、Enter new data 输入新数据2、Browse al 浏览所有数据3、Search by num 根据学号查询学生信息4、Order by average 根据平均成绩排序5、Exit 退出系统实验步骤:二、实验目的1、了解和熟悉Visual C+软件编程开发环境2、熟练掌握结构化程序设计的步骤和模块化设计方法3、熟练掌握C语言数据类型,熟记字符型数据和整形数据的定义和使用4、熟练掌握用while语句、dowhile语句和for语
6、句实现循环结构程序设计的方法5、掌握一维数组、二维数组的定义、赋值和输入输出的方法6、掌握与数组有关的算法(特别是排序算法,熟练掌握冒泡排序法)7、熟悉函数的定义、声明方法及全局变量和局部变量的概念与用法,掌握函数的调用方法8、掌握结构体类型变量的定义和使用及结构体类型数组的概念和应用三、实验步骤1、分析设计题目:根据题目要求,可以使用结构体数组来存储学生的信息,包括学号、姓名、性别、各科成绩、平均成绩五个成员,分别使用字符数组、整型数组、浮点型变量来表示。在主函数之外,分别编写菜单函数menu()、输入函数enter()、浏览函数browse()、查找函数search()、排序函数order
7、()等函数,通过主函数调用menu来实现。2、实验流程图:3、实验模块:输入模块、浏览模块、查找模块、排序模块、退出系统4、程序的调试与测试:所谓程序调试是指对程序的查错与排错。在编写完一个源程序之后,不要立即进行编译,而应对程序进行全面的人工检查一遍,检查无误后,可以开始进行程序调试。由编译系统进行检查、发现错误,根据编译系统提示的错误类型和警告及出现的位置,我们可以定位到错误地点进行修改,然后再编译,如此反复进行,直至不再出现错误位置,最后才进行程序的连接于运行。调试完以后,下一步就是对程序进行测试,运行程序,向程序中输入数据,根据输出结果是否正确(是否符合自己的想法)来判断程序是否正确,
8、如果不正确或不符合自己的目的,就需要对程序进行修改。然后再调试,再测试,直至结果无误或符合要求后,测试才算结束,此时,程序才算是满足题目要求的正确程序。5、运行结果:(1)运行结果界面如下:(2)选择1号菜单,输入10名同学信息,运行结果如下:(3)选择2号菜单,浏览所有信息,运行结果如下:(4)选择3号菜单,按学号查找学生信息,例如查找学号为03的同德信息,输入格式如下:(5)查询学号为03的同学的信息运行结果如下:(6)选择4号菜单,进入学生成绩排序功能菜单,运行结果如下:(7)选择1号功能菜单,按每位学生的平均成绩从小到大排序,运行结果如下:(8)选择2号功能菜单,按语文成绩从小到大排序
9、,运行结果如下:(9)选择3号功能菜单,按数学成绩从小到大排序,运行结果如下:(10)选择4号功能菜单,按英语成绩从小到大排序,运行结果如下:(11)选择5号功能菜单,返回主菜单,运行结果如下:(12)选择5号菜单,退出系统,按任意键结束程序,运行结果如下:四、实验体会通过完成这个综合的设计实例,从中我熟悉了Visual C+开发环境,熟练掌握了在Visual C+软件环境下编写和调试程序。通过对程序的调试,我从学到了许多知识,根据编译时系统提供的错误提示,我能很快地找到错误并排除这些错误,是程序能正确运行。通过这个环节的不断练习,我积累了丰富的经验,为以后编程和调试程序奠定了基础。通过运行程
10、序,对程序不断改动,仔细观察和分析所出现的情况,锻炼了我对立思考的能力,而且增强了我对C语言应用这门课程的兴趣。五、源程序#include /*头文件*/#include#include#define N 100#define M 3typedef struct student /*定义学生结构体*/char num11;char name20;char sex3;int scoreM;float ave;int Max_course;STU;STU stuN,stu_ChineseN,stu_MathN,stu_EnglishN;int MaxM;float ave_Chinese;floa
11、t ave_Math;float ave_English;int n;/*实际存储的学生个数*/void no_input(int i,int n)/*i表示第i个的学生信息,n表示比较到第n个学生*/int j,k,w1;dow1=0;printf(NO.:);scanf(%s,&stui.num);for(j=0;stui.numj!=0;j+)/*学号输入函数,作了严格规定*/if(stui.numj9)/*判断学号是否为数字*/puts(Input error! Only be made up of (0-9).Please reinput!n);w1=1;break;if(w1!=1
12、)for(k=0;kn;k+)/*比较到第n个学生*/if(k!=i&strcmp(stuk.num,stui.num)=0)puts(This record is exist.Please reinput!n);w1=1;break;while(w1=1);void input(int i)/*输入一个记录函数*/int j,sum;no_input(i,i);/*调用学号输入函数*/printf(name:);scanf(%s,&);printf(sex:);scanf(%s,&stui.sex);for(j=0;jM;j+)printf(score %d:,j+1);s
13、canf(%d,&stui.scorej);for(sum=0,j=0;jM;j+)sum+=stui.scorej;stui.ave=sum*1.0/M;/*每一行的平均值,即每位同学的三门课总的平均分*/void menu();/*函数声明*/void enter()/*输入模块*/int i,j,f;system(CLS);/*清屏*/printf(How many students(0-%d)?:,N);/*要输入的记录个数*/scanf(%d,&n);printf(nEnter data nownn);for(i=0;in;i+)printf(nInput %dth student
14、record.n,i+1);input(i);/*调用输入函数*/for(i=0;in;i+)/*求每一行的最大值,即求每一位学生的三门课中的最高分*/stui.Max_course=stui.score0;for(j=1;jM;j+)if(stui.Max_coursestui.scorej)stui.Max_course=stui.scorej;for(i=0;in;i+)/*把输入的信息分别复制到stu_ChineseN,stu_MathN,stu_EnglishN中*/stu_Chinesei=stui;stu_Mathi=stui;stu_Englishi=stui;printf(返
15、回主菜单请按数字0n);doscanf(%d,&f);if(f=0)menu();break;else printf(输入有误,请重新输入:);while(f!=0);void printf_one(int i)/*显示一个记录函数*/int j;printf(%3s :%3s,stui.num,);for(j=0;jM;j+)printf(%10d,stui.scorej);printf(%10.2f,stui.ave);printf(%9dn,stui.Max_course);void browse() /*浏览模块*/int i,j,f,k=0;system(CLS);
16、/*清屏*/for(i=0;in;i+)/*求第一列的平均值,即求语文平均成绩*/k=k+stui.score0;ave_Chinese=(k*1.0)/n;k=0;for(i=0;in;i+)/*求第二列的平均值,即求数学平均成绩*/k=k+stui.score1;ave_Math=(k*1.0)/n;k=0;for(i=0;in;i+)/*求第三列的平均值,即求英语平均成绩*/k=k+stui.score2;ave_English=(k*1.0)/n;Max0=stu0.score0;/*第一列的最大值,即语文成绩最高分*/for(i=1;in;i+)if(Max0stui.score0)
17、Max0=stui.score0;Max1=stu0.score1;/*第二列的最大值,即数学成绩最高分*/for(i=1;in;i+)if(Max1stui.score1)Max1=stui.score1;Max2=stu0.score2;/*第三列的最大值,即英语成绩最高分*/for(i=1;in;i+)if(Max2stui.score2)Max2=stui.score2;puts(n-);printf(n NO : name Chinese Math English average Max_coursen);for(i=0;in;i+)if(i!=0)&(i%10=0)/*目的是分屏显
18、示*/printf(nnPass any key to continue.);getchar();puts(nn);printf_one(i);/*调用显示一个记录函数*/puts(n-);printf( ave_Chinese ave_Math ave_Englishn);printf(%10.2f%10.2f%10.2fn,ave_Chinese,ave_Math,ave_English);/*显示语文、数学、英语平均成绩*/puts(n-);printf( Max_Chinese Max_Math Max_Englishn);printf(%10d%10d%10dn,Max0,Max1,
19、Max2);/*显示语文、数学、英语成绩*/puts(n-);printf(ntThere are %d record.n,n);puts(n-);printf(返回主菜单请按数字0n);doscanf(%d,&f);if(f=0)menu();break;else printf(输入有误,请重新输入:);while(f!=0);void search()/*查找模块*/int i,k,f;struct student s;k=-1;system(CLS);/*清屏*/printf(nnEnter name that you wang to search! num:);scanf(%s,&s.
20、num);/*输入要查找的学生的学号*/printf(n NO :name Chinese Math English average Max_coursen);for (i=0;in;i+)/*查找信息*/if(strcmp(s.num,stui.num)=0)k=i; /*找到要查找的学生记录*/printf_one(k);/*调用显示一个记录函数*/break;if(k=-1)printf(nnNO exist!);printf(返回主菜单请按数字0n);doscanf(%d,&f);if(f=0)menu();break;else printf(输入有误,请重新输入:);while(f!
21、=0);/*函数声明*/void order_ave();void order_Chinese();void order_Math();void order_English();void order()/*排序模块*/int i,j,f,m,w1;struct student s;system(CLS);dosystem(CLS);puts(ttt学 生 成 绩 排 序nn);puts(t*ORDER*n);puts(ttt1.对每一位学生的平均成绩排序n);puts(ttt2.对语文课成绩排序n);puts(ttt3.对数学课成绩排序n);puts(ttt4.对英语课成绩排序n);puts(
22、ttt5.返回主菜单n);puts(t*n);printf(Choice your number(1-5): bb);scanf(%d,&m);if(m5)w1=1;printf(your choice is not between 1 and 5,Please input again:);getchar();else w1=0;while(w1=1);switch(m) /*选择功能*/case 1:order_ave();break;case 2:order_Chinese();break;case 3:order_Math();break;case 4:order_English();b
23、reak;case 5:menu();printf(The ordered data is:n);browse();void order_ave()/*对平均成绩从小到大进行冒泡排序法*/int i,j,f;struct student s;system(CLS);for(i=0;in;i+)for(j=i;jstuj.ave)s=stui;stui=stuj;stuj=s;puts(n-);printf(每位学生的平均成绩从小到大的排序结果n);printf( NO : name average n);for(i=0;in;i+)printf(%3s :%3s %11fn,stui.num,
24、,stui.ave);puts(n-);printf(返回上一级请按数字0n);doscanf(%d,&f);if(f=0)order();break;else printf(输入有误,请重新输入:);while(f!=0);void order_Chinese()/*对语文成绩从小到大进行冒泡排序法*/int i,j,f;struct student s;system(CLS);for(i=0;in;i+)for(j=i;jstu_Chinesej.score0)s=stu_Chinesei;stu_Chinesei=stu_Chinesej;stu_Chinesej=s;
25、puts(n-);printf(语文成绩从小到大的排序结果n);printf( NO : name Chinese n);for(i=0;in;i+)printf(%3s :%5s %6dn,stu_Chinesei.num,stu_C,stu_Chinesei.score0);puts(n-);printf(返回上一级请按数字0n);doscanf(%d,&f);if(f=0)order();break;else printf(输入有误,请重新输入:);while(f!=0);void order_Math()/*对数学成绩从小到大进行冒泡排序法*/int i,j,f
26、;struct student s;system(CLS);for(i=0;in;i+)for(j=i;jstu_Mathj.score1)s=stu_Mathi;stu_Mathi=stu_Mathj;stu_Mathj=s;puts(n-);printf(数学成绩从小到大的排序结果n);printf( NO : name Math n);for(i=0;in;i+)printf(%3s :%5s %6dn,stu_Mathi.num,stu_M,stu_Mathi.score1);puts(n-);printf(返回上一级请按数字0n);doscanf(%d,&f);if
27、(f=0)order();break;else printf(输入有误,请重新输入:);while(f!=0);void order_English()/*对英语成绩从小到大进行冒泡排序法*/int i,j,f;struct student s;system(CLS); for(i=0;in;i+)for(j=i;jstu_Englishj.score2)s=stu_Englishi;stu_Englishi=stu_Englishj;stu_Englishj=s;puts(n-);printf(英语成绩从小到大的排序结果n);printf( NO : name English n);for(
28、i=0;in;i+)printf(%3s :%5s %6dn,stu_Englishi.num,stu_E,stu_Englishi.score2);puts(n-);printf(返回上一级请按数字0n);doscanf(%d,&f);if(f=0)order();break;else printf(输入有误,请重新输入:);while(f!=0);void menu()int n,w1;do/system(CLS);puts(ttt学 生 学 籍 管 理 系 统nn);puts(t*MENU*n);puts(ttt1.Enter new datan);puts(tt
29、t2.Browse alln);puts(ttt3.Search by numn);puts(ttt4.Order by averagen);puts(ttt5.Exitn);puts(t*n);printf(Choice your number(1-5): bb);scanf(%d,&n);if(n5)/*对选择的数字作判断*/w1=1;printf(your choice is not between 1 and 5,Please input again:);/getchar();else w1=0;while(w1=1);switch(n) /*选择功能*/case 1:enter();break;/*输入模块*/case 2:browse();break
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年浙江省兰溪市高三数学下册期末考试模拟试卷【能力提升】附答案
- 2026年浙江省慈溪市高三数学下册期末考试模拟测试卷及参考答案【夺分金卷】
- 2026年河南省项城市高三数学下册期末考试模拟测试卷【重点】附答案
- 2026年山东省莱阳市高三数学下册期末考试模拟卷带答案(培优B卷)
- 甘肃省定西市临洮县2027届数学七上期末学业水平测试模拟试题含解析
- 2025-2026学年大班挖竹笋说课稿
- 2025-2026学年世说新语乘船说课稿
- 2027届黑龙江省安达市吉星岗镇第一中学数学七年级第一学期期末综合测试模拟试题含解析
- 2026年医师资格考试《内科学》阶段测试卷(附答案)
- 2026年国考审计系统全真模拟试卷审计程序难点突破
- 2025-2026学年风筝教学设计图片素材
- 《地球的“面纱”》教学设计-2026-2027学年青岛版四年级科学上册
- 完整版农田建设项目施工组织设计方案
- 2026增材制造用金属粉末球形度控制关键技术突破
- 2026年生态环境行政执法与刑事司法衔接竞赛
- 2025-2026学年统编版八年级道德与法治下册全册知识点
- 2026年特殊食品考核测试卷【必刷】附答案详解
- 云知账号案例分析(小约翰可汗)
- 三生公司直销培训课件
- 雨课堂在线学堂《创新思维与战略管理》作业单元考核答案
- 2025年南京神学院考试题及答案
评论
0/150
提交评论