




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、个人收集整理仅供参考学习实验报告学生学籍管理系统专业: 信息管理与信息系统班级:学号:姓名:学生学籍管理系统一、实验要求:一个班级有若干名学生(不超过10名),共有三门课程,分别是语文、数学、英语,要求编写一个成绩地管理系统,每个学生要求有学号、姓名、性别、 三门课地成绩以及平均成绩,要实现从键盘上输入学号(必须为数字)、姓名、性别、三门课程地成绩,并求每一位学生地平均成绩(即每一行地平均值)、每一位学生地最高分(每一行地最大值),求每一门课程地平均分(即每一列地平 均值)、每一门课地最高分(即每一列地最大值),并输出全部结果根据学生地 平均成绩进行排序,对语文、数学、英语成绩进行排序,并输出
2、排序结果,排序 必须使用冒泡排序法.并且具有如下地菜单:b5E2RGbCAP 学生学籍管理系统* MENU *1、Enter new data2、Browse all3、Search by num4、Order by average5、Exit用户可以根据菜单来选择操作,,菜单地含义如下:1、En ter new data输入新数据2、Browse al浏览所有数据3、Search by num根据学号查询学生信息4、Order by average根据平均成绩排序5、Exit退出系统实验步骤:二、实验目地1、了解和熟悉Visual C+软件编程开发环境2、熟练掌握结构化程序设计地步骤和模块化
3、设计方法3、熟练掌握C语言数据类型,熟记字符型数据和整形数据地定义和使用4、熟练掌握用while语句、dowhile语句和for语句实现循环结构程序设计 地方法5、掌握一维数组、二维数组地定义、赋值和输入输出地方法6、掌握与数组有关地算法(特别是排序算法,熟练掌握冒泡排序法)7、 熟悉函数地定义、声明方法及全局变量和局部变量地概念与用法,掌握函 数地调用方法&掌握结构体类型变量地定义和使用及结构体类型数组地概念和应用三、实验步骤1、分析设计题目:根据题目要求,可以使用结构体数组来存储学生地信息,包括学号、姓名、性别、各科成绩、平均成绩五个成员,分别使用字符数组、整型数组、浮点 型变量来
4、表示.在主函数之外,分别编写菜单函数 menu()、输入函数enter()、 浏览函数browse()、查找函数search©排序函数order()等函数,通过主函数 调用 menu来实现.DXDiTa9E3d2、实验流程图:否结束3、实验模块:输入模块、浏览模块、查找模块、排序模块、退出系统4、程序地调试与测试:所谓程序调试是指对程序地查错与排错.在编写完一个源程序之后,不要 立即进行编译,而应对程序进行全面地人工检查一遍,检查无误后,可以开 始进行程序调试.由编译系统进行检查、发现错误,根据编译系统提示地错误 类型和警告及出现地位置,我们可以定位到错误地点进行修改, 然后再编译,
5、 如此反复进行,直至不再出现错误位置,最后才进行程序地连接于运行.调试完以后,下一步就是对程序进行测试,运行程序,向程序中输入数据,根据 输出结果是否正确(是否符合自己地想法)来判断程序是否正确,如果不正 确或不符合自己地目地,就需要对程序进行修改.然后再调试,再测试,直至 结果无误或符合要求后,测试才算结束,此时,程序才算是满足题目要求地 正确程序.RTCrpUDGiT5、运行结果:(1运行结果界面如下:6 / 21h . 一 I- 料<fl> - IJUhdL'F." 1.JMNuUh41 111.-吕(2选择1号菜单,输入10名同学信息,运行结果如下:1 鸟
6、4& «¥«- PteittdLW.B'J !;CW«1'|#HWii>E 取A也示(3)选择2号菜单,浏览所有信息,运行结果如下:SI : i"卉 ar加i!MrrW"l4buEy ”NO 01 02 03 04 05 06 07 08 0910夏肺凤晨阳敕尧磊柳嶷ChineseE08S767477676978 fifi89Math787886B484旳甜6987781592的鈕时907197&4純66S1Elaverage83.333乱0075.3375.3363.67 眦0090.6770.
7、3386,弟77.67MdJiL course929286fJ4906797789089ave_chitiese ave Math ave.EtielishB2.60 Si. 2079.40MaA_Chines LUii_Math Mai_Enjlish89B797There are 10 record.段脚拼音半:- tl J Agflajayt .HKit»dLWj關 i 世 7 心4閒耐世- DHtcrowfL 如 £曲 吐皀 23fl,'(4)选择3号菜单,按学号查找学生信息,例如查找学号为03地同德信 息,输入格式如下:nt er nan曙 that yo
8、u wng to search J numzOS搜狗拼音半:1=7.* A.4»Pj;p* 雀nil - j?fCyu/*i°r*wv* .J U也"iy.吕宅乌冷书(5)查询学号为03地同学地信息运行结果如下:个人收集整理仅供参考学习(6)选择4号菜单,进入学生成绩排序功能菜单,运行结果如下:p 融 js 联帯如洒 血冏ll. in 晦电:吕 零舟iia轧4 材/ *耳岂貼楚n'or. 电円 ZtS2(8)选择2号功能菜单,按语文成绩从小到大排序,运行结果如下:巴 IAwgpmaL4hugioxu.M-1 4 6 7 8 O 7 8 8 .9 9 h 7
9、 7 7 7 8 B 8 B B 6 恥fljue晨园阳磊夏政殊柳畫寒 绩;n刘李孙李华主藏刘南韩 :+ * : T + :”;: gN00403Q5曲010602肿0710返回上一级请按数宇0I技狗爭音半:riI-mttU J i a44 juoyK - r*W6=4L 0.S J "tCiMrfinngc 亡J ««W«T1 0 嗟J US!电mH!旨1cr鶴邑22:比(9)选择3号功能菜单,按数学成绩从小到大排序,运行结果如下:8 / 21个人收集整理仅供参考学习IX01采结畤ttl册J1at6978787882e48486eG87大到r肿吨番师夏
10、寒孜阳展凤尧测缱n丰蛊华韩工和刘丰南刘谿NOQ302M10060-5M030709返回上一级请按数宇口- 时q 負40 MV1 -. 8门帘阿tfgr仲*fc-wdL Mtr.gt. 7目 嘰斜 2SF(10)选择4号功能菜单,按英语成绩从小到大排序,运行结果如下:En64e466祠门9090929297济NO0308LO04060905020107(11)选择5号功能菜单,返回主菜单,运行结果如下:9 / 21R卜 八 q a體 nar - He.*:kTL血m n札阳J AWF1MT 科目哎H嗨搜驹拼音芈:(MLT5 + (MC个人收集整理仅供参考学习7寸負ffl. A j 軻B Nkew
11、A 世丄S 电fl ns(12)选择5号菜单,退出系统,按任意键结束程序,运行结果如下:四、实验体会通过完成这个综合地设计实例,从中我熟悉了 Visual C+开发环境,熟练掌 握了在Visual C+软件环境下编写和调试程序.通过对程序地调试,我从学到了许 多知识,根据编译时系统提供地错误提示,我能很快地找到错误并排除这些错误, 是程序能正确运行通过这个环节地不断练习,我积累了丰富地经验,为以后编 程和调试程序奠定了基础.通过运行程序,对程序不断改动,仔细观察和分析所 出现地情况,锻炼了我对立思考地能力,而且增强了我对C语言应用这门课程地兴趣.5PCzVD7HxA五、源程序#i nclude
12、<stdio.h> /* 头文件 */#i nclude<stri ng.h>#i nclude<stdlib.h>#define N 100#define M 3typedef struct student /* 定义学生结构体 */char nu m11;char n ame20;char sex3;int scoreM;float ave;int Max_course;STU;-STU stuN,stu_ChineseN,stu_MathN,stu_EnglishN; jLBHrnAlLg int MaxM;float ave_Ch in ese;fl
13、oat ave_Math;float ave_E nglish;int n;/*实际存储地学生个数*/void no_input(int i,int n)/*i表示第i个地学生信息,n表示比较到第n个学生*/xHAQX74J0Xint j,k,w1;dow仁0;prin tf("NO.:");sca nf("%s",&stui. num);for(j=0;stui.numj!='0'j+)/* 学号输入函数,作了严格规定 */ if(stui. nu mjv'0'|stui. numj>'9'
14、)/*判断学号是否 为数字*/ LDAYtRyKfEputs("Input error! Only be made up of (0-9).Pleaserein put!n"); zzz6ZB2Ltkw1=1;break; if(w1!=1) for(k=0;k<n;k+)/*比较到第n个学生*/if(k!=i&&strcmp(stuk. nu m,stui. num )=0)puts("This record is exist.Please rei nput!n"); w1=1;break;while(w 1=1);void in
15、put(int i)/*输入一个记录函数*/int j,sum;no_input(i,i);/*调用学号输入函数*/prin tf(" name:");scan f("%s",&stui. name);prin tf("sex:");scan f("%s",&stui.sex);for(j=0;j<M;j+)prin tf("score %d:",j+1); sca nf("%d",&stui.scorej); for(sum=0,j=0;j&l
16、t;M;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);/* 要输入地记录个数 */ scan f("%d",&n);prin tf("nEn ter data nownn ”); for(i=0;i <
17、;n ;i+)prin tf("n In put %dth stude nt record.n",i+1);input(i);/*调用输入函数*/for(i=0;i<n;i+)/*求每一行地最大值,即求每一位学生地三门课中地最高 分*/ stui.Max_course=stui.score0; for(j=1;j<M;j+)if(stui.Max_course<stui.scorej)stui.Max_course=stui.scorej; _for(i=0;i< n;i+)/* 把输入地信息分别复制到 stu_ChineseN,stu_MathN,
18、stu_EnglishN中*/ dvzfvkwMIl_ 一 一stu_Ch in esei=stui;stu_Mathi=stui;stu_E nglishi=stui;printf("返回主菜单请按数字0n");dosca nf("%d", &f);if(f=0)menu();break;else printf("输入有误,请重新输入:");while(f!=0);void printf_one(int i)/* 显示一个记录函数 */ _int j;prin tf("%3s :%3s",stui. nu
19、m,stui. name);for(j=0;j<M;j+)prin tf("%10d",stui.scorej);prin tf("%10.2f",stui.ave);prin tf("%9dn",stui.Max_course); _void browse()/* 浏览模块 */int i,j,f,k=0;system("CLS");/* 清屏 */for(i=0;i<n;i+)/*求第一列地平均值,即求语文平均成绩*/k=k+stui.score0;ave_Chi nese=(k*1.0)/n;k=
20、0;for(i=0;i<n;i+)/*求第二列地平均值,即求数学平均成绩*/k=k+stui.score1; ave_Math=(k*1.0)/n; _k=0;for(i=0;i<n;i+)/*求第三列地平均值,即求英语平均成绩*/k=k+stui.score2;ave_E nglish=(k*1.0)/n; _Max0=stu0.score0;/*第一列地最大值,即语文成绩最高分*/for(i=1;i <n ;i+)if(Max0<stui.score0)Max0=stui.score0;Max1=stu0.score1;/*第二列地最大值,即数学成绩最高分*/ fo
21、r(i=1;i <n ;i+)if(Max1<stui.score1)Max1=stui.score1;Max2=stu0.score2;/*第三列地最大值,即英语成绩最高分*/ for(i=1;i <n ;i+)if(Max2<stui.score2)Max2=stui.score2;puts("n"); rqyn14ZNXIprintf("n NO :nameChinese MathEnglishaverageMax_coursen") ;EmxvxOtOcofor(i=0;i <n ;i+)if(i!=0)&&
22、amp;(i%10=0)/*目地是分屏显示 */prin tf("nn Pass any key to con ti nu e."); getchar();puts("nn"); printf_one(i);/*调用显示一个记录函数*/ _puts("n"); SixE2yXPq5printf("ave_Chinese ave_Math ave_English'n");prin tf("%10.2f%10.2f%10.2fn",ave_Chi nese,ave_Math,ave_E ng
23、lish);/* 显示 语文、数学、英语平均成绩*/6ewMyirQFLputs("n") ;kavU42VRUsprintf(” Max_Chi neseMax_Math Max_E nglish'n");prin tf("%10d%10d%10dn",Max0,Max1,Max2);/* 显示语文、数学、英语成绩 */y6v3ALoS89puts("n"); M2ub6vSTnPprin tf("n'tThere are %d record.' n", n);puts(&quo
24、t;n"); 0YujCfmUCwprintf("返回主菜单请按数字0n");dosca nf("%d", &f);if(f=0)menu();break;else printf("输入有误,请重新输入:");while(f!=0);void search。/*查找模块 */int i,k,f;struct stude nt s;k=-1;system("CLS");/* 清屏 */printf("nnEnter name that you wang to search! num:&qu
25、ot;);euts8ZQVRdscanf("%s",&s.num);/*输入要查找地学生地学号*/printf("nNO :nameChinese MathEnglishaverageMax_coursen");sQsAEjkW5Tfor (i=0;i<n;i+)/* 查找信息 */if(strcmp(s. nu m,stui. num)=0)k=i;/*找到要查找地学生记录*/printf_one(k);/*调用显示一个记录函数*/break;if(k=-1)prin tf("nnNO exist!");printf(
26、"返回主菜单请按数字0n");dosca nf("%d", &f);if(f=0)menu(); break;else printf("输入有误,请重新输入:"); while(f!=O);/*函数声明*/void order_ave();void order_Chi nese();void order_Math();void order_E nglish();void order()/* 排序模块 */int i,j,f,m,w1;struct stude nt s;system("CLS"); do s
27、ystem("CLS"); puts("ttt 学生成绩排序nn");puts("t*ORDER*n" );GMslasNXkAputs("ttt1.对每一位学生地平均成绩排序n");puts("ttt2.对语文课成绩排序n");puts("ttt3.对数学课成绩排序n");puts("ttt4.对英语课成绩排序n");puts("ttt5.返回主菜单 n");puts("t*n");TlrRGchYzgprin t
28、f("Choice your number(1-5): bb");sca nf("%d",&m);if(m<0|m>5)w1=1;printf("your choice is not between 1 and 5,Please inputagai n: ");7EqzcWLZNxgetchar();else w1=0;while(w 1=1);switch(m)/* 选择功能 */case 1:order_ave();break;case 2:order_Chi nese();break;case 3:order
29、_Math();break;case 4:order_E nglish();break;case 5:me nu ();prin tf("The ordered data is:n");browse();void order_ave()/*对平均成绩从小到大进行冒泡排序法*/int i,j,f;struct stude nt s;system("CLS");for(i=0;i <n ;i+)for(j=i;j< n;j+)if(stui.ave>stuj.ave)s=stui;stui=stuj;stuj=s;puts("n&
30、quot;); lzq7IGfO2Eprintf("每位学生地平均成绩从小到大地排序结果n");prin tf(" NO : n ameaverage n");for(i=0;i <n ;i+)prin tf("%3s :%3s%11fn",stui. num,stui. name,stui.ave); zvpgeqJ1hkputs("n"); NrpoJac3v1printf("返回上一级请按数字0n");dosca nf("%d", &f);if(f=0)o
31、rder();break;else printf("输入有误,请重新输入:");while(f!=0);void order_Ch in ese()/*对语文成绩从小到大进行冒泡排序法*/int i,j,f;struct stude nt s;system("CLS");for(i=0;i <n ;i+)for(j=i;j< n;j+)if(stu_Chi nesei.score0>stu_Chi nesej.score0)1nowfTG4KI 一 一s=stu_Ch in esei;stu_Chi nesei=stu_Chi nese
32、j;stu_Chi nesej=s; _puts("n"); fjnFLDa5Zoprintf("语文成绩从小到大地排序结果n");prin tf("NO : nameChi nese n");for(i=0;i <n ;i+)prin tf("%3s :%5s%6dn",stu_Chi nesei. num,stu_Chi nesei. name,stu_Ch inesei.score0); tfnNhnE6e5puts("n") ; HbmVN777sLprintf("返回上
33、一级请按数字0n");dosca nf("%d", &f);if(f=0)order();break;else printf("输入有误,请重新输入:");while(f!=0);void order_Math()/*对数学成绩从小到大进行冒泡排序法 */int i,j,f;struct stude nt s;system("CLS");for(i=0;i <n ;i+)for(j=i;jv n;j+) if(stu_Mathi.score1>stu_Mathj.score1) 一 一s=stu_Math
34、i;stu_Mathi=stu_Mathj; stu_Mathj=s; _putS("n"); V7l4jRB8Hsprintf("数学成绩从小到大地排序结果n");printf(" NO : name Math n");for(i=0;i <n ;i+)printf("%3s :%5s%6dn",stu_Mathi.num,stu_M,stu_Mathi.score1) ;83lcPA59W9puts("n"); mZkklkzaaPprintf("返回上一级
35、请按数字0n");dosca nf("%d", &f);if(f=0)order();break;else printf("输入有误,请重新输入:");while(f!=0);void order_E nglish()/*对英语成绩从小到大进行冒泡排序法*/int i,j,f;struct stude nt s;system("CLS");for(i=0;i< n;i+)for(j=i;j< n;j+)if(stu_Englishi.score2>stu_Englishj.score2) AVktR
36、43bpw 一 一s=stu_E nglishi;stu_E nglishi=stu_E nglishj;stu_E nglishj=s; _puts("n"); ORjBnOwcEdprintf("英语成绩从小到大地排序结果n");prin tf(" NO : name En glish n");for(i=0;i <n ;i+)printf("%3s :%5s%6dn",stu_Englishi.num,stu_E,stu_Englishi.score2); 2MiJTy0dTTp
37、uts("n"); gliSpiue7Aprintf("返回上一级请按数字0n");dosca nf("%d", &f);if(f=0)order();break;else printf("输入有误,请重新输入:");while(f!=0);void menu()int n,w1;dosystem("CLS");puts("ttt学生学籍管理系统nn");puts("t*MENU*n");uEh0U1Yfmhputs("ttt1.E nt
38、er new datan"); puts("ttt2.Browse alln"); puts("ttt3.Search by numn"); puts("ttt4.Order by average'n"); puts("ttt5.Exitn");puts("t*n");IAg9qLsgBXprin tf("Choice your number(1-5): bb"); sca nf("%d",&n);if(n<0|n>5)/*对选择地数字作判断*/w1=1;printf("your choice is not between 1 and 5,Please inputagai n:");WwghWvvhPEgetchar();else w1=0;while(w 1=1);switch(n)/* 选择功能 */case 1:enter();break;/输入模块 */case 2:browse();break;/浏览模块 */case 3:search();break;/查找模块 */case 4:order();break;/*排序模块 */case
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汽车租赁合同范本
- 2025年租车带司机服务合同模板
- 2025标准个人租房租赁合同样本
- 2025财产委托管理合同模板
- 2025包装盒生产合同模板
- 2025年土地流转合同样本
- 2025订购绿化苗木合同模板
- 2025物业管理服务合同范本
- 2025合同能源托管协议范本
- 2025咖啡店承包合同协议书
- 电梯调试单机试车方案
- 【MOOC】面向对象程序设计-濮阳职业技术学院 中国大学慕课MOOC答案
- 子宫平滑肌瘤手术临床路径表单
- 【MOOC】机械原理-西北工业大学 中国大学慕课MOOC答案
- GB/T 36547-2024电化学储能电站接入电网技术规定
- 2022-2023学年广东省深圳市南山区六年级上学期期末英语试卷
- 中华传统文化进中小学课程教材指南
- 汽车发动机火花塞市场洞察报告
- 学校安保服务投标方案(技术方案)
- 故宫的课件教学课件
- 幼儿园大班安全活动《安全乘坐电梯》课件
评论
0/150
提交评论