《学生学分管理程序-c语言代码-学生成绩统计c语言代码.doc》由会员分享,可在线阅读,更多相关《学生学分管理程序-c语言代码-学生成绩统计c语言代码.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北京信息职业技术学院程序设计基础实训项目名称:学生学分管理系 别: 计算机工程系专 业:计算机网络技术班 级:0922211学生姓名:指导教师:韦立蓉北 京 信 息 职 业 技 术 学 院2010年 1 月 日一、项目背景介绍(概要介绍此项目设计的意义和要求) 本程序为学生学分管理系统。本程序根据现实中的问题通过c语言形式编程。本程序要求能够登记学分,显示学分查询学分,修改学分,删除学分,统计学分。二、程序功能描述:(描述基本程序中每个函数的功能,给处各函数流程图)1、登记单流程图开始输入数据是否继续输入退出否2、显示学分流程图I=1输出I=2输出I=3输出I=n输出。3、查询学分流程图开始按
2、学号查询按姓名查询按姓名查询是否继续查询退出输出数据显示对不起没有该信息是否找到显示该信息按学号查询按姓名查询按姓名查询4、修改信息流程图开始按学号修改按姓名修改按班级修改是否继续修改是退出否重新输入数据5、删除信息流程图开始按学号删除按姓名删除按班级删除是否继续删除是退出否6、统计信息流程图开始是计算计算计算出结果是否继续统计否退出需补考专业课的需补考选修课的需补考基础课的需补考人文课的需补考实验课的计算计算计算计算统计能够毕业的学生三、设计方案介绍(基本思想函数调用的思路介绍)1、主流程图学生学分管理查询模块显示模块登记模块修改模块删除模块统计模块按学号查询按学分查询按班级查询按姓名查询按
3、学号修改按学分修改按班级修改按学号修改按学分修改按班级修改姓名班级基础课学分专业课学分选修课学分人文类课程学分实验性课程学分按学分统计按班级统计按学号统计显示全部2、界面设计(界面设计,函数的定义,功能设计、,罗列出所有需要解决的问题函数调用问题,循环问题,查找问题,修改问题,查询问题,删除问题,比较问题.3、变量定义序号变量名变量性质(局部/全局)功能作用范围1typedef全局定义结构体类型整体2Int全局定义五门课类型整体.。Char全局定义学号班级姓名类型整体5、函数调用的类型四、测试与分析(简要介绍测试的作用及意义)测试可以知道所编写的程序是否可行,通过实际的测试可以找出程序是否符合
4、现实。通过测试和反复修改可以使程序更加人性化。(一)测试列表(以表格的形式给出,不少于10个)测试数据或执行操作执行结果是否正确测试人签名调用主菜单显示了主菜单正确选择主菜单里的1请输入学生学生信息.正确输出有重复有乱码否查询无否修改按学号修改。是按学号查询显示了该信息是按班级查询只显示里一名同学的信息否按学好删除删除成功是须补考基础课的所有学生信息都显示否可升学学生显示了该显示的信息是(二)测试结果分析(根据以下表格,如实填写并签名)bug个数错误类型错误原因分析是否修改设计者签名1与count声名中的类型不匹配少了void count()是2错误 jia.c 19: 表达式语法错在 mai
5、n 函数中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五、实训总结 (总结实训过程中的所使用的知识和已实现的功能,总结自己掌握理论知识和动手能力的程度,提出自己的不足之处及改进措施)通过这一周的实训.我们充分运用了所学的东西编出了解决实际问题的程序。我们运用了函数的调用,循环,定义,比较,查找,删除等知识。通过实际动手,我更加深入的了解了课本上的知
6、识。同时提高了我的动手能力.实训中我找到了我许多的不足,以前我遇到不董的就会直接去问别人,不独自思考。试训中我学会了独自思考和团队合作。虽然我在编程当中遇到许多问题,但经过独自思考和学习解决了问题.最后编出了管理程序。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();
7、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
8、(); 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(请输入学生信息:学号 姓名
9、 班级 基础课 专业课 选修课 人文课 实验课n); scanf(”%s%ssd%dd%dd,stn.num,stn。name,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 %4dt4dt4d
10、t%4dt4dn,i+1,sti.num,sti.name,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 s
11、n11; 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%4dt4dt4dt%4dn,i+1,sti。num,sti。name,sti.class,sti。jichu,sti.zhuanye,sti。xuanxiu,sti.renwen,sti.shiyan); printf(按任意键继续); break; else printf(”n
12、对不起!没有该学号,任意键继续”); getch(); void query2() char sn7; int i; printf(”请输入要查询的姓名:); scanf(”s,sn); for(i=0;in;i+) if(strcmp(sn,sti.name)=0) printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(%2d 7s %7s 5s %4dt%4dt4dt4dt4dn”,i+1,sti.num,sti。name,sti。class,sti。jichu,sti。zhuanye,sti。xuanxiu,sti。renwen,sti.s
13、hiyan); 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%4dt4dt%4dn,i+1,sti。num,sti。name,sti.class,sti.ji
14、chu,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(选择无效!”); whil
15、e(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) p
16、rintf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(2d %7s 7s 5s 4dt%4dt4dt%4dt%4dn”,i+1,sti.num,sti.name,sti。class,sti。jichu,sti.zhuanye,sti。xuanxiu,sti。renwen,sti。shiyan); printf(请输入学生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课n”); scanf(”s%ssdd%dd%d”,sti。num,sti.name,sti。class,sti。jichu,&sti。zhuanye,sti。xuan
17、xiu,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,sti.name)=0) printf(”n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); printf(”%2d 7s 7s %5s 4dt4dt%4dt4dt%4dn,i+1,sti。nu
18、m,sti。name,sti.class,sti.jichu,sti。zhuanye,sti。xuanxiu,sti.renwen,sti.shiyan); printf(请输入学生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课n”); scanf(%s%s%s%d%dd%dd,sti。num,sti。name,sti。class,&sti.jichu,sti。zhuanye,sti。xuanxiu,&sti。renwen,&sti.shiyan); printf(是否继续输入?(n-退出,任意键继续):); while(getche()!=n); break; getch
19、();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 4dt4dt4dt%4dt4dn,i+1,sti.num,sti.name,sti。class,sti。jichu,sti.zhuanye,sti.xuanxiu,sti。renwen,sti。shiyan); printf(”请输入学
20、生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课n”); scanf(%ss%sd%ddd%d”,sti.num,sti。name,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;
21、 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
22、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%4dt4dt%4dn”,i+1,sti.num,sti.name,sti.class,sti.jichu,sti.zhuanye,sti。xuanxiu,sti。renwen,sti。shiyan); printf(”n是否删除(任意键确认,n取消)”); i
23、f(getche()!=n); if(i!=n-1); for(j=i;jn1;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;i=60sti.xuanxiu=60sti。renwen=60&sti。shiyan=60) printf(2d 7s 7s 5s 4dt%4dt4dt4dt%4dn”,i+1,sti。nu
24、m,sti。name,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) printf(2d 7s 7s 5s %4dt%4dt4dt%4dt4dn”,i+1,sti。num,sti。name,sti.class,sti。jichu,sti.zhuanye,sti。xuanxiu,sti.renwen,s
25、ti。shiyan); getch();void count3() int i; printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n); for(i=0;in;i+) if(sti。jichu=60&sti.zhuanye=60sti.shiyan=60) printf(”2d 7s 7s 5s 4dt4dt4dt4dt%4dn,i+1,sti.num,sti。name,sti。class,sti.jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti。shiyan); getch();void count4() int i;
26、printf(n序号t学号t 姓名t班级t基础课t专业课t选修课t人文课t实验课n”); for(i=0;i=60sti.zhuanye=60&sti.xuanxiu60sti.renwen=60sti.shiyan=60) printf(2d %7s 7s %5s 4dt%4dt%4dt%4dt%4dn”,i+1,sti.num,sti。name,sti.class,sti。jichu,sti.zhuanye,sti.xuanxiu,sti.renwen,sti。shiyan); getch();void count5() int i; printf(”n序号t学号t 姓名t班级t基础课t专
27、业课t选修课t人文课t实验课n); for(i=0;in;i+) if(sti。jichu=60&sti.zhuanye=60&sti.xuanxiu=60sti.renwen60&sti.shiyan=60) printf(”2d 7s 7s %5s 4dt%4dt%4dt%4dt4dn”,i+1,sti.num,sti.name,sti。class,sti.jichu,sti.zhuanye,sti。xuanxiu,sti。renwen,sti.shiyan); getch();void count6() int i; printf(”n序号t学号t 姓名t班级t基础课t专业课t选修课t人
28、文课t实验课n”); for(i=0;in;i+) if(sti.jichu=60&sti。zhuanye=60sti。xuanxiu=60&sti.renwen=60sti。shiyan60) printf(”%2d %7s %7s %5s 4dt%4dt4dt4dt4dn,i+1,sti.num,sti.name,sti.class,sti。jichu,sti。zhuanye,sti.xuanxiu,sti。renwen,sti.shiyan); getch();void count() int s; do menu4(); printf(ntttt 请选择:); scanf(%d”,s); switch(s) case 0:break; case 1:count1();break;case 2:count2();break;case 3:count3();break;case 4:count4();break;case 5:count5();break;case 6:count6();break; default:printf(”选择无效!); while(s!=0); getch();-15-