有没有300行左右的C语言课程设计的源代码??

一个管理系统的那种

#include <stdio.h>
#include <stdlib.h>
#include "windows.h"
#include "string.h"

#define S_MAX 50

int user_count=0;     //用户信息的总数
int book_count=0;
char ini_path[100]={"\0"};   //数据文件的绝对路径
char user_path[100]={"\0"};  //用户数据文件的绝对路径
char book_path[100]={"\0"};
int book_pos=0;                    //book数组的计数 
int user_pos=0;

struct user_data
{
char name[10];
char book_name[50];
}user[S_MAX];

struct book_data
{
char no[10];
char name[50];
char author[30];
char money[10];
char in_or_out[10];
char user_name[10];
}book[S_MAX];

void read_file()   //从文件读取数据 
{
user_pos=0;
int i;
for(i=0;i<S_MAX;i++)
{
memset(user[i].name,'\0',10);
memset(user[i].book_name,'\0',50);

memset(book[i].no,'\0',10);
memset(book[i].name,'\0',50);
memset(book[i].author,'\0',30);
memset(book[i].money,'\0',10);
memset(book[i].in_or_out,'\0',10);
memset(book[i].user_name,'\0',10);
}
user_count=GetPrivateProfileInt("USER","user_count",0,user_path);
book_count=GetPrivateProfileInt("book","book_count",0,book_path);

for(i=0;i<user_count;i++)
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"name","",user[i].name,10,user_path);
GetPrivateProfileString(t,"book_name","",user[i].book_name,50,user_path);
user_pos++;
}
for(i=0;i<book_count;i++)
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"no","",book[i].no,10,book_path);
GetPrivateProfileString(t,"name","",book[i].name,50,book_path);
GetPrivateProfileString(t,"author","",book[i].author,30,book_path);
GetPrivateProfileString(t,"money","",book[i].money,10,book_path);
GetPrivateProfileString(t,"in_or_out","",book[i].in_or_out,10,book_path);
GetPrivateProfileString(t,"user_name","",book[i].user_name,10,book_path);
book_pos++;
}
}

void write_file()
{
int i;
for(i=0;i<user_count;i++) 
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",NULL,user_path);
WritePrivateProfileString(t,"book_name",NULL,user_path);

WritePrivateProfileString(t,"no",NULL,book_path);
WritePrivateProfileString(t,"name",NULL,book_path);
WritePrivateProfileString(t,"author",NULL,book_path);
WritePrivateProfileString(t,"money",NULL,book_path);
WritePrivateProfileString(t,"in_or_out",NULL,book_path);
WritePrivateProfileString(t,"user_name",NULL,book_path);
}
char temp[5]={"\0"};
int temp_count=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,"")==0)
{
continue;
}
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",user[i].name,user_path);
WritePrivateProfileString(t,"book_name",user[i].book_name,user_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("USER","user_count",temp,user_path);

temp_count=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,"")==0)
{
continue;
}
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"no",book[i].no,book_path);
WritePrivateProfileString(t,"name",book[i].name,book_path);
WritePrivateProfileString(t,"author",book[i].author,book_path);
WritePrivateProfileString(t,"money",book[i].money,book_path);
WritePrivateProfileString(t,"in_or_out",book[i].in_or_out,book_path);
WritePrivateProfileString(t,"user_name",book[i].user_name,book_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("BOOK","book_count",temp,book_path);
}

