标题:求助!C语言这些程序怎么编啊??
只看楼主
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
得分:0 
/*******************************************************************
三、 学生信息管理系统设计

学生信息包括:学号、姓名、年龄、性别,出生年月,住址、电话、E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:
系统以菜单方式工作
学生信息录入功能(职工心里用文件保存)——输入
学生信息浏览功能——输出
查询和排序功能:(至少一种查询方式)——算法
按学号查询
按姓名查询等
学生信息删除、修改功能(任选项)
*******************************************************************/

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/*结构体定义*/
typedef struct
{
char name[10];
int number;
}STUDENT;
STUDENT student[3];
/*函数声明*/
void Input();//输入信息
void menu();//主菜单
void chang();//修改
void find();//查找信息
int main()
{
int chan;//输入的选择转换成整数
char select[5];//选择
menu();
gets(select);
while((strcmp(select,"Q")!=0)&&(strcmp(select,"q")!=0))
{
chan=atoi(select);//把字符转化为数字
if(chan!=0)
{
switch(chan)
{
case 1: {Input();break;}
case 2: {chang();break;}
case 3: {find();break;}
default: {printf("输入信息有误,请重新输入");break;}
}
}
if(chan<4&&chan>0)
{menu();}
gets(select);
}
printf("程序结束!\n");
return 0;
}
/*函数体*/
void Input()
{
//三个结构体指针数组,用于处理三个同学的信息
int i;//用于循环
for(i=0;i<3;i++)
{
printf("请输第%d个同学的信息\n",i+1);
printf("姓名(小于字十个字符):");
scanf("%s",student[i].name);
printf("学号:");
scanf("%d",&student[i].number);
}

}
void menu()//菜单函数
{
printf("1.输入学生信息\n2.修改学生信息\n3.查询学生信息\n按Q或q退出程序\n");
}

void chang()//修改函数
{

char name[10];
int n,i,k;
char select[5];
printf("请输入你要修改同学信息的名字:");
gets(name);
for(i=0;i<3;i++)
{
if(strcmp(student[i].name,name)==0)
{
printf("你要修改的对象是:%s",student[i].name);
printf("重新确认:\n1.确认 2.取消\n");
scanf("%d",&k);
if(k==1)
{
printf("请选择要修改的项目:\n1.修改名字\n2.修改学号(按Q或q退出)\n");
gets(select);
while((strcmp(select,"q")!=0)&&(strcmp(select,"Q")!=0))
{
n=atoi(select);
if(n!=0)
{
switch(n)
{
case 1:{printf("你修改的是名字,请输入:");gets(student[i].name);break;}
case 2:{printf("你修改的是学号,请输入:");;scanf("%d",&student[i].number);break;}
default:{printf("输入错误,请重新输入!\n");break;}
}
}
if(n>0&&n<2)
printf("请选择要修改的项目:\n1.修改名字\n2.修改学号(按Q或q退出)\n");

gets(select);
}
}
}
}
}

void find()
{

char name[10];
int i;
printf("请输入查询对象的名字:");
gets(name);
for(i=0;i<3;i++)
{
if(strcmp(student[i].name,name)==0)
{
printf("姓名:%s\n学号:%d\n",student[i].name,student[i].number);
break;
}
}


}
给你的源代码出来了,你要是想增加学生的个数的话你自己设置结构体数组的元素个数就可以了,要是你想实现删除
元素的话,只要你配合malloc/free()就行,我自己没试,还有,我这个源代码没有排序函数的,你自己增加就行,类中
的成员你自己设置一下就行,乘下的就你自己做了,要是不明白或有兴趣的加我QQ:282891168
2007-06-23 00:25
liyuewen
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-5-7
得分:0 
恐怖的菜鸟
2007-06-23 02:03
gospark
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-6-1
得分:0 

作业不自己做,如果你要是学电气信息类专业的,那你以后后悔去吧


软硬结合才是发展之路~~~
2007-06-24 02:27
veler
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2007-5-9
得分:0 

http://bbs.bc-cn.net/viewthread.php?tid=149760

