当前位置:首页 » 考试成绩 » 学生成绩管理系统容易出现的问题和解决方法

学生成绩管理系统容易出现的问题和解决方法

发布时间: 2020-12-22 02:38:30

A. C语言编简单的学生成绩管理系统有个bug,输入成绩的时候最后一个数学成绩老是显示4198786不能赋值进去

//姓名,学号,英语,语文,数学三种成绩
#include<stdio.h>
#include<stdlib.h>
#definemaxnumber30
intstudent_number;
intcount1=0,count2=0,Operate1=3;
FILE*stream;
typedefstructstu{
intidnumber;
charname[20];
doubleEnglish_score;
doublechinese_score;
doublemath_score;
}Student;
//按学号排序

voidputout_one(Student*sp)
{
for(intj=0;j<10;j++)
printf("******");
printf(" ");
printf("%d%s%.1f%.1f%.1f ",(*sp).idnumber,(*sp).name,(*sp).English_score,(*sp).chinese_score,(*sp).math_score);
for(j=0;j<10;j++)
printf("******");
printf(" ");
}
voidputout_lot(Student*student)
{
for(inti=0;i<=Operate1;i++)
{
for(intj=0;j<10;j++)
printf("******");
printf(" ");

printf("%d%s%.1f%.1f%.1f ",student[i].idnumber,student[i].name,student[i].English_score,student[i].chinese_score,student[i].math_score);
}
for(intj=0;j<10;j++)
printf("******");
printf(" ");
}
voidinput_student(Student*S)//输入插入学生的信息
{
//printf("请输入第%d位学生(学号,名字,语文,英语,数学) ",i+1);
scanf("%d",&(*S).idnumber);
scanf("%s",&(*S).name);
scanf("%lf%lf%lf",&(*S).chinese_score,&(*S).English_score,&(*S).math_score);
}
voidid_find_in(Student*S,Student*q)//把新的学生信息加入表单
{
Student*p=S,*t;
while(count1<Operate1+1)
{
t=p;
p++;
count1++;
}
*t=*q;
count1=0;
Operate1++;
}
voidinsert_element(Student*S)//插入学生信息
{
printf("请输入1位学生(学号,名字,语文,英语,数学) ");
Student*temp=(Student*)malloc(sizeof(Student)),*q=S;
input_student(temp);
id_find_in(S,temp);
}
voiddelet_element(Student*S,intid_n)
{
Student*p=S,*t;
while(count1<Operate1)
{
if((*p).idnumber==id_n)
{
t=p;
printf("已删除%d号学生信息 ",(*p).idnumber);
while(count2<Operate1-count1-1)
{
*(t-1)=*(++t);
count2++;
}
break;
}
count1++;
p++;
}
count1=0;
count2=0;
Operate1--;
}
intjunge(char*a,char*b)
{
char*p=a,*q=b;
while(*p!='')
{
if(*p==*q)
{
p++;
q++;

continue;
}
else
break;
}
if(*p==''&&*q=='')
return1;
else
return0;
}
voidshow_stu_element(Student*S,char*sp)//显示某人信息(功能已实现)
{
Student*p=S;
while(count1<Operate1)
{
if(junge((*p).name,sp))
{
printf("已找到此人:%s ",(*p).name);
putout_one(p);
p=S;
break;
}
else
{
p++;
count1++;
continue;
}
}
if(p!=S)
printf("查无此人! ");
count1=0;
}
voidid_sort(Student*S)
{
Student*temp=(Student*)malloc(sizeof(Student)),*q=S,*t;
intnum=Operate1;
while(count1<Operate1)
{
t=q+1;
while(count2<num)
{
if((*q).idnumber>(*t).idnumber)
{
*temp=*q;
*q=*t;
*(t)=*temp;
//printf("%d ",(*t).idnumber);
}

count2++;
t++;

//t=t+sizeof(Student);//这样无法实现why?
}
num--;
q++;
count2=0;
count1++;

//q=q+sizeof(Student);
}
count1=0;
count2=0;
}
voidcount_passnumber(Student*S)
{
Student*p=S;
inte_p_number=0,m_p_number=0,c_p_number=0,num=0;
while(num<=Operate1)
{
if(p->English_score>=60)
e_p_number++;
if(p->math_score>=60)
m_p_number++;
if(p->chinese_score>=60)
c_p_number++;
num++;
p++;
}
printf("/***学生总人数=:%d ",Operate1);
printf("/***英语过关人数=%d数学过关人数=%d语文过关人数=%d ",e_p_number,m_p_number,c_p_number);
printf("/***英语挂科人数=%d数学挂科人数=%d语文挂科人数=%d ",Operate1+1-e_p_number,Operate1+1-m_p_number,Operate1+1-c_p_number);//因为数组下标是从0开始的
}
voidmain()
{
Studentstudent[maxnumber];
stream=freopen("in.txt","r",stdin);
intOperate=3;inti;intid_n;
charstudent_element[20];
for(i=0;i<Operate1;i++)
{
printf("请输入第%d位学生(学号,名字,语文,英语,数学) ",i+1);
scanf("%d",&student[i].idnumber);
scanf("%s",&student[i].name);
scanf("%lf%lf%lf",&student[i].chinese_score,&student[i].English_score,&student[i].math_score);
}
//fclose(stream);
for(i=0;Operate!=0;i++)
{
printf("输入:0.退出。1.输入学生信息2.按姓名查找并删除学生信息 3.按学号排序4.查找显示一位学生信息 5.显示统计记录(成员数、每科平均分)6.输出每科及格人数和不及格人数7(default).操作完成,等待用户输入: ");
scanf("%d",&Operate);
switch(Operate)
{
case1:insert_element(student);break;
case2:scanf("%d",&id_n);delet_element(student,id_n);break;
case3:id_sort(student);break;
case4:scanf("%s",student_element);show_stu_element(student,student_element);break;
case5:putout_lot(student);break;
case6:count_passnumber(student);break;
default:printf("请输入: ");continue;
}
if(Operate==0)
break;
}
}

