ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:98.04KB ,
资源ID:4131123      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4131123.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(成绩管理系统V6.0.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

成绩管理系统V6.0.doc

1、Harbin Institute of Technology C语言实验大作业 课程名称: C语言程序设计 报告类型: 程序设计报告 实验题目: 学生成绩管理系统v6。0 实验类型: (综合设计型/创新研究型) 所在院系: 航天学院电子信息类 学生类别: 本科生 指导教师: 郭萍 学生姓名: 王福海 班级和学号: 电子信息五班 1162100527 实验时间: 2017。5.20 成绩评定: 哈尔滨工业大学 1 实验目的 将教材中所包含的内容系统化考察,考察一维、二维数组,函数的调

2、用,排序、查找、统计分析等常用算法,指针,动态数组以及结构体的应用。 2 实验内容和要求 1。实验内容 学生成绩管理系统V6。0。某班有最多不超过30人(具体人数由键盘输入)参加最多不超过六门的考试(具体门数由键盘输入),定义结构体类型,用结构体数组作函数参数,编程实现学生成绩的管理。 2。实验要求 采用自顶向下、逐步求精的模块化设计思想设计小型数据库管理系统,对学生成绩进行管理.要求按系统的需求分析、系统设计(总体设计、各个模块的设计)、系统实现(各个模块的实现)、系统测试等过程组织报告内容,说明采用了什么数据结构和算法,遇到哪些问题,这些问题是如何解决的,本设计的亮点和难点在哪里

3、实验结果如何,有哪些收获和学习体会. 3.系统功能需求分析 本系统主要实现下面的功能: (1)录入每个学生的学号和考试成绩; (2)计算每门课程的总分和平均分; (3)计算每个学生的总分和平均分; (4) 按成绩由高到低排出名次表; (5) 按成绩由低到高排出名次表; (6) 按学号由小到大排出成绩表; (7) 按姓名字典的排序排出成绩表; (8) 按学号查询学生排名及其考试成绩; (9) 按姓名查询学生排名及其考试成绩; (10) 按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数以及所

4、占的百分比; (11) 输出每个学生学号姓名各科成绩及每门考试的总分平均分; (12) 将每个学生信息写入文件; (13) 从文件中读取每个学生信息并显示; 4。实验环境 采用win10操作系统,使用软件Dev-c++。 3 系统设计 1. 系统功能模块划分 学生成绩管理系统 按姓名排序 按学号排序 录 入 成 绩 录入文件读取文件 标 准 分 析 排 名 排 序 计算总分平均分 按学生成绩排名 每个学生 每门课 五个档次 2。 主要算法 排序:进行学生成绩的排序从而出现排名表 查找:通过多种方式如学号,姓名查找特定学生

5、的成绩 3.数据结构 输出每个学生学号姓名各科成绩及每门考试的总分平均分 按成绩由高到低排出名次表 计算每个学生的总分和平均分 计算每门课程的总分和平均分 录入每个学生的学号和考试成绩 按成绩由低到高排出名次表 按姓名字典的排序排出成绩表 按学号查询学生排名及其考试成绩 按姓名查询学生排名及其考试成绩 5个类别,统计每个类别的人数以及所占的百分比 按学号由小到大排出成绩表 将每个学生信息写入文件从文件中读取每个学生信息并显示 退出 用户输入指令 4.各模块(函数)的功

6、能和接口设计: 序号 函数名 函数功能 函数参数 1 Menu 显示菜单获得输入的选项 无 2 Readscore 录入学生信息 STU stu[], m,n 3 Aversumofeverystudent 计算每个学生总成绩平均值 STU stu[], m,n 4 Aversumofeverycourse 计算每门课程总成绩平均成绩 STU stu[], m,n 5 Sortbyscore 按成绩排序 STU stu[], m,n 6 Ascending 升序 floata,b 7 Descending 降序 floata,b

7、 8 Assortbynum 按学号排序 STU stu[], m,n 9 Sortbyname 按姓名排序 STU stu[], m,n 10 Searchbynum 按学号查询学生信息 STU stu[], m,n 11 Searchbyname 按姓名查询学生信息 STU stu[], m,n 12 StatisticAnlysis(STU stu[], int n, int m) 分析学生成绩五个分数段所占百分比 STU stu[], m,n 13 PrintScore 打印输出学生成绩 STU stu[], m,n 14 Writet

8、oFile 写入程序 D盘student.txt STU stu[], m,n 15 ReadfromFile 读取文件 STU stu[], m,n 4 系统实现 1.系统的总流程图: 显示菜单—-〉输入用户的选择--〉根据用户的输入选择不同的操作 case 1: Readscore(stu,n,m); break; case 2: Aversumofeverystudent(stu ,n,m); break;

9、 case 3: Aversumofeverycourse(stu ,n,m); break; case 4: Sortbyscore(stu ,n,m,Descending); printf(”\n成绩降序排序\n”); Printscore( stu ,n, m); break; case 5:

10、 Sortbyscore(stu ,n,m,Ascending); printf("\n成绩升序排序\n"); Printscore( stu ,n, m); break; case 6: Assortbynum( stu , n, m); printf(”\n学号升序排序\n”); Printscore( stu ,n, m);

11、 break; case 7: Sortbyname( stu , n, m); printf("\n姓名升序排序\n”); Printscore( stu ,n, m); break; case 8: Searchbynum( stu , n, m); break; case 9:

12、 Searchbyname( stu , n, m); break; case 10: StatisticAnlysis( stu , n, m); break; case 11: Printscore( stu ,n, m); break; case 12: Writetofile(stu,n,

13、m); break; case 13: Readfromfile(stu,&n,&m); break; case 0: printf(”End of program!\n”); exit(0); 2. 程序的全部源代码: 1 #include

14、def struct student 5 { 6 long num; 7 char name[10]; 8 float score[6]; 9 float sum; 10 float aver; 11 }STU; 12 int Menu(void); 13 void ReadScore(STU stu[],int n, int m); 14 void AverSumofEveryStudent(STU stu[],int n,int m); 15 void AverSumofEveryCourse(STU stu[],int n,i

15、nt m); 16 void SortbyScore(STU stu[],int n,int m,int (*compare)(float a,float b)); 17 int Ascending(float a,float b); 18 int Descending(float a,float b); 19 void SwapFloat(float *x,float *y); 20 void SwapLong(long *x,long *y); 21 void SwapChar (char x[],char y[]); 22 void AsSortbyNum(STU stu[

16、],int n,int m); 23 void SortbyName(STU stu[],int n,int m); 24 void SearchbyNum(STU stu[],int n,int m); 25 void SearchbyName(STU stu[],int n,int m); 26 void StatisticAnalysis(STU stu[],int n,int m); 27 void PrintScore(STU stu[],int n,int m); 28 void WritetoFile(STU stu[],int n,int m); 29 void

17、ReadfromFile(STU stu[],int *n,int *m); 30 int main() 31 { 32 char ch; 33 int n=0,m=0; 34 STU stu[30]; 35 printf(”Input student number:(less than 30)\n"); 36 scanf(”%d”,&n); 37 printf("Input course number:(less than 6)\n”); 38 scanf("%d",&m); 39 while(1) 40

18、 { 41 ch = Menu(); 42 switch(ch) 43 { 44 case 1: ReadScore(stu,n,m); 45 break; 46 case 2: AverSumofEveryCourse(stu,n,m); 47 break; 48 case 3: AverSumofEveryStudent(stu,n,m); 49

19、 break; 50 case 4: SortbyScore(stu,n,m,Descending); 51 printf(”\nSort in descending order by score:\n"); 52 PrintScore(stu,n,m); 53 break; 54 case 5: SortbyScore(stu,n,m,Ascending); 55

20、 printf("\nSort in ascending order by score:\n”); 56 PrintScore(stu,n,m); 57 break; 58 case 6: AsSortbyNum(stu,n,m); 59 printf(”\nSort in ascending order by number:\n”); 60 PrintScore(stu,n,m); 61

21、 break; 62 case 7: SortbyName(stu,n,m); 63 printf("\nSort in dictionary order by name:\n"); 64 PrintScore(stu,n,m); 65 break; 66 case 8: SearchbyNum(stu,n,m); 67 break; 68

22、 case 9: SearchbyName(stu,n,m); 69 break; 70 case 10:StatisticAnalysis(stu,n,m); 71 break; 72 case 11:PrintScore(stu,n,m); 73 break; 74 case 12:WritetoFile(stu,n,m); 75

23、 break; 76 case 13:ReadfromFile(stu,&n,&m); 77 break; 78 case 0: printf(”End of program!\n"); 79 exit(0); 80 default:printf(”Input error!\n”); 81 } 82 } 83 return 0; 84 } 85 /*Menu:显示菜单并获得用户键盘输入的选项

24、 */ 86 int Menu(void) 87 { 88 int a; 89 printf("Management for Students’scores\n"); 90 printf(”1.Input record\n”); 91 printf(”2。Caculate total and average score of every course\n"); 92 printf(”3。Caculate total and average score of every student\n"); 93 printf(”4.Sort

25、in descending order by score\n”); 94 printf(”5。Sort in ascending order by score\n”); 95 printf("6.Sort in ascending order by number\n”); 96 printf(”7。Sort in dictionary order by name\n"); 97 printf(”8.Search by number\n”); 98 printf("9。Search by name\n"); 99 printf("10。

26、Statistic analysis\n”); 100 printf(”11.List record\n"); 101 printf(”12。Write to a file\n”); 102 printf(”13.Read from a file\n"); 103 printf(”0.Exit\n”); 104 printf(”Please Input your choice:"); 105 scanf(”%d”,&a); 106 return a; 107 } 108 /*input:输入每个学生每门课的成绩*/ 1

27、09 void ReadScore(STU stu[],int n,int m) 110 { 111 int i,j,k; 112 printf("Input student's ID,name and score:\n”); 113 for(i=0;i〈n;i++) 114 { 115 scanf(”%ld %s”,&stu[i]。num,stu[i]。name); 116 for(j=0;j〈m;j++) 117 { 118 scanf("%f”,&stu[i]。score[

28、j]); 119 } 120 } 121 } 122 /* AverSumofEveryStudent:计算每个学生每门课的总分和平均分*/ 123 void AverSumofEveryStudent(STU stu[],int n,int m) 124 { 125 int i,j; 126 for(i=0;i〈n;i++) 127 { 128 stu[i].sum = 0; 129 for(j=0;j〈m;j++) 130 { 131 stu[i

29、].sum = stu[i].sum + stu[i].score[j]; 132 } 133 stu[i]。aver = m>0 ? stu[i]。sum/m:—1; 134 printf(”student %d: sum=%.0f,aver=%。0f\n”,i+1,stu[i].sum,stu[i]。aver); 135 } 136 } 137 /*AverSumofEveryCourse:计算每门课程的总分和平均分*/ 138 void AverSumofEveryCourse(STU stu[],int n,int

30、m) 139 { 140 int i,j; 141 float sum[6],aver[6]; 142 for(j=0;j〈m;j++) 143 { 144 sum[j] = 0; 145 for(i=0;i〈n;i++) 146 { 147 sum[j]=sum[j]+stu[i]。score[j]; 148 } 149 aver[j] = n〉0?sum[j]/n : -1; 150 printf("course %

31、d:sum=%。0f,aver=%.0f\n”,j+1,sum[j],aver[j]); 151 } 152 } 153 /* SortbyScore:将每个学生按总成绩排序*/ 154 void SortbyScore(STU stu[],int n, int m,int(*compare)(float a,float b)) 155 { 156 int i,j,k,t; 157 for(i=0;i〈n-1;i++) 158 { 159 k=i; 160 for(j=i+1;j〈n;j++) 161

32、 { 162 if((*compare)(stu[j]。sum,stu[k].sum)) 163 k=j; 164 } 165 if(k!=i) 166 { 167 for(t=0;t

33、sum,&stu[i].sum); 172 SwapFloat(&stu[k]。aver,&stu[i].aver); 173 SwapLong(&stu[k]。num,&stu[i]。num); 174 SwapChar(stu[k]。name,stu[i]。name); 175 } 176 } 177 } 178 /* Ascending:按照升序*/ 179 int Ascending(float a,float b) 180 { 181 return a〈b;

34、182 } 183 /* Descending:按照降序 */ 184 int Descending(float a,float b) 185 { 186 return a〉b; 187 } 188 /* SwapFloat:交换单精度浮点型数据 */ 189 void SwapFloat(float *x,float *y) 190 { 191 float temp; 192 temp = *x; 193 *x = *y; 194 *y = temp; 195 } 196 /* SwapLong交换长整形数据 */ 197

35、 void SwapLong(long *x,long *y) 198 { 199 long temp; 200 temp = *x; 201 *x = *y; 202 *y = temp; 203 } 204 /* SwapChar交换字符型数据 */ 205 void SwapChar(char x[],char y[]) 206 { 207 char temp[10]; 208 strcpy(temp,x); 209 strcpy(x,y); 210 strcpy(y,temp); 211 }

36、212 /* AsSortbyNum:将学生按照学号顺序排列 */ 213 void AsSortbyNum(STU stu[],int n,int m) 214 { 215 int i,j,k,t; 216 for(i=0;i

37、i) 225 { 226 for(t=0;t〈m;t++) 227 { 228 SwapFloat(&stu[k]。sum,&stu[i].sum); 229 } 230 SwapFloat(&stu[k].sum,&stu[i]。sum); 231 SwapFloat(&stu[k]。aver,&stu[i]。aver); 232 SwapLong(&stu[k].num,&stu[i

38、]。num); 233 SwapChar(stu[k].name,stu[i].name); 234 } 235 } 236 } 237 /* SortbyName:将学生按照字典顺序排列 */ 238 void SortbyName(STU stu[],int n,int m) 239 { 240 int i,j,t; 241 for(i=0;i

39、 if(strcmp(stu[j]。name,stu[i].name)<0) 246 { 247 for(t=0;t〈m;t++) 248 { 249 SwapFloat(&stu[i].score[t],&stu[j]。score[t]); 250 } 251 SwapFloat(&stu[i]。sum,&stu[j].sum); 252 SwapFloat(

40、&stu[i]。aver,&stu[j]。aver); 253 SwapLong(&stu[i]。num,&stu[j]。num); 254 SwapChar(stu[i].name,stu[j].name); 255 } 256 } 257 } 258 } 259 /* SearchbyNum:按学号查找并打印学生成绩 */ 260 void SearchbyNum(STU stu[],int n,int m) 261 { 262 long number

41、 263 int i,j; 264 printf("Input the number you want to search"); 265 scanf(”%ld”,&number); 266 for(i=0;i

42、 { 273 printf("%。0f\t”,stu[i].score[j]); 274 } 275 printf(”%。0f\t%.0f\n”,stu[i]。sum,stu[i].aver); 276 return; 277 } 278 } 279 printf(”\nNot found! \n"); 280 } 281 /* SearchbyName:按名字查找并打印学生成绩 */ 282 void SearchbyNa

43、me(STU stu[],int n,int m) 283 { 284 char x[10]; 285 int i,j; 286 printf(”Input the name you want to search”); 287 scanf("%s",x); 288 for(i=0;i

44、me); 293 for(j=0;j〈m;j++) 294 { 295 printf(”%.0f\t",stu[i]。score[j]); 296 } 297 printf("%。0f\t%.0f\n”,stu[i].sum,stu[i].aver); 298 return; 299 } 300 } 301 printf(”\nNot found!\n”); 302 } 303 /* Sta

45、tisticAnalysis:统计各分段的学生及其所占百分比 */ 304 void StatisticAnalysis(STU stu[],int n,int m) 305 { 306 int i,j,total,t[6]; 307 for(j=0;j〈m;j++) 308 { 309 printf(”For course %d:\n”,j+1); 310 memset(t,0,sizeof(t)); /*将数组t的元素全部初始化为0*/ 311 for(i=0;i〈n;i++)

46、 312 { 313 if(stu[i].score[j]〉=0&&stu[i]。score[j]<60) t[0]++; 314 else if(stu[i]。score[j]<70) t[1]++; 315 else if(stu[i]。score[j]〈80) t[2]++; 316 else if(stu[i].score[j]〈90) t[3]++; 317

47、 else if(stu[i].score[j]<100) t[4]++; 318 else if(stu[i].score[j]==100) t[5]++; 319 } 320 for(total=0,i=0;i〈=5;i++) 321 { 322 total=total+t[i]; 323 } 324 for(i=0;i〈=5;i++) 325 { 326

48、 if(i==0) 327 printf(”<60\t%d\t%.2f%%\n”,t[i],(float)t[i]/n*100); 328 else if(i==5) 329 printf("%d\t%d\t%。2f%%\n", (i+5)*10,t[i],(float)t[i]/n*100); 330 else 331 printf("%d-%d\t%d\t%。2f%%\n”,(i+5)*10,(i+5)*10+9,t[i],(float)t[i]/n*100); 332 } 333

49、 } 334 } 335 /* PrintScore:打印输出学生成绩 */ 336 void PrintScore(STU stu[],int n,int m) 337 { 338 int i,j; 339 for(i=0;i〈n;i++) 340 { 341 printf("%ld\t%s\t”,stu[i]。num,stu[i]。name); 342 for(j=0;j

50、]); 345 } 346 printf("%。0f\t%。0f\n”,stu[i]。sum,stu[i]。aver); 347 } 348 } 349 /* WritetoFile:写入程序 student.txt */ 350 void WritetoFile(STU stu[],int n,int m) 351 { 352 FILE *fp; 353 int i,j; 354 if((fp=fopen(”student.txt”,"w”)) == NULL) 355 { 356

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服