安徽工业大学计算机学院程序设计综合实习报告.docx

上传人:b****5 文档编号:4482990 上传时间:2022-12-01 格式:DOCX 页数:28 大小:647.62KB
下载 相关 举报
安徽工业大学计算机学院程序设计综合实习报告.docx_第1页
第1页 / 共28页
安徽工业大学计算机学院程序设计综合实习报告.docx_第2页
第2页 / 共28页
安徽工业大学计算机学院程序设计综合实习报告.docx_第3页
第3页 / 共28页
安徽工业大学计算机学院程序设计综合实习报告.docx_第4页
第4页 / 共28页
安徽工业大学计算机学院程序设计综合实习报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

安徽工业大学计算机学院程序设计综合实习报告.docx

《安徽工业大学计算机学院程序设计综合实习报告.docx》由会员分享,可在线阅读,更多相关《安徽工业大学计算机学院程序设计综合实习报告.docx(28页珍藏版)》请在冰豆网上搜索。

安徽工业大学计算机学院程序设计综合实习报告.docx

安徽工业大学计算机学院程序设计综合实习报告

安徽工业大学计算机学院程序设计综合实习报告

 

 

题目:

现代教学管理系统

姓名:

刘忻

学号:

8

学院:

计算机学院

班级:

软件123班

指导老师:

王森玉

完成日期:

2013/5/22

题目:

现代化成绩管理系统

课程设计内容简介:

高校中对于学生的考核主要通过考试来进行,传统不通过计算机网络发放考试的成绩容易出现发错,漏发等问题,使用计算机来解决这个问题是十分必要的。

程序可以在登陆时选择登陆身份,并给予不同权限对成绩系统进行访问,以达到教师可修改,可查询,可记录;学生可查询的目的。

设计者名称:

刘忻

指导教师意见:

 

指导教师签名:

 

一、

问题定义:

现代化的校园对学生进行考核的主要方式是通过考试,而传统的发布成绩方式存在着不同的问题,通过计算机网络可对这些问题进行解决,包括登陆时选择登陆身份,并给予不同权限对成绩系统进行访问,以达到教师可修改,可查询,可记录;学生可查询的目的。

二、可行性研究:

I、项目的由来:

某高校教师需要对学生的成绩进行管理,包括学生信息的录入,学生成绩的录入,成绩的修改以及学生的成绩查询并保存。

学生需要对成绩进行查询。

II、可选方案:

一、可选用人工进行学生的基本信息的管理,进行平时成绩,期末成绩以及总评成绩的计算,再人工将成绩发放到学生的手中。

二、可选用直接从文件进行成绩的导入,直接得到学生的基本信息及考试成绩、总评成绩,或者通过人手工录入学生的基本信息及考试成绩、总评成绩。

学生也可对其进行查找。

III、可行性:

1、技术可行性:

学校每一门学科的考试人数都很多,若每场考试的成绩都需要老师人工计算并发布成绩,任务量大且出错率高。

使用计算机自动计算学生考试成绩的方式大大降低了出错率,而且使用计算机省时省力,方便进行成绩的管理及查询。

2、经济可行性:

利用计算机技术,开发学生成绩管理系统,可以重复使用,对学生的管理很有用,有必要开发。

3、操作可行性:

操作计算机简单易行,并且不需要花费太多的人力。

4、法律可行性:

开发学生成绩管理系统有利于学校对学生的管理,不违反法律及相关法规。

IV、结论:

面对高校学生成绩管理的巨大工作量,采用计算机的管理是极其必要的,若采用方案2的方法不单单可以减少很多的人力使用,使教师的工作量得到大量减少,而且出现错误的机率更低,更能够直接对学生的成绩进行管理,方便教师和学生的成绩的查询。

 

三、需求规格说明

I、目标:

II、数据需求:

1、数据量:

教师的登陆账户及密码,学生学号,姓名,平时成绩,期末成绩,总评成绩。

2、数据定义和结构

教师的登陆用=teacher,密码=0000;

学号=学生在校自动分配的学号;

平时成绩=教师给学生所打的平时分数;

期末成绩=学生期末考试的成绩;

总评成绩=平时成绩×平时成绩所占的比例+期末成绩×期末成绩所占的比例;

III、功能需求:

性能:

能快速响应,界面颜色多元化,清晰,数据对应整齐。

在使用过程中容易操作,错误操作的次数少。

功能:

(IPO)

四、总体设计:

I、软件的结构(HIPO图):

五、各模块详细设计

I、编译预处理模块

II、主函数模块

III、browse()函数模块

IV、insert()函数模块

V、deletel()函数模块

VI、scorein()函数模块

VII、change()函数模块

VIII、load()函数模块

IX、save()函数模块

X、mima()函数模块

六、程序源代码

#include<>

#include<>

#include<>

#include<>

#include<>

typedefstructst

{

charnum[10],name[9],bclass[11];....!

");

getchar();

}

}

if(choice1==2)....!

");

getchar();

}

}

if(choice1==3)

printf("Goodbay!

");

exit(0);

}

师入口\n2.学生入口\n3.退出系统\n请选择:

");

scanf("%d",&choice);

fflush(stdin);

returnchoice;

}

charmenu1()览成绩情况\n");

printf("2.插入成绩学生\n");

printf("3.查询成绩学生\n");

printf("4.删除学生记录\n");

printf("5.学生成绩录入\n");

printf("6.修改学生记录\n");

printf("7.将文件中成绩情况导入到链表\n");

printf("8.将链表中成绩情况导出到文件\n");

printf("9.系统初始化\n");

