《c程序设计》课程设计学生成绩管理.doc
《《c程序设计》课程设计学生成绩管理.doc》由会员分享,可在线阅读,更多相关《《c程序设计》课程设计学生成绩管理.doc(14页珍藏版)》请在咨信网上搜索。
《C程序设计》课程实践报告 [学生成绩管理] 1. 设计目标 学生信息包括:学号,姓名,班级、学期、成绩等。 解决问题:提高学生成绩的管理水平和管理效率,为全校职工和学生提供方便、快捷、准确的学生成绩服务。 主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改。 (2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序。 (3)能查询学生成绩,不及格科目及学生名单。 (4)能按班级输出学生各个学期的成绩单。 要求:系统以菜单方式工作。 学期int term 班级int classes 姓名char name 学号int num 成绩int core[4] 2 .总体设计 主流程 修改单个学生信息 修改monify 信息录入void input 成绩统计void sort 查询 void search 学号stu[i].num、班级stu[i].classes,姓名stu[i].name、四门课成绩stu[i].score 能按学号查询单个学生成绩 按班级统计学生的成绩,求学生的总分及平均分,排序 成绩输出void print 能按班级,学期输出学生成绩单和不及格科目及学生名单 结构数组struct student 3.详细设计 整个系统除了主函数外,另外还有5个函数,实现六大功能:输入功能、输出功能、修改功能,查找并显示功能、排序并显示功能。 各个函数分别如下:: (1) . 定义结构体及宏定义 #include <stdlib.h> #include <stdio.h> #include <string.h> #define NUM 100 struct student { int term; int num; int classes; char name[10]; int score[4]; int sum; float average; }stu[NUM]; (2). 主菜单函数 :void zcd() 利用无限次循环for(;;)和swithch()进行菜单选择来实现各函数的调用,系统根 据输入的数字选项来调用相应的函数。等执行完每一个函数功能后,按任一键回 到主界面也要通过这个函数来实现! (3).输入信息函数 :void input() 利用循环for(;;)输入学生的信息和求各学生的平均分。 (4).排序并显示函数 :void sort() 用循环for(;;)求各学生的平均分,用冒泡法基于平均分对学生进行排序并输出。 (5).查找并显示一个记录 :void search() 利用循环for(;;)依次与输入的学号对比,若找到相符的,则输出该生的相关信息;否则提示无此学生。 (6).按学期、按班级输出成绩函数 :void print() 利用 swithch()进行菜单选择来实现print1()和print2()的各自调用,print1()实现按学期输出成绩,print2()实现按班级输出成绩;利用循环for(;;)依次输出不及格学生的名单及成绩。 (7).修改成绩函数 :void modify()\ 利用循环for(;;)依次与输入的学号对比,若找到相符的,则提示要修改的相关信息;否则,提示无此学生。 4. 调试与测试 初次遇到这个程序,以为所学知识肯定不够用但是整体框架给出我们后就觉得还是可行的。即通过主函数中的switch选择结构,在通过用户的可视化界面做出选择,通过对switch各个分支的副函数进行编写调试。最终完成程序,并优化。 最后通过多次的使用,对细节进行了优化。增加一些判断语句,让用户了解程序运行状况;增加提示。学c需要的是一颗好奇、细心、勤奋的心。多多练习,多多思考。多了解硬件知识,熟悉并记忆一些小的程序片段。必能有所收获。 5.分析及结论 实现功能: 1、输入功能:可以一次完成无数条信息的输入。 2、 输出功能:能按班级输出学生的成绩单。 3、修改功能:完成对单个学生成绩的修改。 4、查找功能:完成对单个学生信息查找,并显示。 5、排序功能:按学生成绩进行排序,并显示。 总结经验: 1、要对系统的功能和要求做出详细的分析,并合理分解任务。 2、把分解出来的子任务,做给一个相对独立的模块。 3、在设计一个模块之前,要简单构想一下总界面的显视情况。 4、针对构想出来的界面进行程序的编写。 6.运行结果 运行开始: 输入成绩记录: 排序并显示: 7. 结束语 通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识熟悉了,本次课程设计结束了,我们通过这次实践学到了许多知识。 学到了设计一个简单的系统,要注意哪些方面。也使我们知道自己哪些方面做得还不够。这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废。 8.参考文献 [1] 《C语言程序设计》,谭浩强,清华大学出版社。 [2] 《C程序设计学习辅导》,谭浩强,清华大学出版社。 9.源代码: #include <stdlib.h> #include <stdio.h> #include <string.h> #define NUM 100 struct student { int term; int num; int classes; char name[10]; int score[4]; int sum; float average; }stu[NUM]; void input() { system("cls"); int i; char a; for(i=0;i<NUM;i++) { printf(" \n请输入学生的学期:"); scanf("%d",&stu[i].term); printf(" \n请输入学生的学号:"); fflush(stdin); scanf("%d",&stu[i].num); printf(" \n请输入学生的班级:"); scanf("%d",&stu[i].classes); printf("\n请输入学生的姓名:"); scanf("%s", stu[i].name) ; printf("\n请输入学生的语文成绩:"); scanf("%d",&stu[i].score[0]); printf("\n请输入学生的数学成绩:"); scanf("%d", &stu[i].score[1]); printf("\n请输入学生的英语成绩:"); scanf("%d", &stu[i].score[2]); printf("\n请输入学生的计算机成绩:"); scanf("%d", &stu[i].score[3]); stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];//算总分和平均 stu[i].average=(float)stu[i].sum/4.0; printf("是否要继续添加(按N&n退出)"); fflush(stdin); a=getchar(); if(a=='n'||a=='N') break; } } void sort() { void print(); int i,j=0; float temp; for(i=0;i<NUM;i++) { stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]; stu[i].average=(float)stu[i].sum/4.0; } for(i=0;i<NUM-1;i++) { for(j=i+1;j<NUM;j++) { if(stu[i].sum<stu[j].sum) { temp=stu[i].sum; stu[i].sum=stu[j].sum; stu[j].sum=temp; } } } printf("学号\t姓名\t班级 语文 数学 英语 计算机 总分 平均分\n"); for(i=0;i<NUM;i++) printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",stu[i].num,stu[i].name,stu[i].classes, stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].average); /*输出学生信息*/ system("pause");system("cls");print(); } void search() { system("cls");/*清屏*/ int number=0,i; printf("\t\t\t 请输入要查找学生的学号:"); scanf("%d",&number); printf("学号\t姓名\t班级 语文 数学 英语 计算机 总分 平均分\n"); for(i=0;i<NUM;i++) if(number==stu[i].num) break;/*查找判断*/ if(i<NUM) {printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",stu[i].num,stu[i].name,stu[i].classes, stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].score[3],stu[i].sum,stu[i].average); /*输出学生信息*/ } else printf("没找到该学生的信息\n"); system("pause"); } void print() { void zcd(); void print1(); void print2(); void print(); system("cls"); char a; printf("1、按学期输出\n"); printf("2、按班级输出\n"); printf("3、返回\n"); fflush(stdin); a=getchar(); switch(a) { case '1':print1();break; case '2':print2();break; case '3':zcd();break; default:print(); } } void print1()//按学期 { int i,m; printf("请输入学期:\n"); scanf("%d",&m); printf("学号\t姓名\t班级 语文 数学 英语 计算机 总分 平均分\n"); for(i=0;i<NUM;i++) { if(m==stu[i].term) printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",stu[i].num,stu[i].name,stu[i].classes, stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].score[3],stu[i].sum,stu[i].average); /*输出学生信息*/ } system("pause");system("cls");print(); } void print2()//按班级 { int i,j,k; printf("请输入班级:\n"); scanf("%d",&k); printf("学号\t姓名\t班级 语文 数学 英语 计算机 总分 平均分\n"); for(i=0;i<NUM;i++) { if(k==stu[i].classes) { stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]; stu[i].average=stu[i].sum/4.0; printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",stu[i].num,stu[i].name,stu[i].classes, stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].score[3],stu[i].sum,stu[i].average); /*输出学生信息*/ } } printf("输出不及格学生名单及成绩:\n"); printf("学号\t姓名\t班级 语文 数学 英语 计算机 \n"); for(i=0;i<NUM;i++) {for(j=0;j<4;j++) { if(stu[i].score[j]<60&&k==stu[i].classes) /*输出不及格学生名单及成绩*/ printf("%d\t%s\t%d%5d%5d%5d%6d\n",stu[i].num,stu[i].name,stu[i].classes, stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].score[3]); break; } } system("pause");system("cls");print(); } void modify() { void zcd(); system("cls"); int number,i; printf("\t\t\t请输入要修改信息的学生学号:"); scanf("\t\t\t%d",&number); for(i=0;i<NUM;i++) if(number=stu[i].num) break;/*查找判断*/ if(i<NUM)/*查找判断*/ { printf("请输入修改后的学生的信息:"); printf(" \n请输入学生的学期:"); scanf("%d",&stu[i].term); printf(" \n请输入学生的学号:"); fflush(stdin); scanf("%d",&stu[i].num); printf(" \n请输入学生的班级:"); scanf("%d",&stu[i].classes); printf("\n请输入学生的姓名:"); scanf("%s", stu[i].name) ; printf("\n请输入学生的语文成绩:"); scanf("%d",&stu[i].score[0]); printf("\n请输入学生的数学成绩:"); scanf("%d", &stu[i].score[1]); printf("\n请输入学生的英语成绩:"); scanf("%d", &stu[i].score[2]); printf("\n请输入学生的计算机成绩:"); scanf("%d", &stu[i].score[3]); } else printf("没找到该学生的信息\n"); system("paues");system("cls");zcd(); } void zcd() { void zcd(); int n=0; char m; system("cls");/*清屏*/ printf("\n\t\t--------- 欢迎使用苏州科技学院学生管理系统-----------\n\n\t\n\n\n\n"); printf("\t\t\t1. 输入学生成绩记录 \n"); /*输入学生成绩记录*/ printf("\t\t\t2. 排序并显示 \n"); /*排序*/ printf("\t\t\t3. 按班级显示成绩单 \n"); /*显示*/ printf("\t\t\t4. 查找个人成绩 \n"); /*查找*/ printf("\t\t\t5. 修改\n"); /*修改*/ printf("\t\t\t6. 退出 \n"); /*退出*/ printf("\n\t\t\t输入你的选择Enter your choice(1~6):"); fflush(stdin); m=getchar(); do {switch(m) { case '1':input();zcd();break; case '2':sort();system("pause");zcd();break; case '3':print();system("pause");break; case '4':search();zcd();break; case '5':modify();system("pause");zcd();break; case '6':exit(0); /*如菜单返回值为7则程序结束*/ default:printf("错误命令"); getchar();zcd(); } } while(1); } void main() { void zcd(); void input(); void sort(); void search(); void print(); void print1(); void print2(); void modify(); zcd(); } /*主函数界面*/ 目 录 第一章 总论 1 一、项目概况 1 二、项目提出的理由与过程 6 三、项目建设的必要性 8 四、项目的可行性 12 第二章 市场预测 15 一、市场分析 15 二、市场预测 16 三、产品市场竞争力分析 19 第三章 建设规模与产品方案 22 一、建设规模 22 二、产品方案 22 三、质量标准 22 第四章 项目建设地点 25 一、项目建设地点选择 25 二、项目建设地条件 25 第五章 技术方案、设备方案和工程方案 28 一、技术方案 28 二、产品特点 30 三、主要设备方案 32 四、工程方案 32 第六章 原材料与原料供应 35 一、原料来源及运输方式 35 二、燃料供应与运输方式 35 第七章 总图布置、运输、总体布局与公用辅助工程 37 一、总图布置 37 二、 运输 38 三、总体布局 38 四、公用辅助工程 39 第八章 节能、节水与安全措施 44 一、主要依据及标准 44 二、节能 44 三、节水 45 四、消防与安全 45 第九章 环境影响与评价 47 一、法规依据 47 二、项目建设对环境影响 48 三、环境保护措施 48 四、环境影响评价 49 第十章 项目组织管理与运行 50 一、项目建设期管理 50 二、项目运行期组织管理 52 第十一章 项目实施进度 55 第十二章 投资估算和资金筹措 56 一、投资估算 56 二、资金筹措 58 第十三章 财务评价与效益分析 61 一、项目财务评价 61 二、财务评价结论 65 三、社会效益 68 四、生态效益 68 第十四章 风险分析 70 一、主要风险分析识别 70 二、风险程度分析及防范风险的措施 70 第十五章 招标方案 72 一、招标范围 72 二、招标组织形式 72 三、招标方式 72 第十六章 结论与建议 74 一、可行性研究结论 74 二、建议 75 附 件 77 一、附表 77 二、附件 77 三、附图 77 13- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c程序设计 程序设计 课程设计 学生 成绩 管理
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文