C语言学生学籍信息管理系统设计文档格式.docx
《C语言学生学籍信息管理系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《C语言学生学籍信息管理系统设计文档格式.docx(15页珍藏版)》请在冰点文库上搜索。
charcourseNo;
//课程编号
charcourseName;
//课程名称
intcreditHour;
//学分
InttriGrade;
//平时成绩
IntexperiGrade;
//实验成绩
IntexamGrade;
//卷面成绩
FloattotalGrade;
//综合成绩
FloatfinalCreHour;
//实得学分
}StuGraInfo;
//学生成绩基本信息结构体
(1)数据录入模块
学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。
综合成绩和实得学分通过计算得到。
(2)查询模块
通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.TXT中查找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。
(3)删除模块
通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信息,删除之;
或者输入学生的姓名,先在A.TXT中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。
注意:
C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。
(4)排序模块
通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。
#include<
time.h>
#include<
stdio.h>
conio.h>
stdlib.h>
string.h>
voidinput();
voiddisplay();
voidfind();
voiddelmodify();
voiddelfile();
voidsave();
#defineMAX100;
structemploye
charjobno[10];
//职工号
charsex[10];
intage;
//年龄
charedulevel[10];
//学历
charsalary[10];
//工资
charaddr[20];
//地址
chartel[11];
//电话
};
//职工信息结构体
structemployea[100];
intnumber=0;
main()
intn;
start:
printf("
\t\t\t\t欢迎使用职工信息管理系统\n"
);
do
printf("
\t\t\t1.职工信息输入\n"
\t\t\t2.职工信息浏览\n"
\t\t\t3.职工信息查询\n"
\t\t\t4.职工信息删除修改\n"
\t\t\t5.删除文件中的职工信息\n"
\t\t\t6.保存职工信息\n"
\t\t\t7.退出\n"
\t\t\t选择功能选项:
"
fflush(stdin);
scanf("
%d"
&
n);
switch(n)
case1:
system("
cls"
input();
break;
case2:
display();
case3:
find();
case4:
delmodify();
case5:
delfile();
case6:
save();
case7:
exit"
exit(0);
default:
system("
gotostart;
}
}while
(1);
voidinput()
{inti=0;
charj;
{printf("
\t\t\t\t录入职工信息\n输入第%d个职工的信息:
\n"
i+1);
输入职工号:
gets(a[i].jobno);
输入职工姓名:
gets(a[i].name);
输入职工性别:
%s"
a[i].sex);
输入职工年龄:
a[i].age);
输入职工学历:
gets(a[i].edulevel);
输入职工工资:
gets(a[i].salary);
输入职工地址:
gets(a[i].addr);
输入职工电话:
gets(a[i].tel);
i++;
number=i;
是否继续录入?
(YorN):
j);
while(j!
='
n'
&
j!
N'
voiddisplay()
charch;
\n\n"
for(i=0;
i<
number;
i++)
\t\t第%d个职工的信息:
\t职工号%s\n"
a[i].jobno);
\t姓名%s\n"
a[i].name);
\t性别%s\n"
\t年龄%d\n"
a[i].age);
\t学历%s\n"
a[i].edulevel);
\t工资%s\n"
a[i].salary);
\t地址%s\n"
a[i].addr);
\t电话%s\n"
a[i].tel);
}
\t\t按任意键返回主菜单"
ch=getchar();
while(!
ch);
voidfind()
{voidfind1();
voidfind2();
intm;
start:
\t\t\t选择查询职工信息的模式\n"
\t\t\t1.通过职工号\n"
\t\t\t2.通过职工学历\n"
m);
switch(m)
{case1:
find1();
find2();
voidfind1()
{inti;
charstr[20],ch;
输入要查询的职工号:
gets(str);
if(!
strcmp(a[i].jobno,str))
\t\t按任意键返回查询菜单"
voidfind2()
输入要查询的职工学历:
strcmp(a[i].edulevel,str))
voiddelmodify()
{voiddel();
voidmodify();
charch;
intp;
\t\t\t职工信息的删除?
修改?
\t\t\t1.删除\n"
\t\t\t2.修改\n"
选择功能选项:
p);
switch(p)
del();
modify();
voiddel()
{charstr[20];
inti;
\t\t\t1.输入要删除职工的姓名:
str);
strcmp(a[i].name,str))
if(i==number)number-=1;
else
{a[i]=a[number-1];
number-=1;
voidmodify()
charstr[20];
\t\t\t2.输入要修改职工的姓名:
{system("
\t\t\t2.输入新插入职工的信息:
break;
voidsave()
{FILE*fp;
charfilepath[20];
输入要保存的文件路径:
gets(filepath);
if((fp=fopen(filepath,"
w"
))==NULL)
\n保存失败!
exit(0);
fprintf(fp,"
%s%s%s%d%s%d%s%s"
a[i].jobno,a[i].name,a[i].sex,a[i].age,a[i].edulevel,a[i].salary,a[i].addr,a[i].tel);
fclose(fp);
职工信息已保存在%s中!
filepath);
pause"
voiddelfile()
输入要删除的文件路径:
fp=fopen(filepath,"
保存在文件%s中的所有信息已经删除!