一个教材管理系统,给你参考下
void shumingsearch(struct book *head) /*按教材名称查找*/
{ struct book *p;
char name[20];
int c;
if(head==NULL) {printf("未打开任何文件");getchar();return;}
printf("1,查找专业 2,查找教材名称:");
scanf("%d",&c);
getchar();
if(c==2)
printf("请输入要查找的教材名称:");
else printf("请输入要查找的专业:");
gets(name);
p=head;
do{ if(c==2)
if(strcmp(p->shuming,name)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);
}
if(c==1)
if(strcmp(p->zhuanye,name)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);
}
p=p->next;
}while(p!=NULL);
printf("查找完成");
return;
}
struct book *add(struct book *head) /*增加记录*/
{ struct book *p,*e,*f,*h;
if(head==NULL) {printf("未打开任何文件");getchar(); return NULL;}
h=f=e=head;
p=(struct book *)malloc(sizeof(struct book));
printf("\n教材编号:");
gets(p->number);
printf("\n教材名称:");
gets(p->shuming);
printf("\n数量:");
scanf("%d",&p->shuliang);
printf("\n价格:");
scanf("%d",&p->jiage);
getchar();
printf("\n专业:");
gets(p->zhuanye);
printf("\n作者:");
gets(p->zuozhe);
printf("\n出版社:");
gets(p->chubanshe);
printf("\n备注:");
gets(p->beizhu);
if(strcmp(f->number,p->number)>0) { p->next=f;h=p;printf("\n添加成功");return h;}
if(f->next==NULL) { f->next=p;p->next=NULL;printf("\n添加成功");return h;}
do{
if(f->next!=NULL)
if(strcmp(f->number,p->number)>0)
{
e->next=p;p->next=f;printf("\n添加成功");return h;
}
if(f->next==NULL)
{
f->next=p;
p->next=NULL;
printf("\n添加成功");
return h;
}
f=f->next;
e=e->next;
}while(1);
}
struct book *delet(struct book *head) /*删除记录*/
{ struct book *p,*e;
char num[20];
if(head==NULL) {printf("未打开任何文件");getchar();return NULL;}
printf("请输入要删除的教材编号:");
scanf("%s",num);
p=e=head;
if(strcmp(p->number,num)==0) { head=head->next; print(head);return head;}
else p=p->next;
do{
if(strcmp(p->number,num)==0)
{
if(p->next!=NULL)
e->next=p->next;
if(p->next==NULL) e->next=NULL;
print(head);
return head;
}
p=p->next;
e=e->next;
}while(p!=NULL);
printf("搜索完毕,未找到该记录");
return head;
}
struct book *change(struct book *head) /*修改记录*/
{ struct book *p;
char num[20];
if(head==NULL) {printf("未打开任何文件");getchar();return NULL;}
printf("请输入要修改的教材编号:");
scanf("%s",num);
getchar();
p=head;
do{
if(strcmp(p->number,num)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu);
printf("\n教材编号:");
gets(p->number);
printf("\n教材名称:");
gets(p->shuming);
printf("\n数量:");
scanf("%d",&p->shuliang);
printf("\n价格:");
scanf("%d",&p->jiage);
getchar();
printf("\n专业:");
gets(p->zhuanye);
printf("\n作者:");
gets(p->zuozhe);
printf("\n出版社:");
gets(p->chubanshe);
printf("\n备注:");
gets(p->beizhu);
printf("修改成功");
return head;
}
p=p->next;
}while(p!=NULL);
printf("未找到要修改的记录");
return head;
}
int mima()
{ FILE *fp;
char mima1[20],mima2[20];
if((fp=fopen("mima","r"))==NULL)
{ printf("尚未设置密码请输入:");
scanf("%s",mima1);
printf("请再次输入密码:");
scanf("%s",mima2);
if(strcmp(mima1,mima2)!=0) { printf("两次密码不一样");return 0;}
else {
fp=fopen("mima","w");
fprintf(fp,"%s",mima1);
printf("密码设置成功");
return 1;
}
}
printf("请输入初始化密码:");
scanf("%s",mima1);
fscanf(fp,"%s",mima2);
if(strcmp(mima1,mima2)==0)
{
printf("密码正确");
printf("请输入要删除的文件名:");
scanf("%s",mima1);
if(remove(mima1)==0)
{
printf("删除成功");
getchar();
return 1;
}
else {
printf("删除失败,请检查是否存在该文件或路径是否正确");
getchar();
return 0;
}
}
else {
printf("密码错误");
getchar();
return 0;
}
}
void main()
{
struct book *head=NULL;
char i;
getch();
system("cls");
do{
printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n");
printf("m--菜单 h--帮助");
printf("\n请输入命令:");
i=getch();
if(i=='h')
{ printf("\n1,录入教材信息的时候,每一个项目都必须输入相应的内容。\n2,修改,增加,删除,查找记录前必须先打开一个文件,修改完后必须记得保存教材信息。\n3,必须使用正确的路径打开文件,建议保存文件时候不用输入路径(此时是默认路径,即保存在程序目录下。)");
getch();
break;
}
if(i=='m')
break;
system("cls");
}while(i!='m'||i!='h');
system("cls");
do{
printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n");
printf("┌————-———┐\n");
printf("│1,录入教材信息│\n│2,显示教材信息│\n│3,打开一个记录│\n│4,编辑一个记录│\n│5,保存教材信息│\n│6,查找记录 │\n│s,初始化系统 │\n│e,退出系统 │\n");
printf("└———————-┘\n");
printf("\n请输入功能编号:");
i=getch();
system("cls");
switch(i)
{
case '1': head=creat();save(head);break;
case '2': print(head);break;
case '3': head=openfile();break;
case '4': system("cls");
printf("┌————-———┐\n");
printf("│1,增加一个记录│\n");
printf("│2,删除一个记录│\n");
printf("│3,修改一个记录│\n");
printf("└———————-┘\n");
i=getch();
switch(i)
{
case '1':
head=add(head);break;
case '2':
head=delet(head);break;
case '3': head=change(head);break;
default: break;
}
break;
case '5': save(head);break;
case '6': shumingsearch(head);break;
case 's': mima();break;
case 'e': exit(0);
default :break;
}
system("cls");
}while(1);
}
温馨提示:内容为网友见解,仅供参考
用C或C++编程实现数据库的查询,添加,删除,修改功能。
int c;if(head==NULL) {printf("未打开任何文件");getchar();return;} printf("1,查找专业 2,查找教材名称:");scanf("%d",&c);getchar();if(c==2)printf("请输入要查找的教材名称:");else printf("请输入要查找的专业:");gets(name);p=head;do{ if(c==2)if(strcmp(p->...
...用C++编写一个使用结构体数组实现添加,删除,修改,查询功能的程序!在...
point.点的name = 某值;添加:m_arrMyPoint.Add(point);m_arrMyPoint.InsertAt(位置,point);删除:m_arrMyPoint.RemoveAt(位置,删除数量);修改:MyPoint newPoint;m_arrMyPoint.SetAt(位置,newPoint);或直接赋值:m_arrMypoint.GetAt(位置).某值 = 新值;查询:这个没有现成功能,自己写...
数据结构作业~急求~~~用c语言或c++ 使用单链表实现系统进程列表,完成...
1、数据域:用来存储本身数据 2、链域或称为指针域:用来存储下一个结点地址或者说指向其直接后继的指针。例:typedef strUCt node { char name[20];struct node *link;}stud;这样就定义了一个单链表的结构,其中char name[20]是一个用来存储姓名的字符型数组,指针*link是一个用来存储其直接后继...
...要求实现查询,修改,添加,删除学生成绩。任意一个
printf("请输入第%d个记录:\\n",n+1);printf("姓名(用#结束):\\n");do gets(temp.name);while(strcmp(temp.name,"")==0);printf("学号(用#结束):\\n");do gets(temp.number);while(strcmp(temp.number,"")==0);printf("英语成绩:\\n");do { scanf("%f",&temp.scor_eng);} wh...
用C语言实现线性表的顺序存储(创建,插入,删除和查找)
\/\/功能:根据学号和姓名来查询某个学生\/\/参数:filename数据库文件\/\/返回值:失败返回0\/\/直接搜索文件,缺点是速度慢\/\/也可先根据文件创建链表,再搜索链表,缺点是如果文件较大,占用内存多{ system("cls"); FILE *fp; STUDENT stu; int num; char stu_name[64]; char ch; if(filename==NULL) { return 0...
用C或C++实现一个简单的DBMS
这个是我以前写的,,没有注释,,包括数组的创建,排序,删除,插入,,,其实还少一个保存数据文件和载入 也就是save();load();应该很好写的,,,你可以参考一下相应的函数,,这是代码:include <stdio.h> include <stdlib.h> typedef struct p{ int a; p *next;}P;P* create();...
【速求C\/C++】制作一个图书馆管理系统,其功能包括增加、删除、修改图...
③修改图书函数。功能:打开文件,根据图书名称,查找相应记录,分情况修改图书的某一项信息,最后保存文件。⑥借书函数。功能:打开文件,按图书名称查找是否有相应图书,如果有该图... ③ 修改图书函数。功能:打开文件,根据图书名称,查找相应记录,分情况修改图书的某一项信息,最后保存文件。⑥ 借书函数。功能:打开文件,按...
C++编程 设计一个简单的计算机程序,实现加、减、乘、除运算
涉及三个变量,用int类型,中间用if语句选择,当要实现加法时,就用if语句选择+。用前两个整型所加结果付给第三个整型,并输出。
用C++语言编写一个“学生成绩管理系统”。
要求可以实现学生数据的输入、输出、修改、查询和删除等简单功能;学生的有关数据保存在数据文件grade.dat中。本系统应包含下列6个函数:(1)main函数显示菜单,并可选择某种操作,然... 要求可以实现学生数据的输入、输出、修改、查询和删除等简单功能;学生的有关数据保存在数据文件grade.dat中。本系统应包含下列6个...
...能实现对学生成绩记录的显示,查询,修改添加和删除
student(char name[],char numble[],char sex[],float a,float b,float c);student(student &s);void input();\/\/输入学生信息:姓名,学号,性别,英语,数学,语文 float pj();\/\/获取平均分 void stu_delete(student stu[]);\/\/删除 void stu_find(student stu[]);void dispaly();\/\/...