学生学分管理程序c语言代码学生成绩统计c语言代码.docx
《学生学分管理程序c语言代码学生成绩统计c语言代码.docx》由会员分享,可在线阅读,更多相关《学生学分管理程序c语言代码学生成绩统计c语言代码.docx(21页珍藏版)》请在冰豆网上搜索。
学生学分管理程序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;iprintf("%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;iif(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;iif(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;iif(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;iif(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;iif(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;iif(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;iif(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;jst[j]=st[j+1];
n--;
printf("\n该记录已删除");
getch();
break;
}
}
elseprintf("\n对不起!
没有该学号,任意键继续");
}
voiddel2()
{charsn[7];
inti,j;
printf("请输入要删除学分学生的:
");
scanf("%s",sn);
for(i=0;iif(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;jst[j]=st[j+1];
n--;
printf("\n该记录已删除");
getch();
break;
}
}
elseprintf("\n对不起!
没有该学号,任意键继续");
}
voiddel3()
{charsn[10];
inti,j;
printf("请输入要删除学分学生的班级:
");
scanf("%s",sn);
for(i=0;iif(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;jst[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-需补考基础课的***\n");
printf("\t\t\t***3-需补考专业课的***\