C语言学生成绩数据库管理系统Word文档格式.docx
《C语言学生成绩数据库管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩数据库管理系统Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
学号:
姓名
指导教师:
课程设计周次:
起始日期:
至
1.C语言课程设计成绩评定表…………………….xx页
2.C语言课程设计任务书………………………….xx页
3.程序基本框架结构图…………………………….xx页
4.程序设计说明书………………………………….xx页
5.源代码清单……………………………………….xx页
6.课程设计总结…………………………………….xx页
课程设计成绩评定表
班级
学号
姓名
项目组
项目组长
项目组组员
本人工作简介:
组长评语:
成绩评定标准
A
B
C
D
E
报告完成情况
很好
好
比较好
一般
不好
纪律表现
程序功能性
强
较强
较弱
弱
界面美观性
较差
程序可操作性
答辩表现
所起作用程度
80%以上
60%以上
60%以下
最后成绩
优秀
A>
=5
C<
=0
良好
=3
中等
B>
=2
C>
=4
及格
A=0
B=0
不及格
E>
=1
负责指导教师:
(签名)
(签名)
班C语言课程设计任务书
一、设计目的
通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。
二、设计要求
1、认真查阅参考书、资料2、遵守课程设计时间安排
3、按时上机,认真调试程序4、认真完成课程设计报告
三、课设报告装订内容及顺序
1、课程设计封皮2、目录
3、课程设计成绩评定表4、课程设计任务书
5、程序基本框架图6、程序设计说明书
7、源代码清单8、课设总结与心得
四、设计题目
●学生成绩数据库管理系统
五、时间安排(一周:
从6月29日到7月3日)
1、查阅资料及程序设计(1天)2、程序编制及调试(3天)
3、成绩评定(天)3、打印报告(天)
六、参考文献
1、《C语言程序设计》李淑华/李贞编大连理工大学出版社
2、《C语言程序设计》孙连科/姚大鹏编辽海出版社
3、《C++时尚编程百例》网冠科技编.机械工业出版社
4、《TURBOC实用大全》徐金梧等编.机械工业出版社
程序基本框架结构图
程序设计说明书
源代码清单
#include"
"
typedefstructstudent/*定义结构体类型*/
{longnum;
charname[9];
charsex[3];
intmath;
intenglish;
intcjia;
intsum;
doubleaver;
}STU;
voidinput()/*输入,将学生数据写入磁盘*/
{inti,n;
STUa;
/*用来存放一个学生数据*/
FILE*fp;
system("
cls"
);
/*清屏*/
if((fp=fopen("
e:
\\file1"
"
wb"
))==NULL)/*打开文件*/
{printf("
打开失败!
\n"
exit(0);
}
printf("
\n\t请输入要输入的学生人数:
scanf("
%d"
&
n);
/*输入学生人数*/
for(i=0;
i<
n;
i++)/*循环输入每个学生数据*/
{printf("
\t请输入学号:
%ld"
;
\t请输入学生姓名:
%s"
;
\t请输入学生性别:
\t请输入学生数学成绩:
while<
0||>
100)/*检查数据合理性*/
请输入正确的数学成绩:
\t请输入学生英语成绩:
100)
请输入正确的英语成绩:
\t请输入学生C语言成绩:
while<
请输入正确的C语言成绩:
=++;
=;
fwrite(&
a,sizeof(STU),1,fp);
}
fclose(fp);
按任意键继续"
getchar();
/*程序暂停,保留屏幕*/
voidlist()/*显示函数*/
{STUa;
/*结构体a存放一个学生数据*/
rb"
))==NULL)
打开文件失败!
\n\n\t学号\t姓名\t性别\t数学\t英语\tC语言\t总分\t平均分\n"
while(fread(&
a,sizeof(STU),1,fp)!
=0)
printf("
\t%ld\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n"
,,,,,,,;
\n\t按任意键继续"
voidchose1()/*按学号排序,子函数*/
{inti,j,n=0;
STUa[100],t;
/*结构体数组a存放100个学生,t与a为同类型结构体*/
打开文件失败\n"
a[n],sizeof(STU),1,fp)!
=0)/*从文件中读取数据*/
n++;
n-1;
i++)/*冒泡排序法*/
for(j=n-1;
j>
i;
j--)
if(a[j].num<
a[j-1].num)
{t=a[j];
a[j]=a[j-1];
a[j-1]=t;
\n\n\n\t按学号排序为:
i++)
a[i].num,a[i].name,a[i].sex,a[i].math,a[i].english,a[i].cjia,a[i].sum,a[i].aver);
\n\n\t请按任意键继续"
getchar();
getchar();
voidchose2()/*按姓名排序,子函数*/
{inti,j,k,n=0;
while(fread(&
n++;
for(i=0;
{k=i;
for(j=i+1;
j<
j++)
if(strcmp(a[k].name,a[j].name)>
0)/*比较字符大小*/
k=j;
if(k!
=i)
{t=a[i];
a[i]=a[k];
a[k]=t;
\n\n\n\t按姓名排序为:
fclose(fp);
\n\n按任意键继续"
getchar();
voidchose3()/*按平均分排序,子函数*/
while(fread(&
i++)/*冒泡法*/
if(a[j].aver<
a[j-1].aver)
\n\n\t按平均成绩排序为:
i++)
printf("
voidsort()/*排序,主函数*/
{inta;
do
{system("
\n\n\n\n\t\t请选择排序方式\n"
\t\t**********************************************\n"
\t\t\t1......按学号排序\n"
\t\t\t2......按姓名排序\n"
\t\t\t3......按平均成绩排序\n"
\t\t\t0......退出\n"
\t\t请选择:
a);
switch(a)
{case1:
chose1();
break;
case2:
chose2();
case3:
chose3();
case0:
return;
}while(a!
=0);
voidsc2()/*按姓名删除*/
{FILE*fp;
STUa[500];
charMC[20];
inti=0,k,j=1,m=0;
r"
请输入您所要删除的学生姓名:
MC);
a[i],sizeof(STU),1,fp)!
{i++;
j++;
j;
{
if(strcmp(a[i].name,MC)==0)
{k=i;
m=1;
break;
}
if(m==0)
printf("
您所要删除的学生不存在!
for(i=k;
j-2;
a[i]=a[i+1];
w"
for(i=0;
fwrite(&
a[i],sizeof(STU),1,fp);
删除成功!
voidsc1()/*按学号删除*/
/*定义结构体变量*/
longnumber;
请输入您所要删除的学生学号:
number);
{i++;
{if(a[i].num==number)
}
voidSC()
{system("
\n\n\n\n\t\t请选择删除方式\n"
\t\t\t1------按学号删除\n"
\t\t\t2------按姓名删除\n"
\t\t\t0------退出\n"
scanf("
switch(a)
{case1:
sc1();
case2:
sc2();
case0:
return;
}
}while(a!
voidappend()/*追加*/
{inti,n;
ab"
voidCX1()/*查询姓名*/
{charMC[9];
intk=0;
rbde"
\n\t\t请输入要查询的姓名:
{if(strcmp,MC)==0)
{if(k==0)
\n您所要查询的姓名为:
k=1;
if(fp!
=NULL)
if(k==0)
您所要查询的姓名不存在:
voidCX2()/*查询性别*/
{charMC[3];
\n\t\t请输入要查询的性别:
\n您所要查询的信息为:
您所要查询的信息不存在:
getchar();
voidCX3()/*查询学号*/
{intnumber;
if((fp=fopen("
\n\t\t请输入要查询的学号:
{if==number)
\n您所要查询的信息为:
a,sizeof(