大作业学生宿舍系统#文档格式.docx
《大作业学生宿舍系统#文档格式.docx》由会员分享,可在线阅读,更多相关《大作业学生宿舍系统#文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
该函数可以计算男女各占总体的百分比
Wrintetofile(>
该函数可以将在input函数里所输入的数据存储在文件中
9、Readfile(>
该函数可以读取一存储的文件中的数据
10、Down<
):
调用函数
3.2程序实现:
代码详情请看附件
/*************************************************
Copyright(C>
2018-2018,qianqianTech.Co.,Ltd.
Filename:
学生宿舍管理系统
Author:
杨志谦//作者、版本及完成日期
Version:
2018独家版
Date:
2018.12.25
Description:
本管理系统可以有效地帮助学校更好地管理学生的信息,也可以帮助学校更加便捷地搜索学
生的信息。
该管理系统可以进行数据输入和存储、数据的读写和计算、学生信息的搜索和按一定条件的
排序和查询
注意:
本管理系统的学生人数范围为0-30;
寝室号可从0-2的32次方内;
性别只可以是f或者
是m,输入其他字符可能出现程序错误;
姓名可以是10个以内的字母或五个以内的汉字;
电
话号码之能在11位数以内;
家乡只能是某某省;
Others:
有违反上述注意事项而且造成损失的的,本人一概不负责!
FunctionList:
1.Input进行对数据的输入。
2.printbynum按学好由小到大打印学生信息
3.printbyroom按寝室号打印学生信息
4.Searchbyname按姓名搜索学生信息
5.Searchbysex按性别打印学生信息
6.Searchbyhome按家乡打印学生信息
7.Sexper男女所占比例
8.Homeper家乡所占比例
9.Writetofile将数据读取到文件中
10.Readfile将先前保存的文件信息读取出来
11.down设计指针函数是所指向的函数
History:
//修改历史记录列表,每条修改记录应包括修改日期、修改
//者及修改内容简述
1.Date:
Modification:
2....
*************************************************/
#include<
stdio.h>
stdlib.h>
string.h>
#defineN30
typedefstructstudent
{
introom。
charname[10]。
charsex。
longnum。
intbanji。
chartel[12]。
charhome[10]。
}Student。
intInput(Studentstu[N]>
voidprintbynum(Studentstu[N],intn,int(*down>
(inta,intb>
>
voidprintbyroom(Studentstu[N],intn,int(*down>
voidSearchbybanji(Studentstu[N],intn>
voidSearchbyname(Studentstu[N],intn>
voidSearchbysex(Studentstu[N],intn>
voidSearchbyhome(Studentstu[N],intn>
voidSexper(Studentstu[N],intn>
voidWritetofile(Studentstu[N],intn>
intReadfile(Studentstu[N]>
intdown(inta,intb>
main(>
//main函数通过switch对其他函数进行调用
intn,k,i。
chara。
Studentstu[N]。
system("
colorf4"
printf("
本管理系统可以有效地帮助学校更好地管理学生的信息,也可以帮助学校更加便捷地搜索学生的信息。
\n该管理系统可以进行数据输入和存储、数据的读写和计算、学生信息的搜索和按一定条件的排序和查询\n注意:
\n本管理系统的学生人数范围为0-30;
\n寝室号可从0-2的32次方内;
\n性别只可以是f或者是m,输入其他字符可能出现程序错误;
\n姓名可以是10个以内的字母或五个以内的汉字;
\n电话号码之能在11位数以内;
\n家乡只能是某某省;
\n"
有违反上述注意事项而且造成损失的的,本人一概不负责!
"
\n\n\n按回车键进入系统!
scanf("
%c"
&
a>
cls"
//清楚上文所打印的内容
color1f"
//改变界面和文字的颜色以达到视觉效果<
下同)
for(i=0。
i<
100000000。
i++>
\n\n欢迎使用学生宿舍管理系统\n\n"
//打印菜单栏
300000000。
8888888888888888888888888888888888888888888888888888888\n"
88\n"
81.请输入学生的信息8\n"
82.按寝室号排版8\n"
83.按学号排版8\n"
84.按姓名查找8\n"
86.按性别搜索8\n"
87.按家乡搜索8\n"
88.男女比例8\n"
89.写入文件8\n"
810.读取文件8\n"
80.退出8\n"
TOW:
printf("
请选择功能键:
//用goto语句进行循环
%d"
k>
//选择调用的函数
switch(k>
//switchj语句进行选择操作,goto语句进行循环操作!
{
case1:
system("
color79"
n=Input(stu>
gotoTOW。
case2:
color72"
printbyroom(stu,n,down>
case3:
color70"
printbynum(stu,n,down>
case4:
color1c"
Searchbyname(stu,n>
case5:
color90"
Searchbybanji(stu,n>
case6:
color71"
Searchbysex(stu,n>
case7:
color17"
Searchbyhome(stu,n>
case8:
Sexper(stu,n>
case9:
color7d"
Writetofile(stu,n>
case10:
color84"
n=Readfile(stu>
case0:
color9f"
exit(0>
default:
color6c"
错误的输入!
}
}
//输入函数
inti,n。
输入学生信息:
请输入学生人数:
n>
\n请输入学生的寝室号、姓名、性别(f/m>
、学号、班级、联系电话、家乡<
?
省):
n。
scanf("
%d%s%c%d%d%s%s"
stu[i].room,stu[i].name,&
stu[i].sex,&
stu[i].num,&
stu[i].banji,stu[i].tel,stu[i].home>
returnn。
//返回n的值
//按学好大小由小到大排列学生信息
inti,j,temp6,temp7。
longtemp1。
chartemp2,temp3[10],temp4[11],temp5[10]。
for(j=i+1。
j<
j++>
{
if((*down>
(stu[i].num,stu[j].num>
{
temp1=stu[i].num。
//一下代码为交换数据
stu[i].num=stu[j].num。
stu[j].num=temp1。
temp2=stu[i].sex。
stu[i].sex=stu[j].sex。
stu[j].sex=temp2。
strcpy(temp3,stu[i].name>
strcpy(stu[i].name,stu[j].name>
strcpy(stu[j].name,temp3>
strcpy(temp4,stu[i].tel>
strcpy(stu[i].tel,stu[j].tel>
strcpy(stu[j].tel,temp4>
strcpy(temp5,stu[i].home>
strcpy(stu[i].home,stu[j].home>
strcpy(stu[j].home,temp5>
temp6=stu[i].room。
stu[i].room=stu[j].room。
stu[j].room=temp6。
temp7=stu[i].banji。
stu[i].banji=stu[j].banji。
stu[j].banji=temp7。
}
}
printf("
学生寝室号:
%d\n学生姓名:
%s\n学生性别:
%c\n学生学号:
%d\n学生班级:
%d\n学生电话号码:
%s\n学生家乡:
%s\n\n\n"
stu[i].room,stu[i].name,stu[i].sex,stu[i].num,stu[i].banji,stu[i].tel,stu[i].home>
//打印交换后新的数据
//按寝室号码大小由小到大排列学生信息
(stu[i].room,stu[j].room>
//一下代码为交换数据
//按班级查找
inti,a。
按班级查找!
请输入要查询的班级:
if(a==stu[i].banji>
}
//按姓名搜索学生信息
inti,j。
chara[10]。
按姓名查找\n"
请输入要查找的学生的姓名:
%s"
a>
for(j=0。
10。
if(a[j]==stu[i].name[j]&
&
j==9>
gotoONE。
if(a[j]!
=stu[i].name[j]>
break。
ONE:
//按性别打印学生信息
inti。
按性别搜索\n"
请输入要搜索的性别:
if(a==stu[i].sex>
printf("
//按学生所在省份答应学生信息
按家乡搜索:
请输入要搜索的家乡名字<
if(a[j]==stu[i].home[j]&
%d\t学生姓名:
%s\t学生性别:
%c\t学生学号:
%d\t学生班级:
%d\t学生电话号码:
%s\t学生家乡:
%s\n"
if(a[j]!
=stu[i].home[j]>
//男女性别比例
inti,m,f。
floatc,d。
m=f=0。
学生男女比例\n"
if('
f'
==stu[i].sex>
f++。
m'
m++。
c=((float>
f/n>
*100。
d=((float>
m/n>
男生占%-5.2f%\n"
c>
女生占%-5.2f%\n"
d>
//写入文件
FILE*fp。
写入文件\n"
if((fp=fopen("
学生宿舍管理系统.txt"
"
w"
==NULL>
//判断是否正确打开文件
文件打开失败!
exit(0>
fwrite(stu,sizeof(Student>
n,fp>
fclose(fp>
//关闭文件
//读取文件
读取文件\n"
r"
!
feof(fp>
fread(&
stu[i],sizeof(Student>
1,fp>
读取文件
i--。
%d\n"
i>
returni。
returna>
b。
三、系统测试
四、个人小结
写程序是一样很要耐心的事,写到一半很容就忘记自己写代码的思路,所以在写代码前做好话个草图,把大致的流程写下来。
写代码是不能嫌麻烦而把取名进行缩短处理,刚开始还受的了,能记各自的含义和功能,但时间就了就很难看懂了,所以在函数取名时一定要正规取名。
改错是一件很有帮组的事,程序员在练习写代码是收获最多的可以说是在我们运行程序后的改错这一环节,应为在这时你可以看到自己所不知道的内容要点。
五、参考文献
[1]苏小红.c语言程序与设计.高等教育出版社.2018.4
[2]杨志谦.学生成绩管理系统.c.2018.12