C语言课程设计学生成绩管理系统.docx
- 文档编号:8782046
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:18
- 大小:74.91KB
C语言课程设计学生成绩管理系统.docx
《C语言课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统.docx(18页珍藏版)》请在冰点文库上搜索。
C语言课程设计学生成绩管理系统
Lastupdatedat10:
00amon25thDecember2020
C语言课程设计学生成绩管理系统
信息技术工程学院
C语言课程设计报告
题目:
学生成绩管理系统(studentachievementmanagementsystem)
一设计目的
通过本课程设计巩固《C语言程序设计》课程的教学成果,深入理解结构体、指针、链表、动态分配内存和文件操作的等C程序设计中的中高级技术,通过课程设计的综合训练,培养学生实际分析问题、编程和动手能力、提高学生利用C语言进行程序设计的能力,初步培养良好的编程习惯和编程风格,初步学习程序的文档的撰写方法。
二课程设计的内容
通过C语言程序系统,设计一个可以对学生的成绩信息进行管理的程序,其中学生的信息可以包括:
学号、各科目的成绩的平均分排序等,其功能可以包括学生成绩的输入、输出、查询、排序、删除、统计、退出等。
三课程设计的要求与数据
1、用C语言实现系统;
2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出、显示,以及整个程序的切换登录模式和修改管理员的信息.
3、学生信息包括:
(1)、每一条记录包括一个学生的学号、姓名、3门课成绩
(2)、成绩信息录入功能:
(成绩信息用文件保存,可以一次完成若干条记录的输入。
)
(3)、成绩信息显示浏览功能:
完成全部学生记录的显示。
(4)、查询功能:
完成按姓名查找学生记录,并显示。
(5)、成绩信息的删除:
按学号进行删除某学生的成绩.
(6)、排序功能:
按学生平均成绩进行排序。
(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
四课程设计应完成的工作
(1)编写算法;
(2)算法测试,并有具体的测试结果和结果分析;
(3)撰写课程设计报告。
内容包括:
1)封面扉页
2)设计任务书
3)目录
4)总体设计方案(包括流程图)
5)使用说明及运行实例(包括界面)
6)成员设计内容简介
7)项目源程序代码(注意注释的使用)
8)指导教师评语
五总体设计(包含几大功能模块)
1、成绩录入功能
2、成绩输出功能
3、成绩查询功能
4、删除模块
5、排序功能
6、统计功能
7、退出系统
六详细设计
各个模块的功能和实现
(1)整个成绩管理系统设计分为9个模块:
1.输入学生成绩
2.删除学生成绩
3.查询学生成绩
4.修改学生成绩
5.排序学生成绩
6.保存记录
7.显示所有
8.退出系统
9.修改管理员信息
(2)(主要函数的功能)
1.主函数main():
定义学生结构体数组,调用录入,统计等函数对成绩表进行处理。
2.输入数据函数input():
输入学号、成绩。
3.排序函数sort():
对总成绩或者平均成绩,进行排序,按从高到低或者从低到高。
4.显示数据函数display():
显示各个学生的总成绩
5.新增数据函数insert():
增加学生学生记录。
6.删除数据函数del():
由于各种原因,删除某些同学的成绩、学号等。
7.平均值函数average():
求各个同学总成绩的平均值。
8.查询数据函数qur():
查询学生的信息。
9.保存数据函数save():
再一次打开界面是,仍有上次所找的讯息。
10.退出系统函数exit():
当要退出整个系统时。
流程图
(管理员模式流程图)
输出菜单
输入
根据菜单输入n的值选择程序
结束
开始
保存
查找
退出
删除
统计
插入
排序
输出
开始
(来宾模式流程图)
输出菜单
根据菜单,
选择程序
退出程序
切换登录
排序
成绩
显示
成绩
查询
成绩
结束
七调试分析(各模块测试结果)
源代码
#include<>
#include<>
#include<>
#include<>
#include<>
#defineHEADER2"学号姓名数学英语C语言总分平均分\n"
#defineFORMAT"%s%s%d%d%d%d%.2f\n"
#defineDATAp->,p->,p->,p->,p->,p->,p->
intsaveflag=0;
typedefunsignedshortWORD;
structstudent{
charnum[10];
charname[15];
intmgrade;
integrade;
intcgrade;
inttotal;
floatave;
};
typedefstructnode{
structstudentdata;
structnode*next;
}Node,*Link;
voidmenu(){
time_tnow;
now=time(NULL);
printf("学生成绩管理系统\n");
printf("\n");
printf("*******************************************************************\n");
printf("**\n");
printf("*1输入成绩2删除成绩*\n");
printf("**\n");
printf("*3查询成绩4修改成绩*\n");
printf("**\n");
printf("*5排序成绩6保存记录*\n");
printf("**\n");
printf("*7显示所有0退出系统*\n");
printf("**\n");
printf("*******************************************************************\n");
printf("*8切换登录模式9修改管理员信息*\n");
printf("*******************************************************************\n");
printf("\n请你选择操作命令前的的数字(0~9):
");
}
intmenu2(){
理员模式0.来宾模式\n");
printf("请选择:
(0~1)");
scanf("%d",&state);
if(state==0)
return0;
elseif(state==1)
{
printf("请输入账号:
");
scanf("%s",str_z);
if(strcmp(str1,str_z)==0&&strcmp(str2,str_m)==0)
return1;
else
{
printf("账号或密码错误!
!
!
\a\n");
system("PAUSE");
system("cls");
}
}
else
{
printf("输入不合法!
!
!
\a\n");
exit(0);
}
}
}
voidModify_admin()
{
FILE*fp;
charstr_z[20],str_m[7]="";
fp=fopen("","wb");
printf("请输入管理员账号:
");
scanf("%s",str_z,'\n');
printf("请输入密码:
");
fprintf(fp,"%s%c",str_z,'\n');
fprintf(fp,"%s%c",str_m,'');
fclose(fp);
printf("管理员信息更新完毕!
!
\a\n");
getch();
}
intmain()
{
LinkL;
FILE*fp;
intselect,State=0;
charch,admin[20],admin_p[20];
intcount=0;
Node*p,*r;
system("color0A");
L=(Node*)malloc(sizeof(Node));
L->next=NULL;
r=L;
fp=fopen("","ab+");
Loop:
{
State=login();
}
while(!
feof(fp))
{p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp)==1)
{
p->next=NULL;
r->next=p;
r=p;
count++;
}
}
fclose(fp);
if(State==1)
{
while
(1)
{
system("cls");
printf("\n管理员模式\n\n");
menu();
p=r;
scanf("%d",&select);
if(select==0)
{
if(saveflag==1)
{
getchar();
printf("\n记录已修改,是否保存当时记录?
(y/n):
");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(L);
}
printf("谢谢您的使用!
!
!
\n");
break;
}
switch(select)
{
case1:
Add(L);break;//增加模块
case2:
Del(L);break;//删除记录
case3:
Qur(L);break;//查询模块
case4:
Modify(L);break;//修改模块
case5:
Sort(L);break;//排序模块
case6:
Save(L);break;//保存成绩
case7:
Disp(L);system("PAUSE");break;//显示成绩
case8:
system("cls");gotoLoop;
case9:
Modify_admin();break;
default:
Wrong();getch();break;
}
}
}
else
{
while
(1)
{
system("cls");
menu2();
scanf("%d",&select);
if(select==0)
{
printf("谢谢您的使用!
!
\n");
exit
(1);
}
switch(select)
{
case1:
Qur(L);break;
case2:
Sort(L);break;
case3:
Disp(L);system("PAUSE");break;
case4:
system("cls");gotoLoop;
default:
Wrong();getch();break;
}
}
}
return0;
}
各模块测试结果
创建管理员模块
主界面模块
输入成绩模块
删除成绩模块
查询成绩模块
修改成绩模块
排序成绩模块
保存记录模块
切换登陆模式
修改管理员信息
退出系统
八总结
本次的课程设计已接近尾声,经过两周的课程设计的学习,让我从中收获了许多的东西,课程开始,由于许多东西的在大一学习C语言时理解不深入,在此次设计中遇到许许多多的问题,调试分析时会出现各种各样的错误,也就需要自己查阅更多的资料。
通过查资料,修改源代码,调试分析,再到逐步完善的过程,似乎每一次的实验结果的成功,我都把它当做是一次成长。
回想起这两周的课程学习,让我真正体会到了理论与实践相结合的重要性,从拿到一个设计题目,再到对题目的构思、画流程图,到最后的编写源代码、调试分析、逐步完善、最后的整个程序的完成,看似一个很简单的过程,但是对于一个初次接触的我来说,每次似乎都是遇到了一个大困难。
但是越是遇到困难,就越有解决问题的决心,每当遇到问题时,我都会及时的向老师、同学、还有图书馆的相关书籍寻求帮助。
努力做到问题的及时解决。
通过这次课程设计收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它、利用它来为自己创造财富。
在这里,感谢带我我们做课程设计的张老师!
九参考资料
《C语言程序设计》主编:
谭浩强;
《C程序设计教程》主编:
李丽娟;
《C语言程序设计》主编:
楼永强,吴鹏,徐思友;
《C语言程序设计》主编:
吴红庆,李春萍;
网络相关资料。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 成绩管理系统