怎么实现输入的学生学号在文件中查找然后输出显示?求解

买了个表程序员 2011-07-14 09:40:36
void XueHaoChaXun()//按学号查找
{
printf("\n\n\n\t\t请输入需要查找学生的学号:");
scanf("%d",&number1);
if((hero=fopen("d:\\学生管理系统.txt","r"))==NULL)
{
printf("文件打开失败!");
exit(1);
}
else
{
sp=Stu;
for(i=0;i<N;i++,sp++)
{
fscanf(hero,"学生姓名:%s\n学生年龄:%d\n所属系部:%s\n学生专业:%s\n学生班级:%s\n学生学号:%d\n",sp->name,&sp->age,sp->xibu,sp->zhuanye,sp->banji,&sp->number);
fclose(hero);//关闭文件
if(sp->number==number1)
{
printf("\n\n\t\t查询成功");
printf("\n\n\t\t学生姓名:%s",sp->name);
后面代码省略。程序问题在于:我事先让程序储存了几个学生信息,但是查找的时候。
只能查找到结构体数组中第一个学生信息,后面的学生信息,你输入学号正确也不能查找得到
求解求解!!!
...全文
765 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyl20 2011-07-15
  • 打赏
  • 举报
回复
文件读取 没有具体信息
  • 打赏
  • 举报
回复
void XueHaoChaXun()//按学号查找
{
printf("\n\n\n\t\t请输入需要查找学生的学号:");
scanf("%d",&number1);
if((hero=fopen("d:\\学生管理系统.txt","r"))==NULL)
{
printf("文件打开失败!");
exit(1);
}
else
{
sp=Stu;
for(i=0;i<N;i++,sp++)
{
fscanf(hero,"学生姓名:%s\n学生年龄:%d\n所属系部:%s\n学生专业:%s\n学生班级:%s\n学生学号:%d\n",sp->name,&sp->age,sp->xibu,sp->zhuanye,sp->banji,&sp->number);
if(sp->number==number1)
{
printf("\n\n\t\t查询成功");
printf("\n\n\t\t学生姓名:%s",sp->name);
printf("\n\n\t\t学生年龄:%d",sp->age);
printf("\n\n\t\t学生系部:%s",sp->xibu);
printf("\n\n\t\t学生专业:%s",sp->zhuanye);
printf("\n\n\t\t学生班级:%s",sp->banji);
printf("\n\n\t\t学生学号:%d",sp->number);
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
fclose(hero);//关闭文件
return (menu());
}
我放到了这里了,跳转的前面。可是程序问题还是没有解决!!是不是我的结构体指针没有++呢。它一直指向第一个学生信息,当if(sp->number==number1)不符合条件的时候也不会往下查找。。。。。泪奔了,求解!!!
later_equals_never 2011-07-15
  • 打赏
  • 举报
回复
void XueHaoChaXun()//按学号查找
{
printf("\n\n\n\t\t请输入需要查找学生的学号:");
scanf("%d",&number1);
if((hero=fopen("d:\\学生管理系统.txt","r"))==NULL)
{
printf("文件打开失败!");
exit(1);
}
else
{
sp=Stu;
for(i=0;i<N;i++,sp++)
{
fscanf(hero,"学生姓名:%s\n学生年龄:%d\n所属系部:%s\n学生专业:%s\n学生班级:%s\n学生学号:%d\n",sp->name,&sp->age,sp->xibu,sp->zhuanye,sp->banji,&sp->number);
fclose(hero);//应该放到return语句的前面,在返回前关闭文件,否则只读了一条记录就关闭了,后续的fscanf会失败
if(sp->number==number1)
{
printf("\n\n\t\t查询成功");
printf("\n\n\t\t学生姓名:%s",sp->name);
printf("\n\n\t\t学生年龄:%d",sp->age);
printf("\n\n\t\t学生系部:%s",sp->xibu);
printf("\n\n\t\t学生专业:%s",sp->zhuanye);
printf("\n\n\t\t学生班级:%s",sp->banji);
printf("\n\n\t\t学生学号:%d",sp->number);
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
return (menu());
}
else if(i==N) //这段代码永远不会执行到,for循环中i<N,不可能等于N
{
printf("\n\n\t\t你的输入的学号不正确");
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
return (menu());
}

}
}
}
later_equals_never 2011-07-15
  • 打赏
  • 举报
回复
for(i=0;i<N;i++,sp++)
{
fscanf(hero,"学生姓名:%s\n学生年龄:%d\n所属系部:%s\n学生专业:%s\n学生班级:%s\n学生学号:%d\n",sp->name,&sp->age,sp->xibu,sp->zhuanye,sp->banji,&sp->number);
fclose(hero);//关闭文件这句该放到for循环外面
if(sp->number==number1)
{
printf("\n\n\t\t查询成功");
printf("\n\n\t\t学生姓名:%s",sp->name);
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>//
#define N 2000
int n,i=0;
long number1;//用于查询时用的学号
FILE *hero;//文件指针
void menu();//菜单函数
void TianJia();//添加学生信息
void ChaXun();//查询学生信息
void XueHaoChaXun();//通过学号对学生信息进行查找
void XingMingChaXun();//通过学号对学生信息进行查找
typedef struct //结构体
{
char name[20],xibu[20],zhuanye[20],banji[20];
int age;//age为年龄
long number;//number为学号
}Student;
Student Stu[N],*sp;//定义了一个结构体数组和结构体指针
int main()//主函数
{
menu();
system("pause");
}
void menu()//菜单函数
{
printf("\n\n\n\t\t\t欢迎使用YangJ学生管理系统");
printf("\n\n\t\t\t 1.添加学生信息");
printf("\n\t\t\t 2.查询学生信息");
printf("\n\t\t\t 3.退出系统");
printf("\n\n\t\t\t请做出选择:");
scanf("%d",&n);
switch(n)
{
case 1:
system("cls");
TianJia();//添加学生信息
break;
case 2:
system("cls");
ChaXun();//查询学生信息
break;
case 3:
system("cls");
printf("\n\n\n\n\n\t\t\t欢迎您再次使用YangJ学生管理系统\n\n\n\t\t\t\t");
break;
}
}
void TianJia()//添加学生信息
{
if((hero=fopen("d:\\学生管理系统.txt","a"))==NULL)//以写入的方式打开文件
{
printf("文件打开失败!");
exit(1);
}
else
{
printf("\n\n\n\t\t\tYangJ将致力于为您提供最好的服务");
printf("\n\n\n\t\t\t 请输入学生的姓名:");
scanf("%s",Stu[i].name);
printf("\n\t\t\t 请输入学生的年龄:");
scanf("%d",&Stu[i].age);
printf("\n\t\t\t 请输入学生所属系部:");
scanf("%s",Stu[i].xibu);
printf("\n\t\t\t 请输入学生的专业:");
scanf("%s",Stu[i].zhuanye);
printf("\n\t\t\t 请输入学生的班级:");
scanf("%s",Stu[i].banji);
printf("\n\t\t\t 请输入学生的学号:");
scanf("%d",&Stu[i].number);
printf("\n\n\n\t\t\t学生信息填写成功!\n\t\t\t");
sp=Stu;
fprintf(hero,"学生姓名:%s\n学生年龄:%d\n所属系部:%s\n学生专业:%s\n学生班级:%s\n学生学号:%d\n",sp->name,sp->age,sp->xibu,sp->zhuanye,sp->banji,sp->number);
fprintf(hero,"\t-\t-\t-\t-\t-\t-\t-\t-\n");
fclose(hero);//关闭文件
i++;
system("pause");
system("cls");
return (menu());//返回主菜单
}
}
void ChaXun()//查询学生信息
{
printf("\n\n\n\t\t\t请选择以下查询方式:");
printf("\n\t\t\t1.按学号查找\n\t\t\t2.按姓名查找\n");
printf("\n\n\t\t\t请做出选择:");
scanf("%d",&n);
if(n==1)
{
system("cls");
XueHaoChaXun();//通过学号对学生信息进行查找
}
else if(n==2)
{
system("cls");
XingMingChaXun();//通过学号对学生信息进行查找
}
else
{
system("cls");
printf("\n\n\n\t\t\t您的输入不合法");
menu();
}
}
void XueHaoChaXun()//按学号查找
{
printf("\n\n\n\t\t请输入需要查找学生的学号:");
scanf("%d",&number1);
if((hero=fopen("d:\\学生管理系统.txt","r"))==NULL)
{
printf("文件打开失败!");
exit(1);
}
else
{
sp=Stu;
for(i=0;i<N;i++,sp++)
{
fscanf(hero,"学生姓名:%s\n学生年龄:%d\n所属系部:%s\n学生专业:%s\n学生班级:%s\n学生学号:%d\n",sp->name,&sp->age,sp->xibu,sp->zhuanye,sp->banji,&sp->number);
fclose(hero);//关闭文件
if(sp->number==number1)
{
printf("\n\n\t\t查询成功");
printf("\n\n\t\t学生姓名:%s",sp->name);
printf("\n\n\t\t学生年龄:%d",sp->age);
printf("\n\n\t\t学生系部:%s",sp->xibu);
printf("\n\n\t\t学生专业:%s",sp->zhuanye);
printf("\n\n\t\t学生班级:%s",sp->banji);
printf("\n\n\t\t学生学号:%d",sp->number);
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
return (menu());
}
else if(i==N)
{
printf("\n\n\t\t你的输入的学号不正确");
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
return (menu());
}
}
}
}
void XingMingChaXun()//按姓名查找
{
char name1[20];
printf("\n\n\n\t\t请输入需要查找学生的姓名:");
scanf("%s",name1);
for(i=0;i<N;i++)
{
if(!strcmp(Stu[i].name,name1))
{
printf("\n\n\t\t查询成功");
printf("\n\n\t\t学生姓名:%s",Stu[i].name);
printf("\n\n\t\t学生年龄:%d",Stu[i].age);
printf("\n\n\t\t学生系部:%s",Stu[i].xibu);
printf("\n\n\t\t学生专业:%s",Stu[i].zhuanye);
printf("\n\n\t\t学生班级:%s",Stu[i].banji);
printf("\n\n\t\t学生学号:%d",Stu[i].number);
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
return (menu());
}
else
{
printf("\n\n\t\t你的输入的姓名不正确");
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
return (menu());
break;
}
}
}
查询学生信息,按姓名查找部分未完成!现在搞不定学号查找部分 , 按学号进行查找学生信息 。
只可以找到结构体数组的第一个 。只可以找到第一个学生。
第二个往后的。我输了正确的学号
就是找不出来 !!!
  • 打赏
  • 举报
回复
这论坛真让人学到东西。
  • 打赏
  • 举报
回复
好了 。我程序的问题都搞定了 ,,下一步添加:删除一个学生信息的功能上去 。
谢谢大虾们了 !!!!!
  • 打赏
  • 举报
回复
嗯。可以查找了!!!但是又有一个小问题,添加学生的时候添加到第三个,直接复制了第一个学生的信息。搞不懂!!我自己解决了,谢谢你了哈[Quote=引用 19 楼 qaz19870418 的回复:]

void XueHaoChaXun()//按学号查找
{
printf("\n\n\n\t\t请输入需要查找学生的学号:");
scanf("%d",&number1);
if((hero=fopen("学生管理系统.txt","r"))==NULL)
{
printf("文件打开失败!");
exit(1);
}
else
{
sp=Stu; ……
[/Quote]
later_equals_never 2011-07-15
  • 打赏
  • 举报
回复
void XueHaoChaXun()//按学号查找
{
printf("\n\n\n\t\t请输入需要查找学生的学号:");
scanf("%d",&number1);
if((hero=fopen("学生管理系统.txt","r"))==NULL)
{
printf("文件打开失败!");
exit(1);
}
else
{
sp=Stu;
for(i=0;i<N;i++,sp++)
{
fscanf(hero,"学生姓名:%s\n学生年龄:%d\n所属系部:%s\n学生专业:%s\n学生班级:%s\n学生学号:%d\n",sp->name,&sp->age,sp->xibu,sp->zhuanye,sp->banji,&sp-

>number);
fscanf(hero,"\t-\t-\t-\t-\t-\t-\t-\t-\n"); //读取多余的行
if(sp->number==number1)
{
printf("\n\n\t\t查询成功");
printf("\n\n\t\t学生姓名:%s",sp->name);
printf("\n\n\t\t学生年龄:%d",sp->age);
printf("\n\n\t\t学生系部:%s",sp->xibu);
printf("\n\n\t\t学生专业:%s",sp->zhuanye);
printf("\n\n\t\t学生班级:%s",sp->banji);
printf("\n\n\t\t学生学号:%d",sp->number);
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
fclose(hero);//关闭文件
return (menu());
}//if
}//for
if(i==N) //放到for循环外面
{
printf("\n\n\t\t你的输入的学号不正确");
printf("\n\n\t\t按任意键返回主菜单\n\t\t");
system("pause");
system("cls");
fclose(hero);//关闭文件
return (menu());
}

}//else
}
  • 打赏
  • 举报
回复
还是不行。
  • 打赏
  • 举报
回复
那么。。。你的意思。。。。我删了试试!!![Quote=引用 16 楼 qaz19870418 的回复:]

在Tianjia函数中每写入一个学生的信息就加了一行fprintf(hero,"\t-\t-\t-\t-\t-\t-\t-\t-\n");
而在查询的时候没有处理这一行字符
[/Quote]
later_equals_never 2011-07-15
  • 打赏
  • 举报
回复
在Tianjia函数中每写入一个学生的信息就加了一行fprintf(hero,"\t-\t-\t-\t-\t-\t-\t-\t-\n");
而在查询的时候没有处理这一行字符
fengskill 2011-07-15
  • 打赏
  • 举报
回复
mark正好近期我也要做。
jernymy 2011-07-14
  • 打赏
  • 举报
回复
看源码呢??
  • 打赏
  • 举报
回复
怎么上不了源代码。。。
课程设计题目 一、必做题。 1、链表排序 任务 : (1)从文件读入30个无序整数,建立一个单链表,排序输出、再倒序输出。 (2)从文件A读入30个无序整数,建立一个递增的单链表A并输出,从文件B读入30个无序整数,建立一个递增的单链表B并输出,在A求递增的并集。 (3)从文件读入30个学生成绩(0-100之间),建立一个双向循环链表并输出,调整链表顺序,使所有的及格成绩排在不及格成绩之前,并输出。 2、二叉树的应用 任务 :编程实现二叉树的建立,层次遍历,(递归和非递归方法)先序、序、后序,二叉树的高度、宽度。二叉排序树的建立、插入、删除; 基本要求:从文件读入建树信息,树的节点数目不小于20个,树的高度不小于5; 3、校园局域网布线和游历问题 任务 :用无向网表示你所在学校的主要建筑平面图,图顶点表示主要建筑,图的边表示建筑之间的道路,存放路径长度信息。要求能够建立校园局域网,所花的代价最小;给出任意建筑之间游历的最短路径。 基本要求: (1) 原始数据存在文件,方便读入; (2) 建筑物点不小于20个,边不小于30个; (3) 分别用广度优先和深度优先的方法遍历图,起始点定为1号教学楼; (4) 建立校园局域网,要求所花的代价最小; (5) 查询从1号教学楼到其他各点的最短路径; (6) 查询图任意两个建筑间的最短路径。 4、Hash表应用 任务 :设计散列表实现电话号码查找系统。 基本要求: 1) 设每个记录有下列数据项:电话号码、用户名、地址; 2) 从键盘或文件输入各记录,不少于30个,以电话号码为关键字建立散列表; 3) 采用链地址的方法解决冲突; 4) 查找显示给定电话号码的记录; 5、排序算法比较 任务 :利用随机函数产生10个样本(其之一已为正序,之一为倒序),每个样本有20000随机整数,利用直接插入排序、希尔排序,冒泡排序、快速排序、选择排序、堆排序,归并排序(递归和非递归),基数排序八种排序方法进行排序(结果为由小到大的顺序),并统计每一种排序所耗费的平均时间 二、选做题。 1、 运动会分数统计 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=10 , w=8 , n=15) 功能要求: 1).可以输入各个项目的前三名或前五名的成绩; 2).能统计各学校总分(用链表); 3).可以按学校编号、学校总分、男女团体总分排序输出(快速、基数); 4).可按学校编号查询学校某个项目的情况;可按项目编号查询前三或前五名的学校。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件。 测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料写明; 2、 迷宫求解 任务:可以读入一个任意大小的迷宫数据,分别用广度和深度搜索的方法求出一条走出迷宫的路径,并将路径输出(最佳路径); 要求:以较为直观的方式显示结果 3、 Huffman编码 任务 :对一篇英文文章,统计各字符出现的次数,实现Huffman编码; 要求:输出每个字符出现的次数和编码,其求最小权值要求用堆实现; 4、营业窗口队列模拟 任务:实现具有n(n=3)个窗口的现实队列模拟,统计每人的等待时间。 要求: 1). 随机产生顾客的到达时间和服务时间存盘。 2). 利用存盘数据实现队列的插入和删除。 2). 当有顾客离开时,根据队列长度调整队尾。 3). 考虑顾客途离队的情况。 4). 考虑顾客具有优先级的情况。 5、公交线路提示 任务:建立南京主要公交线路图。 要求:输入任意两站点,给出最佳的乘车线路和转车地点。 路线信息可上网查询 6、家谱管理系统 任务:实现具有下列功能的家谱管理系统 功能要求: 1). 输入文件以存放最初家谱各成员的信息,成员的信息均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。 2). 实现数据的存盘和读盘。 3). 以图形方式显示家谱。 4). 显示第n 代所有人的信息。 5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 6). 按照出生日期查询成员名单。 7). 输入两人姓名,确定其关系。 8). 某成员添加孩子。 9). 删除某成员(若其还有后代,则一并删除)。 10).修改某成员信息。 11).按出生日期对家谱所有人排序。 12).打开一家谱时,提示当天生日的健在成员。 要求:建立至少30个成员,以较为直观的方式显示结果,并提供文稿形式以便检查。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能。 存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件。测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料写明; 7、算术表达式求值 任务: 一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。假设操作数是正整数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#(7+15)*(23-28/4)#。引入表达式起始、结束符是为了方便。编程利用“算符优先法”求算术表达式的值。 要求: (1) 从键盘读入一个合法的算术表达式,输出正确的结果。 (2) 显示输入序列和栈的变化过程。 8、电子小字典 任务:建立一个微型电子字典,实现生词的加入,单词的查找、删除,修改等操作。 数据结构:键树 9、稀疏矩阵相乘 任务:以三元组形式存储稀疏矩阵,实现矩阵相乘 10、平衡二叉树 任务:平衡二叉树的建立、结点的插入和删除。 11、B-树 任务:3阶B-树的结点的插入和删除。 12、编写“连连看”程序。 13、……(自选合适的题目) 成绩评定细则:(优、良、、及格、不及格五等级) 1. 正确性:程序是否可以运行,结果是否正确(20%) 2. 功能的完备性:是否实现要求的所有子功能(20%) 3. 课程设计报告的算法说明,课程设计报告总结(20%) 4. 独立完成情况( 40%) 加分项目: 1.工作量和选题难度 2.可读性:代码编写是否规范,是否便于阅读。如函数、变量命名,‘{ }’的缩进,关键位置适量注释等 3.功能的完善:除要求实现的功能外,完成了其它的功能,实现了功能的完善 4.健壮性:异常处理的情况 5.界面的设计:可视化界面,或者交互良好的DOS界面 6. ……(自荐加分项目) 代码量要求:>=2500行。 代码总量 = 课设题目1 代码量 + 课设题目2 代码量…… 若代码总量低于2500行,则成绩按比例打折。 编程语言:C或C++语言 编程环境:Microsoft Visual C++ 6.0 检查方式:一对一上机检查 总体上检查程序的代码量,正确性,可读性,健壮性,功能的完备性,程序的结构是否合理;根据实际情况进行详细的程序代码检查。 时间安排: 1 上机时间安排 2课程设计检查时间 3 课程设计报告上交时间 课程设计报告要求: 1.课程设计报告封面:包括课题名称、班级、学号学生姓名、成绩和指导教师; 2.课程设计报告目录:每部分内容所在页码; 3.需求分析:给出每道题的需求; 4.概要设计:给出每道题采用的数据结构,算法设计思想,算法的时间复杂度; 5.详细设计:给出每道题的源程序,并在必要的代码处给出注释; 6.功能测试:给出每道题的测试数据和结果; 7.完成情况:每道题完成部分和未完成部分,自己最满意的部分; 8.代码量:每道题代码的行数和总行数; 9.心得体会:包括课程设计设遇到的问题,如何解决,编程的体验,感想和建议; 10.课程设计报告的电子文档在检查后一周内上交班长。
课程设计报告 "题目 "实验设备管理系统 " "系别 "数学与计算机科学系 "班级 "11信管班 " " " "学号 " " " " " " " " " " " " " " " " " " " " " " "指导教师 "邓永江 "职称 "讲师 " 二 一二年 六 月 1.课程设计目的 任务: 已知实验室有某些实验设备〔要求各设备数据不同,如: "设备编号 "设备名称 "设备购入日期 "设备价格 "是否报废 "报废日期 " "0001 "电子分 " "3200 "是 " " " "析天平 " " " " " "0002 "旋转粘度计" "5200 "否 " " "0003 "高效液 " "7500 "否 " " " "相色谱仪 " " " " " "…… "…… "…… "…… "…… "…… " 可以增现需要删除已报废的某实验设备信息,同时添加某实验设备的信息〔编号、名 称、种类、价格、购入日期、是否报废、报废日期,插入位置按名称升序排列。 请根据所学过的知识用C编程实现此操作。 要求: 1. 现有N个实验设备的数据要求从数据文件读入,不用交互方式录入; 2. 拟删除设备名称及新添加设备的数据采用交互方式输入; 3. 删除及插入操作完毕,需将设备信息表的所有记录按设备名称升序方式显示出来; 4. 将更新后的实验设备信息表保存到另一个数据文件; 5.加功能:如修改某设备信息。 目的: 1. 训练学生灵活应用所学知识,独立完成问题分析,结合C程序设计理论知识,编写程序求解 指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能 ; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规进行软件开发,巩固、深化学生的理论知识,提 高编程水平,并在此过程培养他们严谨的科学态度和良好的工作作风。 2、系统总体设计 实验室设备信息用文件存储,提供文件输入输出操作;要能够完成设备的录入和修 改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现 对设备查询需要提供查找操作,设备的查询可根据设备编号 设备种类 设备购入日期 正常设备〔未报废的等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。 〔1整个系统可设计为实验设备信息输入模块 实验设备信息添加模块 实验设备信息修改模块 实验设备分类统计模块和实验设备查询模块。 〔2建立实验设备信息结构体,结构体成员包括设备编号 设备种类 设备名称 设备价格 设备购入日期 是否报废 报废日期。 各模块之间的关系调用图如图2-1所示。 图2-1 各模块之间的关系调用图 3.详细设计 〔1头文件 #include #include #include 〔2主函数算法如下 #include main<> {int flag; printf<"********************目录******************** ">; printf<"\n1添加记录\n">; printf<"\n2修改记录\n">; printf<"\n3显示记录\n">; printf<"\n4统计分类记录\n">; printf<"\n0*-EXIT-*\n">; printf<"请输入你要操作的序号:">; scanf<"%d",&flag>; switch { case 0: printf<"\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n">;break; case 1: Add; break; //增加记录 case 2: Modify; break;//修改记录 case 3: Disp; break;//显示记录信息 case 4: Tongji; break;//统计记录 default: printf<"\n>>>>>>>>>>提示:输入错误!\n">; break;}}} 〔3信息输入,添加函数 #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

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