C语言 帮忙设计个小程序 我有多少分给你多少分!

借阅证管理程序
【题目描述】
请设计一个图书借阅证的管理程序。该程序应该具有下列基本功能:
(1) 录入图书借阅证的基本信息(借阅证号(自动产生)、姓名、单位、可借图书数、借阅图书信息);
(2) 给定图书借阅证号,显示此借阅证的基本信息;
(3) 给定图书借阅证号,书名,进行借阅信息处理;
(4) 给定图书借阅证号,书名,进行还书信息处理;
(5) 增加一个借阅证;
(6) 删除一个借阅证;
(7) 修改借阅证信息;

【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1) 应用程序运行后,要在屏幕上显示一个菜单;
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
使用结构类型和一维数组,用来保存借阅证的内容。

四、课程设计考核方式和成绩评定
每位学生综合解决问题的能力将反映在该学生设计的程序和编写的课程设计报告中,因此本课程设计的考核内容主要由两部分组成。
(1)C语言程序
这部分内容由指导教师在机房现场检查程序的运行情况,并考查下列主要内容:
 是否符合题目要求,是否完成了基本功能要求,增加了哪些扩张功能。
 是否存在语法错误、逻辑错误及运行错误。
 程序设计是否合理。
 程序是否具有良好的可读性和可靠性。
 用户界面是否友好。
(2)课程设计报告
这部分内容考查下列主要内容:
 是否按规定书写实验报告的各项内容,内容是否全面,观点是否正确。
 设计过程是否符合结构化程序设计方法的基本原则。
 层次是否清楚,语言是否通顺。
 各种图表是否规范。

要把说明写详细!老师会一句一句问! 要快!!!明天交!
200行代码就够了吧啊

#include<stdlib.h>
#include<stdio.h>
#include<iostream.h>

typedef struct BookInfo /////图书结构
{
int b_Code; ////图书编号
char b_Name[20]; /////名称
int b_Total; /////总数
int b_Out; ///借出数
BookInfo* nextbook; //////下一类图书
}BookInfo;

typedef struct MemberInfo ///会员结构
{
long m_Code; /////会员编号
char m_Name[20]; ////会员名字
int l_Codes[6]; /////以借书的编号,最多5
MemberInfo* nextmember; ////下一会员
}MemberInfo;

typedef struct System ///管理系统结构
{
BookInfo* BI;
MemberInfo* MI;
int BookTotal; ////图书类库存量
int MemberTota; /////会员数量
}System;

System* InitSystem();/////
void AddBook(System*);////增加图书
BookInfo* SearchBook(System*,int);////查询图书信息

void DelBook(System*);/////删除图书

void BrrowBook(System*);///////借书处理
void TurnBackBook(System*);////还书处理

void AddMember(System*);/////添加会员
void DelMember(System*);////删除会员
MemberInfo* SearchMember(System*,int);/////查询会员信息

void StoreData(System*);

