教材信息管理系统.docx
《教材信息管理系统.docx》由会员分享,可在线阅读,更多相关《教材信息管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
![教材信息管理系统.docx](https://file1.bdocx.com/fileroot1/2022-12/14/428dec46-fbfc-4d0d-9fbd-06e31c454cac/428dec46-fbfc-4d0d-9fbd-06e31c454cac1.gif)
教材信息管理系统
课程设计报告
课程设计题目:
教材信息管理系统
学生学号
学生姓名
专业信息系统与信息管理
指导教师
2008年5月24日
目录
1.
一、概要设计
教材信息管理系统,采用数据文件存放教材基本信息,管理员可以进行添加、选择出库教材、输出、教材信息修改工作。
教材信息包括:
编号、书名、作者.、入库时间、出库时间、单价、、总数量。
功能设计如下:
1、主函数。
2,输入信息查找。
3,教材信息的显示。
4,插入,删除,添加一些必要的信息。
5,核对教材的信息。
设计一个名为s_book.txt的程序,该程序中的主函数显示系统菜单,并读入用户的选择,然后通过调用个主要分类函数(www.nb-)的子函数来实现系统的各项功能;
建立了来存储信息。
二、总体设计分析
教材信息管理系统是实现人与教材信息之间互通的平台,实现教材信息的共享,需要的主要功能为:
可以查询的信息、进行信息的修改、安全和隐秘性等。
所以可以对整个程序进行如下的分析:
1.对教材信息设置了如上结构体变量。
在教材信息中设置了编号,书名,作者,单价,买书人,数量,入库时间,出库时间等信息,来满足来管理教材。
2.为了教材的信息能过更好的利用此程序进行管理,管理者能够查询教材的信息,对教材的管理进行插入,删除,添加一些信息。
满足管理者对教材管理的一些需求。
3.在输入变量,能够查询需要的教材信息。
4.此系统使使用者在登录之后,在输入变量,能显示出你所需的教材资料的基本信息,方便了使用者。
功能模块图
三、各模块的实现方法
整个系统可以分为主函数、输入函数,显示函数。
修改函数。
核对函数,写入文件函数。
等几个模块。
1.主函数
主函数中包括选择菜单界面,以printf语句输出0—7种选择,以switch()语句,由用户输入,则计算机根据用户输入的选择进行执行相应模块的调用,并用goto语句使得循环能够进行。
2.输入信息
运用printf语句输出要输出的编号,书名,作者,单价,买书人等一些信息,用scanf语句由用户输入教材的信息,最后由选择是否还是数据,运用while()语句中的条件,用户输入字符不是“N“,则继续输入信息。
3.显示信息
显示信息中的while()语句中的条件范围,输出显示信息。
4.修改信息。
修改信息部分包括插入信息,删除信息,添加信息三部分。
插入信息部分运用printf()语句输出教材中的信息,用scanf()语句由用户输入教材对应信息。
删除信息部分由用户输入要删除的书的书名,以while()语句中的条件控制循环。
如果用户输入的书名相同则删除此书,用if语句,假设检查过的书的数量与总书的数量相等,说明没有找到这本用户要删除的书,用for语句实现,如果前一本书由用户找到要删除的书。
则后一本书向前一位进行覆盖。
添加部分
添加信息部分为使要添加的教材信息到指针文件中,if语句说名不能以二进制文件打开,如果打开则信息系统停止,while语句中条件的范围使文件添加的教材信息的本数为编号本书。
5.核对信息部分
核对信息部分用scanf()语句用户输入要核对的书的书名,以while()语句中的条件控制循环,如果用户输入的书名与系统书名相同,则可以核对到此书的信息,用if语句,假设检查过的书的数量与总书的数量相等,说明没有找到要核对的书,如果找到要核对的书则输出编号,作者,单价等一些信息。
6.写入文件部分
写入文件部分为将输入的教材信息写入FILE*fp文件中,如果用户以输出的形式打开一个文本文件,则系统显示不能打开文件,系统停止,在while循环语句的范围下。
Fprintf()以fp为指定输出文件把各项数据写入文件,关闭fp文件,则输出成功写入文件
四、自己负责模块的程序设计分析
企业操作流程图
个人操作流程图
管理员操作流程图
系统菜单流程图
系统菜单用switch语句调用企业菜单、个人菜单和管理员操作。
企业操作中的企业登录功能:
输入一个企业的企业帐号,调用企业结构提的企业数组,利用for循环来调用所有的企业数组,再用if语句判断企业数组里的企业帐号与输入的帐号进行比较,如果有相同的则确定此数组,并提取此数组的密码选项内容,在提示输入密码后,继续用if语句继续判断此数组中的密码是否与输入的密码相同,是的话则可以进入下一级菜单,用switch来选择下步的操作:
可以开始调用显示所有应聘人的信息、修改企业看中的应聘人来面试的确认信息、刷新还要录取的人数等操作。
个人操作中的个人登录功能:
输入一个个人的姓名,调用个人结构体并取得个人数组,,利用for循环来调用所有的存在的数组,再用if语句判断个人数组里的个人姓名与输入的姓名进行比较,如果有相同的则确定此数组,并提取此数组的密码选项内容,在提示输入密码后,继续用if语句继续判断密码是否相同,是的话则可以进入下一级菜单,用switch来选择下一步的操作:
查询企业信息、查询自己信息、输入应聘企业的代码。
管理员操作:
输入一个管理员的帐号,调用管理员结构体并取得管理员数组,利用for循环来调用所有的存在的数组,再用if语句判断管理员数组里的管理员帐号与输入的帐号进行比较,如果有相同的则确定此数组,并提取此数组的密码选项内容,在提示输入密码后,继续用if语句继续判断密码是否相同,是的话则可以进入下一级菜单,用switch来选择下面的操作操作:
添加新管理员、修改权限、进入普通权限。
添加新管理员是用scanf语句来输入来实现;修改权限则要用if语句来判断是否可以执行此命令,在通过查找定位你要修改的数组,再进行修改;普通权限进入后用switch来选择是企业删除和个人删除命令。
五、自己负责模块的程序源代码
#include
#include
#include
#include
typedefstruct
{
charbianhao[10];
charshuming[20];
charzuozhe[20];
intdanjia[10];
charmaishuren[10];
intshuliang;
charruku[10];
charchuku[10];
}testbook;
testbooktest[80];
intn=0;
FILE*fp;
intInput()
{
charsign;
sign=getch();
while(sign!
='n'&&sign!
='N')
{printf("\t\t\ttestbook'sbianhao:
");
scanf("\t\t\t%s",test[n].bianhao);
printf("\t\t\ttestbook'sshuming:
");
scanf("\t\t\t%s",test[n].shuming);
printf("\t\t\ttestbook'szuozhe:
");
scanf("\t\t\t%d",test[n].zuozhe);
printf("\t\t\ttestbook'sdanjia:
");
scanf("\t\t\t%d",test[n].danjia);
printf("\t\t\ttestbook'smaishuren:
");
scanf("\t\t\t%s",test[n].maishuren);
printf("\t\t\ttestbook'sshuliang:
");
scanf("\t\t\t%s",test[n].shuliang);
printf("\t\t\ttestbook'sruku:
");
scanf("\t\t\t%s",test[n].ruku);
printf("\t\t\ttestbook'schuku:
");
scanf("\t\t\t%s",test[n].chuku);
printf("\t\t\tanymorerecords?
(Y/N)");
scanf("\t\t\t%c",&sign);
n++;
}www.nb-
return(n);
}
voidDisplay(testbooktest[],intn)
{
inti=1;
printf("\t\t\tbianhaoshumingzuozheshuliangchukudanjiamaishurenruku\n");
while(i{
printf("\t\t\t%-16s%-15s%-15s%d%-15s%-15s\n",test[i-1].bianhao,test[i-1].shuming,test[i-1].zuozhe,
test[i-1].chuku,test[i-1].danjia,test[n-1].maishuren,test[n-1].ruku,i++);}}
intInsert_a_record(testbooktest[],intn)
{printf("\t\t\tbooktest'sbianhao:
");
scanf("\t\t\t%s",test[n].bianhao);
printf("\t\t\ttestbook'sshuming:
");
scanf("\t\t\t%s",test[n].shuming);
printf("\t\t\ttesetbook'szuozhe:
");
scanf("\t\t\t%s",test[n].zuozhe);
printf("\t\t\ttestbook'schuku:
");
scanf("\t\t\t%s",test[n].chuku);
printf("\t\t\ttestbook'sdanjia:
");
scanf("\t\t\t%d",test[n].danjia);
printf("\t\t\ttestbook'smaishuren:
");
scanf("\t\t\t%s",test[n].maishuren);
printf("\t\t\ttestbook'sruku:
");
scanf("\t\t\t%s",test[n].ruku);
n++;}
intDelete_a_record(testbooktest[],intn)
{chars[20];
inti=0,j;
printf("\t\t\ttellmehisorhershuming:
");
scanf("%s",s);
while(strcmp(test[i].shuming,s)!
=0&&iif(i==n)
{printf("\t\t\tnotfind!
\n");
return(n);
}
for(j=i;j{
strcpy(test[j].bianhao,test[j+1].bianhao);
strcpy(test[j].shuming,test[j+1].shuming);
strcpy(test[j].zuozhe,test[j+1].zuozhe);
strcpy(test[j].chuku,test[j+1].chuku);
strcpy(test[j].maishuren,test[j+1].maishuren);
strcpy(test[j].ruku,test[j+1].ruku);
}
printf("\t\t\tDeleteSuccessed!
\n");
return(n-1);
}
voidcheck_a_record(testbooktest[],intn)
{chars[20];
inti=0;
printf("\t\t\tinputhisorhershuming:
");
scanf("\t\t\t%s",s);
while(strcmp(test[i].shuming,s)!
=0&&iif(i==n)
{printf("\t\t\tnotfind!
\n");
return;
}
printf("\t\t\ttestbook'sbianhaober:
%s\n",test[i].bianhao);
printf("\t\t\ttestbook'szuozhe:
%s\n",test[i].zuozhe);
printf("\t\t\ttestbook'schuku:
%s\n",test[i].chuku);
printf("\t\t\ttestbook'sdanjia:
%s\n",test[i].danjia);
printf("\t\t\ttestbook'smaishuren:
%s\n",test[i].maishuren);
printf("\t\t\ttestbook'sruku:
%s\n",test[i].ruku);}
intAddfromText(testbooktest[],intn)
{inti=0,bianhao;
FILE*fp;
charfileshuming[20];
printf("\t\t\tInputthefileshuming:
");
scanf("\t\t\t%s",fileshuming);
if((fp=fopen(fileshuming,"rb"))==NULL)
{printf("\t\t\tcann'topenthefile\n");
printf("\t\t\t");
system("pause");
return(n);
}
fscanf(fp,"%d",&bianhao);
while(i{
fscanf(fp,"%s%s%s%s",test[n+i].bianhao,test[n+i].shuming,test[n+i].zuozhe,test[n+1].chuku);
i++;
}
n+=bianhao;
fclose(fp);
printf("\t\t\tSuccessed!
\n");
printf("\t\t\t");
system("pause");
return(n);
}
voidWritetoText(testbooktest[],intn)
{
inti=0;
FILE*fp;
charfileshuming[20];
printf("\t\t\tWriteRecordstoaTextFile\n");
printf("\t\t\tInputthefileshuming:
");
scanf("\t\t\t%s",fileshuming);
if((fp=fopen(fileshuming,"w"))==NULL)
{
printf("\t\t\tcann'topenthefile\n");
system("pause");
return;
}
fprintf(fp,"%d\n",n);
while(i{
fprintf(fp,"%-16s%-15s%-15s%-15s%d%-13s%-12s\n",
test[i].bianhao,test[i].shuming,test[i].zuozhe,test[i].chuku,test[i].danjia,
test[i].maishuren,test[i].ruku);
i++;
}
fclose(fp);
printf("Successed!
\n");
};
voidmain()
{inti=0,h;
if(fopen("jiaocao.txxt","r")==NULL)fp=fopen("jiacao.txt","w");
else{fp=fopen("jiaocai.txt","r+");
while(fscanf(fp,"%10s,%20s,%20d,%10d,%10s,%10s,%10s",
&test[n].bianhao,test[n].shuming,test[n].zuozhe,test[n].danjia,test[n].maishuren,test[n].ruku,test[n].chuku)!
=EOF)n++;}
L1:
printf("\t\t****WelcomeToTheTestBooksManagementSystem****\n");/**/
printf("\t\t|1.InputRecords|\n");
printf("\t\t|2.DisplayAllRecords|\n");
printf("\t\t|3.Sort|\n");
printf("\t\t|4.InsertaRecord|\n");
printf("\t\t|5.DeleteaRecord|\n");
printf("\t\t|6.check|\n");
printf("\t\t|7.Statistic|\n");
printf("\t\t|8.AddRecordsfromaTextFile|\n");
printf("\t\t|9.WritetoaTextfile|\n");
printf("\t\t|0.Quit|\n");
printf("\t\t*****************************************\n");
printf("\t\t\tGiveyourChoice(0-9):
");
scanf("%d",&h);
switch(h)
{
gotoL1;
case1:
printf("\t\t\tInputRecords\n");
n=Input(test,n);
gotoL1;
break;
case2:
printf("\t\t\tDisplayAllRecords\n");
Display(test,n);
gotoL1;
break;
case3:
printf("\t\t\tInsertaRecord\n");
n=Insert_a_record(test,n);
printf("\t\t\t");
system("pause");
gotoL1;
break;
case4:
printf("\t\t\tDeleteaRecord\n");
n=Delete_a_record(test,n);
printf("\t\t\t");
system("pause");
gotoL1;
break;
case5:
printf("\t\t\tAddRecordsfromaTextFile\n");
n=AddfromText(test,n);
gotoL1;
break;
case6:
printf("\t\t\tWritetoaTextfile\n");
WritetoText(test,n);
printf("\t\t\t");
system("pause");
gotoL1;
break;
case'0':
printf("HaveaGoodLuck,Bye-bye!
\n");
printf("thissystemcostmeawholenighttocomposeatlastifinishit\n");
printf("\ifeelveryhappy\n");
printf("\t\t\t");
system("pause");
exit(0);
}
for(i=0;i<=n;i++)
fprintf(fp,"%10s,%20s,%20d,%10d,%10s,%10s\n",
test[n].bianhao,test[n].shuming,test[n].zuozhe,test[n].danjia,test[n].maishuren,test[n].ruku,test[n].chuku);
fclose(fp);
}_
六、程序运行结果及系统使用说明
课程设计评分表
学生姓名:
班级:
学号:
课程设计题目:
项目内容
满分
实评
选
题
能结合所学课程知识、有一定的能力训练。
符合选题要求
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文献及运用文献资料能力
10
理论依据充分,数据准确,公式推导正确
10
能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等
10
能体现创造性思维,或有独特见解
10
成
果
质
量
总体设计正确、合理,各项技术指标符合要求。
10
说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰
10
设计说明书栏目齐全、合理,符号统一、编号齐全。
格式、绘图、表格、插图等规范准确,符合国家标准
10
有一定篇幅,字符数不少于5000
10
总分
100
指导教师评语:
指导教师签名:
年月日