B. 学生成绩管理系统风险分析

6. 风险分析
6.1 信息系统面临的主要风险
信息系统一般有技术性风险、工程性风险和环境性风险这三种类型。
同样,我们所创建的学生成绩管理信息系统也面临着这几方面的风险。
首先,是有关环境性风险,我们现在创建的学生成绩管理信息系统要尽可能的全面,社会在不断的发展,我们也要与时俱进。学生成绩管理信息系统要囊括各个功能,我们要时刻的关注学校的发展,要大胆思考,将一些管理学生成绩中可能要用到的编写进去。
还有我们所开发的信息系统是否与社会的法律、政策、道德规范相冲突;组织管理是否实现科学化,编写信息系统的程序员的文化知识素养有么有达到建设信息系统的需要;企业能否保证信息系统建设所需要的足够资金。
有关工程性风险:工程组织是否规范、工程管理是否混乱、在工程中是否使用了不称职的管理人员或工程技术人员。
有关技术性风险:信息系统是否安全,异常处理是否得当,信息系统开发所采用的理论、方法、技术、设备等技术性因素是否存在风险。
6.2 风险的处理策略
设备要从正规评价高的地方买,方法理论不能偏离实际异想天开,技术发面要考虑实际情况。要关注管理员程序员,根据他们的实际水平分配他们各自职务和任务。要综合考虑资金发面的问题,不要一味的追求最好的 只要适当搭配就行。

系统层的安全问题来自网络内使用的操作系统。系统层的安全性问题表现在两方面:系统预警防护;系统安全系统;系统安全配置;系统日志审计;
应用层的安全考虑所采用的应用软件和业务数据的安全性,包括数据库软件、web服务、电子邮件系统等常见应用系统及业务应用系统安全。此外,还包括病毒对系统的威胁。

C. 一个学习成绩管理系统的问题!

在输入数据之后加上一个循环: 加注释的地方
cout<<"请输入该学生【专fox】的成绩:";
cin>>stud[n+i].fox;
while(stud[n+i].fox<0||stud[n+i].fox>100)///////////////////////
{
cout<<"成绩应在1-100之间,请属重新输入:";
cin>>stud[n+i].fox;
}
cout<<"请输入该学生【C++程序设计】的成绩:";
cin>>stud[n+i].c_program;
while(stud[n+i].c_program<0||stud[n+i].c_program>100)//////////////
{
cout<<"成绩应在1-100之间,请重新输入:";
cin>>stud[n+i].c_program;
}
cout<<"请输入该学生【大学英语】的成绩:";
cin>>stud[n+i].english;
while(stud[n+i].english<0||stud[n+i].english>100)//////////////
{
cout<<"成绩应在1-100之间,请重新输入:";
cin>>stud[n+i].english;
}

