学生信息管理系统c++(c++学生信息管理系统程序)

本文目录
c++学生信息管理系统程序
以前有人答过的:
你只要将职工改为学生,职工代码改为学号,就行了。
/**************************************************
内容及要求:
1注册新职工,添加新职工的详细信息,
如:职工号,姓名,出生年份,性别,职称,部门,工资等;
2按姓名,部门等条件进行查询;
3修改和删除职工信息;
4按工资高低进行排序;
5把各项纪录存储在文本文件中。
----ky kuaidh00, 2008/01/05.-------------------
评说:有删除和增加的操作,最好选取链表来做。
**************************************************/
#include 《string》
#include 《iostream》
#include 《fstream》
#include 《iomanip》
#include 《memory.h》
#include 《stdio.h》
#include 《conio.h》
#include 《stdlib.h》
using namespace std;
struct Employee
{//声明职工的结构作为链表节点。
//-----数据域-----
string m_Code;
string m_Name;
unsigned short int m_Year;
string m_Sex;
string m_Post;
string m_Department;
unsigned int m_Wage;
//链表节点的指针域---
struct Employee* Next;
};
//-----个人习惯:取别名-------
typedef struct Employee Node;
typedef Node* Link;
//-------函数声明-------------
Link Create(Link Head);
void Release(Link Head);
Link Add(Link Head);
bool Search(Link Head);
Link Search_Unique(Link Head);
void Display_List(Link Head);
void Display_Node(Link pNode);
Link Modify(Link Head);
Link Del(Link Head);
void Save_ByFile(Link Head,fstream& ofile);
Link Sort(Link Head);
//-------函数实现--------------------------
Link Create(Link Head)
{//创建一个带头节点的空链表。
Head=(Link)new Node;
if(!Head)
{
cout《《"分配内存失败!"《《endl;
return NULL;
}
Head-》m_Code="";
Head-》m_Name="";
Head-》m_Year=0;
Head-》m_Sex="";
Head-》m_Post="";
Head-》m_Department="";
Head-》m_Wage=0;
Head-》Next=NULL;
return Head;
}
void Release(Link Head)
{//释放链表。
Link ptr;//声明一个操作用的指针。
while(Head!=NULL)
{
ptr=Head;
Head=Head-》Next;
delete ptr;//释放节点资源。
}
}
Link Add(Link Head)
{//前插法添加数据。
Link pNew;// 声明一个新节点。
char again;
string code,name,sex,post,department;
unsigned short int year;
unsigned int wage;
do
{
pNew=(Link)new Node;
//数据域。
cout《《"请输入职工代码:";
cin》》code;
cout《《endl《《"请输入职工姓名:";
cin》》name;
cout《《endl《《"请输入职工出生年份:";
cin》》year;
while(cin.fail())
{
cout《《"请输入正确的年份格式。"《《endl;
cin.clear();
fflush(stdin);
cin》》year;
}
cout《《endl《《"请输入职工性别:";
cin》》sex;
cout《《endl《《"请输入职工职称:";
cin》》post;
cout《《endl《《"请输入职工部门:";
cin》》department;
cout《《endl《《"请输入职工工资:";
cin》》wage;
while(cin.fail())
{
cout《《"请输入正确的工资数据。"《《endl;
cin.clear();
fflush(stdin);
cin》》wage;
}
cout《《endl;
pNew-》m_Code=code;
pNew-》m_Name=name;
pNew-》m_Year=year;
pNew-》m_Sex=sex;
pNew-》m_Post=post;
pNew-》m_Department=department;
pNew-》m_Wage=wage;
//指针域。
pNew-》Next=Head-》Next;
Head-》Next=pNew;
cout《《"数据添加成功!是否继续添加?(Y/N)"《《endl;
cin》》again;
}while(again==’Y’||again==’y’);
return Head;
}
bool Search(Link Head)
{//查询同时满足“姓名”和“部门”的职工信息。
Link ptr;
string department;
string name;
ptr=Head-》Next;
cout《《"请输入部门:";
cin》》department;
cout《《endl《《"请输入姓名:";
cin》》name;
cout《《endl《《"----------------查询结果------------------"《《endl;
while(ptr)
{
if((ptr-》m_Name==name)&&(ptr-》m_Department==department))
{
Display_Node(ptr);//打印满足条件的节点。
return true;
}
ptr=ptr-》Next;//查询下一节点。
}
cout《《"无此职工的信息。"《《endl;
return false;
}
Link Search_Unique_Front(Link Head)
{//查询满足“职工代码“的职工信息(职工代码必需唯一)。
Link ptr;
string code;
ptr=Head;
cout《《"请输入职工代码:";
cin》》code;
cout《《endl《《"----------------查询结果------------------"《《endl;
while(ptr-》Next)
{
if(ptr-》Next-》m_Code==code)
//Display_Node(ptr);//打印满足条件的节点。
return ptr;//注意,是返回的查询到的节点的直接前趋节点。
ptr-》Next=ptr-》Next-》Next;//查询下一节点。
}
return ptr;
}
void Display_List(Link Head)
{
Link ptr;
ptr=Head-》Next;
cout《《"==================所有职工信息=================="《《endl;
while(ptr)
{
Display_Node(ptr);
ptr=ptr-》Next;
}
}
void Display_Node(Link pNode)
{//在标准输出设备上输出。
cout《《setw(10)《《left《《pNode-》m_Code
《《setw(10)《《left《《pNode-》m_Name
《《setw(10)《《left《《pNode-》m_Year
《《setw(10)《《left《《pNode-》m_Sex
《《setw(10)《《left《《pNode-》m_Post
《《setw(10)《《left《《pNode-》m_Department
《《setw(10)《《left《《pNode-》m_Wage《《endl;//setw(10)表示占10个字符位置。
}
Link Modify(Link Head)
{// 修改单一个节点。
Link ptr;
ptr=Search_Unique_Front(Head);
string code,name,sex,post,department;
unsigned short int year;
unsigned int wage;
if(ptr-》Next)
{
cout《《"-------你现在可以修改此职工的信息了-------"《《endl;
//数据域。
cout《《"请输入职工代码:";
cin》》code;
cout《《endl《《"请输入职工姓名:";
cin》》name;
cout《《endl《《"请输入职工出生年份:";
cin》》year;
while(cin.fail())
{
cout《《"请输入正确的年份格式。"《《endl;
cin.clear();
fflush(stdin);
cin》》year;
}
cout《《endl《《"请输入职工性别:";
cin》》sex;
cout《《endl《《"请输入职工职称:";
cin》》post;
cout《《endl《《"请输入职工部门:";
cin》》department;
cout《《endl《《"请输入职工工资:";
cin》》wage;
while(cin.fail())
{
cout《《"请输入正确的工资数据。"《《endl;
cin.clear();
fflush(stdin);
cin》》wage;
}
cout《《endl;
ptr-》Next-》m_Code=code;//因ptr是前趋节点,所以要用ptr-》Next;
ptr-》Next-》m_Name=name;
ptr-》Next-》m_Year=year;
ptr-》Next-》m_Sex=sex;
ptr-》Next-》m_Post=post;
ptr-》Next-》m_Department=department;
ptr-》Next-》m_Wage=wage;
}
cout《《"没找到此职工的记录,无法修改。"《《endl;
return Head;
}
Link Del(Link Head)
{
Link ptr;
Link ptr_front;
ptr_front=Search_Unique_Front(Head);
ptr=ptr_front-》Next;
if(ptr)
{
ptr_front-》Next=ptr-》Next;
delete ptr;//删除此节点。
}
cout《《"没找到此职工的记录,无法删除。"《《endl;
return Head;
}
void Save_ByFile(Link Head,fstream& ofile)
{
Link pNode;
pNode=Head-》Next;
ofile.clear();//清除文件结束状态。
while(pNode)
{
ofile《《setw(10)《《left《《pNode-》m_Code
《《setw(10)《《left《《pNode-》m_Name
《《setw(10)《《left《《pNode-》m_Year
《《setw(10)《《left《《pNode-》m_Sex
《《setw(10)《《left《《pNode-》m_Post
《《setw(10)《《left《《pNode-》m_Department
《《setw(10)《《left《《pNode-》m_Wage《《endl;//setw(10)表示占10个字符位置。
pNode=pNode-》Next;
}
cout《《"数据文件保存成功!"《《endl;
}
Link Sort(Link Head)
{//我创建的是带头节点的链表。用直接插入法。
if((Head-》Next==NULL)||(Head-》Next-》Next==NULL))//此步条件判断非常有价值。
{
cout《《"数据节点数少于2个,不用排序!"《《endl;
return Head;
}
//-----------第二步;
Link ptr;
Link ptr_F;
Link ptr_N;
ptr=Head-》Next-》Next;
ptr_F=Head;
Head-》Next-》Next=NULL;//到此,分成了两个链表。
//第三步。
while(ptr)
{
ptr_N=ptr-》Next;
ptr_F=Head;//ptr_F的归位。
while(ptr_F-》Next)
{
if(ptr-》m_Wage》ptr_F-》Next-》m_Wage)
{
ptr-》Next=ptr_F-》Next;
ptr_F-》Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F-》Next;
}
}//while(ptr_F-》Next)
if(ptr_F-》Next==NULL)
{
ptr-》Next=ptr_F-》Next;
ptr_F-》Next=ptr;//表示插到有序链表的最后面了。
}
ptr=ptr_N;//归位,准备下一次排序。
}//while(ptr)
cout《《"从高到低,排序成功!"《《endl;
return Head;
}
int main()
{
Link Head=0;
Head=Create(Head);
fstream iofile;
iofile.open("d:\\iofile.txt",ios_base::in|ios_base::out|ios_base::app);//文件以三种方式打开。
if(!iofile)
{
cout《《"打开文件失败!"《《endl;
return -1;
}
int menu;
while(1)
{
cout《《"*****************************************************"《《endl;
cout《《"*====================菜单选顶=======================*"《《endl;
cout《《"*===================================================*"《《endl;
cout《《"* 1.注册职工 2.修改信息 3.删除信息 4.信息查询 *"《《endl;
cout《《"* 5.保存文件 6.工资排行 7.信息显示 0.退出系统 *"《《endl;
cout《《"*****************************************************"《《endl;
cout《《endl《《"请选择相应操作菜单项:";
cin》》menu;
while(cin.fail())
{
cout《《"请选择正确的菜单选项。"《《endl;
cin.clear();
fflush(stdin);
cin》》menu;
}
switch(menu)
{
case 0:
cout《《"成功退出系统!"《《endl;
return 0;
case 1:
Head=Add(Head);
break;
case 2:
Head=Modify(Head);
break;
case 3:
Head=Del(Head);
break;
case 4:
Search(Head);
break;
case 5:
Save_ByFile(Head,iofile);
break;
case 6:
Sort(Head);
break;
case 7:
Display_List(Head);
break;
default:
cout《《"请选择正确的菜单项进行操作。多谢合作!"《《endl;
}
}
Release(Head);
iofile.close();
return 0;
}
c++ 学生管理系统
#include《iostream》
#include《string》
#include 《fstream》
#include《sstream》
#include《iomanip》
using namespace std;
//结点类,用于存放学生的各种数据
class Node{
public:
int id; //学号
string name; //姓名
string grade; //等级
double english; //英语
double math; //数学
double c; //C++
double sum; //总分
double average;
Node *next; //指向下一结点的指针
Node(int nid=0,string nname="noname", //构造函数,初始化变量
double e=0,double m=0,double cl=0,
double s=0 ,double a=0,string g="ng");
};
Node::Node(int nid,string nname,double e,double m,double cl,double s,double a,string g){
id=nid;
name=nname;
next=NULL;
english=e;
math=m;
c=cl;
sum=s;
average=a;
grade=g;
}
//class NOde结束
//Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象
class Link{
private:
Node *head; //链表的头指针,为Node对象类型的指
public :
Link();//构造函数,初始化变量
bool linkIsEmpty();//判断链表是否为空
void linkInsert(Node *newnode);//向链表中插入新的结点
bool linkDelete(int nid);//从链表中删除的结点
void linkClear();//清空链表中数据
void linkView();//查看链表中数据
void linkGrade(Node *p1);//计算等级
void linkAverageTotle();//按平均分统计
Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针
Node* getHead();//获取头指针
};
Link::Link(){ //构造函数,初始化链表为空
head=NULL;
}
bool Link::linkIsEmpty(){ //判断链表是否为空,空则返回true
return(head==NULL);
}
void Link::linkInsert(Node *newnode){//按id值从小到大的顺序,插入新的结点
Node *p1;
if(!head)//链表为空的情况
head=newnode;
else if((head-》id)》(newnode-》id)){//插入到第一个结点的情况
newnode-》next=head;
head=newnode;
}
else{//插入到第二个及以后情况
p1=head;
while(1){
if(!(p1-》next)){
p1-》next=newnode;
break;
}
else if((p1-》next)-》id》newnode-》id){
newnode-》next=p1-》next;
p1-》next=newnode;
break;
}
p1=p1-》next;
}
}
}
bool Link::linkDelete(int nid){//删除结点,成功则返回true
Node *p;
if(head==NULL)//链表为空的情况
return false;
if(head-》id==nid){//删除的为第一个结点的情况
head=head-》next;
return true;
}
p=head;
while(p-》next){//删除的为第二个及以后结点的情况
if((p-》next)-》id==nid){
p-》next=(p-》next)-》next;
return true;
}
p=p-》next;
}
return false;
}
void Link::linkClear(){//清空链表
head=NULL;
}
void Link::linkView(){//显示链表数据
Node *p=head;
cout《《setw(10)《《"学号"《《setw(8)《《"姓名"《《setw(8)《《"英语"《《setw(8)
《《"数学"《《setw(8)《《"C++"《《setw(8)《《"总分"《《setw(8)《《"平均分"《《setw(8)《《"等级"《《endl;
while(p){
(p-》sum)=(p-》english)+(p-》math)+(p-》c);//计算总分
(p-》average)=((p-》english)+(p-》math)+(p-》c))/3;//计算平均成绩
linkGrade(p);//计算等级
cout《《setw(10)《《p-》id《《setw(8)《《p-》name《《setw(8)《《p-》english
《《setw(8)《《p-》math《《setw(8)《《p-》c《《setw(8)《《p-》sum《《setw(8)
《《p-》average《《setw(8)《《p-》grade《《endl;
p=p-》next;
}
}
void Link::linkGrade(Node *p1){ // 计算等级
while(p1){
if(p1-》average》=90&&p1-》average《=100)
p1-》grade="优";
else if(p1-》average》=80&&p1-》average《90)
p1-》grade="良好";
else if(p1-》average》=70&&p1-》average《80)
p1-》grade="中等";
else if(p1-》average》=60&&p1-》average《=70)
p1-》grade="合格";
else
p1-》grade="不合格";
p1=p1-》next;
}
}
void Link::linkAverageTotle(){//按学生平均分统计
int a=0,b=0,c=0,d=0,e=0,f=0;
double averagesum=0,asum=0,aaverage=0,paverage=0;
Node *p3=head;
while(p3){
if(p3-》average》=90&&p3-》average《=100)
a+=1;
else if(p3-》average》=80&&p3-》average《90)
b+=1;
else if(p3-》average》=70&&p3-》average《80)
c+=1;
else if(p3-》average》=60&&p3-》average《70)
d+=1;
else
e+=1;
asum+=p3-》sum;
aaverage+=p3-》average;
p3=p3-》next;
}
f=a+b+c+d+e;
averagesum=asum/f;
paverage=aaverage/f;
cout《《"|-------------------------------------------------------|"《《endl;
cout《《"| 总 人 数:"《《f《《endl;
cout《《"|-------------------------------------------------------|"《《endl;
cout《《"| 优 人 数:"《《a《《" | "《《"优 秀 率: "《《a*100/f《《"%"《《endl;
cout《《"|-------------------------------------------------------|"《《endl;
cout《《"| 良 好 的人数:"《《b《《" | "《《"良 好 率: "《《b*100/f《《"%"《《endl;
cout《《"|-------------------------------------------------------|"《《endl;
cout《《"| 中 等 的人数:"《《c《《" | "《《"中 等 率: "《《c*100/f《《"%"《《endl;
cout《《"|-------------------------------------------------------|"《《endl;
cout《《"| 所有合格人数:"《《a+b+c+d《《" | "《《"合 格 率: "《《(a+b+c+d)*100/f《《"%"《《endl;
cout《《"|-------------------------------------------------------|"《《endl;
cout《《"| 不 合 格 数:"《《e《《" | "《《"不合格率: "《《e*100/f《《"%"《《endl;
cout《《"|-------------------------------------------------------|"《《endl;
cout《《"| 总分的平均分:"《《averagesum《《" | "《《"所有科目的平均分:"《《paverage《《endl;
cout《《"|-------------------------------------------------------|"《《endl;
}
Node* Link::linkFind(int nid){//查找id值为nid的结点,返回该结点的指针
Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULL
while(p){
if(p-》id==nid)
break;
else
p=p-》next;
}
return p;
}
Node* Link::getHead(){
return head;
}
//class Link 结束
//类Student,用于包装Link类及菜单操作
class Student{
private:
Link slink;//Link对象成员
bool k;//记录数据是否被修改
public:
Student();
void studentClear();
void studentInsert();
void studentDelete();
void studentFind();
void studentView();
void studentLoad();
void studentSave();
void studentAverageTotle();//按平均分数统计等级
void Exit();//退出程序
void showMenu();//显示菜单
void showTip();//显示操作提示
void doMenu(char n);//执行相应菜单项功能
};
Student::Student(){
Link();//调用成员对象的构造函数
studentLoad();//从文件中读取数据,创建链表
k=false;//设置数据被修改
}
void Student::studentClear(){//清空学生记录
slink.linkClear();
cout《《"成功清空学生记录!"《《endl;
}
void Student::studentInsert(){//插入学生记录
Node *p=new Node();
cout《《"请输入学号:";
cin》》p-》id;
cout《《"请输入姓名:";
cin》》p-》name;
if(!slink.linkFind(p-》id)){//判断学号是否存在
slink.linkInsert(p);
k=true;
}
else
cout《《"学号为"《《p-》id《《"的学生已存在,插入失败!"《《endl;
cout《《"请输入成绩:"《《endl;
cout《《"英语:";
cin》》p-》english;
cout《《endl;
cout《《"数学:";
cin》》p-》math;
cout《《endl;
cout《《"C++:";
cin》》p-》c;
cout《《endl;
(p-》sum)=(p-》english)+(p-》math)+(p-》c);//计算总分
(p-》average)=((p-》english)+(p-》math)+(p-》c))/3;//计算平均成绩
}
void Student::studentDelete(){//删除学生记录
int i;
if(slink.linkIsEmpty())//链表为空的情况
cout《《"没有学生记录!"《《endl;
else{
cout《《"请输入学号:";
cin》》i;
if(slink.linkDelete(i)){
cout《《"成功删除学号为"《《i《《"的学生记录!"《《endl;
k=true;
}
else
cout《《"没有找到学号为"《《i《《"的学生!"《《endl;
}
}
void Student::studentFind(){//查找某学号的学生记录
int n;
Node *p;
if(slink.linkIsEmpty())//链表为空的情况
cout《《"没有学生记录!"《《endl;
else{
cout《《"请输入要查找的学号:";
cin》》n;
p=slink.linkFind(n);//获得找到的结点的指针
if(p){//指针值不为NULL时
(p-》sum)=(p-》english)+(p-》math)+(p-》c);//计算总分
(p-》average)=((p-》english)+(p-》math)+(p-》c))/3;//计算平均成绩
slink.linkGrade(p);
cout《《setw(6)《《"学号"《《setw(8)《《"姓名"《《setw(8)《《"英语"
《《setw(8)《《"数学"《《setw(8)《《"C++"《《setw(8)《《"总分"《《setw(8)
《《"平均分"《《setw(8)《《"等级"《《endl;
cout《《setw(6)《《p-》id《《setw(8)《《p-》name《《setw(8)《《p-》english
《《setw(8)《《p-》math《《setw(8)《《p-》c《《setw(8)《《p-》sum《《setw(8)《《p-》average
《《setw(8)《《p-》grade《《endl;
}
else//指针值为NULL时
cout《《"没有找到学号为"《《n《《"的学生记录!"《《endl;
}
}
void Student::studentView(){//显示所有学生的记录
if(slink.linkIsEmpty())
cout《《"没有学生记录!"《《endl;
else
slink.linkView();
}
void Student::studentLoad(){//从文件中读入数据,创建链表
Node *p;
int nid;
ifstream infile("data.txt");
if(!infile)
cerr《《"错误:数据文件不能打开!\n";
else
while(infile》》nid){//读取学号,直到读空
p=new Node();
p-》id=nid;
infile》》p-》name》》p-》english》》p-》math》》p-》c》》p-》sum》》p-》average》》p-》grade;//读取姓名
slink.linkInsert(p);
}
infile.close(); //关闭文件
}
void Student::studentSave(){//将数据保存到文件
Node *p=slink.getHead();
ofstream outfile("data.txt");
if(!outfile)
cerr《《"错误:数据文件不能打开!\n";
else{
while(p){
outfile《《p-》id《《’ ’《《p-》name《《’ ’《《p-》english《《’ ’《《p-》math《《’ ’
《《p-》c《《’ ’《《p-》sum《《’ ’《《p-》average《《’ ’《《p-》grade《《endl;
p=p-》next;
}
k=false;
cout《《"保存成功!"《《endl;
}
}
void Student::studentAverageTotle(){
if(slink.linkIsEmpty())
cout《《"没有学生记录!"《《endl;
else
slink.linkAverageTotle();
}
void Student::Exit(){
char s=’Y’;
if(k){//判断数据是否修改
cout《《"数据已经改变,是否保存?(y/n):";
cin》》s;
if(s==’y’||s==’Y’)
studentSave();
}
cout《《"已安全退出,";
system("pause");
exit(0);
}
void Student::showMenu(){
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 学生信息管理系统 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 1. 清空:清除所有学生数据 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 2. 添加:插入一条学生数据 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 3. 删除:删除指定学生数据 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 4. 查找:查找指定学生数据 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 5. 显示:显示所有学生数据 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 6. 保存:保存所有学生数据 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 7. 统计:按学生平均分统计 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl;
cout《《" "《《"| 0. 退出:安全的退出本系统 |"《《endl;
cout《《" "《《"|------------------------------------------------|"《《endl《《endl;
}
void Student::showTip(){
cout《《endl;
cout《《"-------------------操作完成---------------------"《《endl;
cout《《"-----------------选择0-7继续-------------------"《《endl;
cout《《"请选择:";
}
void Student::doMenu(char n){
switch(n){
case ’1’:
studentClear();break;
case ’2’:
studentInsert();break;
case ’4’:
studentFind();break;
case ’3’:
studentDelete();break;
case ’5’:
studentView();break;
case ’6’:
studentSave();break;
case ’7’:
studentAverageTotle();break;
case ’0’:
Exit();break;
default:cout《《"输入错误!";
}
}
int main(){
Student s;
char i=’9’;
s.showMenu();
cout《《"选择对应数字进行操作:";
while(1){
cin》》i;
system("cls"); //清除屏幕
s.showMenu();
s.doMenu(i);
s.showTip();
}
}
用c++编一个学生信息管理系统设计
用C语言编的.凑和着看,以前写的.
#include《stdio.h》
#include《stdlib.h》
#include《string.h》
#include《conio.h》
struct student
{
int number;
char name;
float yuwen;
float yingyu;
float shuxue;
float aver;
struct student *next;
};
typedef struct student node;
typedef node *link;
int n;
/*建立菜单*/
void menu(void)
{printf("---------------主菜单---------------\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("-------输入’9’,退出-----------------\n");
}
/*建立数据信息即链表*/
link creat(void)
{
link head,p1,p2;
head=NULL;
n=0;
p1=p2=(link)malloc(sizeof(node));
printf("请输入学号,输入’0’结束:\n");
scanf("%d",&p1-》number);
while(p1-》number)
{
printf("姓名:");
scanf("%s",p1-》name);
printf("语文成绩:");
scanf("%f",&p1-》yuwen);
printf("英语成绩:");
scanf("%f",&p1-》yingyu);
printf("数学成绩:");
scanf("%f",&p1-》shuxue);
p1-》aver=(p1-》yuwen+p1-》yingyu+p1-》shuxue)/3;
n++;
if(n==1)head=p1;
else p2-》next=p1;
p2=p1;
p1=(link)malloc(sizeof(node));
printf("请输入学号,输入’0’结束:\n");
scanf("%d",&p1-》number);
}
p2-》next=NULL;
return(head);
}
/*查找并显示信息按照学号*/
void find(link head)
{
link p;
int number;
int flag=1;
char c;
if(head==NULL)printf("信息系统为空!无法查询!!!按任意键回到主菜单!\n");
else
{
while(flag)
{
printf("请输入要查询学生的学号: ");
scanf("%d",&number);
getchar();
p=head;
while(p!=NULL)
{
if(p-》number==number)
{
printf("要查找的学号为%d的学生信息如下:\n",number);
printf("%-5d%-10s%-7.2f%-7.2f%-7.2f%-7.2f\n",p-》number,p-》name,p-》yuwen,p-》yingyu,p-》shuxue,p-》aver);
break;
}
else p=p-》next;
}
if(p==NULL)printf("学号为%d的学生不存在!\n",number);
printf("是否继续查询?(y/n) ");
scanf("%c",&c);
getchar();
if(c==’n’||c==’N’)
{
flag=0;
printf("按任意键回到主菜单!\n");
}
}
}
}
/*修改学生成绩信息*/
void modi(link head)
{
link p;
int number;
int tnumber;
char tname;
float tyuwen,tyingyu,tshuxue,taver;
int flag=1;
char c;
if(head==NULL)printf("学生成绩系统为空!无法修改!!!按任意键回到主菜单!\n");
else
{
while(flag)
{
printf("请输入要修改的学生学号: ");
scanf("%d",&number);
getchar();
p=head;
while(p!=NULL)
{
if(p-》number==number)
{
printf("学号: ");
scanf("%d",&tnumber);
printf("姓名:");
scanf("%s",tname);
printf("语文成绩:");
scanf("%f",&tyuwen);
printf("英语成绩:");
scanf("%f",&tyingyu);
printf("数学成绩:");
scanf("%f",&tshuxue);
getchar();
taver=(tyuwen+tyingyu+tshuxue)/3;
printf("是否保存?(y/n) ");
scanf("%c",&c);
getchar();
if(c==’y’||c==’Y’)
{
p-》number=tnumber;
strcpy(p-》name,tname);
p-》yuwen=tyuwen;
p-》yingyu=tyingyu;
p-》shuxue=tshuxue;
p-》aver=taver;
printf("保存成功!\n");
}
break;
}
else p=p-》next;
}
if(p==NULL)printf("学号为%d的学生成绩信息不存在!!!\n",number);
printf("是否继续修改?(y/n) ");
scanf("%c",&c);
getchar();
if(c==’n’||c==’N’)
{
flag=0;
printf("按任意键回到主菜单!\n");
}
}
}
}
/*插入学生信息*/
link insert(link head)
{
link p,p1;
int flag=1;
char c;
while(flag)
{
p=(link)malloc(sizeof(node));
printf("输入学号: ");
scanf("%d",&p-》number);
printf("姓名:");
scanf("%s",p-》name);
printf("语文成绩:");
scanf("%f",&p-》yuwen);
printf("英语成绩:");
scanf("%f",&p-》yingyu);
printf("数学成绩:");
scanf("%f",&p-》shuxue);
getchar();
p-》aver=(p-》yuwen+p-》yingyu+p-》shuxue)/3;
if(head==NULL)head=p;
else
{
p1=head;
while(p1-》next!=NULL)p1=p1-》next;
p1-》next=p;
}
p-》next=NULL;
n++;
printf("插入学生信息如下:\n");
printf("%-5d%-10s%-7.2f%-7.2f%-7.2f%-7.2f\n",p-》number,p-》name,p-》yuwen,p-》yingyu,p-》shuxue,p-》aver);
printf("是否继续插入?(y/n) ");
scanf("%c",&c);
getchar();
if(c==’n’||c==’N’)
{
flag=0;
printf("按任意键回到主菜单!\n");
}
}
return(head);
}
/*删除学生信息*/
link del(link head)
{
link p,p2;
int flag=1;
int number;
char c;
if(head==NULL)printf("信息系统为空!无法删除!!!按任意键回到主菜单!\n");
else
{
while(flag)
{
printf("输入要删除的学生学号: ");
scanf("%d",&number);
getchar();
p2=p=head;
while(p!=NULL)
{
if(p-》number==number)
{
printf("要删除的学号为%d的学生信息如下:\n",number);
printf("%-5d%-10s%-7.2f%-7.2f%-7.2f%-7.2f\n",p-》number,p-》name,p-》yuwen,p-》yingyu,p-》shuxue,p-》aver);
printf("是否确定删除?(y/n) ");
scanf("%c",&c);
getchar();
if(c==’y’||c==’Y’)
{
if(p==head)head=p-》next;
else p2-》next=p-》next;
n--;
printf("删除成功!!\n");
}
break;
}
else
{
p2=p;
p=p-》next;
}
}
if(p==NULL)printf("学号为%d的学生信息不存在!!!\n",number);
if(head==NULL)
{
printf("信息系统为空,无法继续删除!\n");
getchar();
break;
}
printf("是否继续删除?(y/n )");
scanf("%c",&c);
getchar();
if(c==’n’||c==’N’)flag=0;
printf("按任意键回到主菜单!\n");
}
}
return(head);
}
/*输出学生成绩信息*/
void print(link head)
{
link p;
if(head==NULL)printf("信息系统为空!!!按任意键回到主菜单!\n");
else
{
printf("一共有%d个学生的信息:\n",n);
p=head;
while(p)
{
printf("%-5d%-10s%-7.2f%-7.2f%-7.2f%-7.2f\n",p-》number,p-》name,p-》yuwen,p-》yingyu,p-》shuxue,p-》aver);
p=p-》next;
}
printf("按任意键回到主菜单!\n");
}
}
/*用选择法排序*/
link sort(link head)
{
link beforep,p,p1,k,beforek,temp;
if(head==NULL)printf("信息系统为空!!!按任意键回到主菜单!\n");
else
{p=head;
while(p-》next!=NULL)
{
k=p;
p1=p-》next;
while(p1!=NULL)
{
if(k-》aver《p1-》aver)k=p1;
p1=p1-》next;
}
if(k!=p)
{
beforek=head;
while(beforek-》next!=k)beforek=beforek-》next;
if(p==head)head=k;
else beforep-》next=k;
beforek-》next=p;
temp=k-》next;
k-》next=p-》next;
p-》next=temp;
p=k;
}
beforep=p;
p=p-》next;
}
printf("排序成功,按任意键回到主菜单!\n");
}
return(head);
}
/*求全班总平均分并显示*/
void average(link head)
{
float toaver,sum=0;
int num=0;
link p;
if(head==NULL)printf("信息系统为空!!!按任意键回到主菜单!\n");
else
{
p=head;
while(p!=NULL)
{
sum+=p-》aver;
num++;
p=p-》next;
}
toaver=sum/num;
printf("全班总平均分是:%7.2f\n",toaver);
printf("按任意键回到主菜单!\n");
}
}
void main()
{
int k;
int flag=1;
link head=NULL;
while(1)
{
menu();
flag=1;
while(flag)
{
printf("请输入:(1~9) ");;
scanf("%d",&k);
getchar();
if(k》=1&&k《=9)flag=0;
else printf("输入错误!\n");
}
switch(k)
{
case 1:head=creat();break;
case 2:find(head);break;
case 3:modi(head);break;
case 4:head=insert(head);break;
case 5:head=del(head);break;
case 6:head=sort(head);break;
case 7:print(head);break;
case 8:average(head);break;
case 9:return;
}
getch();
}
}
用C++顺序结构(对象数组)实现学生信息管理系统
/***
该程序没有实际用途主要是
用以代码学习,我是初学者请
各位大神不要向我扔板砖.
***/
#include《iostream》
#include《windows.h》
#include《conio.h》
#include《iomanip》
#include《fstream》
#include《string》
#include《ctime》
using namespace std;
//#include"touwenjian.h";
#include"administrator.h";
int main(int args1,char*args2)
{
string n,s;
int m,m1(0);
ifstream f("C:\\windows\\system32\\系统管理员秘钥.txt");
f》》s;
f.close();
cout《《setfill(’ ’)《《setw(27)《《’ ’;
cout《《"欢迎进入银行管理系统"《《endl;
cout《《setfill(’ ’)《《setw(32)《《’*’《《"1.新用户注册"《《’*’《《endl;
cout《《setfill(’ ’)《《setw(32)《《’*’《《"2.老用户登陆"《《’*’《《endl;
if(s.empty())
cout《《setfill(’ ’)《《setw(32)《《’*’《《"3.初始化系统管理秘钥"《《endl;
if(!s.empty())
{
cout《《setfill(’ ’)《《setw(32)《《’*’《《"3.管理员登陆"《《endl;
m1++;
}
cout《《"*请选择:"《《endl;
cin》》n;
m=correct_check(n);
while(m《0)//容错处理.
{cout《《"输入有误!请重新输入:"《《endl;
cin》》n;
m=correct_check(n);
}
if(m==1)
new_user();//新用户注册
if(m==2)
old_load();//老用户登录
if(m==3&&m1==0)
new_admi();//初始管理信息
if(m==3&&m1==1)
old_admi();//管理员登陆
return 0;
}
/***
用户头文件主要用于新用户注册,
老用户登陆,可以显示余额、存款、
取款、转账、注销、以及对账户信
息以文档的形式进行记录.
***/
SYSTEMTIME _time;
void old_load();
struct person
{
string name;
string number;
string mobile;
string adress;
};
class caozuo//操作类
{
public:
void dir_last(string s);//显示余额
void cun_kuan(string s);//存款
void qu_kuan(string s);//取款
void zhuanzhang(string s);//转账
void del_count(string s);//注销
void tui_chu(); //退出
};
void caozuo::dir_last(string s)
{
string s1,s2,s3;
s1="C:\\"+s+"的账户信息.txt";
ifstream f(s1.c_str());
f》》s2;
f》》s2;
s3=s2.length()-17);
cout《《"您的当前余额为:"《《s3《《endl;
Sleep(2000);
system("cls");
}
void caozuo::cun_kuan(string s)
{
string s1,s2;
int n,m;
int i=0;
char a;
char*a1={"天","一","二","三","四","五","六"};
cout《《"请输入要存入的金额:"《《endl;
cin》》n;
GetLocalTime(&_time);//刷新时间.
m=n;
s1="C:\\"+s+"的账户信息.txt";
ifstream f(s1.c_str());
f》》s2;
f.close();//此处要先读入一串字符后再将文件关闭.
f.open(s1.c_str());
while(s2!="")
{
i++;
f》》s2;
}
n=atoi((s2.length()-17)).c_str())+n;//字符转换为数字后相加
itoa(n,a,10);//数字转换为字符
s2.length()-17,a);
ofstream f1(s1.c_str());
for(int j=1;j《i;j++)
f1《《s2《《endl;
f1《《_time.wYear《《"年"《《_time.wMonth《《"月"《《_time.wDay《《"日"《《"星期"《《a1\
《《_time.wHour《《"时"《《_time.wMinute《《"分"《《_time.wSecond《《"秒"《《"您的账户存入"《《m《《"元"《《endl;
cout《《m《《"元钱已存入您的账户."《《endl;
f1.close();
Sleep(1000);
system("cls");
}
void caozuo::qu_kuan(string s)
{
int n,m;
int i=0;
char a;
char*a1={"天","一","二","三","四","五","六"};
string s1,s2,s3;
s1="C:\\"+s+"的账户信息.txt";
cout《《"请输入您要取的金额:"《《endl;
cin》》n;
m=n;
GetLocalTime(&_time);//刷新时间
ifstream f(s1.c_str());
f》》s2;
f.close();
f.open(s1.c_str());
while(s2!="")
{
i++;
f》》s2;
}
f.close();
if(n》atoi((s2.length()-17)).c_str()))
cout《《"对不起,您输入的金额大于您银行账户的余额,无法完成该操作!"《《endl;
else
{
n=atoi((s2.length()-17)).c_str())-n;
itoa(n,a,10);
s2.length()-17,a);
ofstream f1(s1.c_str());
for(int j=1;j《i;j++)
f1《《s2《《endl;
f1《《_time.wYear《《"年"《《_time.wMonth《《"月"《《_time.wDay《《"日"《《"星期"《《a1\
《《_time.wHour《《"时"《《_time.wMinute《《"分"《《_time.wSecond《《"秒"《《"您的账户取出"《《m《《"元"《《endl;
f1.close();
cout《《m《《"元取款成功!"《《endl;
}
Sleep(1000);
system("cls");
}
void caozuo::zhuanzhang(string s)
{
system("cls");
char a;
char*a1={"天","一","二","三","四","五","六"};
string s1,s5;
int n,i=0,i1(0);
s5="C:\\"+s+"的账户信息.txt";
s4="不为空";
ifstream f(s5.c_str());
while(!s4.empty())
{
i1++;
f》》s4;
}
f.close();
s1="不为空";
ifstream f1("C:\\注册者名单.txt");
while(!s1.empty())
{
i++;
f1》》s1;
}
f1.close();
for(int j=2,int x=0;j《i;j+=4,x++)
s2.length()-11);
cout《《"可转入的账户人名单如下:"《《endl;
for(j=0;j《x;j++)
{
if(j%5==0)
cout《《endl;
cout《《s2《《’\t’;
}
cout《《"\n请输入要转入账户人的名字:"《《endl;
cin》》s3;
q:cout《《"请输入要转入的金额:"《《endl;
cin》》n;
if(n》atoi((s4.length()-17)).c_str()))
{
cout《《"对不起,您的余额不足!"《《endl;
goto q;
}
else
{
GetLocalTime(&_time);//刷新时间
itoa(atoi((s4.length()-17)).c_str())-n,a,10);
s4.length()-17,a);
ofstream f2(s5.c_str());
for(int y=1;y《i1;y++)//将转出信息写入转账记录
f2《《s4《《endl;
f2《《_time.wYear《《"年"《《_time.wMonth《《"月"《《_time.wDay《《"日"《《"星期"《《a1\
《《_time.wHour《《"时"《《_time.wMinute《《"分"《《_time.wSecond《《"秒"《《"您的账户向"《《s3《《"转出"《《n《《"元"《《endl;
f2.close();
s5="C:\\"+s3+"的账户信息.txt";
i=0;
s4="不为空";
ifstream f3(s5.c_str());
while(!s4.empty())
{
i++;
f3》》s4;
}
f3.close();
itoa(atoi((s4.length()-17)).c_str())+n,a,10);
s4.length()-17,a);
ofstream f4(s5.c_str());
for( y=1;y《i;y++)//将转入信息写入转账记录
f4《《s4《《endl;
f4《《_time.wYear《《"年"《《_time.wMonth《《"月"《《_time.wDay《《"日"《《"星期"《《a1\
《《_time.wHour《《"时"《《_time.wMinute《《"分"《《_time.wSecond《《"秒"《《s《《"向您的账户转入"《《n《《"元"《《endl;
f4.close();
cout《《"转账成功!"《《endl;
Sleep(1000);
system("cls");
}
}
void caozuo::del_count(string s)
{
string s1,s2;
int i=0;
char c;
s1="del C:\\"+s+"的账户信息.txt";
cout《《"您确定要注销该账户?(y/n)"《《endl;
cin》》c;
if(c==’y’)
{
system(s1.c_str());
cout《《"正在注销..."《《endl;
s2="不为空";
ifstream f("C:\\注册者名单.txt");
while(s2!="")
{
i++;
f》》s2;
}
f.close();
for(int j=2;j《i;j+=4)
if(s==s2.length()-11))//查找注销者的名字
s2.length(),"已注销");//更改注销者密码
ofstream f1("C:\\注册者名单.txt");
for(j=1;j《i;j++)
f1《《s2《《endl;
Sleep(1000);
cout《《"注销成功!"《《endl;
}
else
;
}
void caozuo::tui_chu()
{
int n=clock();
cout《《"您本次在线时长"《《n/60000《《"分"《《(n%60000)/1000《《"秒."《《endl;
cout《《"亲,期待您的下次光临!"《《char(94)《《char(95)《《char(94)《《endl;
system("pause");
}
/**
检查用户是否输入数字以外的字符,
***/
int correct_check(string s)//程序的容错处理.
{int m;
for(int i=0;i《s.length();i++)
if(s》’9’)
return -1;
m=atoi(&s);
return m;
}
void open_count(string s)//开户口函数
{
string s1="C:\\"+s+"的账户信息.txt";
ofstream f(s1.c_str());
f《《’*’《《s《《"的银行账单:"《《endl;
f《《"您的当前余额为:"《《0《《"元"《《endl;
f《《"您的账户记录:"《《endl;
f.close();
}
/***
新用户注册后通过该函数登陆.
***/
void old_menu(string s)//老用户登陆
{ string n;
int m;
system("cls");
cout《《"*"《《s《《"欢迎您!\n";
string s1=" *******菜单*******\n\
*1.显示账户余额 *\n\
*2.存款 *\n\
*3.取款 *\n\
*4.转账 *\n\
*5.注销 *\n\
*6.退出 *\n";
d:cout《《s1;
cout《《"请选择:"《《endl;
cin》》n;
m=correct_check(n);
while(m《0)
{
cout《《"输入有误!请重新输入:"《《endl;
cin》》n;
m=correct_check(n);
}
caozuo c;
if(m==1)
{
c.dir_last(s);
goto d;
}
if(m==2)
{
c.cun_kuan(s);
goto d;
}
if(m==3)
{
c.qu_kuan(s);
goto d;
}
if(m==4)
{
c.zhuanzhang(s);
goto d;
}
if(m==5)
c.del_count(s);
if(m==6)
c.tui_chu();
}
/***
用户注册,并将信息存档在下次登录时
凭密码登入,程序自动检查密码是否正确.
***/
void new_user()//新用户输入.
{ GetLocalTime(&_time);
ofstream store;
ifstream store1,store2;
string a,a2,a3,b,b1,c;
char d,d2;
char*d1;
int u=16,y,i(0);
char*f={"天","一","二","三","四","五","六"};
d1=new char;
store1.open("C:\\注册者名单.txt");//打开文件输入第一个字符串信息.
store1》》s;
store1.close();
/*while(!s.empty())
{
i++;
store1》》s;
}*/
store1.open("C:\\注册者名单.txt");
for(i=0;s)
;
store1.close();
q:cout《《"请输入您的名字:"《《endl;
cin》》a;
p:cout《《"请输入初始登录密码:"《《endl;
while((d=getch())!=13)
{
b+=d;
cout《《’*’;
}
cout《《"\n请再次输入密码:"《《endl;
while((d2=getch())!=13)
{
b1+=d2;
cout《《’*’;
}
if(b!=b1)
{
cout《《"\n两次输入的密码不一样!\a"《《endl;
b1="";//密码不一样就初始化为空串.
b="";
goto p;
}
cout《《"\n正在注册,请稍后..."《《endl;
Sleep(2000);
if(!s.empty())
{
for(int i1=2;i1《i-1;i1+=4)
if(a==s.length()-11))
{
cout《《"该用户已存在!请重新输入用户名:\a"《《endl;
goto q;
}
}
open_count(a);//调用开户口函数
store.open("C:\\注册者名单.txt",ios::app);
if(s.empty())
store《《"目前注册的用户有"《《1《《"个"《《endl;//统计注册人数.
store《《"注册者名字:"《《a《《endl《《"注册日期:"《《_time.wYear《《"年"《《_time.wMonth《《"月"《《_time.wDay《《"日"《《endl;
store《《"星期"《《f《《_time.wHour《《"时"《《_time.wMinute《《"分"《《endl;//注意星期天返回的是0!而不是7!
store《《"密码:"《《b《《endl《《endl;
store2.open("C:\\注册者名单.txt");
if(!s.empty())
{
for(int i2=0;i2《i+3;i2++)
store2》》c;
while((c《’9’)
{
u++;}
e=c.substr(16,u-16);
y=atoi(&e);
y++;
itoa(y,d1,10);
c.replace(16,u-16,d1);
ofstream store2("C:\\注册者名单.txt");//提取数字处理后再次写入文件.
for(int i3=0;i3《i+3;i3++)
store2《《c《《endl;
store2.close();}
cout《《char(94)《《char(95)《《char(94)《《"注册成功!"《《endl;
Sleep(1000);
system("cls");
old_load();
}
void old_load()//老用户输入.
{ int n=2,m(0);
string s,s1,s2;
char d;
q:cout《《"请输入登录密码:"《《endl;
while((d=getch())!=13)
{
s+=d;
cout《《’*’;
}
ifstream store("C:\\注册者名单.txt");
store》》s1;
store.close();
store.open("C:\\注册者名单.txt");
for( m=0;s1)
;
store.close();
for(int i=5;i《=m-1;i+=4)//循环查找密码判断是否相等
if(s==s1.length()-5))
{
s2=s1.length()-11);//查找密码拥有者的名字
n++;
break;
}
if(n==2)
{
cout《《"\n密码错误,您还有1次输入机会!"《《endl;
s="";//此处一定要初始化s;
n-=2;
goto q;
}
if(n==0)
{
cout《《"\n您不是老用户,请先进行注册!"《《endl;
new_user();
}
else
old_menu(s2);
}
/***
管理员头文件主要用于银行系统管理者
对用户信息查看、对账户冻结、解冻,
对文档资料进行删除.
***/
#include"user.h";
class admi//管理员类
{
public:
void look_out();
void blocked_account();
void thraw_account();
void del_inf();
void tuichu(){exit(1);}
};
void admi::look_out()
{
string s,s3;
int i=0;
s="不为空";
ifstream f("C:\\注册者名单.txt");
while(!s.empty())
{ i++;
f》》s;
}
f.close();
cout《《"*注册者名单如下:"《《endl;
for(int j=2,int x=0;j《i;j+=4,x++)
s1.length()-11);
for(int t=0;t《x;t++)
{
s3="C:\\"+s1+"的账户信息.txt";
ifstream f1(s3.c_str());
f1》》s;
f1》》s;
f1.close();
s2.length()-17);
}
for(int y=0;y《x;y++)
{
if(y%5==0)
cout《《endl;
cout《《s1《《’\t’;
}
cout《《endl;
}
void admi::blocked_account()
{
string s,s1;
char*a1={"天","一","二","三","四","五","六"};
int i=0;
int n(0);
cout《《"请输入您要冻结的账户人名字:"《《endl;
cin》》s;
s1="不为空";
ifstream f("C:\\注册者名单.txt");
while(!s1.empty())
{
i++;
f》》s1;
}
for(int j=2;j《i;j+=4)
if(s==s1.length()-11))
{
s1.insert(5,"冻结");
ofstream f1("c:\\注册者名单.txt");
for(int y=1;y《i;y++)
f1《《s1《《endl;
f1.close();
cout《《"冻结成功!"《《endl;
n++;
GetLocalTime(&_time);//刷新时间
ofstream f("C:\\windows\\system32\\系统管理员秘钥.txt",ios::app);
f《《_time.wYear《《"年"《《_time.wMonth《《"月"《《_time.wDay《《"日"《《"星期"《《a1\
《《_time.wHour《《"时"《《_time.wMinute《《"分"《《_time.wSecond《《"秒"《《"您冻结了"《《s《《"的账户"《《endl;
}
f.close();
if(n==0)
cout《《"未找到该该用户!请确认是否输入正确."《《endl;
}
void admi::thraw_account()
{
string s,s1;
char*a1={"天","一","二","三","四","五","六"};
int n(0),i(0);
cout《《"请输入要解冻的账户人的名字:"《《endl;
cin》》s;
s1="不为空";
ifstream f("c:\\注册者名单.txt");
while(!s1.empty())
{
i++;
f》》s1;
}
f.close();
for(int j=2;j《i;j+=4)
if(s==s1.length()-11))
{
s1.erase(5,4);
ofstream f1("c:\\注册者名单.txt");
for(j=1;j《i;j++)
f1《《s1《《endl;
f1.close();
cout《《"解冻成功!"《《endl;
n++;
GetLocalTime(&_time);//刷新时间
ofstream f("C:\\windows\\system32\\系统管理员秘钥.txt",ios::app);
f《《_time.wYear《《"年"《《_time.wMonth《《"月"《《_time.wDay《《"日"《《"星期"《《a1\
《《_time.wHour《《"时"《《_time.wMinute《《"分"《《_time.wSecond《《"秒"《《"您解冻了"《《s《《"的账户"《《endl;
f.close();
}
if(n==0)
cout《《"未找到该该用户!请确认是否输入正确."《《endl;
}
void admi::del_inf()
{char c;
string s,s3;
cout《《"您确定要删除所有已保存的数据吗?(y/n)"《《endl;
cin》》c;
if(c==’y’)
{
int i=0;
ifstream f("C:\\注册者名单.txt");
s="不为空";
while(!s.empty())//从名单输入数据
{
i++;
f》》s;
}
f.close();
for(int j=2,int x=0;j《i;j+=4,x++)//提取名字
s1.length()-11);
for(j=0;j《x;j++)
{
s3="del C:\\"+s1+"的账户信息.txt";
system(s3.c_str());
}
system("del C:\\windows\\system32\\系统管理员秘钥.txt");
system("del C:\\注册者名单.txt");
cout《《"删除成功!"《《endl;
}
else
;
}
void old_admi_menu(string s)//系统菜单
{
admi a;
string n;
int m;
system("cls");
q:cout《《s《《"行长"《《"欢迎您!"《《endl;
string s1=" * 系统菜单 *\n\
*1.查看注册会员*\n\
*2.冻结会员账户*\n\
*3.解冻会员账户*\n\
*4.删除全部信息*\n\
*5.退出 *\n";
cout《《s1;
cout《《"请选择:"《《endl;
cin》》n;
m=correct_check(n);//容错处理
while(m《0)
{
cout《《"输入有误!请重新输入:"《《endl;
cin》》n;
m=correct_check(n);
}
if(m==1)
{
a.look_out();
Sleep(1000);
system("cls");
goto q;
}
if(m==2)
{
a.blocked_account();
Sleep(1000);
system("cls");
goto q;
}
if(m==3)
{
a.thraw_account();
Sleep(1000);
system("cls");
goto q;
}
if(m==4)
{
a.del_inf();
}
if(m==5)
a.tuichu();
}
void new_admi()//初始化管理者信息只调用一次
{
string s,s1,s2,b,b1;
char d,d1;
cout《《"请输入您的名字:"《《endl;
cin》》s;
p:cout《《"请输入密码:"《《endl;
while((d=getch())!=13)
{
b+=d;
cout《《’*’;
}
cout《《"\n请再次输入密码:"《《endl;
while((d1=getch())!=13)
{
b1+=d1;
cout《《’*’;
}
if(b!=b1)
{
cout《《"\n两次输入的密码不一样!\a"《《endl;
b1="";//密码不一样就初始化为空串.
b="";
goto p;
}
cout《《"\n请设置密保问题,方便忘记密码后找回秘钥:"《《endl;
cin》》s1;
cout《《"请输入密保问题的答案:"《《endl;
cin》》s2;
ofstream f("c:\\windows\\system32\\系统管理员秘钥.txt");
f《《"管理员姓名:"《《s《《endl;
f《《"管理秘钥:"《《b《《endl;
f《《"密保问题:"《《s1《《endl;
f《《"密保答案:"《《s2《《endl;
f.close();
cout《《"保存成功!"《《endl;
}
void old_admi()
{
string s,s1,s2;
int i=0;
cout《《"请输入系统秘钥:"《《endl;
cin》》s;
s1="不为空";
ifstream f("c:\\windows\\system32\\系统管理员秘钥.txt");
while(!s1.empty())
{
i++;
f》》s1;
}
f.close();
s2=s1.length()-11);
if(s==s1.length()-9))
old_admi_menu(s2);
else
{
cout《《"密码输入错误,你忘记密码了吗?\n"《《endl;
cout《《"密保问题如下:"《《s1.length()-9)《《endl;
cout《《"请给出你的答案:"《《endl;
cin》》s2;
if(s2==s1.length()-9))
cout《《"你设置的管理密码是:"《《s1.length()-9)\
《《"亲,下次不要忘记了哦!"《《char(94)《《char(95)《《char(94)《《endl;
else
cout《《"密保问题回答错误,你无权对系统进行操作!"《《endl;
}
}
这是我写的银行管理系统大体内容与你的相同自己稍微改一下,自己复制调试嘛,建议使用visual c++6.0
因为visual studio2008及以上版本可能存在变量重复定义等小问题

更多文章:
ghostbusters什么意思(extreme是什么意思)
2026年1月22日 09:45
qq消息轰炸代码vbs教程(如何做一个不停往别人qq上发相同信息的vbs)
2026年3月6日 23:45
linux系统书籍推荐(各位前辈,linux学习,买什么书)
2025年6月16日 11:30
wordpress模板授权(wordpress模板是买的,但是底部有个版权想去掉,如何修改footer.php里面只有)
2025年11月5日 22:00
cssci分级(cssci和b类期刊的关系是什么b类期刊都是cssci里的吗)
2026年8月26日 17:15
linux数据库管理工具(linux瀚高数据库开发管理工具点击没反应)
2025年7月30日 02:00
laravel入口文件路径(laravel应用的请求入口文件在什么文件夹下)
2026年5月8日 01:00













![在VC++中,tchar[]怎么转成string类型?c++ 关于getchar()函数](/static/images/nopic/19.jpg)


