学生学分管理程序c语言代码学生成绩统计c语言代码.docx
- 文档编号:29318901
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:25
- 大小:156.42KB
学生学分管理程序c语言代码学生成绩统计c语言代码.docx
《学生学分管理程序c语言代码学生成绩统计c语言代码.docx》由会员分享,可在线阅读,更多相关《学生学分管理程序c语言代码学生成绩统计c语言代码.docx(25页珍藏版)》请在冰豆网上搜索。
学生学分管理程序c语言代码学生成绩统计c语言代码
程序设计基础实训
项目名称:
学生学分管理
系别:
计算机工程系
专业:
计算机网络技术
班级:
0922211
学生姓名:
指导教师:
韦立蓉
北京信息职业技术学院
2010年1月日
一、项目背景介绍
(概要介绍此项目设计的意义和要求)
本程序为学生学分管理系统。
本程序根据现实中的问题通过c语言形式编程。
本程序要求能够登记学分,显示学分查询学分,修改学分,删除学分,统计学分。
二、程序功能描述:
(描述基本程序中每个函数的功能,给处各函数流程图)
1、
登记单流程图
2、
显示学分流程图
3、
查询学分流程图
4、
修改信息流程图
5、
删除信息流程图
6、
统计信息流程图
三、设计方案介绍
(基本思想函数调用的思路介绍)
1、主流程图
2、界面设计
(界面设计,函数的定义,功能设计、,罗列出所有需要解决的问题
函数调用问题,循环问题,查找问题,修改问题,查询问题,删除问题,比较问题。
3、变量定义
序号
变量名
变量性质(局部/全局)
功能
作用范围
1
typedef
全局
定义结构体类型
整体
2
Int
全局
定义五门课类型
整体
...
Char
全局
定义学号班级姓名类型
整体
5、函数调用的类型
四、测试与分析
(简要介绍测试的作用及意义)
测试可以知道所编写的程序是否可行,通过实际的测试可以找出程序是否符合现实。
通过测试和反复修改可以使程序更加人性化。
(一)测试列表
(以表格的形式给出,不少于10个)
测试数据或执行操作
执行结果
是否正确
测试人签名
调用主菜单
显示了主菜单
正确
选择主菜单里的1
请输入学生学生信息….
正确
输出
有重复有乱码
否
查询
无
否
修改
按学号修改…….
是
按学号查询
显示了该信息
是
按班级查询
只显示里一名同学的信息
否
按学好删除
删除成功
是
须补考基础课的
所有学生信息都显示
否
可升学学生
显示了该显示的信息
是
(二)测试结果分析
(根据以下表格,如实填写并签名)
bug个数
错误类型
错误原因分析
是否修改
设计者签名
1
与count声名中的类型不匹配
少了voidcount()
是
2
错误jia.c19:
表达式语法错在main函数中
Scanf中少了&s
是
4
错误jia.c31:
do语句中必须有while关键字在main函数中
没写while
是
5
错误jia.c30:
未定义的符号's'在main函数中
上面没intI;
是
6
错误1.c335:
表达式语法错在count函数中
Switch()括号里没有变量
是
7
五、实训总结
(总结实训过程中的所使用的知识和已实现的功能,总结自己掌握理论知识和动手能力的程度,提出自己的不足之处及改进措施)
通过这一周的实训。
我们充分运用了所学的东西编出了解决实际问题的程序。
我们运用了函数的调用,循环,定义,比较,查找,删除等知识。
通过实际动手,我更加深入的了解了课本上的知识。
同时提高了我的动手能力。
实训中我找到了我许多的不足,以前我遇到不董的就会直接去问别人,不独自思考。
试训中我学会了独自思考和团队合作。
虽然我在编程当中遇到许多问题,但经过独自思考和学习解决了问题。
最后编出了管理程序。
C语言学生学分管理程序代码
typedefstructstudent
{charnum[11],name[7],class[10];
intjichu,renwen,xuanxiu,zhuanye,shiyan;
}STU;
STUst[37];
staticintn;
voidmenu();
voidinput();
voidprint();
voidquery();
voidmodi();
voiddel();
voidcount();
main()
{ints;
do{
menu();
printf("\n\t\t\t\t请选择:
");
scanf("%d",&s);
switch(s)
{case0:
break;
case1:
input();break;
case2:
print();break;
case3:
query();break;
case4:
modi();break;
case5:
del();break;
case6:
count();break;
default:
printf("选择无效!
");
}
}while(s!
=0);
getch();
}
voidmenu()
{clrscr();
printf("\t\t\t****************************\n");
printf("\t\t\t********欢迎您的使用********\n");
printf("\t\t\t******学生学分管理程序******\n");
printf("\t\t\t***1-登记学生学分***\n");
printf("\t\t\t***2-显示学生学分***\n");
printf("\t\t\t***3-查询学生学分***\n");
printf("\t\t\t***4-修改学生学分***\n");
printf("\t\t\t***5-删除学生学分***\n");
printf("\t\t\t***6-统计学生学分***\n");
printf("\t\t\t***0-退出***\n");
printf("\t\t\t****************************\n");
}
voidinput()
{do
{printf("请输入学生信息:
学号姓名班级基础课专业课选修课人文课实验课\n");
scanf("%s%s%s%d%d%d%d%d",st[n].num,st[n].name,st[n].class,&st[n].jichu,&st[n].zhuanye,&st[n].xuanxiu,&st[n].renwen,&st[n].shiyan);
n++;
printf("是否继续输入?
(n-退出,任意键继续):
");
}while(getche()!
='n');
}
voidprint()
{inti;
printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
for(i=0;i printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); getch(); } voidmenu1() {clrscr(); printf("\t\t\t*****************************\n"); printf("\t\t\t***********查询模块**********\n"); printf("\t\t\t***1-按学号查询***\n"); printf("\t\t\t***2-按姓名查询***\n"); printf("\t\t\t***3-按班级查询***\n"); printf("\t\t\t***0-退出***\n"); printf("\t\t\t*****************************\n"); } voidquery1() {charsn[11]; inti; printf("请输入要查询的学号: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].num)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); printf("\按任意键继续"); break; } elseprintf("\n对不起! 没有该学号,任意键继续"); getch(); } voidquery2() {charsn[7]; inti; printf("请输入要查询的姓名: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].name)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); printf("\按任意键继续"); break; }elseprintf("\n对不起! 没有该姓名,任意键继续"); getch(); } voidquery3() {charsn[10]; inti; printf("请输入要查询的班级: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].class)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); printf("\按任意键继续"); break; } elseprintf("\n对不起! 没有该班,任意键继续"); getch(); } voidquery() {ints; do{ menu1(); printf("\n\t\t\t\t请选择: "); scanf("%d",&s); switch(s) {case0: break; case1: query1();break; case2: query2();break; case3: query3();break; default: printf("选择无效! "); } }while(s! =0); getch(); } voidmenu2() {clrscr(); printf("\t\t\t*****************************\n"); printf("\t\t\t***********修改模块**********\n"); printf("\t\t\t***1-按学号修改***\n"); printf("\t\t\t***2-按姓名修改***\n"); printf("\t\t\t***3-按班级修改***\n"); printf("\t\t\t***0-退出***\n"); printf("\t\t\t*****************************\n"); } voidmodi1() {charsn[11]; inti; printf("请输入要修改学分学生的学号: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].num)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); {printf("请输入学生学分信息: 学号姓名班级基础课专业课选修课人文课实验课\n"); scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan); printf("是否继续输入? (n-退出,任意键继续): "); }while(getche()! ='n'); break; } getch(); } voidmodi2() {charsn[7]; inti; printf("请输入要修改学分学生的姓名: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].name)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); {printf("请输入学生学分信息: 学号姓名班级基础课专业课选修课人文课实验课\n"); scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan); printf("是否继续输入? (n-退出,任意键继续): "); }while(getche()! ='n'); break; } getch(); } voidmodi3() {charsn[10]; inti; printf("请输入要修改学分学生的班级: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].class)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); {printf("请输入学生学分信息: 学号姓名班级基础课专业课选修课人文课实验课\n"); scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan); printf("是否继续输入? (n-退出,任意键继续): "); }while(getche()! ='n'); break; } getch(); } voidmodi() {ints; do{ menu2(); printf("\n\t\t\t\t请选择: "); scanf("%d",&s); switch(s) {case0: break; case1: modi1();break; case2: modi2();break; case3: modi3();break; default: printf("选择无效! "); } }while(s! =0); getch(); } voidmenu3() {clrscr(); printf("\t\t\t*****************************\n"); printf("\t\t\t***********删除模块**********\n"); printf("\t\t\t***1-按学号删除***\n"); printf("\t\t\t***2-按姓名删除***\n"); printf("\t\t\t***3-按班级删除***\n"); printf("\t\t\t***0-退出***\n"); printf("\t\t\t*****************************\n"); } voiddel1() {charsn[11]; inti,j; printf("请输入要删除学分学生的学号: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].num)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); printf("\n是否删除(任意键确认,n\取消)"); if(getche()! ='n'); {if(i! =n-1); for(j=i;j st[j]=st[j+1]; n--; printf("\n该记录已删除"); getch(); break; } } elseprintf("\n对不起! 没有该学号,任意键继续"); } voiddel2() {charsn[7]; inti,j; printf("请输入要删除学分学生的姓名: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].name)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); printf("\n是否删除(任意键确认,n\取消)"); if(getche()! ='n'); {if(i! =n-1); for(j=i;j st[j]=st[j+1]; n--; printf("\n该记录已删除"); getch(); break; } } elseprintf("\n对不起! 没有该学号,任意键继续"); } voiddel3() {charsn[10]; inti,j; printf("请输入要删除学分学生的班级: "); scanf("%s",sn); for(i=0;i if(strcmp(sn,st[i].class)==0) {printf("\n序号\t学号\t姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n"); printf("%2d%7s%7s%5s%4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan); printf("\n是否删除(任意键确认,n\取消)"); if(getche()! ='n'); {if(i! =n-1); for(j=i;j st[j]=st[j+1]; n--; printf("\n该记录已删除"); getch(); break; } } elseprintf("\n对不起! 没有该学号,任意键继续"); } voiddel() {ints; do{ menu3(); printf("\n\t\t\t\t请选择: "); scanf("%d",&s); switch(s) {case0: break; case1: del1();break; case2: del2();break; case3: del3();break; default: printf("选择无效! "); } }while(s! =0); getch(); } voidmenu4() {clrscr(); printf("\t\t\t*****************************\n"); printf("\t\t\t***********统计模块**********\n"); printf("\t\t\t***1-可升学的学生***\n"); printf("\t\t\t***2-需
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学分 管理程序 语言 代码 成绩 统计