c语言课程设计-学生学分管理程序.doc_第1页
c语言课程设计-学生学分管理程序.doc_第2页
c语言课程设计-学生学分管理程序.doc_第3页
c语言课程设计-学生学分管理程序.doc_第4页
c语言课程设计-学生学分管理程序.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京信息职业技术学院程序设计基础实训项目名称:学生学分管理系 别: 计算机工程系专 业: 计算机网络技术班 级: 0922211学生姓名: 指导教师: 北 京 信 息 职 业 技 术 学 院2010年 1 月 日一、项目背景介绍(概要介绍此项目设计的意义和要求) 本程序为学生学分管理系统。本程序根据现实中的问题通过c语言形式编程。本程序要求能够登记学分,显示学分查询学分,修改学分,删除学分,统计学分。二、程序功能描述:(描述基本程序中每个函数的功能,给处各函数流程图) 1、登记单流程图开始输入数据是否继续输入退出否2、显示学分流程图i=1输出i=2输出i=3输出i=n输出。3、查询学分流程图开始按学号查询按姓名查询按姓名查询是否继续查询退出输出数据显示对不起没有该信息是否找到显示该信息按学号查询按姓名查询按姓名查询4、修改信息流程图开始按学号修改按姓名修改按班级修改是否继续修改是退出否重新输入数据5、删除信息流程图开始按学号删除按姓名删除按班级删除是否继续删除是退出否6、统计信息流程图开始是计算计算计算出结果是否继续统计否退出需补考专业课的需补考选修课的需补考基础课的需补考人文课的需补考实验课的计算计算计算计算统计能够毕业的学生三、设计方案介绍 (基本思想函数调用的思路介绍)1、主流程图学生学分管理查询模块显示模块登记模块修改模块删除模块统计模块按学号查询按学分查询按班级查询按姓名查询按学号修改按学分修改按班级修改按学号修改按学分修改按班级修改姓名班级基础课学分专业课学分选修课学分人文类课程学分实验性课程学分按学分统计按班级统计按学号统计显示全部2、界面设计(界面设计,函数的定义,功能设计、,罗列出所有需要解决的问题函数调用问题,循环问题,查找问题,修改问题,查询问题,删除问题,比较问题。3、变量定义序号变量名变量性质(局部/全局)功能作用范围1typedef全局定义结构体类型整体2int全局定义五门课类型整体.char全局定义学号班级姓名类型整体5、函数调用的类型四、测试与分析 (简要介绍测试的作用及意义)测试可以知道所编写的程序是否可行,通过实际的测试可以找出程序是否符合现实。通过测试和反复修改可以使程序更加人性化。(一)测试列表 (以表格的形式给出,不少于10个)测试数据或执行操作执行结果是否正确测试人签名调用主菜单显示了主菜单正确 选择主菜单里的1请输入学生学生信息.正确 输出有重复有乱码否 查询无否 修改按学号修改.是 按学号查询显示了该信息是 按班级查询只显示里一名同学的信息否 按学好删除删除成功是 须补考基础课的所有学生信息都显示否 可升学学生显示了该显示的信息是 (二)测试结果分析(根据以下表格,如实填写并签名)bug个数错误类型错误原因分析是否修改设计者签名1与count声名中的类型不匹配少了void count()是2错误 jia.c 19: 表达式语法错在 main 函数中scanf中少了&s是4错误 jia.c 31: do语句中必须有while关键字在 main 函数中没写while是5错误 jia.c 30: 未定义的符号s在 main 函数中上面没int i;是6错误 1.c 335: 表达式语法错在 count 函数中switch() 括号里没有变量是7五、实训总结 (总结实训过程中的所使用的知识和已实现的功能,总结自己掌握理论知识和动手能力的程度,提出自己的不足之处及改进措施)通过这一周的实训。我们充分运用了所学的东西编出了解决实际问题的程序。我们运用了函数的调用,循环,定义,比较,查找,删除等知识。通过实际动手,我更加深入的了解了课本上的知识。同时提高了我的动手能力。实训中我找到了我许多的不足,以前我遇到不董的就会直接去问别人,不独自思考。试训中我学会了独自思考和团队合作。虽然我在编程当中遇到许多问题,但经过独自思考和学习解决了问题。最后编出了管理程序。c语言学生学分管理程序代码typedef struct student char num11,name7,class10; int jichu,renwen,xuanxiu,zhuanye,shiyan;stu;stu st37;static int n;void menu();void input();void print();void query();void modi();void del();void count();main() int s; do menu(); printf(ntttt 请选择:); scanf(%d,&s); switch(s) case 0:break; case 1:input();break; case 2:print();break; case 3:query();break; case 4:modi();break; case 5:del();break; case 6:count();break; default:printf(选择无效!); while(s!=0); getch();void menu() clrscr(); printf(ttt*n); printf(ttt*欢迎您的使用*n); printf(ttt*学生学分管理程序*n); printf(ttt* 1-登记学生学分 *n); printf(ttt* 2-显示学生学分 *n); printf(ttt* 3-查询学生学分 *n); printf(ttt* 4-修改学生学分 *n); printf(ttt* 5-删除学生学分 *n); printf(ttt* 6-统计学生学分 *n); printf(ttt* 0-退出 *n); printf(ttt*n); void input() do printf(请输入学生信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课n); scanf(%s%s%s%d%d%d%d%d,stn.num,,stn.class,&stn.jichu,&stn.zhuanye,&stn.xuanxiu,&stn.renwen,&stn.shiyan); n+; printf(是否继续输入?(n-退出,任意键继续):); while(getche()!=n); void print() int i; printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); for(i=0;in;i+) printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); getch();void menu1() clrscr(); printf(ttt*n); printf(ttt*查询模块*n); printf(ttt* 1-按学号查询 *n); printf(ttt* 2-按姓名查询 *n); printf(ttt* 3-按班级查询 *n); printf(ttt* 0-退出 *n); printf(ttt*n);void query1() char sn11; int i; printf(请输入要查询的学号:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,sti.num)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(按任意键继续); break; else printf(n对不起!没有该学号,任意键继续); getch(); void query2() char sn7; int i; printf(请输入要查询的姓名:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(按任意键继续); break; else printf(n对不起!没有该姓名,任意键继续); getch();void query3() char sn10; int i; printf(请输入要查询的班级:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,sti.class)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(按任意键继续); break; else printf(n对不起!没有该班,任意键继续); getch();void query() int s; do menu1(); printf(ntttt 请选择:); scanf(%d,&s); switch(s) case 0:break; case 1:query1();break; case 2:query2();break; case 3:query3();break; default:printf(选择无效!); while(s!=0); getch();void menu2() clrscr(); printf(ttt*n); printf(ttt*修改模块*n); printf(ttt* 1-按学号修改 *n); printf(ttt* 2-按姓名修改 *n); printf(ttt* 3-按班级修改 *n); printf(ttt* 0-退出 *n); printf(ttt*n);void modi1() char sn11; int i; printf(请输入要修改学分学生的学号:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,sti.num)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(请输入学生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课n); scanf(%s%s%s%d%d%d%d%d,sti.num,,sti.class,&sti.jichu,&sti.zhuanye,&sti.xuanxiu,&sti.renwen,&sti.shiyan); printf(是否继续输入?(n-退出,任意键继续):); while(getche()!=n); break; getch();void modi2() char sn7; int i; printf(请输入要修改学分学生的姓名:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(请输入学生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课n); scanf(%s%s%s%d%d%d%d%d,sti.num,,sti.class,&sti.jichu,&sti.zhuanye,&sti.xuanxiu,&sti.renwen,&sti.shiyan); printf(是否继续输入?(n-退出,任意键继续):); while(getche()!=n); break; getch();void modi3() char sn10; int i; printf(请输入要修改学分学生的班级:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,sti.class)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(请输入学生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课n); scanf(%s%s%s%d%d%d%d%d,sti.num,,sti.class,&sti.jichu,&sti.zhuanye,&sti.xuanxiu,&sti.renwen,&sti.shiyan); printf(是否继续输入?(n-退出,任意键继续):); while(getche()!=n); break; getch();void modi() int s; do menu2(); printf(ntttt 请选择:); scanf(%d,&s); switch(s) case 0:break; case 1:modi1();break; case 2:modi2();break; case 3:modi3();break; default:printf(选择无效!); while(s!=0); getch();void menu3() clrscr(); printf(ttt*n); printf(ttt*删除模块*n); printf(ttt* 1-按学号删除 *n); printf(ttt* 2-按姓名删除 *n); printf(ttt* 3-按班级删除 *n); printf(ttt* 0-退出 *n); printf(ttt*n);void del1() char sn11; int i,j; printf(请输入要删除学分学生的学号:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,sti.num)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(n是否删除(任意键确认,n取消)); if(getche()!=n); if(i!=n-1); for(j=i;jn-1;j+) stj=stj+1; n-; printf(n该记录已删除); getch(); break ; else printf(n对不起!没有该学号,任意键继续);void del2() char sn7; int i,j; printf(请输入要删除学分学生的姓名:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(n是否删除(任意键确认,n取消)); if(getche()!=n); if(i!=n-1); for(j=i;jn-1;j+) stj=stj+1; n-; printf(n该记录已删除); getch(); break ; else printf(n对不起!没有该学号,任意键继续);void del3() char sn10; int i,j; printf(请输入要删除学分学生的班级:); scanf(%s,sn); for(i=0;in;i+) if(strcmp(sn,sti.class)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); printf(n是否删除(任意键确认,n取消)); if(getche()!=n); if(i!=n-1); for(j=i;jn-1;j+) stj=stj+1; n-; printf(n该记录已删除); getch(); break ; else printf(n对不起!没有该学号,任意键继续);void del() int s; do menu3(); printf(ntttt 请选择:); scanf(%d,&s); switch(s) case 0:break; case 1:del1();break; case 2:del2();break; case 3:del3();break; default:printf(选择无效!); while(s!=0); getch();void menu4() clrscr(); printf(ttt*n); printf(ttt*统计模块*n); printf(ttt* 1- 可升学的学生 *n); printf(ttt* 2-需补考基础课的 *n); printf(ttt* 3-需补考专业课的 *n); printf(ttt* 4-需补考选修课的 *n); printf(ttt* 5-需补考人文课的 *n); printf(ttt* 6-需补考实验课的 *n); printf(ttt* 0-退出 *n); printf(ttt*n);void count1() int i; printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); for(i=0;i=60&sti.zhuanye=60&sti.xuanxiu=60&sti.renwen=60&sti.shiyan=60) printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); getch();void count2() int i; printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); for(i=0;in;i+) if(sti.jichu=60&sti.xuanxiu=60&sti.renwen=60&sti.shiyan=60) printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); getch();void count3() int i; printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); for(i=0;i=60&sti.zhuanye=60&sti.renwen=60&sti.shiyan=60) printf(%2d %7s %7s %5s %4dt%4dt%4dt%4dt%4dn,i+1,sti.num,,sti.class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti.shiyan); getch();void count4() int i; printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); for(i=0;i=60&s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论