void LoadData(System*);
void ExitSystem();
void main()
{
System* S=InitSystem();
int sel;
do
{
cout<<"\n\t\t\t\t图书管理系统"<<endl;
cout<<"\t\t\t******************************"<<endl;
cout<<"\t\t\t******************************"<<endl;
cout<<"\t\t\t 1.增加图书.\t 2.查询图书.\n\t\t\t 3.删除图书.\t 4.借书处理.\n\t\t\t 5.还书处理.\n\t\t\t 6.添加会员.\t 7.删除会员.\n\t\t\t 8.查询会员.\t 9.载入数据.\n\t\t\t10.保存数据.\t11.退出程序.\n";
cout<<"\t\t\t******************************"<<endl;
cout<<"\t\t\t******************************"<<endl;
cout<<"请选择:";
do
{
cin>>sel;
if (sel>=1&&sel<=11)break;
cout<<"选择错误!\n重新输入:"<<endl;
}
while (1);
switch (sel)
{
case 1:
AddBook(S);
break;
case 2:
SearchBook(S,-1);
break;
case 3:
DelBook(S);
break;
case 4:
BrrowBook(S);;
break;
case 5:
TurnBackBook(S);
break;
case 6:
AddMember(S);
break;
case 7:
DelMember(S);
break;
case 8:
SearchMember(S,-1);
break;
case 9:
LoadData(S);
break;
case 10:
StoreData(S);
break;
default:
ExitSystem();
}
}
while (1);
}
System* InitSystem()
{
System* S=(System*)malloc(sizeof(System));
S->BI=(BookInfo*)malloc(sizeof(BookInfo));
S->BookTotal=0;
S->BI->nextbook=NULL;
S->MI=(MemberInfo*)malloc(sizeof(MemberInfo));
S->MemberTota=0;
S->MI->nextmember=NULL;
return S;
}
void AddBook(System* S)
{
int Tempcode;
char sel;
BookInfo* p=S->BI;
BookInfo* t;
BookInfo* m;
int num;
do
{
cout<<"输入图书编号:";
cin>>Tempcode;
if (m=SearchBook(S,Tempcode))
{
cout<<"这类书以有库存.\n输入图书的入库量:"<<endl;
cin>>num;
m->b_Total+=num;
}
else
{
t=(BookInfo*)malloc(sizeof(BookInfo));
t->b_Code=Tempcode;
cout<<"输入图书的名称:";
cin>>t->b_Name;
cout<<"输入图书的入库量:";
cin>>t->b_Total;
t->b_Out=0;
t->nextbook=p->nextbook;
p->nextbook=t;
S->BookTotal++;
}
cout<<"添加完毕!"<<endl;
cout<<"还要添加吗?(Y/N)";
cin>>sel;
if (sel=='n'||sel=='N')
{
cout<<"结束添加"<<endl;
return;
}
}
while (1);
}
BookInfo* SearchBook(System* S,int code)
{
BookInfo* bi=S->BI->nextbook;
int bookcode;
if (code==-1)
{
cout<<"请输入要查询的图书编号:";
cin>>bookcode;
}
else bookcode=code;
while (bi&&bi->b_Code!=bookcode)bi=bi->nextbook;
if (code==-1)
{
if (!bi)cout<<"没找到你所要的图书."<<endl;
else
{
cout<<"图书编号为:"<<bi->b_Code<<endl;
cout<<"图书名称为:"<<bi->b_Name<<endl;
cout<<"图书库存量为:"<<bi->b_Total<<endl;
cout<<"图书借出量为:"<<bi->b_Out<<endl;
}
}
return bi;
}

void DelBook(System* S)
{
BookInfo* bi;
BookInfo* pl=S->BI;
MemberInfo* memi;
char sel;
int tempcode;
int i;
do
{
pl=S->BI;
bi=pl->nextbook;
memi=S->MI->nextmember;

cout<<"请输入要删除的图书的编号:";
cin>>tempcode;
while (bi)
{
if (bi->b_Code==tempcode)break;
pl=bi;
bi=bi->nextbook;
}
if (bi==0)cout<<"没有找到要删除的图书"<<endl;
else
{
pl->nextbook=bi->nextbook;
S->BookTotal--;
while (memi)
{
for (i=1;i<=memi->l_Codes[0];i++)
{
if (memi->l_Codes[i]==tempcode)break;
}

if (i<=memi->l_Codes[0])
{
for (;i<memi->l_Codes[0];i++)memi->l_Codes[i]=memi->l_Codes[i+1];
memi->l_Codes[0]--;
}
memi=memi->nextmember;
}
free(bi);
}
cout<<"还有图书要删除吗?(Y/N)";
cin>>sel;
if (sel=='N'||sel=='n')
{
cout<<"删除图书结束"<<endl;
return;
}
}
while (1);
}
void BrrowBook(System* S)
{
BookInfo* bi=S->BI->nextbook;
BookInfo* p;
char sel;
int memcode;
MemberInfo* mp;
int tempcode;
do
{
cout<<"输入要借出的书号:";
cin>>tempcode;
p=SearchBook(S,tempcode);
if (!p)
{
cout<<"没有找到要借出的图书."<<endl;
}
else
{
cout<<"此书的现存量为"<<(p->b_Total-p->b_Out)<<endl;
if (!(p->b_Total-p->b_Out))cout<<"没有足够的书了,外借失败."<<endl;
else
{
cout<<"请输入会员编号:";
cin>>memcode;
mp=SearchMember(S,memcode);
if (!mp)cout<<"会员编号输入错误,外借失败"<<endl;
else
{
if (mp->l_Codes[0]==5)cout<<"借书量不能超过5本";
else
{
p->b_Out++;
mp->l_Codes[++mp->l_Codes[0]]>=tempcode;
cout<<"外借成功."<<endl;
}
}
}
}
cout<<"\n还有图书要借出吗?(Y/N)";
cin>>sel;
if (sel=='N'||sel=='n')
{
cout<<"外借操作结束."<<endl;
return;
}
}
while (1);
}
void TurnBackBook(System* S)
{
BookInfo* bi=S->BI->nextbook;
BookInfo* p;
MemberInfo* mp;
int membercode;
int tempcode;
int i;
char sel;
do
{
cout<<"输入归还书号:";
cin>>tempcode;
p=SearchBook(S,tempcode);
if (!p)
{
cout<<"书号输入错误."<<endl;
}
else
{
cout<<"此书的现存量为"<<(p->b_Total-p->b_Out)<<endl;
cout<<"请输入会员编号:";
cin>>membercode;
if (!(mp=SearchMember(S,membercode)))cout<<"会员编号输入错误,归还失败"<<endl;
else
{
p->b_Out--;
for (i=1;i<=mp->l_Codes[0];i++)
{
if (mp->l_Codes[i]==tempcode)break;
}
while (i<mp->l_Codes[0])
{
mp->l_Codes[i]=mp->l_Codes[i+1];
i++;
}
mp->l_Codes[0]--;
cout<<"归还成功."<<endl;
}
}
cout<<"还有要归还的图书吗?(Y/N)";
cin>>sel;
if (sel=='N'||sel=='n')
{
cout<<"归还结束."<<endl;
return;
}
}
while (1);
}

