C语言课程设计报告 2Word文档格式.docx
《C语言课程设计报告 2Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告 2Word文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
1、要充分认识C++语言程序设计课程设计的重要性,认真做好各项准备工作;
既要虚心接受老师的指导,又要充分发挥主观能动性,要结合课题,独立思考,努力钻研,勤于实践,勇于创新;
收集资料,自学相关知识,拓宽知识面,根据课题的基本要求,自行完成设计任务。
要按时、独立完成规定的工作任务,不弄虚作假,不抄袭他人;
严格遵守学习和劳动纪律,不无故缺席,不迟到早退,不懈怠,不拖拉,要积极主动;
严格要求自己,树立严肃、严密、严谨的科学态度,按时、按质、按量完成。
工作进度计划
序号
起止日期
工作内容
01
2010.12.27~2010.12.28
查找资料,熟悉操作环境,开始编写程序
02
2010.12.29~2010.12.31
编写程序,调试程序
03
2010.01.01~2010.01.03
写实验报告
指导老师签字(盖章):
年月日
摘要:
本系统使用VisualC++语言编写制作一个对学生成绩信息的管理系统,对于信息管理的具体分类,例如:
学生信息,成绩信息进行管理,信息查询进行方便查询。
系统包括信息管理和查询两个部分,更加方便地减少人工所花费的时间,提高了管理的水平和服务质量,使得查询降低了错误率,完成了不同类型的查询。
本系统具有的功能如下:
学生信息管理功能:
显示学生信息,用户可以浏览查看学生信息,也可对学生信息进行添加,修改,删除等一系列操作。
信息查询功能:
用户可以按学号对学生的基本信息以及成绩信息进行查询,
退出系统功能:
完成了对学生信息管理系统的操作后,应该可以安全的离开该系统,通过该模块可以离开学生信息管理系统。
关键词:
功能;
管理;
查询;
学生成绩管理系统分析和设计
1需求分析
学生成绩管理系统的功能需求分析
学生成绩管理系统主要提供成绩查询、添加和修改,方便管理的学生成绩信息查阅平台,系统管理员可以对学生的信息进行修改、查询、插入;
同时可以为学生提供各门成绩的查询,包括总分和平均分;
也可以为各科任课教师提供任教课程学生的成绩查询,方便老师了解教学质量;
还可以为学校提供评奖、评优的信息,并且这些信息还可以保留备份。
2总体方案设计
按要求排序
3数据库的物理设计
3.1把关系模型转换为表结构:
3.1.1course用于记录课程的基本信息,如表3.1.1所示:
字段名
描述
字段类型
允许空值
说明
Cname
课程名
Varchar(10)
No
主键
grade
成绩
Int(10)
Yes
表3.1.1course
3.1.2student用于记录车票的基本信息,如表3.1.2所示:
Sno
学号
sname
姓名
Float(10)
YES
bj
班级
Char(10)
表3.1.2ticket
3.1.3coursestudent用于记录学生查询和添加记录的基本信息,如表3.1.3所示:
描述
字段类型
允许空值
说明
Sno
编号
主键(同时都是外键)
cname
班次
票价
Bj
终点站
发车时间
Datetime(8)
表3.1.2coursestudent
3.2实现数据完整性
通过各种约束,缺省,规则实现数据的完整性。
(1)各种外键约束保证数据的完整性,不能随意删除。
(2)主键约束保证实体的完整性。
4算法设计
算法:
第一步:
进入系统界面,按要求输入管理员密码;
如果密码正确,那么进入系统;
否则,再输入密码,3次内任意一次正确进入系统,超过3次退出界面。
第二步:
进入系统,按界面提示选择0~9按键,进入所需要的界面。
第三步:
若选择1进入,按系统提示进行初始化并输入数据;
若选择2进入,进入下一层界面,按要求选择0~7按键,选择排序方式;
若选择3进入,进入搜索界面,输入学号进行搜索;
若选择4则进入浏览界面,对系统中数据进行浏览;
若选择5进入插入界面,按要求输入记录;
若选择6,则进入删除界面中,输入要删除的学号;
选择7进入修改界面,选择0~7按键按所需进行修改;
选择8保存记录;
选择9读取记录;
选择0则退出程序。
第四步:
完成所需要求,退出系统。
5实现方法:
分别通过顺序结构、选择结构,按照顺序,通过判断输入数据是否满足条件进行操作,同时调用C语言本身具有的一些函数,如struct(),getch(),_sleep(),strcmp()等等函数,在关键的地方进行选择判断,从而保证系统的进行与操作正确。
6流程图:
(fp=fopen("
d:
\zhang。
txt"
,"
w+"
))==NULL
printf("
无发打开\n"
);
c==1
\t"
fprintf(fp,"
%s\t"
,a[i]num);
i++
i<
10
i=0
fclose(fp);
inti,c=0;
学号\t姓名\t班级\tc语言\t语文\t数据库\t高数\t英语\t总分\t平均分\n"
m
保存功能:
a[j]。
score[0]<
a[j+1]。
score[0]
temp=a[j];
j++
j<
=m-i-1
j=0
=m-1
i=1
inti,j;
课程排序
continue
break;
h==1
请输入学号:
\n"
n
i=m
a[i]=a[i+1];
初始化完毕!
是否增加新记录(1/0)!
"
i--
i>
初始功能
****************************************\n"
%。
1f\t"
,a[i]。
score[j]);
1f\t%。
sum,a[i]。
averge);
5
num);
inti;
输出功能
搜索功能
7代码编写
structstu
{
charname[20];
charnum[20];
charbanji[20];
floatscore[5];
floatsum;
floataverge;
};
定义结构体数组,包括姓名,学号,班级,5门成绩分数,总分和平均分
zhuomian();
scanf("
%d"
&
a);
getchar();
switch(a)
{
case1:
case0
自定义函数zhoumian()实现从键盘输入a,当a分别等于0~9中的数时,分被执行case下的程序
scanf("
%s"
a[i].num);
printf("
姓名:
a[i].name);
班级:
a[i].banji);
a[i].sum=0;
C语言的成绩:
%f"
a[i].score[0]);
语文的成绩:
a[i].score[1]);
数据库的成绩:
a[i].score[2]);
高数的成绩:
a[i].score[3]);
英语的成绩:
a[i].score[4]);
a[i].sum=a[i].sum+a[i].score[0]+a[i].score[1]+a[i].score[2]+a[i].score[3]+a[i].score[4];
a[i].averge=a[i].sum/5;
分别从键盘上输入学号、姓名、班级和C语言、语文等五门成绩,同时求五门成绩的总分和平均分
if(a[j].score[0]<
a[j+1].score[0])
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
比较两门成绩的大小,如果a[i].sorce[0]<
a[i+1].score[0],则将a[i].sorce[0]赋值给temp,否则,将a[i].sorce[0]赋值给temp
8程序调试
在输出班级、学号、姓名、五门成绩以及总分、平均分时与下面所对应的数字不对齐,造成数据的错误。
后来经过多次的调试与代码检查,终于发现是在输出时“\t”即水平制表的后面多加了一个空格键,将空格删去后问题就解决的,数据就能够对齐了。
其他的还存在一些中英文切换的输入输出的错误,基本上没什么太大的错误。
运行与测试
图1初始化并输入记录
图2按学号查找学生记录
图3浏览学生记录
图3删除学生记录
图3修改学生记录
能够迅速地查找出学生的相关成绩,并且能够一一对应;
准确性、可靠性都达到了,基本上达到了实验目的。
总结
忙碌了一个多星期,终于将此程序设计出来。
虽然有点累但还是很高兴的,因为在设计的过程中,让我了解到要设计一个程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。
另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。
为了解决此类问题,最好就是多向同学,老师请教,不要怕难为情,尤其是老师。
在设计这个程序时,刚开始是根据老师给我们提供的要求,