C语言程序设计学生成绩管理系统实验报告2.doc
《C语言程序设计学生成绩管理系统实验报告2.doc》由会员分享,可在线阅读,更多相关《C语言程序设计学生成绩管理系统实验报告2.doc(16页珍藏版)》请在咨信网上搜索。
福建师范大学人民武装学院 C语言程序设计报告书 设计名称:学生成绩管理系统 专业:软件工程 指导老师:陈琳 姓名: 黄强 学号: 6 2013-415 一、实验目的 1.在编辑应用程序过程中,逐步加深对C语言编程的理解; 2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固; 3.培养初步编程的能力,为以后的学习奠定基础。 二、实验内容 运用所学的C语言知识编辑一个应用程序:学习成绩管理系统 三.系统软件环境: 本程序主要运行在: Visual C++ 6.0 Turbo C/C++ 3.0 四.课程设计题目: 学生成绩管理系统 程序说明:有N个学生,每个学生的数据包含学号(不重复)姓名,性别,课程号,课程名,学分和课程的三种得分。试设计一学生成绩 管理系统,使之能提供以下功能: (1)主菜单 学生成绩管理系统 1. 录入 2. 查询 3. 删除 4. 排序 5. 保存退出 6. 退出 (2)各菜单项功能 ①录入:输入学生的学号、姓名性别,课程号,课程名,学分和课程的三种得分 ②成绩查询: A.基本信息查询 *按学号查询学生记录。 *按名字查询学生纪录。 B.成绩查询 *按学号查询学生记录。 *按名字查询学生纪录。 ③纪录删除 *按输入的学号删除 ④排序 A. 综合成绩升序。 B. 综合成绩降序。 C. 学分降序。 D. 学分升序。 由主函数登陆 五.数据结构设计描述: ↓ 菜单函数 ↓ Input函数 select函数 del函数 paixu函数 保存函数 退出系统 六.结构体的定义和作用 struct student //定义学生信息 { int no; // 学号 char name[20]; //姓名 char sex[4]; //性别 int num; //课程号 char scn[20]; //课程名 int score; //学分 float score1; //成绩1 float score2; //成绩2 float score3; //成绩3 float ave; //实得学分 float sum; //总分 七.系统各函数的功能,、相互调用关系 1.函数实现功能说明: (1)menu函数 是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。 (2)input函数 是定义用于输入学生信息。 (3)select 函数 是定义用于查询学生信息。包括学号、姓名及各科成绩。 (4)del函数 按输入的学号删除 (5) paixu函数 设置新菜单,并调用四个不同排序输出函数。 (6) 保存函数 保存信息。 八.心得体会 C语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与C语言的广泛应用相比较还有很大的差距。我们对于C语言的理解和使用还处在一个初级的阶段,我们要想掌握它,要学习的还很多,同时要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以创造出更为完善的应用程序。 九.程序: #include<stdio.h> #include<conio.h> /*清屏*/ #include <stdlib.h> /*显示目录*/ #include<string.h> #define n 10 void zhjx(); void menu(); void input(); void check(); void fun(); void fun2(); void fun3(); void fun4(); void del(); void paixu(); void zhsx(); void zhjx(); void xfjx(); void xfsx(); void save(); struct student //定义学生信息 { int no; // 学号 char name[20]; //姓名 char sex[4]; //性别 int num; //课程号 char scn[20]; //课程名 int score; //学分 float score1; //成绩1 float score2; //成绩2 float score3; //成绩3 float ave; //实得学分 float sum; //总分 }; struct student stu[n],*p,t; int now=0,i,j,k,l; char ch; void main() { int h,flag1,flag2; char name[20]="hq",password[10]="111"; char person[20],password1[10]; printf ("\t\t ******** 欢迎进入学生成绩管理系统!********\n\n"); printf ("\t\t\t 用 户 登 录\n\n"); for(h=0;h!=5;) { printf("\t\t\t\t 用户名:"); gets(person); flag1=strcmp(person,name); printf("\t\t\t\t 密码:"); gets(password1); flag2=strcmp(password,password1); if(flag1==0 && flag2==0) { printf("\t\t\t\t 登陆成功!\n\n"); menu(); break; } else { printf ("\t\t\t 用户名或密码错误!\n\n"); printf ("\t\t\t 请注意:您还剩%d次机会!\n\n",4-h); h++; } } if (h=5) printf ("对不起,您输入的用户名或密码有误,已被强制退出。\n"); } void menu() { int as; char ch; do{ printf("\n\n\n\n\t\t****&****&****&****&****&****&****&****&****&****"); start: printf("\n\n\n\n\t\t\t 欢迎使用学生成绩管理系统\n"); printf("\n\n\n\n\t\t******************按任意键继续********************"); ch=getch(); } while(!ch); system("cls"); /*以下为功能选择模块*/ do{printf("学生管理系统\n"); printf("\t\t"); printf("1------学生成绩录入\n\t\t"); printf("2------查询\n\t\t"); printf("3------删除学生记录\n\t\t"); printf("4------排序\n\t\t"); printf("5------保存退出\n\t\t"); printf("6------退出\n\t\t"); printf("\t\t\t\t选择功能选项(输入所选功能前的数字):"); scanf("%d",&as); switch(as) {case 1:input();break; case 2:check();break; case 3:del();break; case 4:paixu();break; case 5:save();break; case 6:system("exit");exit(0);break; default:system("cls"); goto start; }}while(1);} void input() /*学生信息录入模块*/ { int i=0; char ch; do { printf("\t\t\t\t1.录入学生信息\n输入第%d个学生的信息\n",i+1); printf("\n输入8位的学生学号:"); scanf("%u",&stu[i].no); fflush(stdin); printf("\n输入学生姓名:"); fflush(stdin); gets(stu[i].name); printf("\n输入学生性别:"); fflush(stdin); gets(stu[i].sex); fflush(stdin); printf("\n输入学生课程号:"); scanf("%d",&stu[i].num); fflush(stdin); printf("\n输入学生课程名:"); gets(stu[l].scn); ;fflush(stdin); printf("\n输入课程学分:"); scanf("%d",&stu[i].score); printf("\n输入学生平时成绩:"); fflush(stdin); scanf("%f",&stu[i].score1); printf("\n输入学生实验成绩:"); fflush(stdin); scanf("%f",&stu[i].score2); printf("\n输入学生卷面成绩:"); fflush(stdin); scanf("%f",&stu[i].score3); printf("\n\n"); if(stu[i].score2>0) stu[i].sum=stu[i].score1*0.15+stu[i].score2*0.15+stu[i].score3*0.7; else stu[i].sum=stu[i].score1*0.3+stu[i].score3*0.7; k=stu[i].sum/10; switch(k) {case 10:(float)stu[i].ave=(float)stu[i].score;break; case 9:(float)stu[i].ave=(float)stu[i].score;break; case 8:(float)stu[i].ave=(float)stu[i].score*0.8;break; case 7:(float)stu[i].ave=(float)stu[i].score*0.7;break; case 6:(float)stu[i].ave=(float)stu[i].score*0.6;break; default:(float)stu[i].ave=0.0;} i++; now=i; printf("是否继续输入?(Y/N)"); fflush(stdin); ch=getch(); system("cls"); } while(ch!='n'&&ch!='N'); system("cls"); } void check() //查询 {printf("————查 询————\n"); printf("\t\t*学生基本信息查询*\n"); printf("\t\t"); printf("1--按学号查询\n\t\t"); printf("2--按姓名查询\n\t\t"); printf("*学生成绩查询*\n"); printf("\t\t"); printf("3--按学号查询\n\t\t"); printf("4--按姓名查询\n\t\t"); printf("0--返回主菜单\n\t\t"); printf("请选择:"); scanf("%d",&i); switch(i) { case 0:menu();break; //调用主菜单函数,表示返回主菜单 case 1:fun();break; //调用函数fun1,表示按学号查询学生基本信息 case 2:fun2();break; //调用函数fun2,表示按姓名查询学生基本信息 case 3:fun3();break; //调用函数fun3,表示按学号查询学生成绩 case 4:fun4();break; //调用函数fun4,表示按姓名查询学生成绩 };} void fun() //按学号查询1 {int i,j; printf("请输入要查询同学的学号:"); scanf("%d",&j); for(i=0;i<now;i++) //从第一名学生开始 { if(stu[i].no==j) //查找与输入学号相同的学号并输出 { printf("学号:%d\n",stu[i].no); printf("姓名:%s\n",stu[i].name); printf("性别:%s\n",stu[i].sex); } } check(); }; void fun2() //按姓名查询1 { char name[20]; printf("请输入要查询同学的姓名:"); scanf("%s",&name); for(i=0;i<now;i++) { if(strcmp(stu[i].name,name)==0) {printf("学号:%d\n",stu[i].no); printf("姓名:%s\n",stu[i].name); printf("性别:%s\n",stu[i].sex); } } }; void fun3() //按学号查询2 {int i; printf("请输入要查询同学的学号:"); scanf("%d",&j); for(i=0;i<now;i++) { if(stu[i].no==j) { printf("平时成绩%f\n",stu[i].score1); printf("实验成绩:%f\n",stu[i].score2); printf("卷面成绩:%f\n",stu[i].score3); printf("总分:%f\n",stu[i].sum); printf("学分:%f\n",stu[i].ave);} } check(); } void fun4()//按姓名查询2 {int i; char name[20]; printf("请输入要查询同学的姓名:"); scanf("%s",&name); for(i=0;i<now;i++) { if(strcmp(stu[i].name,name)==0) { printf("平时成绩%f\n",stu[i].score1); printf("实验成绩:%f\n",stu[i].score2); printf("卷面成绩:%f\n",stu[i].score3); printf("总分:%f\n",stu[i].sum); printf("学分:%f\n",stu[i].ave); } } check(); };void del() /*删除数据函数*/ {unsigned long inum; int i; printf("输入要删除学生的学号:"); fflush(stdin); scanf("%u",&inum); for(i=0;i<now;i++) { if(stu[i].no=inum) { if(i==now)now-=1; else { stu[i]=stu[now-1]; now-=1; } break; } } system("cls"); menu(); }; void paixu() //排序 { int i; printf("————排 序————\n"); printf("\t\t"); printf("1--按综合成绩升序\n\t\t"); printf("2--按综合成绩降序\n\t\t"); printf("3--按实得学分升序\n\t\t"); printf("4--按实得学分降序\n\t\t"); printf("0--返回主菜单\n\t\t"); printf("请选择:"); scanf("%d",&i); switch(i) { case 0:menu();break; case 1:zhsx();break; case 2:zhjx();break; case 3:xfsx();break; case 4:xfjx();break; } }; void zhsx()//综合成绩升序 { int i,j; for(i=0;i<now;i++) for(j=now-1;j>i;j--) if(stu[j].sum<stu[j-1].sum) { t=stu[j]; stu[j]=stu[j-1]; stu[j-1]=t; } for(i=0;i<now;i++) {printf("学号:%d",stu[i].no); printf("姓名:%s",stu[i].name); printf("性别:%s",stu[i].sex); printf("平时成绩%f",stu[i].score1); printf("实验成绩:%f",stu[i].score2); printf("卷面成绩:%f",stu[i].score3); printf("总分:%f\n",stu[i].sum); }paixu(); }; void zhjx()//综合成绩降序 { int i,j; for(i=0;i<now;i++) for(j=now-1;j>i;j--) if(stu[j].sum>stu[j-1].sum) { t=stu[j]; stu[j]=stu[j-1]; stu[j-1]=t; } for(i=0;i<now;i++) {printf("学号:%d",stu[i].no); printf("姓名:%s",stu[i].name); printf("性别:%s",stu[i].sex); printf("平时成绩%f",stu[i].score1); printf("实验成绩:%f",stu[i].score2); printf("卷面成绩:%f",stu[i].score3); printf("总分:%f\n",stu[i].sum); }paixu(); }; void xfjx()//学分降序 { int i,j; for(i=0;i<now;i++) for(j=now-1;j>i;j--) if(stu[j].ave>stu[j-1].ave) { t=stu[j]; stu[j]=stu[j-1]; stu[j-1]=t; } for(i=0;i<now;i++) {printf("学号:%d\n",stu[i].no); printf("姓名:%s",stu[i].name); printf("性别:%s",stu[i].sex); printf("平时成绩%f",stu[i].score1); printf("实验成绩:%f",stu[i].score2); printf("卷面成绩:%f",stu[i].score3); printf("总分:%f\n",stu[i].sum);} paixu(); }; void xfsx()//学分升序 { int i,j; for(i=0;i<now;i++) for(j=now-1;j>i;j--) if(stu[j].ave<stu[j-1].ave) { t=stu[j]; stu[j]=stu[j-1]; stu[j-1]=t; } for(i=0;i<now;i++) {printf("学号:%d\n",stu[i].no); printf("姓名:%s",stu[i].name); printf("性别:%s",stu[i].sex); printf("平时成绩%f",stu[i].score1); printf("实验成绩:%f",stu[i].score2); printf("卷面成绩:%f",stu[i].score3); printf("总分:%f\n",stu[i].sum);} paixu(); }; void save() /*保存数据函数*/ { FILE *fp; int i; char filepath[20]; printf("输入要保存的文件路径:"); fflush(stdin); gets(filepath); if((fp=fopen(filepath,"w"))==NULL) { printf("\n保存失败!"); exit(0); } for(i=0;i<now;i++) { fprintf(fp,"\t%u%s\t%s\t%u\t%s\t%u\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", stu[i].no,stu[i].name,stu[i].sex,stu[i].num,stu[i].scn,stu[i].score,stu[i].score1,stu[i].score2, stu[i].score3,stu[i].ave,stu[i].sum); } fclose(fp); printf("学生信息已保存在%s中!\n",filepath); system("pause"); system("cls"); } 透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 学生 成绩管理系统 实验 报告
咨信网温馨提示:
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。
关于本文