void AddMember(System* S)
{
int Tempcode;
char sel;
MemberInfo* p=S->MI;
MemberInfo* t;
do
{
cout<<"输入会员编号:";
cin>>Tempcode;
t=(MemberInfo*)malloc(sizeof(MemberInfo));
t->m_Code=Tempcode;
cout<<"输入会员姓名:";
cin>>t->m_Name;
t->l_Codes[0]=0;
t->nextmember=p->nextmember;
p->nextmember=t;
S->MemberTota++;
cout<<"添加完毕!"<<endl;
cout<<"还要添加吗?(Y/N)";
cin>>sel;
if (sel=='n'||sel=='N')
{
cout<<"结束添加"<<endl;
return;
}
}
while (1);
}

MemberInfo* SearchMember(System* S,int code)
{
MemberInfo* bi=S->MI->nextmember;
int membercode;
int i;
if (code==-1)
{
cout<<"请输入要查询的会员编号:";
cin>>membercode;
}
else membercode=code;
while (bi&&bi->m_Code!=membercode)bi=bi->nextmember;
if (code==-1)
{
if (!bi)cout<<"没找到指定会员."<<endl;
else
{
cout<<"会员编号为:"<<bi->m_Code<<endl;
cout<<"名称为:"<<bi->m_Name<<endl;
cout<<"已借的图书有:"<<bi->l_Codes[0]<<"本."<<endl;
for (i=1;i<=bi->l_Codes[0];i++)
cout<<bi->l_Codes[i]<<' ';
cout<<endl;
}
}
return bi;
}
void DelMember(System* S)
{
MemberInfo* bi;
MemberInfo* pl;
BookInfo* book;
char sel;
int i;
int tempcode;
do
{
bi=S->MI->nextmember;
pl=S->MI;
cout<<"请输入要删除的会员的编号:";
cin>>tempcode;
while (bi)
{
if (bi->m_Code==tempcode)break;
pl=bi;
bi=bi->nextmember;
}
if (!bi)cout<<"没有找到要删除的会员编号.";
else
{
pl->nextmember=bi->nextmember;
S->MemberTota--;
for (i=1;i<=bi->l_Codes[0];i++)
{
if (!(book=SearchBook(S,bi->l_Codes[i])))
{
cout<<"删除会员出错!"<<endl;
}
else
{
book->b_Out--;
book->b_Total--;
}
}
free(bi);
}
cout<<"还有会员要删除吗?(Y/N)";
cin>>sel;
if (sel=='N'||sel=='n')
{
cout<<"删除会员结束"<<endl;
return;
}
}
while (1);
}

void StoreData(System* S)
{
FILE* fp;
BookInfo* bi=S->BI->nextbook;
if (!(fp=fopen("BookSys","wb")))
{
cout<<"打开文件BookSys失败!"<<endl;
exit(0);
}
fwrite(&(S->BookTotal),sizeof(int),1,fp);
while (bi)
{
fwrite(bi,sizeof(BookInfo),1,fp);
bi=bi->nextbook;
}
MemberInfo* mi=S->MI->nextmember;
fwrite(&(S->MemberTota),sizeof(int),1,fp);
while (mi)
{
fwrite(mi,sizeof(MemberInfo),1,fp);
mi=mi->nextmember;
}
fclose(fp);
}

