- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言课程设计
题目要求
实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期等。试设计一实验设备信息管理系统,使之能提供以下功能:
能够完成对设备的录入和修改
对设备进行分类统计
设备的查询
需求分析
实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。
总体设计
根据上面的需求分析,可以将这个系统的设计分为以下模块
详细设计
主函数
[流程图]
[程序]
void main()
{
Node *equip;
FILE *fp;
int flag;
Node *p,*q;
printf(\t\t\t\t设备管理系统\n);
equip=(Node*)malloc(sizeof(Node));
equip-next=NULL;
p=equip;
fp=fopen(设备管理系统,wb+);
q=(Node*)malloc(sizeof(Node));
if(fread(q,sizeof(Node),1,fp)) //将文件的内容放入接点中
{
q-next=NULL;
p-next=q;
p=q; //将该接点挂入链表中
}
fclose(fp); //关闭文件
while(1)
{
printf(***************************目录*****************************);
printf(\n1添加记录\n);
printf(\n2修改记录\n);
printf(\n3显示记录\n);
printf(\n4统计分类记录\n);
printf(\n0*-EXIT-*\n);
printf(请输入你要操作的序号:);
scanf(%d,flag);
switch(flag)
{
case 0: printf(\n提示:已经退出系统,ByeBye!\n);break;
case 1: Add(equip); break; //增加记录
case 2: Modify(equip); break;//修改记录
case 3: Disp(equip); break;//显示记录信息
case 4: Tongji(equip); break;//统计记录
default: printf(\n提示:输入错误!\n); break;
}
}
}
2.各功能模块设计
(1)输入模块
[流程图]
[程序]
/***************************输入模块*****************************/
#include stdio.h
#include stdlib.h
#include string.h
struct shebei
{
char ID[10];
char name[15];
char kind[15];
char over[15];
char yesno[10];
char time[10];
char price[10];
};
typedef struct node
{
struct shebei data;
struct node *next; //建立一个链表。
}Node;
void Add(Node *equip) //添加记录
{
Node *p,*r,*s;
char id[10]; //先用于输入ID,也用于判断是否跳出循环
r=equip;
s=equip-next; //使s为第一个有用的结点
while(r-next!=NULL) //这个循环的作用是使r为最后一个有用的结点
r=r-next; //将指针置于最末尾
while(1
文档评论(0)