问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用c# asp.net做实现与数据库的连接,增删改查

发布网友 发布时间:2022-04-22 04:22

我来回答

2个回答

热心网友 时间:2023-09-11 11:29

#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;
}

热心网友 时间:2023-09-11 11:29

又拿课设题来了。。。百度一下吧,网上都有源代码的我以前也用过
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 怎么把手机网络改成NET 急啊!怎样把java的网络接入点net直连改为移动梦网... 移动接入点由wap改为net会咋样 C#.net与数据库连接的增删改查代码 垃圾分类小妙招 绿色环保垃圾分类小知识50字 乡政府发放给村垃圾分类的奖金,明确指示奖励给保植... 回答有奖-垃圾分类到底意义何在? 拉圾分类属于热心公益奖吗? 关于注销证券资金账户的一些问题 怎么宣传垃圾分类的方法? 中航证券资金帐号申请后,不冲资金的话,多长时间... 证券账户注销流程是什么? 垃圾分类在小区会做哪些宣传? 开了国信证券资金账户,却不知道怎么往里注资金进... 上海市政府对生活垃圾分类有什么奖励 小米平板黑屏,任何操作都没反应。 垃圾分类的金点子(不少于100字) 垃圾分类金点子 今天注销了股票账户,但是刚才居然还能登录,网上... 微博怎么发帖呢 微博今日发帖怎么看 如何用微博发帖 为什么微信‘删除该聊天之后’聊天记录就没有了? 新浪微博怎么发帖子 微博怎么发帖 微信 微信聊天 只是删除该聊天 也会直接删除记录 在微博上怎么发帖 发帖的步骤是什么 微博怎么发帖? 怎么在微博上发帖呢 微信删除该聊天删除那么聊天记录就不见 银华新发的基金经理薄官辉简介 怎么看161831银华恒生国企指数 海翼集团和银华、金龙、厦工的关系及利益关系是什么 李兆会是什么原因破产的 全国有多少叫肖银华的? 银华基金管理有限公司的总经理致辞 从企业文化的构成方面找出银华在企业文化建设上做... 电视没信号怎么办,打什么电话? 指数型基金的国内基金