C语言课程设计学生信息管理系统Word格式.docx
- 文档编号:14703616
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:14
- 大小:39.07KB
C语言课程设计学生信息管理系统Word格式.docx
《C语言课程设计学生信息管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生信息管理系统Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
采用模块化设计,功能放在各模块中实现。
主函数是程序的入口,在其中声明一些必要的变量,设计以无限循环程序,循环体为一个switch语句,该语句的条件是通过调用主菜单函数得到返回值,根据该返回值调用相应的各功能函数,同时要设置一个循环结束条件,以免造成死循环。
2.系统流程:
详细设计
1.代码介绍:
本程序中,用num、name、banji、age、sex、birthday、addr、phone、course、grade,来分别代表学生的学号、姓名、班级、年龄、性别、出生日期、住址、电话、所选课程、分数。
然后再利用结构体数组,将其归为学生的属性。
再用enter、print、save、search、del、modify、rank、return,来分别表示学生信息的输入、浏览、录入、查找、删除、修改,学生成绩的汇总,程序的返回的功能。
在程序中,通过对各个代码的使用及各功能函数的调用,可实现本程序设计目的。
2.函数介绍:
1.main()主函数
主函数是程序的入口,在其中定义一些必要的变量,设计以无限循环程序,循环体为一个switch语句,该语句的函数是通过调用主菜单函数得到返回值,根据返回值调用相应的各功能函数,同时要设置一个循环结束条件,以免造成死循环。
2.menu()函数----制作菜单
通过printf()函数在屏幕上绘制一个菜单,将菜单进行编号,并显示一个提示输入选项,输入1~8之间的数字。
输入选项就是输入菜单编号,该输入项将作为函数的返回值带到主函数,主函数根据这个数字调用相应的功能函数。
3.enter()函数-----输入记录
当在主菜单中输入了1,表明选择了输入记录功能选项,即为结构体赋值。
由于所定义的数组的大小往往大于实际的纪录数,所以要确定输入的记录数n,然后用for循环语句循环n次,按照提示逐个输入学生信息。
每输入一个就按一下Enter键,输入n个记录后,则循环结束,返回记录数到主函数。
4.save()函数-----保存记录到文件
将学生信息保存到指定文件中。
按照文件读写要求,先定义一个指向文件的指针,输入要保存的磁盘文件名。
然后确定文件的打开方式,打开文件。
如果文件打不开,则退出程序,否则选择一种写文件方式,利用循环从数组的第一个元素开始,依次将记录写入文件,直到所有记录写完为止。
5.search()函数-----查找记录
查找可以按照多种信息进行查找,以按姓名查找记录为例,从第一条记录开始顺序查找,如果找到记录,则显示记录信息;
若找不到记录,显示“无该学生”的提示信息。
由于姓名为字符串,所以可利用字符串比较函数strcmp().
6.del()函数------删除记录
删除指定学号的学生记录。
首先输入要删除记录的学号,然后利用for循环查找记录。
如果没找到,则输出没找到信息;
否则,删除记录。
要删除数组中某一条记录,实际所做的操作是将其后继记录依次前移一条,所以,删除第i条记录,用for语句,从第i+1条记录开始,依次将每个字段复制到前一条记录的相应字段,即覆盖了前一条记录,从而达到前移的目的,直到最后一条记录为止,最后使记录数减1。
7.modify()函数-----修改记录数据
记录数据完成后,若要对数据进行修改,则修改时,输入有错误记录的学号,通过循环比较找到该记录,然后逐个判断。
8.print()函数-------浏览记录
学生信息表建好后,更频繁的操作是显示和查找记录,本函数实现显示所有记录的功能。
用for循环将主函数传递过来的数组输出,循环次数由参数(记录个数)决定。
9.rank()函数-------成绩汇总
学生信息录入完成后,若要对学生中不及格学生成绩进行汇总,则可利用for循环将各个学生成绩与60比较,将不及格学生信息输出,从而达到不及格学生汇总的功能。
10.return()函数----返回
操作完成后,如要结束程序的运行,可利用该函数实现程序的结束。
源程序
#include<
stdio.h>
stdlib.h>
string.h>
#definePRprintf
#defineM100
structstudent
{
charnum[10];
charname[10];
charbanji[4];
charage[3];
charsex[3];
charbrithday[10];
charaddr[5];
charphone[11];
charcourse[4];
floatgrade;
}stud[M];
intenter(structstudentstud[]);
voidprint(structstudentstud[],intn);
voidsearch(structstudentstud[],intn);
voiddel(structstudentstud[],intn);
voidmodify(structstudentstud[],intn);
voidrank(structstudentstud[],intn);
voidsave(structstudentstud[],intn);
intmenu();
voidmain()
structstudentstud[M];
intlength;
for(;
;
)
switch(menu())
{
case1:
length=enter(stud);
break;
case2:
save(stud,length);
case3:
print(stud,length);
case4:
search(stud,length);
case5:
del(stud,length);
case6:
modify(stud,length);
case7:
rank(stud,length);
case8:
return;
}
}
intmenu()
intchoice;
PR("
欢迎来到学生信息管理系统!
\n"
);
**************主菜单***************\n"
*1----学生信息录入*\n"
*2----学生信息保存*\n"
*3----学生信息浏览*\n"
*4----学生信息查询*\n"
*5----学生信息删除*\n"
*6----学生信息修改*\n"
*7----不及格学生成绩汇总*\n"
*8----返回*\n"
***********************************\n"
do
PR("
\nEnteryouchoice(1~8):
"
scanf("
%d"
&
choice);
while(choice<
1||choice>
8);
returnchoice;
voidsave(structstudentstud[],intn)
FILE*fp;
inti;
charoutfile[20];
printf("
Enteroutlinename.forexamplec:
\\cfile\\inf.tex\n"
scanf("
%s"
outfile);
if((fp=fopen(outfile,"
wb"
))==NULL)
printf("
cannotopenfile\n"
else
for(i=0;
i<
n;
i++)
fwrite(&
stud[i],sizeof(structstudent),1,fp);
fclose(fp);
------保存成功!
!
------\n"
intenter(structstudentstud[])
{
intj,n;
\npleaseinputrecordnumber:
n);
\npleaseinputthedataofstudent:
\n"
for(j=0;
j<
j++)
enternum:
stud[j].num);
entername:
stud[j].name);
enterbanji:
stud[j].banji);
enterage:
stud[j].age);
entersex:
stud[j].sex);
enterbrithday:
stud[j].brithday);
enteraddr:
stud[j].addr);
enterphone:
stud[j].phone);
entercourse:
stud[j].course);
entergrade:
%f"
stud[j].grade);
returnn;
voidprint(structstudentstud[],intn)
intj;
|学号|姓名|班级|年龄|性别|出生日期|籍贯|电话号码|所选课程|成绩|\n"
%s%s%s%s%s%s%s%s%s%2.2f\n"
stud[j].num,stud[j].name,stud[j].banji,stud[j].age,
stud[j].sex,stud[j].brithday,stud[j].addr,stud[j].phone,stud[j].course,stud[j].grade);
getchar();
voidsearch(structstudentstud[],intn)
intk,j;
7-----按学号进行查询\n"
8-----按班级进行查询\n"
9-----按性别进行查询\n"
请输入查询方式对应的数字:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 信息管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)