c课程设计学生成绩管理系统Word下载.docx
- 文档编号:16958513
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:11
- 大小:42.57KB
c课程设计学生成绩管理系统Word下载.docx
《c课程设计学生成绩管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《c课程设计学生成绩管理系统Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
二、系统分析
选择
Main函数
退出
修改
查询
删除
插入
排序
显示
输入
系统功能模块划分:
三、系统设计:
(1)、主函数:
调用菜单函数。
(2)、菜单函数:
通过switch语句来实现选择要实现的功能函数。
(3)、输入函数:
通过打开文件、输入学生信息、关闭文件、返回菜单来实现学生信息的输入。
(4)、显示函数:
以只读方式打开文件后读取文件内容来显示到计算机屏幕上最后再关闭文件返回菜单。
(5)、排序函数:
通过起泡法来对所输入的学生按成绩由高到低的顺序进行排序。
(6)、插入函数:
通过将学生信息写入文件的方式来实现学生信息的插入。
(7)、删除函数:
通过两个指针变量同时指向一个文件来对文件进行再次赋值来实现删除功能。
(8)、查询函数:
通过学生的姓名与文件中学生姓名的比较找到该学生后在将该学生的所有信息显示出来
(9)、修改函数:
通过两个指针变量同时指向一个文件先找到要修改学生,将其信息输入后在重新写入文件。
(10)、选择函数:
选择所要进行的操作。
(11)、退出:
退出系统。
四、调试、排错、测试、试运行过程
输入学生信息如图:
排序如图:
插入学生信息如图:
查询学生信息
五、源程序主要代码
#include<
stdio.h>
stdlib.h>
string.h>
intn=5;
/*全局变量*/
structstudent/*定义结构体数组*/
{charnum[10];
charname[10];
intscore;
}stu[3];
intmenu_select()/*菜单选择函数*/
{chara;
do{
system("
cls"
);
printf("
\t************学生成绩管理系统****************\n"
\t\t1.输入学生成绩\n"
\t\t2.显示学生成绩\n"
\t\t3.学生成绩排序\n"
\t\t4.插入学生记录\n"
\t\t5.删除学生记录\n"
\t\t6.查询学生成绩\n"
\t\t7.修改学生成绩\n"
\t\t0.退出\n"
\t*********************************************\n"
\n"
给出你的选择(0-7):
"
a=getchar();
}while(a<
'
0'
||a>
7'
return(a);
}
voidinput()/*定义输入函数*/
{inti;
charc;
voidmenu();
FILE*fp;
if((fp=fopen("
studentmessage"
"
w"
))==NULL)
{printf("
cannotopenthefile\n"
exit(0);
学号姓名分数(需要终止输入时请在该行结尾输入n)\n"
for(i=0;
;
i++)
{scanf("
%s%s%d"
stu[i].num,stu[i].name,&
stu[i].score);
fwrite(&
stu[i],sizeof(structstudent),1,fp);
c=getchar();
if(c=='
n'
)
break;
}
n=i+1;
fclose(fp);
pause"
menu();
voiddisplay()/*定义显示函数*/
r"
\t学号\t姓名\t分数\n"
i<
n;
{fread(&
\t%s\t%s\t%d\n"
stu[i].num,stu[i].name,stu[i].score);
voidsort()/*定义排序函数*/
{inti,j;
structstudenttemp;
{printf("
cannotopenthefile:
fread(&
for(j=0;
j<
n-1;
j++)
n-1-j;
if(stu[i].score<
stu[i+1].score)
{temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
voidinsert()/*定义插入函数*/
structstudentst;
a"
输入要插入学生的信息:
学号:
scanf("
%s"
st.num);
姓名:
st.name);
分数:
%d"
&
st.score);
n++;
st,sizeof(structstudent),1,fp);
voiddelet()/*定义删除函数*/
{inti,t;
FILE*fp,*fp1;
if((fp=fopen("
cannotopenfile!
if((fp1=fopen("
请输入要删除学生的姓名:
name);
if(strcmp(stu[i].name,name)==0)
t=i;
t;
stu[i],sizeof(structstudent),1,fp1);
for(i=t+1;
该学生信息已删除!
\n\n"
fclose(fp1);
voidquery()/*定义查询函数*/
chara[10];
cannotopenfile\n"
输入要查询学生的姓名:
a);
if(strcmp(stu[i].name,a)==0)
voidrevise()/*定义修改函数*/
请输入要修改学生的姓名:
依次输入要修改学生的学号、姓名、分数:
stu[t].num,stu[t].name,&
stu[t].score);
该学生信息已修改成功!
voidquite()/*退出*/
再见!
!
voidmenu()/*定义菜单函数*/
{switch(menu_select())
{case'
1'
:
input();
break;
case'
2'
display();
3'
sort();
4'
insert();
5'
delet();
6'
query();
revise();
quite();
voidmain()/*主函数*/
{menu();
六、总结及自我评价
经过两个多星期C语言的课程设计,感觉自己收获不少!
我做的课程设计内容是编写一个学生成绩管理系统,对于刚开始看到题目的时候不知道从哪开始写。
在看到函数调用这一章时,我知道了一个大程序实际上是有多个函数经主函数调用来实现的,这也就是C语言的结构化模块设计思想。
七、参考文献
《C语言程序设计教程》谭浩强著清华大学出版社
《C语言课程设计实训教程》石小玲著机械工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 学生 成绩管理系统