/*************************************************************************
学 生 成 绩 管 理 系 统 (结构版)
开发者:陈影
开发时间:2007-6-21
Compiler: Microsoft visual C++ 6.0
System Loginpassword:chenying
本系统支持每个学员录入学号、姓名、以及三门课成绩,且计算总分、平均成绩
插入、删除、修改、排序、查询个人成绩 浏览所有学生成绩。
1、使用结构保存每个学员的信息。
2、通过函数实现各个功能模块。
3、使用对文件的写操作记录成绩文件.默认保存在程序所在的目录下
4、不管是用户怎样操作数据都会有文件记录,实现了实时记录数据,但是给用户
看到的文件是用户对数据操作好之后保存下来的数据.
/*************************************************************************/
#include <stdio.h> //标准输入输出
#include <stdlib.h>
#include <windows.h>
#include <string.h> //字符串操作
#include <conio.h> //系统输入输出
#include <time.h> //时间相关
/**********************下面是对用到的全局常量声明*************************/
#define NAME 10 //学生姓名长度
#define PASSWORD "chenying" //系统登陆密码
int shuru=0; //全局变量标记当前录入学员个数
float aver,sum; //平均成绩和总分
FILE *fp; //声明一个文件指针
/**************************结构体定义************************************/
struct student{ //学生成绩结构
char name[NAME]; //学生姓名
int num; //学生学号
float score1; //记录学生成绩1
float score2; //记录学生成绩2
float score3; //记录学生成绩3
float aver; //平均分
float sum; //总分
}*pp; //声明一个结构指针
/**********************下面是对用到的函数声明*****************************/
void Password(); //密码验证函数
void Save(struct student stu[]); //保存信息函数
void InputStu(struct student stu[]); //录入信息函数
void DelStu(struct student stu[]); //删除信息函数
void ModifyStu(struct student stu[]); //修改信息函数
void FindStu(struct student stu[]); //查找信息函数
void InsertStu(struct student stu[]); //插入信息函数
void SortStu(struct student stu[]); //排 序 函 数
void ListStu(struct student stu[]); //显示学员成绩信息
//**************************程序主体**************************************
void main() //程序入口
{
system("color 02"); //设置当前窗口的背景色和前景色
struct student stu[50]; //最大学员人数
struct student *p; //声明一个结构指针
p=stu; //指针指向结构变量stu
int in; //接收用户的选择
char ch; //用于判断是否继续
Password(); //调用密码验函数
do
{
system("cls");
printf("\n\n");
printf("\t\t ╭————————————————————╮\n");
printf("\t\t | 学 生 个 人 成 绩 管 理 |\n");
printf("\t\t |————————————————————|\n");
printf("\t\t |     1. 录入学生个人成绩      |\n");
printf("\t\t |                    |\n");
printf("\t\t |    2. 修改学生个人成绩      |\n");
printf("\t\t |                    |\n");
printf("\t\t |    3. 查询学生个人成绩      |\n");
printf("\t\t |                    |\n");
printf("\t\t |    4. 浏览所有学生成绩      |\n");
printf("\t\t |                    |\n");
printf("\t\t |    5. 删 除 学 生 成绩      |\n");
printf("\t\t |                    |\n");
printf("\t\t |    6. 插 入 学 生 成绩      |\n");
printf("\t\t |                    |\n");
printf("\t\t |    7. 学 员 成 绩 排序      |\n");
printf("\t\t |                    |\n");
printf("\t\t |    8. 学 员 成 绩 保存      |\n");
printf("\t\t |                    |\n");
printf("\t\t |    9. 退出成绩管理系统      |\n");
printf("\t\t ╰————————————————————╯\n");
printf("\t\t  请您正确选择: ");
if(!(scanf("%d",&in)==1))
{
while((ch=getchar())!='\n')
putchar(ch);
printf(" 没有此选项,请正确选择!");
getch();
continue;
}
fflush(stdin);
switch(in)
{
case 1:
InputStu(stu); //调用录入成绩函数
break;
case 2:
ModifyStu(stu); //调用修改成绩函数
break;
case 3:
FindStu(stu); //调用查询个人成绩函数
break;
case 4:
ListStu(stu); //调用浏览所有学生成绩函数
break;
case 5:
DelStu(stu); //调用删除学生成绩函数
break;
case 6:
InsertStu(stu); //插入学员成绩信息
break;
case 7:
SortStu(stu); //调用排序函数
break;
case 8:
Save(stu); //保存学员成绩函数
break;
case 9: //退出系统
return;
default:
printf("没有此选项,请正确选择!");
getch();
break;
}
}while(1);
}
void InputStu(struct student stu[]) //录入学员成绩函数原形
{
pp=stu; //指针指向结构
system("cls"); //清屏
int i;
printf("请问你要输入几个学生的信息:");
scanf("%d",&shuru);
if((fp=fopen("inputdata.sys","wb+"))==NULL) //当前目录下是否存在INPUTDATA.sys文件
{ //"wb+":读写打开或建立一个二进制文件,允许读和写
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");

for(i=0;i<shuru;i++)
{
printf("输入学生学号:"); //输入学号
fflush(stdin);
scanf("%d",&stu[i].num);
printf("输入学生姓名:"); //输入姓名
fflush(stdin);
gets(stu[i].name);
printf("输入学生3科成绩\n");
printf("——————————————————————————————\n");
printf("\n计算机应用: "); //第一科成绩
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\nJava 语言: "); //第二科成绩
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\nC 语言: "); //第三科成绩
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("——————————————————————————————\n");
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].aver=stu[i].sum/3;
//下面这句代码的意思是写文件操作,后面遇到这样的代码是一样的意思
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].aver,stu[i].sum);
}
}
void ModifyStu(struct student stu[])
{
pp=stu;
int id,i=0; //id为接收用户输入的学号
if((fp=fopen("modifydata.sys","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
printf("\n请输入你要修改的学生的学号:");
scanf("%d",&id);
Sleep(500);
printf("\n\t查找相关数据.");
for(i=0;i<=15;i++)
{
Sleep(250);
printf(".");
}
for(i=0;i<shuru;i++)
{
if(stu[i].num==id) //如果找到了就执行下面语句 ,找不到直接回主界面
{
printf("\n输入学生新学号:"); //输入学号
fflush(stdin);
scanf("%d",&stu[i].num);
printf("\n输入学生新姓名:"); //输入姓名
fflush(stdin);
gets(stu[i].name);
printf("输入学生3科新成绩\n");
printf("——————————————————————————————\n");
printf("\n计算机应用: ");
scanf("%f",&stu[i].score1);
fflush(stdin);
printf("\nJava 语言: ");
scanf("%f",&stu[i].score2);
fflush(stdin);
printf("\n C 语言: ");
scanf("%f",&stu[i].score3);
printf("——————————————————————————————\n");
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].aver=stu[i].sum/3;
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].aver,stu[i].sum);
}
}
}
void FindStu(struct student stu[]) //查询个人成绩信息
{
int i=0,id; //循环变量和用于接收学号
printf("请输入你要查询的学生学号:");
scanf("%d",&id);
for(i=0;i<shuru;i++)
{
if (stu[i].num==id) //如果找到你查询的数据就执行下面语句
{ //如果找不到。直接回程序主界面
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].aver=stu[i].sum/3;
printf("\n学号 姓名 计算机应用 java语言 C 语言 总 分 平均成绩\n");
printf("\n%d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].aver);
system("pause");
}
}
}
void InsertStu(struct student stu[]) //插入学员成绩信息
{
int flag=1;
pp=stu;
int i,id;
if((fp=fopen("insertdata.sys","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
printf("输入你插入的学号:");
scanf("%d",&id);
for(i=0;i<shuru;i++)
{
if(stu[i].num==id) //判断学员的学号信息否存在?
{
printf("学号信息已经存在!\n");
flag=0;
getch();
break;
}
}
if (flag!=0)
{
shuru++; //插入一个,原来的总数增加1
printf("请确认输入要插入学生的学号:");
scanf("%d",&stu[shuru-1].num); //如果不存在..那么就把插入的信息放到结构数组最后
printf("输入学生姓名:");
fflush(stdin);
gets(stu[shuru-1].name);
printf("输入学生3科成绩\n");
printf("——————————————————————————————\n");
printf("\n计算机应用: ");
fflush(stdin);
scanf("%f",&stu[shuru-1].score1);
printf("\nJava 语言: ");
fflush(stdin);
scanf("%f",&stu[shuru-1].score2);
printf("\nC 语言: ");
fflush(stdin);
scanf("%f",&stu[shuru-1].score3);
printf("——————————————————————————————\n");
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].aver=stu[i].sum/3;
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[shuru-1].num,stu[shuru-1].name,stu[shuru-1].score1,stu[shuru-1].score2,stu[shuru-1].score3,stu[shuru-1].aver,stu[shuru-1].sum);
Sleep(500);
printf("插入数据成功!\n");
getch();
}
}
void ListStu(struct student stu[]) //浏览所有学生成绩
{
int i=0;
for(i=0;i<shuru;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].aver=stu[i].sum/3;
}

printf("\n学号 姓名 计算机应用 java语言 C 语言 平均成绩 总 分\n");
for(i=0;i<shuru;i++)
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].aver, stu[i].sum);
}
getch();
}
void DelStu(struct student stu[]) //删除学员信息函数
{
pp=stu;
struct student temp;
int delnum;
char ask;
int i,j;
if((fp=fopen("Deldata.sys","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
system("cls");
printf("\n\n\t请输入你要删除的学员的学号:");
fflush(stdin);
scanf("%d",&delnum);
printf("\n\t是否确认删除学员%d的信息(y/n)",delnum);
fflush(stdin);
ask = getchar();
if(ask != 'n')
{
for(i=0;i<shuru;i++)
{
if(stu[i].num == delnum)
break;
}
if(i > shuru)
printf("\n\t没有你要删除的学员!\n");
else
{
for(j=i;j<shuru;j++)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
shuru--; //删掉一个学员信息后学员总数相应-1
system("cls");
printf("\n\n删除成功!\n");
}
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].aver=stu[i].sum/3;
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].aver,stu[i].sum);
getch();
}
}
void SortStu(struct student stu[]) //排序函数
{
int i,j,chose; //i,j为循环变量 chose为接收用户输入的排序方式
struct student temp;
printf("排序前的数据为\n");
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i<shuru;i++)
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].aver,stu[i].sum);
}
printf("\n1.按学号排序\t2.按总分(高→低)排序\n");
printf("\n请您正确选择:");
fflush(stdin);
scanf("%d",&chose);
if(chose==1)
{
for(i=0;i<shuru-1;i++)
{
for(j=i+1;j<shuru;j++)
{
if(stu[i].num>stu[j].num)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i<shuru;i++)
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].aver,stu[i].sum);
}
system("pause");
}
else if(chose==2)
{
for(i=0;i<shuru-1;i++)
{
for(j=i+1;j<shuru;j++)
{
if(stu[i].aver<stu[j].aver)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i<shuru;i++)
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].aver,stu[i].sum);
}
system("pause");
}
}
void Password() //密码验证函数
{
char *pass=NULL; //初始化指针
int i,count;
time_t start,end; //时间函数
pass=(char *)malloc(255*sizeof(char)); //分配内存
while(1)
{
count=0;
printf("\n\n\n\n\n\t\t\t学 生 成 绩 管 理 系 统 \n");
printf("\n\t\t UserName:ChenYiWan \n");
printf("\n\t\t PassWord:");
while((count>=0)&&(pass[count++]=getch())!=13) //密码输入
{
if(pass[0]=='\b')
{
count=0;
continue;
}
else if(pass[count-1]=='\b')
{
printf("%c%c%c",'\b','\0','\b');
count-=2;
}
else
putchar('*');
}
pass[--count]='\0';
if(!strcmp(pass,PASSWORD)) //开始验证
{
printf("\n\n\t\t\t\t\t\tLoading");
for(i=0;i<=25;i++)
{
Sleep(250);
printf(".");
}
system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t");
printf(" 欢 迎 登 陆 学 生 成 绩 管 理 系 统 !");
start=time(NULL);
end=time(NULL);
while(end-start<2) //延时2秒执行以下程序
{
end=time(NULL);
}
system("cls");
free(pass); //释放储存密码的内存
return ;
}
free(pass); //释放密码错误的那块内存
pass=(char *)malloc(255*sizeof(char)); //重新分配储存密码内存
system("cls");
printf("\a\n\n\n\n\n\n\n\n\t\t\t\t密 码 错 误 !");
getch();
system("cls");
}
}
void Save(struct student stu[]) //成绩保存函数
{
int i,j;
pp=stu; //指针指向结构
system("cls");
printf("\n\n\n\n\t\t\tSaving");
for(j=0;j<20;j++)
{
Sleep(300);
printf(".");
}
if((fp=fopen("stu_list2.doc","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 \t姓名 计算机应用\tJava \tC语言 \tA v e\tS u m\n");
for(i=0;i<shuru;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].aver=stu[i].sum/3;
fprintf(fp," %d \t%s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].aver,stu[i].sum);
}
}


[glow=255,red,2]QQ交流:285113291 非编程爱好者勿扰![/glow]
2007-06-24 09:31
yjh8656
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-3-6
得分:0 
我传一个时针模拟 用TRUBOC 运行
#include<graphics.h>
#include<math.h>
#include<dos.h>
#define PI 3.1415926
#define mid_x 320
#define mid_y 240

int main()
{
int graphdriver=DETECT,graphmode;
int end_x,end_y;
struct time curtime;
float th_hour,th_min,th_sec;
initgraph(&graphdriver,&graphmode,"c:\\TC");
setbkcolor(0);
while(! kbhit()) {

setcolor(14);
circle(mid_x,mid_y,150);
circle(mid_x,mid_y,2);
gettime(&curtime);
th_sec=(float)curtime.ti_sec*0.1047197551;
th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0;
th_hour=(float)curtime.ti_hour*0.523598775+th_min/12.0;

end_x=mid_x+70*sin(th_hour);
end_y=mid_y-70*cos(th_hour);
setcolor(5);
line(mid_x,mid_y,end_x,end_y);

end_x=mid_x+110*sin(th_min);
end_y=mid_y-110*cos(th_min);
setcolor(5);
line(mid_x,mid_y,end_x,end_y);

end_x=mid_x+140*sin(th_sec);
end_y=mid_y-140*cos(th_sec);
setcolor(5);
line(mid_x,mid_y,end_x,end_y);
sleep(1);
clrscr();
}
closegraph();
return 0;
}

[此贴子已经被作者于2007-6-24 10:24:54编辑过]

2007-06-24 10:22
liu1987lang
Rank: 2
等 级:论坛游民
帖 子:42
专家分:44
注 册:2007-4-22
得分:0 

我传一个图书管理程序

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#define N 2
int p=1;
//建立一个文件的结构体,并保存在文件中
struct Book
{int no;//图书编号
char author[20];//作者
char name[30];//书名
char press[80];//出版社        
char kind[30];//类别
char adress[50];//存放位置
char date[20];//出版日期
int oneself;//是否借出     1:在架;2:借出
};
struct Book boo[N];struct Book temp;
void guanli();//管理函数
void Input();//输入函数
void change();//修改函数
void read();//文件读取
void search();//查询函数
void search_book1();//按编号
void search_book2();//按书名
void search_book3();//按作者
void Delete();//删除函数
void Delete1();//按编号删除
void Delete2();//按书名删除
void Delete3();//按作者删除
void paixu();//排序函数
void write();//文件写入函数
void main()
{  
    int i;
    printf("================================================================================\n");
    printf("                             欢迎进入图书管理系统                               \n");
do{    printf("================================================================================\n");
    printf("请选择:1  读者        2  管理员                                                 \n");
       printf("================================================================================\n");
    scanf("%d",&i);
   switch(i)
  { case 1:search();break;
    case 2:guanli();break;
    case 0:break;
  }
}while(i!=0);
}         
//管理程序
void guanli()
{ 
    int mima;
    printf("================================================================================\n");
    printf("请输入密码:");
    scanf("%d",&mima);
 if(mima==420)
 { 
     int c;
     printf("                           欢迎进入管理系统!                                    \n");
     printf("================================================================================\n");
     printf("请选择:1 录入       2 修改        3 删除         0 退出                         \n");
     scanf("%d",&c);
   switch(c)
   {
     case 1: Input();
               break;
     case 2: change();
               break;
     case 3: Delete();
              break;
     case 0:  break;
    }
}
}
//数据录入
void Input()
{
    int i;
    printf("================================================================================\n");
    printf("请按以下顺序输入图书的信息:              \n");
    printf("================================================================================\n");
    printf("  编号  作者  书名  出版社   类别  存放位置  出版日期  是否借出(1:在架,2已借) \n");
       printf("================================================================================\n");
for(i=0;i<N;i++)
{
 printf("%d:",i+1);
    scanf("%d%s%s%s%s%s%s%d",&boo[i].no,boo[i].author,boo[i].name,boo[i].press,boo[i].kind,
                                                     boo[i].adress,boo[i].date,&boo[i].oneself);
    write();
}
     
}
//数据修改
void change()
{ 
    int i,m;read();
    char s[20];
    printf("===============================================================================\n");
    printf("   请输入你所要修改的图书的名字:   \n");
    scanf("%s",s);
for(i=0;i<N;i++)
{ if(strcmp(boo[i].name,s)==0)
{    printf("================================================================================\n");
     printf("选择你需要修改的内容:                                                        \n");
     printf("================================================================================\n");
     printf("1:编号  2:作者  3:出版社  4:类别  5:存放位置   6:出版日期  7:是否在  0:退出\n");
     printf("==============================================================================\n");
       scanf("%d",&m);
     switch(m)
     {
      case 1: printf("输入新的编号:\n");
              scanf("%d",&boo[i].no);
             break;
      case 2:printf("输入新作者:\n");
            scanf("%s",boo[i].author);
             break;
      case 3: printf("输入新的出版社:\n");
             scanf("%s",boo[i].press);
             break;
      case 4: printf("输入新的类别:\n");
             scanf("%s",boo[i].kind);
             break;
      case 5: printf("输入新的存放位置:\n");
             scanf("%s",boo[i].adress);
            break;
      case 6: printf("输入新的出版日期:\n");
             scanf("%s",boo[i].date);
             break;
      case 7: printf("输入是否在架:\n");
             scanf("%d",&boo[i].oneself);
             break;
     }
} 
}
printf("修改完毕!\n");write();
}
//排序
void paixu()
{ 
    int i,j,k;
    for(i=0;i<N-1;i++)
{
     k=i;
     for(j=i+1;j<N;j++)
     if(boo[k].no<boo[j].no)
     k=j;
     if(k!=i)
    { 
      temp=boo[k];
      boo[k]=boo[i];
      boo[i]=temp;
    }
}
}
//按编号找
void search_book1() 
 { 
     int n,i; read();                                                             
    printf("================================================================================\n");
    printf("请输入图书序号:           ");                    
    scanf("%d",&i);
    printf("================================================================================\n");
for(n=0;n<N;n++) 
{if(i==boo[n].no) 
{if(p==0){printf("你要找的书已被删除\n");printf("==============================================================================\n");
break;}
else if(p==1)
 {if(boo[n].oneself==1)   
    { printf("     书名           作者            出版日期          书版社         是否在架 \n");
       printf("==============================================================================\n");
      printf("      %s              %s               %s                 %s               在架     \n",boo[n].name,boo[n].author,boo[n].date,boo[n].press);
      printf("================================================================================\n");
    }
    else if(boo[n].oneself==2)
    { printf("     书名           作者            出版日期          书版社         是否在架    \n");
       printf("==============================================================================\n");
      printf("      %s              %s               %s                 %s               在架     \n",boo[n].name,boo[n].author,boo[n].date,boo[n].press);
      printf("================================================================================\n");
    }    
 break;}
}
    else {printf("你的输入有误!\n");printf("==============================================================================\n");
    break;}    
} 
}
//按书名找
void search_book2() 
 { 
    char s[10];int n;
    read();
    printf("请输入书名:\n"); 
    scanf("%s",&s);
 for(n=0;n<2;n++) 
 { 
   if(strcmp(boo[n].name,s)==0)
  { if(p==0){printf("你要找的书已被删除\n");printf("==============================================================================\n");
break;}
   { if(boo[n].oneself==1)
   { printf("     书名           作者            出版日期          书版社         是否在架    \n");
      printf("=================================================================================\n"); 
     printf("      %s              %s               %s                 %s               在架     \n",boo[n].name,boo[n].author,boo[n].date,boo[n].press);
     printf("================================================================================\n");
   }
    else if(boo[n].oneself==2)
    { printf("     书名           作者            出版日期          书版社         是否在架    \n");
       printf("==============================================================================\n");
      printf("      %s              %s               %s                 %s               在架     \n",boo[n].name,boo[n].author,boo[n].date,boo[n].press);
      printf("================================================================================\n");
    }
break;    }
 }
    else {printf("你的输入有误!\n");printf("==============================================================================\n");
    break;}    
} 
}
//按作者找
void search_book3() 
 { 
    int n; char s[10];
    printf("请输入作者:\n"); 
    scanf("%s",&s); 
 for(n=0;n<N;n++) 
 { 
    if(strcmp(boo[n].author,s)==0)
    {if(p==0){printf("你要找的书已被删除\n");printf("==============================================================================\n");
break;}
 { if(boo[n].oneself==1)
    { printf("     书名           作者            出版日期          书版社         是否在架    \n");
       printf("==============================================================================\n");
      printf("      %s              %s               %s                 %s               在架     \n",boo[n].name,boo[n].author,boo[n].date,boo[n].press);
      printf("================================================================================\n");
    }
    else if(boo[n].oneself==2)
    { printf("     书名           作者            出版日期          书版社         是否在架    \n");
       printf("==============================================================================\n");
      printf("      %s              %s               %s                 %s               在架     \n",boo[n].name,boo[n].author,boo[n].date,boo[n].press);
      printf("================================================================================\n");
    }
 break;} 
    } 

    else {printf("你的输入有误!\n");printf("==============================================================================\n");
    break;}    
} 
}
//找书
void search()
{int i;
    printf("================================================================================\n");          
do{    printf("请选择查询方式 :   1.按编号        2.按书名         3.按作者          0.退出    \n");
    printf("================================================================================\n");                
 scanf("%d",&i); 
switch(i)
  {
      case 1 :search_book1();
                 break;
      case 2 :search_book2();
                 break;
      case 3 :search_book3();
                 break;
      case 0 : break;
  } 
}while(i!=0);
}
//数据的读入
void read()
{
    FILE *fp1;int i;
    if((fp1=fopen("E:\\library.txt","r"))==NULL)
{
    printf("不能打开文件");
    exit(1);
}
    for(i=0;i<N;i ++)
{
    fscanf(fp1,"%d%s%s%s%s%s%s%d",&boo[i].no,boo[i].name,boo[i].author,boo[i].press,boo[i].date,boo[i].adress,boo[i].kind,&boo[i].oneself);}
    fclose(fp1);
}
void write()
{
    FILE *fp2;int i;
    if((fp2=fopen("E:\\library.txt","w"))==NULL)
{
    printf("不能打开文件");
      exit(1);
}
     for(i=0;i<N;i++)
{
    fprintf(fp2,"%4d%4s%4s%4s%4s%4s%4s%4d\n",boo[i].no,boo[i].name,boo[i].author,boo[i].press,boo[i].date,boo[i].adress,boo[i].kind,boo[i].oneself);
}
    fclose(fp2);
}
//数据删除
void Delete()
{ int c;
     printf("================================================================================\n");
     printf("请选择删除方式:1.按编号:       2.按书名:       3.按作者:");
 scanf("%d",&c);
 switch(c)
  {
      case 1 :Delete1();p=0;
                 break;
      case 2 :Delete2();
                 p=0;break;
      case 3 :Delete3();
                 p=0;break;
      case 0 :break;
  } 
}
//按编号
void Delete1()
{
    int i,m,n,b;read();
    printf("==============================================================================\n");
    printf("请输入你要删除的图书的编号:"); 
    scanf("%d",&m);
    for(i=0;i<N;i++)
    {if(m==boo[i].no) b=0;} 
    if(b==0)
    {printf("=============================================================================\n");
     printf(" 你是否真的要删除这本书?        1 yes!        2 no!\n");
     printf("=============================================================================\n");     
     scanf("%d",&n);
     switch(n)
        {case 1: printf("图书已删除");printf("====================================================================\n");p=0;
         case 2: break;
        }
          }
     else printf("你要删除的图书不存在!\n请查证后在选择!");
     printf("=============================================================================\n");
}
//按书名
void Delete2()
{
   char m[20];int i,b,n;read();
   printf("==============================================================================\n");
    printf("请输入你要删除的图书的书名!\n");
    scanf("%s",&m);
    for(i=0;i<N;i++)
    {if(strcmp(boo[i].name,m)==0) b=0;} 
    printf("=============================================================================\n");
    if(b==0)
    {printf(" 你是否真的要删除这本书?         1 yes!        2  no!\n");
     printf("=============================================================================\n");     
     printf("\n");
     scanf("%d",&n);
    switch(n)
        {case 1: printf("图书已删除");printf("=============================================================================\n");p=0;
         case 2: break;
        }
    }
     else printf("你要删除的图书不存在!\n请查证后在选择!");
}
//按作者
void Delete3()
{
    int i,b;char m[20];read();
    printf("==============================================================================\n");
    printf("请输入你要删除的图书的作者!\n");
    scanf("%s",&m);
    for(i=0;i<N;i++)
    {if(strcmp(boo[i].author,m)==0) b=0;} 
    printf("=============================================================================\n");
    if(b==0)
    {printf("你是否真的要删除这本书!    1 是     2  否\n");
     printf("=============================================================================\n");     
     printf("\n");
     switch(getchar())
        {case '1': printf("图书已删除");printf("=============================================================================\n");p=0;
         case '2': break;
        }
    }
     else printf("你要删除的图书不存在!\n");
}


2007-06-24 13:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-147468-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.330804 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved