c简单管理系统源码_管理系统源代码

hacker|
105

文章目录:

急求用C语言编写的图书管理系统源代码

#includestdio.h

#includestring.h

#includeconio.h

#includestdlib.h

#includectype.h

#define STACK_INIT_SIZE 10

#define OK 1

#define TRUE 1

#define FALSE 0

#define ERROR 0

struct student /*定义学生类型,用于存放借出的书籍*/

{

int carnum;

char lendbook[10];

}student[1000];

struct employ /*定义职工类型*/

{

int employnum;

char employname[15];

int employage;

char employsex[2];

char employleve[10];

long int employtage;

}employ[50];

struct book /*定义书的类型*/

{

int booknum;

char bookname[10];

char bookcreat[10];

int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/

}book[1000];

struct car /*借书卡的数据类型*/

{

int carnum;

char studentname[10];

int studentclass;

}car[100];

huanbook() /*还书函数*/

{

FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/

int i,n;

int carnum;

char lendbook[10];

printf("请你输入你的卡号\n");

scanf("%d",carnum);

fp=fopen("car.txt","r"); /*读取卡号记录*/

for(i=0;fread(car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/

{

if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/

{

n=i;

fclose(fp);

printf("请输入你要还的书的名字\n");

scanf("%s",lendbook);

fp=fopen("record.txt","r");

for(i=0;fread(student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/

{

if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/

{

fclose(fp);

fp=fopen("record.txt","r");

fp2=fopen("bookl.txt","w");

for(i=0;fread(student[i],sizeof(struct student),1,fp)!=0;i++)

{

if(strcmp(student[i].lendbook,lendbook)==0)

{

continue; /*删除还掉的书的借书记录*/

}

fwrite(student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/

}

fclose(fp);

fclose(fp2);

fp=fopen("record.txt","w");

fp2=fopen("bookl.txt","r");

for(i=0;fread(student[i],sizeof(struct student),1,fp2)!=0;i++)

{

fwrite(student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/

}

fclose(fp);

fclose(fp2);

fopen("bookl.txt","w"); /*清临时文件的记录*/

fclose(fp2);

fp=fopen("book.txt","r");

fp2=fopen("bookl.txt","w");

for(i=0;fread(book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/

{

if(i==n)

{

book[i].turefalse=1;

fwrite(book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/

continue;

}

fwrite(book[i],sizeof(struct book),1,fp2);

}

fclose(fp);

fclose(fp2);

fp=fopen("book.txt","w");

fp2=fopen("bookl.txt","r");

for(i=0;fread(book[i],sizeof(struct book),1,fp2)!=0;i++)

{

fwrite(book[i],sizeof(struct book),1,fp); /*将临时文件写回*/

}

fclose(fp);

fclose(fp2);

fopen("bookl.txt","w"); /*清临时文件*/

fclose(fp2);

printf("还书完毕,按任意键返回\n");

getch();

return 1;

}

}

printf("你没有借这样的书,任意键返回\n"); /*出错提示*/

fclose(fp);

getch();

return 0;

}

}

printf("系统没这样的卡,和管理员联系,按任意键返回\n"); /*出错提示*/

fclose(fp);

getch();

}

findbook()

{

FILE *fp;

char bookname[10];

int ture,i;

fp=fopen("book.txt","r");

printf("请输入你要查找的书名\n");

scanf("%s",bookname);

for(i=0;fread(book[i],sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(bookname,book[i].bookname)==0)

{

if(book[i].turefalse==1)

{

printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);

}

else {printf("这本书已经有人借出\n");fclose(fp);return 0;}

fclose(fp);

return FALSE;

}

}

printf("没有你要查询的书籍\n");

fclose(fp);

return FALSE;

}

findbook1()

{

FILE *fp;

char bookcreat[10];

int ture,i;

fp=fopen("book.txt","r");

printf("请输入你要查找的作者名\n");

scanf("%s",bookcreat);

for(i=0;fread(book[i],sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(bookcreat,book[i].bookcreat)==0)

{

if(book[i].turefalse==1)

{

printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);

}

else {printf("这本书已经有人借出\n");fclose(fp);return 0;}

fclose(fp);

return FALSE;

}

}

printf("没有你要查询的书籍\n");

fclose(fp);

return FALSE;

}

lendcount()

{

FILE *fp;

int i,n=0;

fp=fopen("record.txt","r");

for(i=0;fread(student[i],sizeof(struct student),1,fp)!=0;i++)

{

printf("卡号:%d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook);

n=n+1;

}

fclose(fp);

printf("目前共有%d本书借出\n",n);

printf("按任意键\n");

getch();

return n;

}

chabook()

{

char ch5;

do

{

printf("---------------欢迎进入图书查询系统!--------------\n");

printf(" 1:按书名查找\n");

printf(" 2:按作者查找\n");

printf(" 0:返回\n");

printf("请输入0--2,其他输入非法!\n");

scanf("%s",ch5);

switch(ch5)

{

case '1':findbook();getch();break;

case '2':findbook1();getch();break;

case '0':break;

default:printf("无此操作\n");getch();break;

}

}while(ch5!='0');

return FALSE;

}

lendbook()

{

FILE *fp,*fp2;

int i,n;

int carnum;

printf("请你输入你的卡号\n");

scanf("%d",carnum);

fp=fopen("car.txt","r");

for(i=0;fread(car[i],sizeof(struct car),1,fp)!=0;i++)

{

if(car[i].carnum==carnum)

{

n=i;

fclose(fp);

printf("请输入你要借阅的书的名字\n");

scanf("%s",student[n].lendbook);

fp=fopen("book.txt","r");

for(i=0;fread(book[i],sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(book[i].bookname,student[n].lendbook)==0)

{

if(book[i].turefalse==0) {printf("对不起,此书有人借出,请借其他书\n");fclose(fp);getch();return;}

else

fclose(fp);

fp=fopen("record.txt","a+");

student[n].carnum=carnum;

fwrite(student[n],sizeof(struct student),1,fp);

fclose(fp);

fp=fopen("book.txt","r");

fp2=fopen("bookl.txt","w");

for(i=0;fread(book[i],sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(book[i].bookname,student[n].lendbook)==0)

{

book[i].turefalse=0;

fwrite(book[i],sizeof(struct book),1,fp2);

continue;

}

fwrite(book[i],sizeof(struct book),1,fp2);

}

fclose(fp);

fclose(fp2);

fp=fopen("book.txt","w");

fp2=fopen("bookl.txt","r");

for(i=0;fread(book[i],sizeof(struct book),1,fp2)!=0;i++)

{

fwrite(book[i],sizeof(struct book),1,fp);

}

fclose(fp);

fclose(fp2);

fopen("bookl.txt","w");

fclose(fp2);

printf("借书完毕,按任意键返回\n");

getch();

return;

}

}

printf("不存在这样的书,任意键返回\n");

fclose(fp);

getch();

return;

}

}

printf("你的卡号不存在,请申请新卡,按任意键返回\n");

fclose(fp);

getch();

}

carcount()

{

FILE *fp;

int i,n=0;

fp=fopen("car.txt","r");

for(i=0;fread(car[i],sizeof(struct car),1,fp)!=0;i++)

{

printf("第%d张卡卡号:%d 姓名:%s 班级:%d\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);

n=n+1;

}

fclose(fp);

printf("目前共有%d本书\n",n);

printf("按任意键\n");

getch();

}

delcar()

{

FILE *fp,*fp2;

int i;

int carnum;

char choice;

fp=fopen("car.txt","r");

fp2=fopen("bookl.txt","w");

printf("请输入你要删除的卡号\n");

printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");

scanf("%d",carnum);

for(i=0;fread(car[i],sizeof(struct car),1,fp)!=0;i++)

{

if(car[i].carnum!=carnum)

{

fwrite(car[i],sizeof(struct car),1,fp2);

}

}

fclose(fp);

fclose(fp2);

printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n");

scanf("%s",choice);

if(choice=='y'||choice=='Y')

{

fp=fopen("car.txt","w");

fp2=fopen("bookl.txt","r");

for(i=0;fread(car[i],sizeof(struct car),1,fp2)!=0;i++)

{

fwrite(car[i],sizeof(struct car),1,fp);

}

fclose(fp);

fclose(fp2);

fp2=fopen("bookl.txt","w");

fclose(fp2);

printf("按任意键返回\n");

getch();

return;

}

else

{

printf("按任意键返回\n");

getch();

return;

}

}

addcar()

{

FILE *fp;

int i=0;

fp=fopen("car.txt","a+");

printf("请你输入卡号\n");

scanf("%d",car[i].carnum);

printf("请你输入学生姓名\n");

scanf("%s",car[i].studentname);

printf("请你输入班级\n");

scanf("%d",car[i].studentclass);

fwrite(car[i],sizeof(struct car),1,fp);

fclose(fp);

printf("输入完毕,任意键返回\n");

getch();

}

c语言学生成绩管理系统1000行源代码

/*首次使用,新建score.in文件,在里面打入0

可用程序

#includestdio.h

FILE *fin

main()

{

fin=fopen("score.in","r");

fprintf(fin,"0");

return 0;

}

完成

*/

#includestdio.h

#includestdlib.h

#includeconio.h

#includewindows.h

#includetime.h

#define n 999

FILE *fin;

main()

{

int a[n]={0},ori=0,i=0,b=0,add[n]={0},con=0,orix[n]={0},t=0,te[n]={0},TRUEt,ixi,fx,abc=0,sum,TURE,xx;

long long f[n]={0},tex[n]={0};

printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t学生成绩管理系统\n\t\t\t\t\t\t Please wait...");

Sleep(2000);system("cls");

int xp,xi;

fin=fopen("score.in","r+");

fscanf(fin,"%d",xp);

i=xp;

for(xi=1;xi=xp;xi++)

{fscanf(fin,"%d%d%d",f[xi],a[xi],te[xi]);te[xi]--;

printf("Id:%lld score:%d ranking:%d\n",f[xi],a[xi],te[xi]+1);

add[xi]=xi;orix[xi]=a[xi];

}

fclose(fin);

int TRUE1;

pe:

while(1)

{ TRUE1=1;i++;

printf("Id(输入-1:删除,输入-2:修改成绩,输入-3:删除所有内容,输入-4:保存到score.in并退出):");

scanf("%lld",f[i]);

for(sum=1;sumi;sum++)

if(f[sum]==f[i])

{system("cls");for(con=1;con=i;con++) {if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}TRUE1=0;i--;printf("Error with two same id.\n");continue;}

if(TRUE1==0)

continue;

if(f[i]==-3)

{int r;

for(r=0;rn;r++)

{

a[r]=0;ori=0;i=0;b=0;add[r]=0;con=0;orix[r]=0;t=0;te[r]=0;abc=0;

f[r]=0;tex[r]=0;

}

system("cls");

goto pe;

}

if(f[i]==-2)

{TURE=0;i--;

system("cls");

for(con=1;con=i;con++)

{if(a[con]==0)continue; printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}

printf("修改学号_____________号的分数.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b",f[con],a[con],te[con]+1);

scanf("%d",xx);

for(sum=1;sum=i;sum++)

if(f[sum]==xx)

{

TURE=1;

printf("\n修改为___________.\b\b\b\b\b\b\b\b\b\b\b\b");

scanf("%d",a[sum]);

printf("\n修改成功!将在下一次输入后更新名次。\n\n");

continue;

}

if(TURE==0)

printf("No id is %d\n",xx);

continue;

}

if(f[i]==-4)

{

i--;

fin=fopen("score.in","r+");

fprintf(fin,"%d\n",i);

for(xi=1;xi=i;xi++)fprintf(fin,"%d %d %d\n",f[xi],a[xi],te[xi]+1);

for(xi=i+1;xi=xp;xi++)fprintf(fin," \n");

fclose(fin);

return 0;

}

if(f[i]==-1)

{TRUEt=0;

system("cls");

i--;

for(con=1;con=i;con++){if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}

printf("删除学号_____________号.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");

scanf("%lld",fx);

for(con=1;con=i;con++)

if(f[con]==fx)

{TRUEt=1;abc++;

f[con]=0;

a[con]=0;

tex[abc]=te[con];

for(ixi=1;ixi=i;ixi++)

if(te[ixi]te[con])

te[ixi]--;

te[con]=0;

break;}

system("cls");

for(con=1;con=i;con++){

if(a[con]==0)continue;

printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}

if(TRUE==0)

printf("No Id is %lld\n",fx);

continue;

}

system("cls");

for(con=1;coni;con++)

{if(a[con]==0)continue; printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}

printf("Id:%lld score:",f[i]);

scanf("%d",ori);system("cls");

a[i]=ori;add[i]=i;orix[i]=a[i];

system("cls");

for(b=1;b=i;b++)

for(con=i;con=b;con--)

if(orix[con]orix[con-1])

{t=orix[con];orix[con]=orix[con-1];orix[con-1]=t;

t=add[con];add[con]=add[con-1];add[con-1]=t;}

for(con=1;con=i;con++) te[add[con]]=con;

for(con=1;con=abc;con++)

for(ixi=1;ixi=i;ixi++)

if(te[ixi]tex[con])

te[ixi]--;

if(te[i]==te[i-1])te[i]=0;

for(con=1;con=i;con++)

{if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}

}

return 0;

}

//求采纳

跪求c语言教务管理系统源代码

#include stdio.h

#include string.h

#include windows.h

struct student

{

long int num;

char name[20];

int age;

char sex[4];

char b[30];

char p[15];

};

int n=0;

struct student stu[100];

struct student *p;

void lr();

void ll();

void cx();

void xg();

void sc();

void main()

{

int z;

printf("+---------------------------+\n");

printf("| 欢迎使用学生信息管理系统 |\n");

printf("+---------------------------+\n");

printf("提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n");

do

{

printf("\n\t\t\t--------------------------------\n");

printf("\t\t\t+ 主菜单 |\n");

printf("\t\t\t--------------------------------\n");

printf("\t\t\t+ [1]----录入学生信息 |\n");

printf("\t\t\t+ [2]----浏览学生信息 |\n");

printf("\t\t\t+ [3]----查询学生信息 |\n");

printf("\t\t\t+ [4]----删除学生信息 |\n");

printf("\t\t\t+ [5]----修改学生信息 |\n");

printf("\t\t\t+ [0]----退出系统 |\n");

printf("\t\t\t--------------------------------\n");

printf("请输入您的选择:");

scanf("%d", z);

system("color 2f");

switch(z)

{

case 0 : break;

case 1 :lr();break;

case 2 :ll();break;

case 3 :cx();break;

case 4 :sc();break;

case 5 :xg();break;

default:printf("\n无效选项!");

}

}

while(z!= 0);

}

void lr()/*录入函数*/

{

int y;

if(n==0)

p=stu;

do

{

printf("--------------------\n");

printf("请输入学生的学号:");

scanf("%ld",p-num);

printf("请输入学生的姓名:");

scanf("%s",p-name);

printf("请输入学生的年龄:");

scanf("%d",p-age);

printf("请输入学生的性别:");

scanf("%s",p-sex);

printf("请输入学生的地址:");

scanf("%s",p-b);

printf("请输入学生的电话:");

scanf("%s",p-p);

n++;

p++;

printf("\n1.继续输入.\n0.输入完毕.\n");

printf("请选择:");

scanf("%d",y);

}

while(y==1);

printf("提示:输入完毕!你一共输入%d个\n",n);

}

void ll()/*浏览函数*/

{

int i,j;

if(n!=0)

{ printf("学生总数:%d\n", n);

printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n");

printf("-----------------------------------------------------\n");

for(i=0;in;i++)

printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);

}

else printf("提示:无学生数据,请输入数据!");

}

void cx()/*查询函数*/

{

int c;

int w,i,j=0;

char name[20];

if(n!=0)

{

do{ printf("\n");

printf("+--------------------+\n");

printf("| 按学号查询 请按 1 |\n");

printf("| 按姓名查询 请按 2 |\n");

printf("| 取消 请按 0 |\n");

printf("+--------------------+\n");

printf("请输入您的选择:");

scanf("%d", c);

switch(c)

{

case 0:break;

case 1:

printf("请输入学生的学号;");

scanf("%ld", w);

printf("\n");

for(i=0;in;i++)

if(stu[i].num==w)

{

printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");

printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);

j=1;

}

if(j==0)

printf("提示:没有该学生记录,请核对!");

break;

case 2:

printf("请输入学生的姓名:");

scanf("%s", name);

printf("\n");

for(i=0;in;i++)

if(strcmp(name,stu[i].name)==0)

{

printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");

j=1;

printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);

}

if(j==0)

printf("提示:没有该学生记录,请核对!");

break;

default:

printf("\n提示:无效选项!");

break;

}

}while(c!= 0);

}else printf("提示:无学生数据,请输入数据!");

return;

}

void xg()/*修改函数*/

{

long int num;

int i,j,c;

if(n!=0)

{

printf("请输入您要修改的学生的学号:");

scanf("%ld", num);

printf("\n");

for(i=0;in;i++)

if(stu[i].num==num)

j=i;

do{

printf("请选择您要修改的学生的信息内容:\n");

printf("+----------------------+\n");

printf("| 姓名 请按 1 |\n");

printf("| 年龄 请按 2 |\n");

printf("| 性别 请按 3 |\n");

printf("| 学号 请按 4 |\n");

printf("| 地址 请按 5 |\n");

printf("| 电话 请按 6 |\n");

printf("| 取消 请按 0 |\n");

printf("+----------------------+\n");

printf("请输入您的选择:");

scanf("%d", c);

printf("\n");

switch(c)

{

case 0:break;

case 1:printf("请输入新姓名:");

scanf("%s",stu[j].name);

break;

case 2:printf("请输入新年龄:");

scanf("%d",stu[j].age);

break;

case 3:printf("请输入新性别:");

scanf("%s",stu[j].sex);

break;

case 4:printf("请输入新学号:");

scanf("%ld",stu[j].num);

break;

case 5:printf("请输入新地址:");

scanf("%s",stu[j].b);

break;

case 6:printf("请输入新电话:");

scanf("%s",stu[j].p);

break;

default:

printf("\n无效选项!");

break;

}

}while(c!= 0);

}else printf("提示:无学生数据,请输入数据!");

}

void sc()/*删除函数*/

{

long int num;

int i,j,e;

if(n!=0)

{

printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n");

printf("-----------------------------------------------------\n");

for(i=0;in;i++)

printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);

printf("请输入您要删除的学生的学号:");

scanf("%ld", num);

printf("\n");

for(i=0;in;i++)

if(num==stu[i].num)

j=i;

if(j!=(n-1))

{

for(e=i-1;en;e++,j++)

{

stu[j].num=stu[j+1].num;

strcpy(stu[j].name,stu[j+1].name);

strcpy(stu[j].sex,stu[j+1].sex);

stu[j].age=stu[j+1].age;

strcpy(stu[j].b,stu[j+1].b);

strcpy(stu[j].p,stu[j+1].p);

n--;p--;

}

}else {n--;p--;}

printf("提示:删除完毕!");

}else printf("提示:无学生数据,请输入数据!");

}

C语言 简单的学生成绩管理系统 源码 急!

printf("请您输入要查询的学生姓名\n");

scanf("%s",a);

for(int i=0;icount;i++)

{

if(strcmp(a,student[i].name)==0)

{

printf("恭喜您找到了\n");

break;

}

}

printf("您查找的%s学号是%d",a,student[i].num);

printf("平均成绩是%5.2f\n",student[i].pjz);

for(int j=0;j3;j++)

{

printf("第%d科成绩为%d\n",j+1,student[i].score[j]);

}

printf("是否继续 输入y继续\n输入n返回主菜单\n输入其他任意键终止程序");

fflush(stdin);

scanf("%c",c);

}while(c=='y' || c=='Y');

return c;

}

}

char write()

{

int i=0,j;

char c;

float sum=0;

do

{

sum=0;

printf("请您输入学生信息\n");

printf("请您输入学号:");

scanf("%d",student[count].num);

fflush(stdin);

printf("请您输入该学生姓名:");

scanf("%s",student[count].name);

fflush(stdin);

for(j=0;j3;j++)

{

printf("请您输入该学生的第%d科成绩:",j+1);

scanf("%d",student[count].score[j]);

sum=sum+student[count].score[j];

}

student[count].pjz=sum/3;

count++;

printf("您已经录入了%d名学生的信息\n",count);

printf("是否继续 输入y继续\n输入n返回主菜单\n输入其他任意键终止程序");

fflush(stdin);

scanf("%c",c);

}while(c=='y' || c=='Y');

return c;

}

c语言商品管理系统源代码,加注释

#include stdio.h

#include conio.h

#include string.h

#define SIZE 300

typedef struct

{

char name[30];

int num;

char shang[10];

float price;

}record;

void DataInput(record *com, int *nptr);

int DataRead(record *com,int *nptr) ;

void DataStorage(record *com, int n); /*信息保存到文件*/

void DataFind( );

void DataDisPlay( );

void DataAdd( );

void DataDel( );

void DataStatistic( );

int main( )

{

record shangpin[SIZE];

int number=20; /*设商品数*/

char fn;

printf("\t~~~~~~商品管理系统~~~~~~");

while(1)

{

printf("\n\t\t1.商品信息录入\n"); /*显示主菜单*/

printf("\t\t2.商品信息显示\n");

printf("\t\t3.商品信息查找\n");

printf("\t\t4.商品信息添加\n");

printf("\t\t5.商品信息删除\n");

printf("\t\t6.商品信息统计\n");

printf("\t\t0.退出系统");

printf("\n\t~~~~~~~~~~~~~~~~\n");

printf("\t请输入你的一个选项(数字0-6): ");

fflush(stdin);

scanf("%c",fn);

puts("\n");

switch(fn) /*切换到不同功能*/

{

case '1':

DataInput(shangpin, number );

break; /*录入信息*/

case '2':DataDisPlay();

break; /*信息显示*/

case '3':

DataFind();

break; /*信息查找*/

case '4':

DataAdd( );

break; /*增加*/

case '5':

DataDel( );

break; /*删除*/

case '6':

DataStatistic();

break; /*信息统计*/

case '0':

return 0;

default:puts("\t\t没有这个项!返回主菜单!");

break;

}

printf("\n\t\t完毕!按任意键继续");

getch( );

puts("\n");

}

}

void DataInput(record *com, int *nptr) /*商品信息录入*/

{

int i = 0;

int n ; /*录入的总数*/

char YesOrNo; /*判断是否保存*/

char shangming[30]; /*商名*/

int haoma; /*商品号*/

char shangjia[10]; /*单价*/

float danjia;

printf("\t\t请输入商品个数:");

scanf("%d",n);

*nptr = n; /*nptr返回商品个数*/

printf("\t\t现在开始录入这%d个商品信息:\n\n",n);

while(in)

{

printf("请输入商品的商品名:",i+1);

scanf("%s",shangming);

printf("请输入商品的商品号:",i+1);

scanf("%d",haoma);

printf("请输入商品的生产商:",i+1);

scanf("%s",shangjia);

printf("请输入商品的单价 :",i+1);

scanf("%f",danjia);

if(danjia=0danjia=1000) /*有效的单价才录入*/

{

strcpy(com[i].name,shangming);

com[i].num = haoma;

strcpy(com[i].shang,shangjia);

com[i].price = danjia;

i =i+1;

}

else

printf("输入的单价是一个无效的值!!!\n\n");

} /*结束while*/

printf("要保存您刚才录入的数据吗(Y/N)?"); /*选择保存*/

fflush(stdin);

scanf("%c",YesOrNo);

if(YesOrNo=='y'||YesOrNo=='Y')

DataStorage(com,n);

else if(YesOrNo=='n'||YesOrNo=='N')

return;

else

printf("输入了不正确的选项\n");

return;

} /*结束函数*/

void DataFind( ) /*查找*/

{

void OnNumber(record *com,int n ); /*按商品号排序*/

int key; /*key为要查找的关键值*/

int low = 0; /*下限*/

int high ; /*上限*/

int mid ; /*中间值*/

char ans; /*选项*/

record com[SIZE];

int n;

if(DataRead(com,n)==1) /*从文件中读取信息*/

{

OnNumber(com,n); /*先按商品号排序*/

high = n;

do

{

printf("\n\n\t\t请输入你要查找的商品号:");

scanf("%d",key);

low = 0;high = n;

while (low =high)

{

mid = (high + low)/2; /*折半查找法*/

if (key == com[mid].num )

{

printf("\n\t\t你要找的是第%d个商品\n",mid + 1);

printf("\t\t结果如下:\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

printf("%3d%17s%12d%12s%8.1f\n",mid+1,com[mid].name,com[mid].num,com[mid].shang,

com[mid].price);

break; /*如果找到则退出循环*/

}

if (key com[mid].num ) low = mid + 1;

else high = mid - 1;

}

if (low high)

printf("\t\t,没有找到这个价格!\n");

printf("\n\t\t还要继续查询吗(Y/N)?");

ans = getch( );

}

while (ans =='Y'||ans == 'y'); /*结束do....while*/

}

}

void DataStorage(record *com, int n) /*录入保存文件*/

{

int i;

FILE *comPtr;

char FileName[20];

printf("请输入您要保存的文件名:");

scanf("%s",FileName);

printf("正在将商品信息保存到文件,请稍候……\n");

if((comPtr=fopen(FileName,"w"))==NULL)

printf("没有该文件\n");

else

for(i=0 ; in ; i++)

fprintf(comPtr,"\n%17s%12d%12s%8.1f",com[i].name,com[i].num,com[i].shang,com[i].price);

fclose(comPtr);

}

int DataRead(record *com,int *nptr) /*读取文件*/

{

int i=0;

char datafile[20];

FILE *comPtr;

*nptr = 0;

printf("请输入文件名:");

scanf("%s",datafile);

if((comPtr = fopen(datafile,"r")) == NULL) /*打开文件*/

{

printf("没有该文件,请重新输入!\n");

return 0;

}

else

{

printf("正在读取商品单价,请稍候……\n");

while (!feof(comPtr))

{

fscanf(comPtr,"%s%d%s%f",com[i].name,com[i].num,com[i].shang,com[i].price);

i++;

}

*nptr = i;

printf("\n");

fclose(comPtr);

return 1;

}

}

void DataDisPlay()

{

void OnPrice(record *com,int n ); /*按单价*/

void OnNumber(record *com,int n ); /*按商品号*/

int N;

int i;

record com[300];

char YesNo; /*是否按顺序显示*/

char tp;

if(DataRead(com,N)==1) /*从文件读取数据*/

{

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0;iN;i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,com[i].price);

printf("要按顺序显示吗?(Y/N)?");

fflush(stdin);

scanf("%c",YesNo);

if(YesNo=='y'||YesNo=='Y')

{

printf("\t请输入排序方式:\n");

printf("\t(1.按价格排序从低到高;2.按商品号排序从低到高.)");

fflush(stdin);

scanf("%c",tp);

if(tp=='1')

OnPrice(com,N);

else if(tp =='2')

OnNumber(com,N);

else

printf("\t输入了不正确项!\n");

}

}

} /*结束显示成绩*/

void OnPrice(record *com,int n ) /*按单价顺序*/

{ int i,j;

record temp;

printf("\t\t按单价排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; jn-1 ; j++) /*冒泡排序*/

for(i=0 ; in-j-1 ; i++)

if(com[i].pricecom[i+1].price)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf("\n\t\t按成绩排序的结果如下(按分数从低到高):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void OnNumber(record *com,int n ) /*按序号顺序*/

{

int i,j;

record temp;

printf("\t\t按商品号排序---\n\n");

printf("商品总数为%d:\n",n);

for(j=0 ; jn-1 ; j++)

for(i=0 ; in-j-1 ; i++)

if(com[i].numcom[i+1].num)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf("\n\t按商品号排序的结果如下(按商品号从小到大):\n\n");

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void DataAdd( ) /*增加*/

{

int i=0,n,m; /*商品名称*/

char shangming[30];

int haoma; /*生产商*/

char shangjia[10];

float danjia;

char YesOrNo;

record com[SIZE];

printf("\t\t读取原有数据信息---\n");

if(DataRead(com,n)==1)

{

printf("\t\t信息读取完毕!\n\n");

printf("\t\t请输入要添加的商品总数:");

scanf("%d",m);

printf("\t\t现在开始录入这%d个商品信息:\n\n",m);

while(im)

{

printf("第%d个商品的商品名:",i+1);

scanf("%s",shangming);

printf("第%d个商品的商品号:",i+1);

scanf("%d",haoma);

printf("第%d个商品的生产商:",i+1);

scanf("%s",shangjia);

printf("第%d个商品的单价:",i+1);

scanf("%f",danjia);

if(danjia=0danjia=1000) /*有效的单价才录入*/

{

strcpy(com[i+n].name,shangming);

com[i+n].num = haoma;

strcpy(com[i+n].shang,shangjia);

com[i+n].price = danjia;

i =i+1;

}

else

printf("输入的单价是一个无效的值,请重新输入!\n\n");

}

printf("要保存您刚才录入的数据吗(Y/N)?");

fflush(stdin);

scanf("%c",YesOrNo);

if(YesOrNo=='y'||YesOrNo=='Y')

DataStorage(com,n+m);

else if(YesOrNo=='n'||YesOrNo=='N')

return;

else

printf("输入了不正确项,返回上一级\n");

return;

}

}

void DataDel( )//删除

{

void OnNumber(record *com,int n );

record com[SIZE];

int i; /*总记录数*/

int n; /*要删除的记录号*/

int m;

printf("\t\t读取原有数据信息---\n");

if(DataRead(com,n)==1)

{

printf("\t\t原始数据如下:\n\n");

OnNumber(com,n );

printf("请输入你要删除的记录的序号");

scanf("%d",m);

if(m=1 m=n)

{

for(i=m-1;in-1;i++)

com [i] = com[i+1];

DataStorage(com,n-1);

}

}

}

void DataStatistic( ) /*统计信息*/

{

int high=0,low=200,ave=0;

int n,i,sum=0;

int g,l;

record com[SIZE];

printf("读取数据信息---\n");

if(DataRead(com,n)==1)

{

printf("商品总数为%d\n\n",n);

for(i=0;in;i++)

{

if(com[i].pricehigh)

{

high = com[i].price;

g=i;

}

if(com[i].pricelow)

{

low = com[i].price;

l=i;

}

sum += com[i].price;

}

ave=sum/n;

printf("\t\t最高\t最低\t平均\n"); /*计算值*/

printf("商品单价统计:\t%d\t%d\t%d\n\n",high,low,ave);

printf("序号\t\t商品名\t 商品号\t生产商\t单价\n");

for(i=0 ; in ; i++)

printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

printf("\t\t 序号\t\t 商品名\t 商品号\t 生产商 单价\n");

printf("单价最高的商品是:%3d%17s%12d%12s%8.1f\n\n",g+1,com[g].name,com[g].num,com[g].shang,com[g].price);

printf("单价最低的商品是:%3d%17s%12d%12s%8.1f\n",l+1,com[l].name,com[l].num,com[l].shang,com[l].price);

} /*结束统计*/

}

4条大神的评论

  • avatar
    访客 2022-07-05 下午 11:33:50

    ~~~~~商品管理系统~~~~~~");while(1){ printf("\n\t\t1.商品信息录入\n"); /*显示主菜单*/ printf("\t\t2.商品信息显示\n"); printf("\t\t3.商品信息查找\n"); prin

  • avatar
    访客 2022-07-06 上午 04:57:39

    .name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p); printf("请输入您要删除的学生的学号:"); scanf("%ld", num); printf("\n"); f

  • avatar
    访客 2022-07-06 上午 01:16:48

    xg()/*修改函数*/{ long int num; int i,j,c; if(n!=0) { printf("请输入您要修改的学生的学号:"); scanf("%ld", num); printf("\n"); for(i=0;in;i++) if(stu[i].num==nu

  • avatar
    访客 2022-07-05 下午 08:14:43

    num ) low = mid + 1; else high = mid - 1; } if (low high)printf("\t\t,没有找到这个价格!\n");printf("\n\t\t还要继续查询

发表评论