管理系统1.0版源代码(源码版本管理工具)
admin 发布:2022-12-19 17:47 162
今天给各位分享管理系统1.0版源代码的知识,其中也会对源码版本管理工具进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
求C语言学生档案管理界面的源代码
# includeiostream.h
# includestring.h
# includestdio.h
# includestdlib.h
# includefstream.h
//*****定义一个学生原子的的数据结构*****//
struct stuatom
{
char *name;
int id;
char sex;
float math, eng, comp, totll, aver;
void show();
void setup();
};
//*********定义一系列对学生的操作**********//
class student
{
private:
stuatom ob[100];
int stulen;
public:
student();
void input();
void order();
void save();
void Query();
void read();
void add();
void del();
};
//********对学生数据的初始化(类的构造函数)**********//
student::student()
{
//用for循环对全部数组中的数据初始化
for(int i=0;i100;i++)
{
ob[i].math=ob[i].eng=ob[i].comp =ob[i].totll =ob[i].aver =0;
ob[i].id =0;
ob[i].sex =' ';
ob[i].name =NULL;
}
this-stulen =0;
}
//********输入学生的数据,并判断是否在规定数据域内*******//
void stuatom::setup()
{
char n[20]; char s;
int b;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
do {
cout" 学号: ";
cinb;
if(b1020||b1001)
cout"Bad data input!!"endlendl;
}while (b1001||b1020);
id=b;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
do{
name=new char[strlen(n)+1];
cout" 姓名: ";
cinn;
if( strlen(n)6 || strlen(n)4 )
cout"Bad data input!!"endlendl;
}while ( strlen(n)6 strlen(n)4 );
strcpy(name,n);
cout" 性别(m/f):" ;
cins;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (s!='m' s!='f')
{
cout"Bad data input!!"endlendl;
cout" 性别(m/f):";
cins;
}
sex=s;
float m, e, co;
cout" 数学: ";
cinm;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (m0 || m100)
{
cout"Bad data input!!"endlendl;
cout" 数学: ";
cinm;
}
math=m;
cout" 英语: ";
cine;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (e0 || e100)
{
cout"Bad data input!!"endlendl;
cout" 英语: ";
cine;
}
eng=e;
cout" 计算机: ";
cinco;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (co0 || co100)
{
cout"Bad data input!!"endlendl;
cout" 计算机: ";
cinco;
}
comp=co;
totll=math+eng+comp;
aver=(math+eng+comp)/3;
}
//*******按照规定格式把该学生的数据显示在屏幕上******//
void stuatom::show()
{
cout.setf(ios::left);
cout.width(6);
cout""id" ";
cout.width(8);
coutname;
cout.width(10);
coutsex;
cout.width(9);
coutmath;
cout.width(9);
couteng;
cout.width(11);
coutcomp;
cout.width(10);
couttotllaverendl;
}
//**************输入学生的数据***********************//
void student::input()
{
int n;
coutendl"输入将要录入的学生数目: ";
cinn;
int j;
//通过循环输入要求输入学生个数的学生的数据。
for(j=0; jn; j++)
{
cout" 输入学生信息 "jendl;
ob[j].setup();
}
this-stulen=n; //学生个数赋值
//学生数据显示格式
system("cls");
coutendl"----------------------------- 学生信息表 ------------------------------------"endl;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
//通过循环输出所有学生数据。
for(j=0; jn; j++)
{
ob[j].show();
}
coutendl;
cout" 是否保存? (Y/N): ";
char Y;
cinY;
system("cls");
}
//**************按照一定格式显示所要查询学生的信息。**************//
void student::Query()
{
int x , i;
coutendl" 输入要查询学生的学号: ";
cinx;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
for(i=0;i=this-stulen ;i++)
{ if (x==ob[i].id)
{
cout.setf(ios::left);
cout.width(6);
cout""ob[i].id" ";
cout.width(8);
coutob[i].name;
cout.width(10);
coutob[i].sex;
cout.width(9);
coutob[i].math;
cout.width(9);
coutob[i].eng;
cout.width(11);
coutob[i].comp;
cout.width(10);
coutob[i].totllob[i].averendl;
}
}
getchar();
}
//*******************保存学生数据**************************//
void student::save()
{
int i;
ofstream outfile;
outfile.open("list.txt",ios::trunc);
if(!outfile)
{
cout"Cannot open output file!\n,";
}
//通过循环把所有的学生数据保存在list.txt里边。
for(i=0; ithis-stulen; i++)
{
outfileob[i].id" "ob[i].name" "ob[i].sex" "
ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;
}
outfile.close();
}
//*************显示所有学生数据*********************//
void student::read()
{
int i;
system("cls");
coutendl"----------------------------- 学生信息表 ------------------------------------"endl;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
for(i=0; ithis-stulen; i++)
{
ob[i].show();
}
getchar();
}
//*******************一个学生的数据****************//
void student::add()
{
int i, d=this-stulen ;
cout"输入要添加学生的信息:"endl;
ob[d].setup();
coutendl"----------------------------- 学生信息表 ------------------------------------"endl;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
for(i=0; i=d; i++)
{
ob[i].show();
}
ofstream fout("list.txt",ios::app);
if(!fout)
{
cout"Cannot open output file!\n,";
}
//把添加的学生数据添加到list.txt里边去。
foutob[d].id" "ob[d].name" "ob[d].sex" "
ob[d].math" "ob[d].eng" "ob[d].comp" "ob[d].totll" "ob[d].averendl;
fout.close();
getchar();
}
//*********************删除指定名字学生的数据*******************//
void student::del()
{
int i,p; char x[8];
cout" 输入要删除学生名字:"endl;
cinx;
//通过for循环查找要删除学生的姓名
for(i=0; istulen; i++)
{
if(strcmp(ob[i].name,x)==0)
{
p=i;
coutendl"学号 姓名 性别 数学 英语 计算机 总成绩 平均成绩"endl;
coutob[i].id" "ob[i].name" "ob[i].sex" "ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;
break;
}
else
continue;
}
coutendl"----------------------------- 学生信息表 ------------------------------------"endl;
coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;
//删除了之后,应该把后面的数据往前移,把要删除的数据覆盖,并且学生长度减1
stulen--;
for(i;istulen;i++)
{
ob[i]=ob[i+1];
}
this-read ();
cout" 删除成功!"endl;
getchar();
}
//***********把学生成绩排序******************//
void student::order()
{
int k,j;
float t; char n[20];
//排序算法。
for(j = 0; j=(2-1); j++)
{
for(k=1; k=(2-j); k++)
{
if(ob[k].totll ob[k + 1].totll)
{
t = ob[k].totll;
ob[k].totll = ob[k+1].totll;
ob[k+1].totll = t;
strcpy(n, ob[k].name);
strcpy(ob[k].name, ob[k+1].name);
strcpy(ob[k+1].name, n);
}
cout" 成绩排名:"endl;
cout" 姓名 总成绩 名次"endl;
for(k=0; k=stulen; k++)
{
cout" ";
cout.setf(ios::left);
cout.width(9);
coutob[k].name;
cout.width(9);
coutob[k].totllkendl;
}
getchar();
}
}
}
//********************选择菜单。*****************//
void menu()
{
cout"\n\n";
cout"------------------ 学生成绩系统 -----------------"endlendl;
cout"\t\t1.录入与保存学生信息.\n";
cout"\t\t2.读取学生信息.\n";
cout"\t\t3.删除学生信息.\n";
cout"\t\t4.追加学生信息.\n";
cout"\t\t5.查询学生信息.\n";
cout"\t\t6.显示成绩名次.\n";
cout"\t\t7.退出系统......\n\n\n";
cout"\t\t请选择功能项: ";
}
//---------------------------------------------------------------------------------------
void main()
{
student a;
while(1)
{
int SEL;
system("cls");
menu();
cinSEL;
switch(SEL)
{
case 1:
system("cls"); a.input();a.save();break;
case 2:
system("cls"); a.read(); break;
case 3:
system("cls"); a.del(); break;
case 4:
system("cls"); a.add();break;
case 5:
system("cls"); a.Query();break;
case 6:
system("cls"); a.order();break;
case 7:
coutendl" 按任意键退出.... "endl;
getchar();
exit(0);
default:
cout"Bad input!!\n";
break;
}
}
} 我比较忙,没有亲自帮你写,你自己改改吧,框架出来了。
急用,C++学生成绩管理系统源代码,感谢
/*#includestdio.h
#includestdlib.h
#includestring.h
//函数的声明,扩展作用域
//能够储存的成绩个数
#define SIZE 10
//菜单函数
void ment(void);
//添加成绩函数
void chengji(int p[]);
//输出所有成绩函数
void sccj(int p[]);
//选择函数
int chse(int num);
//删除成绩函数
void dloe(int p[]);
//修改成绩
void cger(int p[]);
//查询成绩函数
void scere(int p[]);
//求平均分函数
void aser(int p[]);
//求最高分函数
void mascer(int p[]);
//求最低分函数
void miscer(int p[]);
int len=0;
int name[24];
int p[10];
int main(void)
{
//定义相关变量
//选择菜单的序号
int sent = 0;
//存放结果
int rese = 0;
char name[15];
int i=0;
for(i=0;i4;i++)
{
printf("\n请输入您的名字:");
scanf("%s",name);
if(strcmp(name,"张浪浪")==0)
{
printf("欢迎使用成绩管理系统!\n");
break;
}
else
{
printf("输出错误!!\n");
printf("请重新输入!!\n");
printf("你只有三次机会,当前为%d次\n",i+1);
if(i+1==3)
{
printf("\n账号已锁定!!\n");
return 0;
}
}
}
while(1)
{
ment();//调用菜单函数
printf("\n====请输入您选择的序号:");
scanf("%d",sent);
while(sent0 || sent8)
{
printf("\n输入错误!请输入0-8!\n");
scanf("%d",sent);
}
//调用选择函数
rese = chse(sent);
if(rese == -1) break;
}
system("pause");
return 0;
}
//菜单函数
void ment(void)
{
printf("\n=====成绩管理系统=====\n");
printf("======1:添加成绩======\n");
printf("======2:删除成绩======\n");
printf("======3:修改成绩======\n");
printf("======4:查询成绩======\n");
printf("======5:求平均分======\n");
printf("======6:求最高分======\n");
printf("======7:求最低分======\n");
printf("====8:输出所有成绩====\n");
printf("====0:退出管理系统====\n");
}
//选择函数
int chse(int num)
{
//定义相关变量
int sun = 0;//存放返回值
//利用开关函数实现函数的调用
switch(num)
{
//添加成绩
case 1:
chengji(p);
break;
//删除成绩
case 2:
dloe(p);
break;
//修改成绩
case 3:
cger(p);
break;
//查询成绩
case 4:
scere(p);
break;
//求平均分
case 5:
aser(p);
break;
//求最高分
case 6:
mascer(p);
break;
//求最低分
case 7:
miscer(p);
break;
//输出所有成绩
case 8:
sccj(p);
break;
//退出程序
case 0:
sun= -1;
break;
}
return sun;
}
//添加成绩函数
void chengji(int p[])
{
//判断是否已存满
if (len == SIZE)
{
printf("容量已满,添加失败!\n");
//退出函数,中断函数执行
return ;
}
else
{
printf("请输入要添加的成绩");
//把最新的数据存放在最后一个元素那里
scanf("%d",p[len]);
//len++;成绩个数+1
len++;
printf("成绩添加成功!\n");
}
}
//输出所有成绩函数
void sccj(int p[])
{
int i = 0;
if(len == 0)
printf("当前没有任何成绩!\n");
else
{
printf("所有成绩为:");
//对当前所有成绩进行遍历输出
for(i = 0 ; i len ; i++)
{
printf("%d",p[i]);
}
printf("\n");
}
}
//删除成绩函数
void dloe(int p[])
{
int i=0;
int idx=0;
printf("请输入同学要删除成绩的序号(第一个序号为0);");
scanf("%d",idx);
if(idx0||idxlen-1||len==0)
{
printf("找不到需要删除的成绩序号\n");
//退出函数
return;
}
//从需要删除的元素开始,后面一个元素的数据依次增加
for(i=idx;ilen-1;i++)
{
p[i]=p[i+1];
}
p[i]=0;
len=len-1;
printf("成绩删除成功\n");
}
//修改成绩函数
void cger(int p[])
{
int value=0;
int index=0;
printf("请输入要修改成绩的序号(第-一个序号为0);");
scanf("%d",index) ;
if (index0||indexlen-1l||len==0)
{
printf("找不到需要修改的成绩序号!\n");
return;
}
printf("请输入修改后的成绩:");
scanf("%d",value);
//修改成绩
p[index]=value;
printf ("成绩修改成功!\n");
}
//查询成绩函数
void scere(int p[])
{
int index=0;
printf("请输入要查询成绩的序号(第一个序号为0);");
scanf("%d",index);
if(index0|| indexlen-1||len==0)
{
printf("找不到需要查询的成绩序号!\n");
return;
}
printf("要查询的成绩为:%d分\n",p[index]);
}
//求平均分函数
void aser(int p[])
{
double avg = 0;//定义一个变量来存储平均值
int i =0,j=0;
if(len == 0)
{
printf("%s同学当前还没添加成绩!!!\n",name);
}
else
{
for(i=0;ilen;i++)
{
avg+=p[j++]/(len*1.0);
}
printf("%s同学当前成绩的平均分为:%.2f\n",name,avg);
}
}
//求最高分函数
void mascer(int p[])
{
int max = 0;
int i = 0,j = 0;
if(len == 0)
{
printf("%s同学当前还没添加成绩!!!\n",name);
}
else
{
for(i=0;ilen;i++)
{
if(p[j++] max)
max = p[j-1];
}
printf("%s同学当前成绩的最高分为:%d\n",name,max);
}
}
//求最低分函数
void miscer(int p[])
{
int min = p[0];
int i = 0,j = 0;
if(len == 0)
{
printf("%s同学当前还没添加成绩!!!\n",name);
}
else
{
for(i=0;ilen;i++)
{
if(p[j++] min)
min = p[j-1];
}
printf("%s同学当前成绩的最低分为:%d\n",name,min);
}
}
*/
/*#includestdio.h
#includestdlib.h
#define SIZE 10
int len = 0;
void addscore(int p[])
{
int index;
int i = 0;
int score = 0;
printf("请输入需要添加的位置(当前已有%d个数,第一个位置为0):",len);
scanf("%d",index);
printf("请输入添加的数据:");
scanf("%d",score);
for(i=len;iindex;i--)
{
p[i]=p[i-1];
}
p[index]=score;
len++;
}
int main(void)
{
int arr[SIZE] = {10,20,30,40};
int i = 0;
len = 4;
addscore(arr);
printf("当前数组中的数为:");
for(;ilen;)
{
printf("%d\t",arr[i++]);
}
printf("\n");
system("pause");
}
*/
/*
int j =0 ;//统计素数的个数
void fun(int *a)
{
int i = 0;
int z = 0;
for(i=2;i=100;i++)
{
for(z=2;z=i;z++)
{
if(i%z == 0)
break;
}
if(i=z)
{
*(a+j)=i;
j++;
}
}
}
int main(void)
{
int arr[100];//存放素数
int i = 0;
fun(arr);
printf("arr数组中共有%d个素数,分别是:",j);
for(;ij;i++)
{
printf("%d\t",*(arr+i));
}
printf("\n");
return 0;
}
/*
int max = 0;
int min = 0;
int fun(int *a)
{
int i = 0;
int j = 0;
max = *a;
min = *a;
for(i=0,j=0;i10;i++)
{
if(max*(a+j++))
max = *(a+j-1);
}
for(i=0,j=0;i10;i++)
{
if(min*(a+j++))
min = *(a+j-1);
}
}
int main(void)
{
int arr[10] = {10,20,30,40,50,60,70,80,90,100};
fun(arr);
printf("最大值为:%d\n最小值为:%d\n",max,min);
return 0;
}
*/
用C++编写图书管理系统(源代码)
这个由于你给的分太少,估计每人会给你做的。
我给你一个做参照吧,基本功能都已经实现了,并且在VC6上已经编译运行确认:
#include iostream
#include iomanip
#include string
#include fstream//输入/输出文件流类
using namespace std;
const int Maxr=100;//最多的读者
const int Maxb=100;//最多的图书
const int Maxbor=5;//每位读者最多借五本书
//读者类,实现对读者的信息的描述
class Reader
{
private:
int tag; //删除标记 1:已删 0:未删
int no; //读者编号
char name[10]; //读者姓名
int borbook[Maxbor];//所借图书
public:
Reader() {}
char *getname() {return name;} //获取姓名
int gettag() {return tag;} //获取删除标记
int getno() {return no;} //获取读者编号
void setname(char na[]) //设置姓名
{
strcpy(name,na);
}
void delbook(){ tag=1; }//设置删除标记 1:已删 0:未删
void addreader(int n,char *na)//增加读者
{
tag=0;
no=n;
strcpy(name,na);
for(int i=0;iMaxbor;i++)
borbook[i]=0;
}
void borrowbook(int bookid)//借书操作
{
for(int i=0;iMaxbor;i++)
{
if (borbook[i]==0)
{
borbook[i]=bookid;
return;
}
}
}
int retbook(int bookid)//还书操作
{
for(int i=0;iMaxbor;i++)
{
if(borbook[i]==bookid)
{
borbook[i]=0;
return 1;
}
}
return 0;
}
void disp()//读出读者信息
{
cout setw(5) no setw(10) name"借书编号:[";
for(int i=0;iMaxbor;i++)
if(borbook[i]!=0)
cout borbook[i] "|";
cout "]"endl;
}
};
//读者类库,实现建立读者的个人资料
class RDatabase
{
private:
int top; //读者记录指针
Reader read[Maxr];//读者记录
public:
RDatabase() //构造函数,将reader.txt读到read[]中
{
Reader s;
top=-1;
fstream file("reader.txt",ios::in);//打开一个输入文件
while (1)
{
file.read((char *)s,sizeof(s));
if (!file)break;
top++;
read[top]=s;
}
file.close(); //关闭 reader.txt
}
void clear()//删除所有读者信息
{
top=-1;
}
int addreader(int n,char *na)//添加读者时先查找是否存在
{
Reader *p=query(n);
if (p==NULL)
{
top++;
read[top].addreader(n,na);
return 1;
}
return 0;
}
Reader *query(int readerid)//按编号查找
{
for (int i=0;i=top;i++)
if (read[i].getno()==readerid
read[i].gettag()==0)
{
return read[i];
}
return NULL;
}
void disp() //输出所有读者信息
{
for (int i=0;i=top;i++)
read[i].disp();
}
void readerdata();//读者库维护
~RDatabase() //析构函数,将read[]写到reader.txt文件中
{
fstream file("reader.txt",ios::out);
for (int i=0;i=top;i++)
if (read[i].gettag()==0)
file.write((char *)read[i],sizeof(read[i]));
file.close();
}
};
void RDatabase::readerdata()
{
char choice;
char rname[20];
int readerid;
Reader *r;
while (choice!='0')
{
cout "\n\n\t\t\t读 者 维 护\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 删 除\n\n\t\t 4 查 找\n\n\t\t 5 显 示\n\n\t\t 6 全 删\n\n\t\t 0 退 出"endl;
cin choice;
switch (choice)
{
case '1':
cout "输入读者编号:";
cin readerid;
cout "输入读者姓名:";
cin rname;
addreader (readerid,rname);
break;
case '2':
cout "输入读者编号:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout " 该读者不存在 "endl;
break;
}
cout "输入新的姓名:";
cin rname;
r-setname(rname);
break;
case '3':
cout " 输入读者编号:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout " 该读者不存在" endl;
break;
}
r-delbook();
break;
case '4':
cout "读入读者编号:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout "该读者不存在" endl;
break;
}
r-disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout"输入错误,请从新输入:";break;
}
}
}
//图书类,实现对图书的描述,图书的编号,书名,借出,还入等
class Book
{
private:
int tag;//删除标记 1:已删 0:未删
int no;//图书编号
char name[20];//书名
int onshelf;//是否再架 1:再架 2:已借
public:
Book(){}
char *getname() { return name; }//获取姓名
int getno(){ return no; }//获取图书编号
int gettag(){ return tag; }//获取删除标记
void setname(char na[])//设置书名
{
strcpy(name,na);
}
void delbook(){ tag=1;}//删除图书
void addbook(int n,char *na)//增加图书
{
tag=0;
no=n;
strcpy(name,na);
onshelf=1;
}
int borrowbook()//借书操作
{
if (onshelf==1)
{
onshelf=0;
return 1;
}
return 0;
}
void retbook()//还书操作
{
onshelf=1;
}
void disp()//输出图书
{
cout setw(6) no setw(18) name setw(10)
(onshelf==1? "在架":"已借") endl;
}
};
//图书库类,实现对图书的维护,查找,删除等
class BDatabase
{
private:
int top; //图书记录指针
Book book[Maxb]; //图书记录
public:
BDatabase()//构造函数,将book.txt读到book[]中
{
Book b;
top=-1;
fstream file("book.txt",ios::in);
while (1)
{
file.read((char *)b,sizeof(b));
if (!file) break;
top++;
book[top]=b;
}
file.close();
}
void clear()//全删
{
top=-1;
}
int addbook(int n,char *na)//增加图书
{
Book *p=query(n);
if (NULL==p)
{
top++;
book[top].addbook(n,na);
return 1;
}
return 0;
}
Book *query(int bookid)//查找图书
{
for (int i=0;i=top;i++)
if (book[i].getno()==bookid book[i].gettag()==0)
{
return book[i];
}
return NULL;
}
void bookdata();//图书库维护
void disp()
{
for (int i=0;i=top;i++)
if (book[i].gettag()==0)
book[i].disp();
}
~BDatabase()//析构函数,将book[]写到book.txt文件中
{
fstream file("book.txt",ios::out);
for (int i=0;i=top;i++)
if (book[i].gettag()==0)
file.write((char *)book[i],sizeof(book[i]));
file.close();
}
};
void BDatabase::bookdata()
{
char choice;
char bname[40];
int bookid;
Book *b;
while (choice!='0')
{
cout "\n\n\n\t\t\t图 书 维 护 "endlendl;
cout"\t\t1 新 增\n \t\t2 更 改\n\t\t3 删 除\n\t\t4 查 找\n\t\t5 显 示\n\t\t6 全 删\n\t\t0 退 出"endl;
cin choice;
switch (choice)
{
case '1':
cout "输入图书编号:"endl;
cin bookid;
cout "输入图书书名:"endl;
cin bname;
addbook(bookid,bname);
break;
case '2':
cout "输入图书编号:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 该图书不存在 "endl;
break;
}
cout "输入新的书名:"endl;
cin bname;
b-setname(bname);
break;
case '3':
cout " 读入图书编号:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 该图书不存在" endl;
break;
}
b-delbook();
break;
case '4':
cout " 读入图书编号:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 该图书不存在" endl;
break;
}
b-disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout"输入错误,请从新输入:";
}
}
}
//main() 函数的实现,程序的主界面的引导
void main()
{
char choice;
int bookid,readerid;
RDatabase ReaderDB;
Reader *r;
BDatabase BookDB;
Book *b;
while(choice!='0')
{
cout endlendl"\t\t\t 图 书 管 理 系 统\n\n\n";
cout "\t\t\t1 借 书\n\n\t\t\t2 还 书 \n\n\t\t\t3 图 书 维 护\n\n\t\t\t4 读 者 维 护\n\n\t\t\t0 离 开"endl;
cin choice;
switch (choice)
{
case '1':
cout " 借书 读者编号:";
cin readerid;
cout " 图书编号: ";
cin bookid;
r=ReaderDB.query(readerid);//按编号查找
if (NULL==r)
{
cout " 不存在该读者,不能借书" endl;
break;
}
b=BookDB.query(bookid);
if (b==NULL)
{
cout " 不存在该图书,不能借书" endl;
break;
}
if (b-borrowbook()==0)
{
cout " 该图书已借出,不能借书" endl;
break;
}
r-borrowbook(b-getno());
break;
case '2':
cout"还书\n 读者编号:";
cin readerid;
cout " 图书编号:";
cin bookid;
r=ReaderDB.query(readerid);
if (r==NULL)
{
cout " 不存在该读者,不能还书" endl;
break;
}
b=BookDB.query(bookid);
if (b==NULL)
{
cout " 不存在该图书,不能还书" endl;
break;
}
b-retbook();
r-retbook(b-getno());
break;
case '3':
BookDB.bookdata();
break;
case '4':
ReaderDB.readerdata();
break;
default:cout"输入错误,请从新输入:";
}
}
}
学生基本信息管理系统C++源代码
#include iostream
#include iomanip
#include string
using namespace std;
typedef struct student {
unsigned m_id;
string m_name;
unsigned m_age;
string m_sex;
string m_address;
string m_contact;
string m_dormitory;
struct student *m_next;
}student;
class CStudent {
private :
student *head;
public :
CStudent() {
head = new student;
head-m_id = 0;
head-m_name = "noname";
head-m_next = NULL;
}
~CStudent() {
student *p = head,*q;
while(p) {
q = p;
p = q-m_next;
delete q;
}
}
student readdata(int model); // model = 1:不读取学号,2:不读取姓名,其他,读取所有信息
void entering();
bool insert(const student astu);
student *findid(unsigned id) const;
student *findname(const string name) const;
student *findsex(const string sex) const;
student *finddormitory(const string dormitory) const;
unsigned boys() const;
unsigned girls() const;
unsigned headcount() const;
bool eraseid();
bool erasename();
bool modifyid();
bool modifyname();
void Show() const;
void query() const;
void friend statistics(const CStudent aclss);
void friend erase(CStudent aclss);
void friend modify(CStudent aclss);
};
string readstring() {
string str;
while(cin.get() != '\n');
cin str;
return str;
}
student CStudent::readdata(int model) {
student tmp;
if(model != 1) { cout "学 号: "; cin tmp.m_id; }
if(model != 2) { cout "姓 名: "; tmp.m_name = readstring(); }
cin tmp.m_age;
cout "性 别: ";
tmp.m_sex = readstring();
cout "住 址: ";
tmp.m_address = readstring();
cout "联系方式: ";
tmp.m_contact =readstring();
cout "寝 室: ";
tmp.m_dormitory = readstring();
return tmp;
}
void CStudent::entering() {
student tmp;
cout "学号(0 to return): ";
cin tmp.m_id;
while(tmp.m_id) {
if(findid(tmp.m_id) == NULL) {
cout "姓 名: ";
tmp.m_name = readstring();
cout "年 龄: ";
cin tmp.m_age;
cout "性 别: ";
tmp.m_sex = readstring();
cout "住 址: ";
tmp.m_address = readstring();
cout "联系方式: ";
tmp.m_contact = readstring();
cout "寝 室: ";
tmp.m_dormitory = readstring();
insert(tmp);
}
else cout "重复的学号:" tmp.m_id endl;
cout "学号(0 to return): ";
cin tmp.m_id;
}
}
student *CStudent::findid(unsigned id) const {
student *p;
for(p = head; p-m_next; p = p-m_next)
if(p-m_next-m_id == id) return p;
return NULL;
}
student *CStudent::findname(const string name) const {
student *p;
for(p = head; p-m_next; p = p-m_next)
if(p-m_next-m_name == name) return p;
return NULL;
}
student *CStudent::findsex(const string sex) const {
student *p;
for(p = head; p-m_next; p = p-m_next)
if(p-m_next-m_sex == sex) return p;
return NULL;
}
student *CStudent::finddormitory(const string dormitory) const {
student *p;
for(p = head; p-m_next; p = p-m_next)
if(p-m_next-m_dormitory == dormitory) return p;
return NULL;
}
bool CStudent::insert(const student astu) {
student *newnode,*p = head;
if(p-m_next == NULL) {
p-m_next = new student(astu);
p-m_next-m_next = NULL;
return true;
}
while(p-m_next) {
if(p-m_next-m_id == astu.m_id) {
cout "重复的学号,插入失败!\n";
return false;
}
if(p-m_next-m_id astu.m_id) {
newnode = new student(astu);
newnode-m_next = p-m_next;
p-m_next = newnode;
return true;
}
p = p-m_next;
}
p-m_next = new student(astu);
p-m_next-m_next = NULL;
return true;
}
unsigned CStudent::boys() const {
unsigned cnt = 0;
student *p;
for(p = head-m_next; p; p = p-m_next)
if(p-m_sex == "男") ++cnt;
return cnt;
}
unsigned CStudent::girls() const {
unsigned cnt = 0;
student *p;
for(p = head-m_next; p; p = p-m_next)
if(p-m_sex == "女") ++cnt;
return cnt;
}
unsigned CStudent::headcount() const {
unsigned cnt = 0;
student *p;
for(p = head-m_next; p; p = p-m_next,++cnt);
return cnt;
}
bool CStudent::eraseid() {
student *q,*p;
unsigned id;
cout "输入要删除的学号:";
cin id;
p = findid(id);
if(p == NULL) {
cout "没有找到学号是\"" id "\"的学生,删除失败!\n";
return false;
}
q = p-m_next;
p-m_next = q-m_next;
delete q;
return true;
}
bool CStudent::erasename() {
student *q,*p;
string name;
cout "输入要删除人的姓名:";
name = readstring();
p = findname(name);
if(p == NULL) {
cout "没有找到姓名是\"" name "\"的学生,删除失败!\n";
return false;
}
q = p-m_next;
p-m_next = q-m_next;
delete q;
return true;
}
bool CStudent::modifyid() {
student tmp,*p;
unsigned id;
cout "输入要修改的学号:";
cin id;
p = findid(id);
if(p == NULL) {
cout "没有找到学号是\"" id "\"的学生,修改失败!\n";
return false;
}
tmp = readdata(1);
tmp.m_id = id;
*p = tmp;
return true;
}
bool CStudent::modifyname() {
student *p,tmp;
string name;
cout "输入要修改人的姓名:";
name = readstring();
p = findname(name);
if(p == NULL) {
cout "没有找到姓名是\"" name "\"的学生,修改失败!\n";
return false;
}
tmp = readdata(2);
tmp.m_name = name;
*p = tmp;
return true;
}
int menu() {
int choice;
do {
system("cls");
cout "\t****************************\n";
cout "\t* 学生基本信息管理系统 *\n";
cout "\t*==========================*\n";
cout "\t* 1、录入学生信息 *\n";
cout "\t* 2、显示学生信息 *\n";
cout "\t* 3、查询学生信息 *\n";
cout "\t* 4、添加学生信息 *\n";
cout "\t* 5、统计学生信息 *\n";
cout "\t* 6、删除学生信息 *\n";
cout "\t* 7、修改学生信息 *\n";
cout "\t* 0、退出管理系统 *\n";
cout "\t****************************\n";
cout "\n\t请选择:";
cin choice;
}while(choice 0 || choice 7);
return choice;
}
void show(student *p) {
cout p-m_id " " p-m_name " " p-m_age " ";
cout p-m_sex " " p-m_address " ";
cout p-m_contact " " p-m_dormitory endl;
}
void CStudent::Show() const {
student *p;
cout "----------------------------------------------------------\n";
for(p = head-m_next; p; p = p-m_next) show(p);
cout "----------------------------------------------------------\n";
system("pause");
}
void CStudent::query() const {
int select;
unsigned id;
string name;
student *p;
cout "1、按学号查询\n2、按姓名查询\n0、返回\n";
cin select;
switch(select) {
case 1 : cout "请输入学号:"; cin id;
if(p = findid(id)) show(p-m_next);
break;
case 2 : cout "请输入姓名:"; name = readstring();
if(p = findname(name)) show(p-m_next);
break;
case 0 : return;
default : cout "选择错误。\n";
}
system("pause");
}
void statistics(const CStudent a) {
unsigned total = a.headcount();
unsigned boys = a.boys();
unsigned girls = a.girls();
cout "学生总数:" total "人。\n";
cout "其中,男生:" boys "名。";
cout "女生:" girls "名。\n";
system("pause");
}
void erase(CStudent a) {
int select;
unsigned id;
string name;
student *p,*q;
cout "1、按学号删除\n2、按姓名删除\n0、返回\n";
cin select;
switch(select) {
case 1 : cout "请输入学号:"; cin id;
if(p = a.findid(id)) {
q = p-m_next;
p-m_next = q-m_next;
delete q;
cout "成功删除 " id " 的信息。\n";
}
break;
case 2 : cout "请输入姓名:"; name = readstring();
if(p = a.findname(name)) {
q = p-m_next;
p-m_next = q-m_next;
delete q;
cout "成功删除 " name " 的信息。\n";
}
break;
case 0 : return;
default : cout "选择错误。\n";
}
system("pause");
}
void modify(CStudent a) {
int select;
cout "1、按学号修改\n2、按姓名修改\n0、返回\n";
cin select;
switch(select) {
case 1 : if(a.modifyid()) cout "修改成功。\n"; break;
case 2 : if(a.modifyname()) cout "修改成功。\n"; break;
case 0 : return;
default : cout "选择错误。\n";
}
system("pause");
}
int main() {
CStudent a;
int an;
do {
an = menu();
switch(an) {
case 1 : a.entering(); break;
case 2 : a.Show(); break;
case 3 : a.query(); break;
case 4 : a.entering(); break;
case 5 : statistics(a); break;
case 6 : erase(a); break;
case 7 : modify(a); break;
case 0 : break;
default : cout "选择错误。\n"; break;
}
}while(an);
return 0;
}
关于管理系统1.0版源代码和源码版本管理工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-18自媒体发稿,自媒体发稿平台源码
- 05-17seo管理软件,seo管理工具
- 05-11自助建站系统源码,自助建站源码php
- 05-07pb超级报表源代码(pb报表工具)[20240507更新]
- 05-07简历源代码可以上传照片的简单介绍[20240507更新]
- 05-07广告切换源代码免费下载(广告切换源代码免费下载安装)[20240507更新]
- 05-06阁楼网源代码(阁楼是什么网站)[20240506更新]
- 05-06源代码管理资源管理器(资源管理器运行代码)[20240506更新]
- 05-06人脸识别源代码pdf的简单介绍[20240506更新]
- 05-06包含超市管理系统java源代码的词条[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接