D. c语言的一个学生成绩管理系统。。。。 老是出错,都要崩溃了。。。。 就这么多分了。。。

同学,你这个程序问题很多很多啊,一时半会还真不好改,而且建议你用指针,不要用数组。
而且上面的几个帮你改的也是错的,很明确的告诉你,首先while里面没有判断,就是个死循环,
还有你的那个n根本就没赋值

E. 一个c语言学生成绩管理系统的程序错误问题,求大神改正。

程序什么错误, (报错信息),有没有单步调试过?

F. 关于c语言学生成绩管理系统的一个问题!!!!

可恢复删除:把删除部分放到一个特定的文件,若要恢复则 可以恢复
不可删除恢复就直接删除

G. 我在写一个简单的成绩管理系统时遇到了问题,求助

同学,你是在做课设吧,这种事情建议还是自主完成吧。对自己编程能力的提升很有帮助的。虽然过程可能不是那么顺利,但是只要付出努力了,就会发现自己的能力有了质的飞跃了。

H. 我用C++ 6.0做了一个的学生成绩管理系统遇到一些问题。。以下是步骤。

char name[20][50];
char sex[20][5];
...
scanf("%s",name[a]);
...
scanf("%s",sex[a]);

I. 用C程序设计学生成绩管理系统时会遇见哪些问题

会遇到很多很多问题,其中,你这个问题就是一个大问题。
不过我还是说几个,不知道专是不是你想了解的内属容。
----人机交互部分----
c程序写学生管理系统,一般是没有窗口界面的。
一般输入数据只能用键盘,不能用鼠标。
----程序编写部分----
使用链表作为存储结构的程序,动态分配内存的时候容易写错
(struct A*)malloc(sizeof(struct A))注意前面的地址符,很容易忘写。
程序输入输出的时候,格式符号容易出错“%d”,“%s”,“%f”,“%x”等别搞混。
字符处理的时候,‘/t’,'/n','/0'等转义符容易用错。
数组下标越界。
文件存储读取模式错误“w”,“r”,“b”,“r+”,“w+”等文件打开方式要分清。
等于号和复制符号要分清,[==]才是等于号,[=]是赋值符号,经常有这么写的if(a=b)a++;
删除链表的时候,记得要free,然后在清空指针。
作为暂时变量的结构体,程序结束时也一定要free掉。
暂时就想到这么多。

J. 学生成绩管理系统 设计说明的一些问题

void find(struct student *arr) /*定义查找函数*/
{
int j;(局部变量,用于后面循环比较)
char name[9]; /*用于接收用户输入的学生姓名*/(字符串数组,接收姓名)
char number[10]; /*用于接收用户输入的学生学号*/(字符串数组,接收学号)
system("cls"); /*清屏函数*/(清屏,开始)
printf("\n请输入要查找的学生资料:\n");
printf("\n学生姓名:");
scanf("%s",name);(输入姓名)
printf("\n学生学号:");
scanf("%s",number);(输入学号)
for(j=0;j<count;j++) /*使用字符串比较函数查找兵书出符合条件的学生成绩*/
{
if((strcmp(name,arr[j].name)==0)&&(strcmp(number,arr[j].number)==0))
{
printf("\n\t姓名\t学号\t性别\t数学\t英语\t总分\n");
printf("\t%-6s\t%-4s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\n",
arr[j].name,arr[j].number,arr[j].sex,arr[j].math,arr[j].english,arr[j].math+arr[j].english);
break;
}
}
if(j>=count) /*如果没找到,会从循环条件退出*/
printf("\n未找到该学生纪录,请核对后重新查找!\n");
fflush(stdin); /*清空输入缓冲区*/
printf("\n回车键返回上一功能菜单\n");
getchar();
}
后面的这个是一个顺序查找的方法,用FOR循环来实现,通过strcmp这个字符串比较函数逐步比较姓名和学号,从1到count,这个count应该是前面定义的输入的学生的总人数。

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919