printf("0.返回上一级\n");

printf("\n\n请选择。

\n\n\n\n");

c=getchar();getchar();

returnc;

}

charmenu2()览成绩情况\n");

printf("2.查询学生成绩\n");

printf("3.返回上一级\n");

printf("\n\n请选择。

\n\n\n\n");

c=getchar();getchar();

returnc;

}

voidbrowse(stud*head)

{

姓名查找0.按学号查找\n");

scanf("%d",&xz);

getchar();

if(xz)

{

printf("请输入学生姓名:

\n");

gets(xm);学号删除2.按姓名删除3.按序号删除\n");

scanf("%d",&xz);

switch(xz)

{

case1:

printf("请输入学生学号:

\n");

getchar();

gets(xh);改学号\n");

printf("2.修改姓名\n");

printf("3.修改班级\n");

printf("4.修改平时成绩\n");

printf("5.修改期末成绩\n");

printf("0.不修改\n");

scanf("%d",&xz);getchar();

switch(xz)

{

case1:

printf("请重新输入学号:

");gets(p->num);break;

case2:

printf("请重新输入姓名:

");gets(p->name);break;

case3:

printf("请重新输入班级:

");gets(p->bclass);break;

case4:

x=p->score1/p->score;y=1-x;//计算平时和期末在总评成绩中所占比例

printf("请重新输入平时成绩:

");

p->score=x*p->score1+y*p->score2;//重新计算总评成绩

break;

}

printf("%2d%10s%8s%10s",i,p->num,p->name,p->bclass);

printf("%%%",p->score1,p->score2,p->score);

}

//****************************************

stud*load()//从文件中将成绩情况导入到链表

{

FILE*fp;

charfn[12];

stud*head,*p,*q;

puts("从哪个文件中将成绩情况导入:

");gets(fn);

if((fp=fopen(fn,"rb"))==NULL)

{

printf("can'topenfile");exit(0);

}

q=head=(stud*)malloc(sizeof(stud));

q->next=NULL;

while(!

feof(fp))

{

p=(stud*)malloc(sizeof(stud));

if(fread(p,sizeof(stud),1,fp)==1)

{

p->next=q->next;

q->next=p;q=p;

}

}

fclose(fp);

returnhead;

}

//********************************

voidsave(stud*head)//将链表中成绩情况保存到文件

{

FILE*fp;

charfn[12];

stud*p;

puts("将成绩情况导出到哪个文件中:

");gets(fn);

p=head->next;

if((fp=fopen(fn,"wb"))==NULL)

{

printf("can'topenfile");exit(0);

}

while(p!

=NULL)

{

if(fwrite(p,sizeof(stud),1,fp)!

=1)

{

printf("filewriteerror!

\n");break;

}

p=p->next;

}

fclose(fp);

}

voidmima()

{//密码函数

registerinti,n;

charname[8]="teacher",password[5]="0000";//设定初始密码为teacher密码是0000

charname1[21],password1[21];

intflag1,flag2;

system("cls");

printf("********************************************************\n");

printf("*******************欢迎进入登录系统*********************\n");

printf("********************************************************\n");

for(n=0;n!

=5;)

{

printf("请输入用户名:

\n");

gets(name1);

flag1=strcmp(name1,name);

printf("请输入密码:

\n");

for(i=0;i<20;)

{

*(password1+i)=getch();

if(*(password1+i)=='\b')

{

if(i>0)

{

i--;

printf("\b");

printf("\b");

}

continue;

}

if(*(password1+i)=='\r')

break;

i++;

printf("*");//输出*号

}

*(password1+i)='\0';

flag2=strcmp(password,password1);

if(flag1==0&&flag2==0)

{

printf("\n登录成功!

");

break;

}

else

{

n++;

printf("\n用户名或密码错误!

你还有%d次机会\n",5-n);

}

if(n==5)

{

printf("您被强制退出\n");//若输入错误5次,被强制退出

exit

(1);

}

}

}

 

七、程序测试

I、测试抓图:

II、测试内容:

八、总结

I、项目评价:

本项目主要对学生的考试成绩进行了简单的管理,能够很好的运用于高等学校的管理成绩中。

从项目的内容来讲内容较为简单,项目基本上没有涉及到较复杂的算法运算,仅仅使用链表进行数据的存取,所以采用普通技术工程师即可以完成任务,由测试人员测试并进行分析即可完成使用,质量上也能得到保证,使得高等学校教师能够更好的使用。

操作上简单明了,根据提示输入即可,然后进行计算机操作。

II、不足之处:

项目仅仅能够实现对一门成绩进行管理,不能实现多门成绩的管理。

由于知识积累程度的问题,仅仅能够将数据保存于链表及文件中,但是对于大量数据,若内存不够就会造成数据溢出,使用数据库能够有效解决。

成绩的上下限制没有,可能有成绩输入错误(超过100或为负数)。

III、心得体会

通过此次项目中深刻了解到软件的开发是一项工程性质的工作,软件的开发并不是简单的编写代码,而是融入了工程的思想。

也让我认识到了代码的编写并不是软件开发过程中最重要的部分,前期的规划则起着至关重要的作用。

软件的测试也是极为重要的。

在2000左右的时候,通过一个调查,即使是在软件工程最发达的美国,程序中的错误仍然是无法避免的,平均每1000行代码就有处错误,所以软件的测试也在程序的开发中占有极其重要的地位。

错误越少,后期交付使用造成的损失也就越少,开发的软件效益就越高。

一款好的软件都是通过不断的修改才能得到,细细的修改,软件的开发过程每一个都十分重要。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 临床医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1