void LoadData(System* S)
{
FILE* fp;
if (!(fp=fopen("BookSys","rb")))
{
cout<<"打开文件BookSys失败"<<endl;
exit(0);
}
BookInfo* bi=S->BI;
BookInfo* tempbi;
fread(&(S->BookTotal),sizeof(int),1,fp);
for (int i=1;i<=S->BookTotal;i++)
{
tempbi=(BookInfo*)malloc(sizeof(BookInfo));
fread(tempbi,sizeof(BookInfo),1,fp);
bi->nextbook=tempbi;
bi=tempbi;
}
bi->nextbook=NULL;

MemberInfo* mi=S->MI;
MemberInfo* tempmi;
fread(&(S->MemberTota),sizeof(int),1,fp);
for (int i=1;i<=S->MemberTota;i++)
{
tempmi=(MemberInfo*)malloc(sizeof(MemberInfo));
fread(tempmi,sizeof(MemberInfo),1,fp);
mi->nextmember=tempmi;
mi=tempmi;
}
mi->nextmember=NULL;
fclose(fp);
}
void ExitSystem()
{
char select;
cout<<"警告: 程序结束后未存储的数据将消失."<<endl;
cout<<"确定要退出吗?(Y/N)";
cin>>select;
if (select=='y'||select=='Y')exit(0);
if (select=='n'||select=='N')return;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

求助C语言大神帮忙编个小程序啊!!!哭死。。期末作业弄不出来。。。T...
题目比较简单,但写起来比较麻烦。5分,太少了。如果不急的话,采纳,我明天抽时间写一个给你。

帮我写几个简单的C语言的小程序吧!老师要求用循环语句。谢谢啦!
include<stdio.h> include<math.h> void no1(unsigned x){ int i;for(i=1;i<=x;i++){ if(x%i==0){ printf("%u \\n",i);} } } void no2(void){ int i,j;for(i=0;i<5;i++){ for(j=0;j<=i;j++){ printf("%d",1);} putchar('\\n');} } void no3(unsigned ...

用C语言写一个小程序!
gotoxy(1,1);printf("|---|");gotoxy(1,2);printf("| money management system(C1.0) 2000.03 |");gotoxy(1,3);printf("|---|");gotoxy(1,4);printf("| -- money records -- | -- today cost list -- |");gotoxy(1,...

设计一个双人跳水的计分小程序(C语言)[解出来了另外加分]
{ float tb[50],js[50];\/\/两个数组为同步分和技术分 int i,j;\/\/记录分数的个数 float maxtb=0,mintb=10000,maxjs=0,minjs=10000;\/\/同步分和技术分的最高和最低分,最高分初始为0,最低分初始为10000,以便后面比较 float sumtb=0,sumjs=0;\/\/总分 printf("请输入同步分,输入0结束...

会C语言的朋友帮个忙啊 帮我编个小程序
我的 会C语言的朋友帮个忙啊 帮我编个小程序 一、总体要求1、对实际问题进行分析、写出算法分析。2、设计程序结构3、给出设计的各模块。4、提交各应用程序的源程序清单。6、课程设计选择turboc二、课程设计的内容和具体要求主要包... 一、总体要求1、对实际问题进行分析、写出算法分析。2、设计程序结构3、给...

用c语言编写小程序
{ int i,j;i=0;for(i=0;i<n;i++){ j=0;while(str[j]!='\\0'){ data[i][j]=(int)(str[(j+i)%n]-0x30);j++;} } } void main(){ char str[]="123";\/*也可以自己输入串并检测串长度,这只是个测试程序*\/ int n=3;func(str,3);for(int i=0;i<n;i++){ int...

我写了一个c语言小程序,功能是输入一个百分制成绩,输出对应的等级...
scanf("%d\\n",&x);这句把 \\n去掉,就是改成scanf("%d",&x);还有就是return 0; 后面要加}

用C语言写一个小程序(一个小功能就可以了),要求:100行代码左右,不要太...
一定要用C语言写哦,100行代码,一个小功能就可以(也不要太简单,上次写了个打印图形什么,被老师骂死了,5555),因为期末课程设计,不能和其他同学相同,尽量自己写一个好吗,谢谢... 一定要用C语言写哦,100行代码,一个小功能就可以(也不要太简单,上次写了个打印图形什么,被老师骂死了,5555),因为期末课程设计,...

c语言编个小程序
本题的一个完整c程序如下,win-tc和Dev-c++下已调试通过。其中通用排序函数为void sort()include "stdio.h"include "stdlib.h"include "conio.h"include "string.h"define ROW 100 define COL 80 void sort();int main(){ int n,i;char s[ROW][COL+1];printf("Please input the number ...

求C语言小程序源代码,300行左右
认证团队 合伙人 企业 媒体 政府 其他组织 商城 手机答题 我的 求C语言小程序源代码,300行左右 10 小游戏什么的都可以。这些我都有了,没有新一点的吗?... 小游戏什么的都可以。这些我都有了,没有新一点的吗? 展开  我来答 4个回答 #热议# 你发朋友圈会使用部分人可见功能吗?hi...

相似回答