void search_user_name()     //按借书人姓名查询
{
system("cls");
char search_key[10]={"\0"};
printf("请输入要查询图书借书人:");
scanf("%s",search_key);
int i;
int s[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
int s_i=0;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].user_name,search_key)==0)
{
find=1;
s[s_i]=i;
s_i++;
printf("\n编    号: %s",book[i].no);
printf("\n名    称: %s",book[i].name);
printf("\n作    者: %s",book[i].author);
printf("\n金    额: %s",book[i].money);
printf("\n状    态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
else
{
for(i=0;i<s_i;i++)
{
printf("\n\n第%d本书:     %s",i+1,book[i].name);
}
printf("\n\n共%d本",i);
}
fflush(stdin);
getchar();
}

void search_book_author()   //按图书作者查询
{
system("cls");
char search_key[50]={"\0"};
printf("请输入要查询图书的作者:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].author,search_key)==0)
{
find=1;
printf("\n编    号: %s",book[i].no);
printf("\n名    称: %s",book[i].name);
printf("\n作    者: %s",book[i].author);
printf("\n金    额: %s",book[i].money);
printf("\n状    态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}

void search_book_name()  //按图书名称查询
{
system("cls");
char search_key[50]={"\0"};
printf("请输入要查询图书的名称:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,search_key)==0)
{
find=1;
printf("\n编    号: %s",book[i].no);
printf("\n名    称: %s",book[i].name);
printf("\n作    者: %s",book[i].author);
printf("\n金    额: %s",book[i].money);
printf("\n状    态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}

void search_book_no()   //按图书编号查询 
{
system("cls");
char search_key[10]={"\0"};
printf("请输入要查询图书的编号:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,search_key)==0)
{
find=1;
printf("\n编    号: %s",book[i].no);
printf("\n名    称: %s",book[i].name);
printf("\n作    者: %s",book[i].author);
printf("\n金    额: %s",book[i].money);
printf("\n状    态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}
void search_all_book()   //查询所有图书 
{
system("cls");
if(book_pos==0) 
{
printf("真TM穷,一本书都没有");
}
else
{
int i;
printf("共有%d本书\n",book_pos);
for(i=0;i<book_pos;i++)
{
printf("\n编号:%s  名称:%s  作者:%s  金额:%s  状态:%s",book[i].no,book[i].name,book[i].author,book[i].money,book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf("  借书人:%s",book[i].user_name);
}
}
}
fflush(stdin);
getchar();
}

void search_all_user()   //查询所有用户 
{
system("cls");
if(user_pos==0) 
{
printf("要倒闭了?一个人都没有!");
}
else
{
int i;
printf("共有%d个用户\n",user_pos);
for(i=0;i<user_pos;i++)
{
printf("\n用户名称: %s     借书名称: ",user[i].name);
if(strcmp(user[i].book_name,"")!=0)
{
printf("%s",user[i].book_name);
}
else
{
printf("未借书"); 
}
}
}
fflush(stdin);
getchar();
}

void No7()    //查询 
{
int f=1;
int sel;
while(f)
{
system("cls");
printf("                      *********************************\n");
printf("                      *                               *\n");
printf("                      *       图书管理系统--查询      *\n");
printf("                      *                               *\n");
printf("                      *        1.按图书编号查询       *\n");
printf("                      *                               *\n");
printf("                      *        2.按图书名称查询       *\n");
printf("                      *                               *\n");
printf("                      *        3.按作者查询           *\n");
printf("                      *                               *\n");
printf("                      *        4.按借书人姓名查询     *\n");
printf("                      *                               *\n");
printf("                      *        5.查询所有图书         *\n");
printf("                      *                               *\n");
printf("                      *        6.查询所有用户         *\n");
printf("                      *                               *\n");
printf("                      *        0.返回主菜单           *\n");
printf("                      *                               *\n");
printf("                      *********************************\n");
printf("请选择:(1,2,3,4,5,6,0) ");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case 1:
search_book_no();

break;
case 2:
search_book_name();

break;
case 3:
search_book_author();

break;
case 4:
search_user_name();

break;
case 5:
search_all_book();
break;
case 6:
search_all_user();
break;
case 0:

f=0;
break;
default:
break;
}
}
}

void No6()      //用户信息删除
{
system("cls");
char del_key[10]={"\0"};
printf("请输入要删除的用户名称:");
scanf("%s",del_key);
int i,del_pos;
int find=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,del_key)==0)
{
find=1;
printf("\n姓    名: %s",user[i].name);
if(strlen(user[i].book_name)>0)
{
printf("\n所借书籍: %s",user[i].book_name);
}
del_pos=i;
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}

while(1)
{
fflush(stdin);
printf("\n\n确认要删除该记录吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
if(strlen(user[del_pos].book_name)>0)
{
printf("\n\n该用户尚有书籍未归还,不能删除!");
fflush(stdin);
getchar();
return;
}
strcpy(user[del_pos].name,"");
strcpy(user[del_pos].book_name,"");
write_file();
printf("\n\n删除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
else if(t=='N' || t=='n')
{
printf("\n\n你选择了不删除,按任意键返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}

void No5()    //图书删除
{
system("cls");
char del_key[10]={"\0"};
printf("请输入要删除的图书的名称或编号:");
scanf("%s",del_key);
int i,del_pos;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,del_key)==0 || strcmp(book[i].no,del_key)==0)
{
find=1;
printf("\n编    号: %s",book[i].no);
printf("\n名    称: %s",book[i].name);
printf("\n作    者: %s",book[i].author);
printf("\n金    额: %s",book[i].money);
printf("\n状    态: %s\n",book[i].in_or_out);
del_pos=i;
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}

while(1)
{
fflush(stdin);
printf("\n\n确认要删除该记录吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
if(strcmp("out",book[del_pos].in_or_out)==0)
{
printf("\n\n图书已经借出,不能删除!");
fflush(stdin);
getchar();
return;
}
strcpy(book[del_pos].no,"");
strcpy(book[del_pos].name,"");
strcpy(book[del_pos].money,"");
strcpy(book[del_pos].author,"");
strcpy(book[del_pos].in_or_out,"in");
strcpy(book[del_pos].user_name,"");
write_file();
printf("\n\n删除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
else if(t=='N' || t=='n')
{
printf("\n\n你选择了不删除,按任意键返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}

void No4()   //用户信息录入
{
system("cls");
char name[10]={"\0"};
printf("请输入新增用户信息:\n\n");
printf("名称:");
scanf("%s",name);
strcpy(user[user_pos].name,name);
user_pos++;
write_file();     //写入信息文件 

printf("\n\n信息录入成功!");
fflush(stdin);
getchar();
}

void No3()   //图书信息录入
{
system("cls");
char no[10]={"\0"};
char name[50]={"\0"};
char author[30]={"\0"};
char money[10]={"\0"};
char in_or_out[10]={"\0"};
char user_name={"\0"};
printf("请输入新增图书信息:\n\n");
printf("编号:");
scanf("%s",no);
printf("名称:");
scanf("%s",name);
printf("作者:");
scanf("%s",author);
printf("价格:");
scanf("%s",money);

strcpy(book[book_pos].no,no);
strcpy(book[book_pos].name,name);
strcpy(book[book_pos].author,author);
strcpy(book[book_pos].money,money);
book_pos++;
write_file();     //写入信息文件 

printf("\n\n信息录入成功!");
fflush(stdin);
getchar();
}

void No2()    //图书还回 
{
system("cls");
printf("\n\n请输入还回图书的编号或名称: ");
char temp[50]={"\0"};
scanf("%s",temp);
int i;
int book_i=-1;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(temp,book[i].no)==0 || strcmp(temp,book[i].name)==0)
{
find=1;
book_i=i;
printf("\n编    号: %s",book[i].no);
printf("\n名    称: %s",book[i].name);
printf("\n作    者: %s",book[i].author);
printf("\n金    额: %s",book[i].money);
printf("\n状    态: %s",book[i].in_or_out);

printf("\n\n按任意键进行还回操作");
fflush(stdin);
getchar();
int j;
strcpy(book[i].in_or_out,"in");
for(j=0;j<user_pos;j++)
{
if(strcmp(book[i].user_name,user[j].name)==0)
{
strcpy(user[j].book_name,"");
write_file();     //写入信息文件 
break;
}
}
strcpy(book[i].user_name,"");
if(j>=user_pos)
{
printf("\n数据出错");
}
else
{
printf("\n\n图书还回成功");
fflush(stdin);
getchar();
return ;
}
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}
}

void No1()     //图书借出 
{
system("cls");
printf("\n\n请输入出借图书的编号或名称: ");
char temp[50]={"\0"};
scanf("%s",temp);
int i;
int book_i=-1;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(temp,book[i].no)==0 || strcmp(temp,book[i].name)==0)
{
find=1;
book_i=i;
printf("\n编    号: %s",book[i].no);
printf("\n名    称: %s",book[i].name);
printf("\n作    者: %s",book[i].author);
printf("\n金    额: %s",book[i].money);
printf("\n状    态: %s",book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf("\n\n该图书已经借出!\n");
fflush(stdin);
getchar();
return;
}
printf("\n\n请输入借书人姓名: ");
char name[10]={"\0"};
scanf("%s",name);
int j,user_i=-1;
for(j=0;j<user_pos;j++)
{
if(strcmp(name,user[j].name)==0)
{
user_i=j;
break;
}
}
if(j>=user_pos)
{
printf("\n找不到该借书人信息,已自动添加");
strcpy(user[user_pos].name,name);
strcpy(user[user_pos].book_name,"");
user_i=user_pos;
user_pos++;
fflush(stdin);
getchar();
}
strcpy(user[user_i].book_name,book[book_i].name);
strcpy(book[book_i].user_name,name);
strcpy(book[book_i].in_or_out,"out");
printf("\n\n图书借出成功");
write_file();     //写入信息文件 
fflush(stdin);
getchar();
return;
}
}
if(find==0)
{
printf("\n\n找不到该图书信息\n");
fflush(stdin);
getchar();
return ;
}
}

int flag_exit=0;

void a88()
{
system("cls");
while(1)
{
fflush(stdin);
printf("\n\n真的要退出吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
flag_exit=1;
break;
}
else if(t=='N' || t=='n')
{
flag_exit=0;
return;
}
else
{
continue;
}
}
system("cls");
printf(" oooooooooooooo   ooooooooooooooo\n");
printf(" oooooooooooooo   ooooooooooooooo\n");
printf("       oo         oo           oo\n");
printf("  oooooooooooo    oo     oo    oo\n");
printf("  oooooooooooo    oo     oo    oo\n");
printf("  oo   oo   oo    oo     oo    oo\n");
printf("  oooooooooooo    oo     oo    oo\n");
printf("  oo   oo   oo    oo     oo    oo\n");
printf("  oo   oo   oo    oo     oo    oo\n");
printf("oooooooooooooooo         oooo\n");
printf("oooooooooooooooo        oo oo     o\n");
printf("  oo        oo         ooo oo     oo\n");
printf("  oo      oooo     ooooo   ooooooooo\n");
printf("  oo       oo       oo      ooooooo\n");
fflush(stdin);
getchar();
}

void title()
{
int f=1;
int sel;
while(f)
{
system("cls");
printf("                      *******************************\n");
printf("                      *                             *\n");
printf("                      *       图 书 管 理 系 统     *\n");
printf("                      *                             *\n");
printf("                      *          1.图书借出         *\n");
printf("                      *                             *\n");
printf("                      *          2.图书还回         *\n");
printf("                      *                             *\n");
printf("                      *          3.图书录入         *\n");
printf("                      *                             *\n");
printf("                      *          4.用户录入         *\n");
printf("                      *                             *\n");
printf("                      *          5.图书删除         *\n");
printf("                      *                             *\n");
printf("                      *          6.用户删除         *\n");
printf("                      *                             *\n");
printf("                      *          7.查    询         *\n");
printf("                      *                             *\n");
printf("                      *          0.退    出         *\n");
printf("                      *                             *\n");
printf("                      *******************************\n");
printf("请选择:(1,2,3,4,5,6,7,0) ");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case 1:
No1();

break;
case 2:
No2();

break;
case 3:
No3();

break;
case 4:
No4();

break;
case 5:
No5();

break;
case 6:
No6();

break;
case 7:
No7();

break;
case 0:
a88();
if(flag_exit==1)
system("exit");
else
{
break;
}
f=0;
break;
default:
break;
}
}
}

int main(int argc, char *argv[]) {
_getcwd(ini_path,100); //取得当前程序的绝对路径
strcpy(user_path,ini_path);
strcat(user_path,"\\user.ini");
strcpy(book_path,ini_path);
strcat(book_path,"\\book.ini");
if(!access(user_path,0))
{

}
else
{
printf("\n用户数据文件不存在, 按任意键将创建文件");
getchar();
FILE* fp;
fp=fopen(user_path,"wb");
int re=fputs("[USER]\r\nuser_count=0",fp);
if(re>=0)
{
printf("\n用户数据文件创建成功!");
}
else
{
printf("\n用户数据文件创建失败!");
}
getchar();
fclose(fp);
}
if(!access(book_path,0))
{

}
else
{
printf("\n图书数据文件不存在, 按任意键将创建文件");
getchar();
FILE* fp;
fp=fopen(book_path,"wb");
int re=fputs("[BOOK]\r\nbook_count=0",fp);
if(re>=0)
{
printf("\n图书数据文件创建成功!");
}
else
{
printf("\n图书数据文件创建失败!");
}
getchar();
fclose(fp);
}
read_file();
title();
return 0;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网