个人账务管理系统 用C或者C++设计,拜托要尽量详尽。

2024-05-20 05:21

1. 个人账务管理系统 用C或者C++设计,拜托要尽量详尽。

/ / / / / / / / / / / / / / / / / / / / / / / / / 
这是我大二的数据结构课堂作业,而现在的电脑放在给你,它应该符合你的老师的要求。编译环境是VC + + 6.0 
如果你不使用的话,问题补充说,“患者”是暂时的,我给你了,随便写,你不会失去命令要求我看明白例子。 
 / ********************************************* ******************** / 
 
包括 
包括是否</ #包括 
#包括 
#包括WINDOWS.H> 
 
 
 / /清除当前的屏幕...... />#ClearScreen()系统(“CLS”)
 
 / /显示字符串szPrompt并等待用户按任意键
定义暂停(szPrompt),printf(“请% “,szPrompt)参考getch()
 
类型定义结构carinformation的/ /车辆信息
 {
字符szRegistrationMark [64]; /?? /车牌号
 >和字符szArrivalTime [16]; / /到达时间
字符szEntranceTime [16]; / /进入停车场开始计费的时间
字符szDepartureTime [16]; / /发车时间 BR />} TCARINFORMATION,LPTCARINFORMATION; 
 
 
 typedef结构carstack的
 {
 LPTCARINFORMATION lpCarInformation; / /车辆信息
诠释NTOP / /顶部的元素的下标
诠释nStackSize / /堆栈容量
} TCARSTACK,* LPTCARSTACK; 
 
 > / /初始化堆栈lpCarStack的,它的容量设置为n大小
无效InitStack(LPTCARSTACK lpCarStack,n大小)
 {
 lpCarStack =(LPTCARSTACK)的malloc(sizeof(TCARSTACK)的); 
 lpCarStack - > lpCarInformation =( LPTCARINFORMATION)的malloc(
 n大小sizeof(TCARINFORMATION)的
)
 lpCarStack - > NTOP = -1; 
 lpCarStack - > nStackSize = n大小; 
} 
 
 
 / /车辆信息carinfo堆栈lpCarStack 
无效的Push(LPTCARSTACK lpCarStack TCARINFORMATION carinfo)
 {
 lpCarStack - > NTOP + +; 
 > lpCarStack lpCarInformation [lpCarStack - > NTOP] = carinfo; 
} 
 
 
 / /车辆信息从堆栈中lpCarStack,流行的和存款carinfo的
 “无效流行(LPTCARSTACK lpCarStack TCARINFORMATION carinfo)
 {
 carinfo = lpCarStack - > lpCarInformation [lpCarStack - > NTOP]; 
 lpCarStack - > NTOP - ;} 
 
 
 
 / /如果堆栈lpCarstack是空的??,则返回TRUE,否则返回FALSE 
的BOOL IsStackEmpty(LPTCARSTACK lpCarStack)
 
返回lpCarStack - > NTOP = = -1; 
} 
 
 
 / /堆栈lpStackFull的完整的,则返回TRUE,否则返回FALSE 
,BOOL IsStackFull(LPTCARSTACK lpCarStack)
 { BR />的回报lpCarStack - > NTOP ==(lpCarStack - > nStackSize - 1); 
} 
 
 
 / /被破坏的堆栈lpCarStack,设置为NULL指针lpCarStack  BR />的的无效DestroyStack(LPTCARSTACK lpCarStack)
 {
免费(lpCarStack - > lpCarInformation); 
免费(lpCarStack); 
 lpCarStack = NULL; 
}  BR /> 
 
 typedef结构carnode / /链团队节点
 {
 TCARINFORMATION carinfo; / /车辆信息
结构carnode * lpNext; / /指向下一个元素的指针
} TCARNODE LPTCARNODE; 
 typedef结构
 
 carqueue / /链团队
 {
 LPTCARNODE lpHead / /头节点
 LPTCARNODE lpRear; / /指向尾指针
诠释nEffectiveSize / /在球队中的元素个数
} TCARQUEUE LPTCARQUEUE; 
 
 
 / /初始化链团队lpCarQueue 
的无效InitQueue(LPTCARQUEUE lpCarQueue)
 {
 lpCarQueue =(LPTCARQUEUE)的malloc(大小(TCARQUEUE)); 
 lpCarQueue - > lpHead =(LPTCARNODE )的malloc(大小(TCARNODE)); 
 lpCarQueue> lpHead - > lpNext = NULL; 
 lpCarQueue - > lpRear = lpCarQueue - > lpHead; 
 lpCarQueue - > nEffectiveSize = 0; 
} 
 
 
 / /的车辆信息carinfo排队lpCarQueue 
无效排队(LPTCARQUEUE lpCarQueue,TCARINFORMATION carinfo)
 {
 LPTCARNODE lpCarNode (LPTCARNODE)?的malloc(大小(carnode)); 
 lpCarNode - > carinfo = carinfo; 
 lpCarNode> lpNext = NULL; 
 lpCarQueue - > lpRear> lpNext = lpCarNode; 
 lpCarQueue - > lpRear = lpCarQueue,> lpRear - > lpNext,
 lpCarQueue - > nEffectiveSize + +; 
} 
 
 
 / / HOL元素链团队lpCarQueue在一个团队和存款carinfo的
无效DEQUEUE(LPTCARQUEUE,与lpCarQueue TCARINFORMATION的carinfo)
 {
 LPTCARNODE lpTemp = lpCarQueue - > lpHead - > lpNext中; 
 carinfo = lpTemp - > carinfo的; 
 lpCarQueue> lpHead - > lpNext = lpTemp - > lpNext; 
免费(lpTemp); 
 lpCarQueue - > nEffectiveSize - 
} 
 a> 
 
 / /链团队lpCarQueue的,否则,返回FALSE 
,BOOL IsQueueEmpty(LPTCARQUEUE lpCarQueue)
 {
回报lpCarQueue - > nEffectiveSize == 0; />} 
  / /破坏链团队lpCarQueue 
的无效DestroyQueue(LPTCARQUEUE lpCarQueue)
 {
 LPTCARNODE lpNextCarNode = NULL; 
(LPTCARNODE lpCarNode,以lpCarQueue lpHead; lpCarNode!= NULL; lpCarNode = lpNextCarNode)
 {
 lpNextCarNode lpCarNode - > lpNext; 
免费(lpCarNode ); 
} 
免费(lpCarQueue); 
 lpCarQueue = NULL; 
} 
 
 
 / /字符串转换为数字格式(分钟)格式,例如12:36将被转换为756(12 * 60 + 36)
诠释ConvertTimeFormat(CHAR * lpTime)
 {
诠释nHour = 0; 
 >诠释nMinute = 0; 
 
 sscanf的(lpTime,“%d:%d”的,与nHour,与nMinute); 
 
回报nHour * 60 + nMinute; />} 
 
 
 / /在停车场的停留时间nContinuanceMinutes的时间(分钟)费用
的双CalculateExpense(诠释第nContinuanceMinutes)
 {
回报nContinuanceMinutes *(5.0 / 60); 
} 
 
 
诠释的主要(无效)
 {
诠释nParkCapability = 0; / /停车容量 / a> 
的putchar('\ n'); 
 printf的(“请输入一个停车场容量:”); 
 scanf的(“%d”,&nParkCapability); 
 
 LPTCARSTACK lpCarStack = NULL; / /停车场栈模拟
 InitStack(lpCarStack,nParkCapability); 
 
 LPTCARQUEUE lpCarQueue = NULL; / /人行道上,一个链团队的模拟
 InitQueue(lpCarQueue); 
 
字符cCommandType = NULL; / /命令类型
字符szUserInput [128] = / /用户输入
 
 { 
 ClearScreen(); 
的putchar('\ n'); 
看跌期权(“-------------------- “); 
看跌期权(”命令“); 
看跌期权(”A - 车辆到达),
看跌期权(D - 车辆离开“); ...... />看跌期权(“E - 停止输入); 
看跌期权(”O - 显示当前的停车场和人行道的使用); 
 
道理也适用于函数putchar('\ n');提出(“示例:”); 
看跌期权(“A,吉A1234,14:26”); 
看跌期权(“D 16:51,河北A1234”); 
看跌期权( “E”); 
看跌期权(“O”); 
的putchar('\ n'); 
 printf的(“请输入以下命令:”); 
 scanf函数(“%s”,szUserInput); 
看跌期权(“--------------------”); 
 
字符szCarInformation [128] = 
分别
%?%S“,
和cCommandType / /用户输入上半年,而且sscanf的(szUserInput / /命令类型车辆信息存储是
下半年的szCarInformation / /用户输入的命令的类型,即车辆信息
)
 
字符* lpCommaLocation = NULL; / /字符串中的小数点的位置车辆信息
 
(lpCommaLocation中= szCarInformation; * lpCommaLocation!='\ 0'; lpCommaLocation + +)
 {
(* lpCommaLocation ==',') /> {
突破; 
} 
} 
 * lpCommaLocation ='\ 0'; 
 
 TCARINFORMATION carinfo =; / /存储用户输入车辆信息
 
的strcpy(carinfo.szRegistrationMark,szCarInformation)的; 
 
(cCommandType =='A')
 {
使用strcpy(carinfo.szArrivalTime, lpCommaLocation + 1); 
 
(FALSE == IsStackFull(lpCarStack))
 {
的strcpy(carinfo.szEntranceTime,carinfo.szArrivalTime)的; 
推(lpCarStack carinfo)
 printf的(“进入停车场第%d空间\ n”,
 lpCarStack - > NTOP + 1 
)
 printf的(车牌号: \ t \ t%S \ n“,carinfo.szRegistrationMark); 
 printf的(”输入时间:\ t%S \ n“,carinfo.szEntranceTime); 
看跌期权(”是否收费: \ t“); 
} 
其他
 {
排队(lpCarQueue carinfo); 
 printf的(”停车场满了,停在人行道上%d的停车空间\ n“,
 lpCarQueue nEffectiveSize 
)
的printf(车牌号:\ t \ t其中%s \ n”,carinfo.szRegistrationMark); <BR /输出(“停车时间:\ t%S \ n”,carinfo.szArrivalTime); 
看跌期权(“是否收费:\ t”); 
} 
} 
否则,如果(cCommandType =='D')
 {
使用strcpy(carinfo.szDepartureTime,lpCommaLocation + 1); 
 
 LPTCARSTACK lpTempCarStack = NULL; 
 InitStack (lpTempCarStack,nParkCapability); 
 
 TCARINFORMATION carinfoOut =; 
 
 BOOL bIsCarFound = FALSE; 
(FALSE == IsStackEmpty(lpCarStack))
 { 
流行(lpCarStack,carinfoOut); 
(0!=的strcmp(carinfoOut.szRegistrationMark,carinfo.szRegistrationMark)的)
 {
的的推(lpTempCarStack,carinfoOut); 
 >} 
其他
 {
 bIsCarFound = TRUE; 
突破; 
} 
} 
 
(FALSE == IsStackEmpty (lpTempCarStack))
 {
 TCARINFORMATION tempcarinfo =; 
流行(lpTempCarStack,tempcarinfo); 
的的推(lpCarStack,tempcarinfo); 
} 
 
(FALSE == bIsCarFound)
 {
 printf的(“%s的车的车牌号为没有进入停车场。\ n”,carinfo.szRegistrationMark); 
暂停(“-------------------- \ n按任意键即可进入下一个消息... \ n”); 
继续; 
 >} 
 
的strcpy(carinfoOut.szDepartureTime,carinfo.szDepartureTime)的; 
诠释nEntranceTime ConvertTimeFormat(carinfoOut.szEntranceTime); 
诠释nDepartureTime = ConvertTimeFormat(carinfoOut.szDepartureTime); BR />诠释nContinuanceMinutes = nDepartureTime - nEntranceTime; 
 printf的(“计费周期:\ T%S - %S(%d分钟)\ n”,
 carinfoOut.szEntranceTime 
 carinfoOut.szDepartureTime 
 nContinuanceMinutes 
)在
一个双rExpense的:= CalculateExpense(nContinuanceMinutes); 
 printf(“请应缴纳的费用:\ t%.1如果\ n”, rExpense); 
 
(FALSE == IsQueueEmpty(lpCarQueue))
 {
 TCARINFORMATION tempcarinfo =; 
 DEQUEUE(lpCarQueue,tempcarinfo); 
 STRCPY (tempcarinfo.szEntranceTime,carinfoOut.szDepartureTime); 
的推(lpCarStack,tempcarinfo); 
看跌期权(“--------------------”) 
 printf的(“在人行道上停放%的汽车进入停车场的一个车位,车牌号\ n”,
 tempcarinfo.szRegistrationMark 
); 
 } 
} 
其他(cCommandType =='E')
 {
看跌期权(“****************** *“); 
看跌期权(陈赛 - Build20090507 \ n”); 
看跌期权(“********************”) 
突破; 
} 
其他(cCommandType =='O')
 {
 ClearScreen(); 
道理也适用于函数putchar('\ N'); 
看跌期权(“[停车场] \ n”); 
看跌期权(“[停车场] \ t [车牌号] \ T抵达时间\ T [时间] \ N“)到(计费); 
(INT I = 0;的我的NTOP,我+ +)
 {
 printf的(”%d \ t%的小号\ t \ t其中%s \ t \ t%S \ n“,
 + 1,
 lpCarStack - > lpCarInformation [I]。szRegistrationMark,
 lpCarStack - > lpCarInformation [I]。 szArrivalTime,
 lpCarStack - > lpCarInformation [I]。szEntranceTime 
); 
} 
的putchar('\ n'); 
的putchar('\ n') ; 
的putchar('\ n'); 
看跌期权(“人行道使用的情况下] \ n”); 
看跌期权(“[停车场] \ T [车牌号] \ T抵达时间] \ T [输入(计费)时间] \ n“); 
诠释nNum = 0; 
(LPTCARNODE lpCarNode = lpCarQueue - > lpHead - > lpNext; BR /> lpCarNode!= NULL; lpCarNode = lpCarNode> lpNext)
 {
 nNum + +; 
 printf的(“%d \ T%\吨\ t%S \ T \ t其中%s \ n“,
 nNum,
 lpCarNode - > carinfo.szRegistrationMark,
 lpCarNode - > carinfo.szArrivalTime,
 lpCarNode - > carinfo.szEntranceTime 
) ; 
} 
的putchar('\ n'); 
} 
其他
 {
看跌期权(“输入的信息是否正确的第一个字符为'A '或'D'或'E'或'O'(区分大小写)。“); 
} 
暂停(”---------------- ---- \ n按任意键即可进入下一个消息。\ n“); 
},而(TRUE); 
 
 DestroyStack的(lpCarStack); 
 < /暂停(“\ n按任意键退出程序... \ n”); <BR的
 DestroyQueue(lpCarQueue); /> 
返回0; 
}

个人账务管理系统 用C或者C++设计,拜托要尽量详尽。

2. 求C++程序设计大神点拨点拨。😁😁😁 设计一个考试

简单
1 要有容器   建议 双链表  简单,方便 实现这个足够
2 oo思想 面向对象 class CStudent;类中有struct 关于学生的属性 还有各种方法 ,比如封装查询的方法,输入学号,姓名,课程,查出成绩,排名
3 保存文件,读取文件 就有数据库的思想了,可以写进去结构体,读也按结构体读 记住,什么格式写,什么格式读。
你就往现实去想流程 每一个学生就是类的一个对象,这个对象能选课,保存,能录入成绩。保存。。。。等
理解吗?

3. 设计一个程序来实现个人财务管理。。。C语言编程,求解答

你想达到什么效果。把要求发过来我看看  我帮你写

设计一个程序来实现个人财务管理。。。C语言编程,求解答

4. c语言程序设计中做一个个人消费信息管理系统,求大神,在线急求,谢谢啦!

钱没有也就算了,毕竟我是个是金钱如粪土的好人,去把结构体,文件操作,好好看看把,感觉不是很难。

5. C/C++程序设计课程设计员工管理系统

/////////////////////////////////////////////////////////////////////
///////////// List.h: 类的所有成员都在头文件里声明 //////////////////
/////////////////////////////////////////////////////////////////////

#include      // cin 及 cout
#include        // 用到申请内存函数 malloc() 和释放内存函数 free()
#include     // 字符串处理
#include     // 文件操作(读文件)
#include     // system("cls")

struct address       /*家庭地址*/
{ 
  char city[10];     /*城市*/
  char town[10];        /*县城*/
  char village[10];    /*乡镇*/
};

struct telephone       /*联系方式*/
{
  char SJ[50];      /*手机*/
  char JD[30];      /*家庭电话*/
  char XD[30];      /*学校电话*/
};

struct person     /*个人信息*/
{  
  char name[20];          /*名字*/ 
  char sex[10] ;          /*性别*/ 
  char MZ[16];   /*民族*/
  char GJ[17];   /*国籍*/  
  char XL[19];   /*学历*/
}; 

struct score      //成绩
{
  char num[20];    //学号
  char english[20];
  char chinese[20];
  char math[20];
  char physics[20];
};

typedef struct linknode   //定义节点的类型
{
  char address[100];  //地址
  char birthday[100];  //出生日期
  struct score sc;  //成绩
  struct person pe;  //个人信息
  struct telephone te; //联系方式
  bool flag;
  struct linknode* next;
}nodetype;

class List
{
 nodetype* head;

public:
 List();
 List::~List();

 linknode* creatlist(int);    //创建链表
 int listlen();       //返回链表长度
 nodetype* findnode(int);    //通过查找序号返回节点的指针
 nodetype* find(char c[]);    //通过查找姓名返回节点的指针
 int find2(char c[]);     //通过查找姓名返回节点的序号
 nodetype* insnode(int);     //插入节点
 void delnode(int);      //删除节点

 nodetype* load();      //初始化:从外部读入数据

 void readstr(FILE *f,char *string);  //读行函数
 bool check(char *a, char *b);   //对比两个字符串是否相等
 void help();       //显示帮助菜单

 void editperson(nodetype*);    //编辑个人说明
 void editscore(nodetype*);    //编辑学科成绩
 void edittelephone(nodetype*);   //编辑联系方式

 void dispname();      //显示所有学生姓名
 void dispnode(nodetype* p);    //显示一个学生的所有信息
 void dispperson(nodetype*);    //显示一个学生的个人说明
 void dispscore(nodetype*);    //显示一个学生的学科成绩
 void disptelephone(nodetype*);   //显示一个学生的联系方式

};

class Operater
{
 List L1;
public:    
 void Loop();       //主循环   
 void display();       //显示菜单 
};
List::List()
{
 head = NULL;
}

bool List::check(char *a, char *b)  //对比两个字符串是否相等
{
 int i;
 int j=strlen(b);
 for(i=0; i<j; i++)
 {
  if(*a==*b)
  {
   a++;
   b++;
  }
  else
   return 0;
 }
 return 1;
}


nodetype* List::creatlist (int n)       //创建链表
{
 nodetype *h=NULL, *s, *t;
 int i=1;

 for(int j=0; j<n; j++)
 {
  if(i==1)            //创建第一个节点
  {
   h=(nodetype*)malloc(sizeof(nodetype));
   h->next=NULL;
   t=h;
  }
  else                 //创建其余节点
  {
   s=(nodetype*)malloc(sizeof(nodetype));
   s->next=NULL;
   t->next=s;
   t=s;            //t 始终指向生成的单链表的最后一个节点
  }

  i++;
 }

 head=h;
 return h;
}

/*
nodetype* List::creatlist (int n)       //创建链表
{
 nodetype *h=NULL;
 int i=1;

 for(int j=0; j<n; j++)
 {
  h=insnode(0);
 }
 head=h;
 return h;
}
*/

void List::readstr(FILE *f,char *string)
{ 
 do
 {
         //①: 先读入一行文本
  fgets(string, 255, f);  //fgets(): 从文件 f 读入长度为 255-1 的字符串
         //    并存入到 string 中
 } while ((string[0] == '/') || (string[0] == '\n'));

 return;
}

nodetype* List::load()
{
 FILE *fp;
 nodetype *p;
 char c[255];
 int num;
 if((fp=fopen("student.txt", "r"))==NULL)
 {
  cout<<"打开文件失败"<<endl;
  return 0;
 }
 readstr(fp, c);
 sscanf(c, "The Length Of Link: %d", &num);  //获取链表长度

 p=creatlist(num);        //创建链表

 for(int i=0; i<num; i++)
 {
  readstr(fp, c);
  strcpy(p->address, c);
  readstr(fp, c);
  strcpy(p->birthday, c);

  readstr(fp, c);
  strcpy(p->sc.num, c);
  readstr(fp, c);
  strcpy(p->sc.chinese, c);
  readstr(fp, c);
  strcpy(p->sc.english, c);
  readstr(fp, c);
  strcpy(p->sc.math, c);
  readstr(fp, c);
  strcpy(p->sc.physics, c);

  readstr(fp, c);
  strcpy(p->pe.name, c);
  readstr(fp, c);
  strcpy(p->pe.sex, c);
  readstr(fp, c);
  strcpy(p->pe.GJ, c);
  readstr(fp, c);
  strcpy(p->pe.MZ, c);
  readstr(fp, c);
  strcpy(p->pe.XL, c);

  readstr(fp, c);
  strcpy(p->te.SJ, c);
  readstr(fp, c);
  strcpy(p->te.JD, c);
  readstr(fp, c);
  strcpy(p->te.XD, c);

  p=p->next;
 }

 fclose(fp);

 return p;
}

void List::dispnode(nodetype* p)  //显示一个学生的所有信息
{
 if(p!=NULL)
 {
  dispperson(p);
  dispscore(p);
  disptelephone(p);
 }
}

void List::dispname()  //显示所有学生姓名
{
 nodetype* p=head;
 cout<<"现有的学生:  "<<endl;
 if(p==NULL)
  cout<<"没有任何学生数据"<<endl;
 while(p!=NULL)
 {
  coutpe.name;

  p=p->next;
 }
}

int List::listlen()       //返回链表长度
{
 int i=0;
 nodetype* p=head;
 while(p!=NULL)
 {
  p=p->next;
  i++;
 }
 return i;
}

nodetype* List::findnode (int i)      //通过查找序号返回节点的指针
{
 nodetype* p=head;
 int j=1;
 if( i>listlen()||i<=0 )          // i 上溢或下溢
  return NULL;
 else
 {
  while( p!=NULL &&  j<i )    //查找第 i 个节点并由 p 指向该节点
  {
   j++;
   p=p->next;
  }
  return p;
 }
}

nodetype* List::find(char c[])      //通过查找姓名返回节点的指针
{
 nodetype* p=head;
 int j=1;
 strcat(c, "\n");    //从外部读入的字符串末尾都带了一个换行符
 while( p!=NULL &&  !(check(c, p->pe.name)))    //查找第 i 个节点并由 p 指向该节点 
 { 
  j++; 
  p=p->next;
 }
 return p;
}

int List::find2(char c[])      //通过查找姓名返回节点的序号
{
 nodetype* p=head;
 int j=1;
 strcat(c, "\n");    //从外部读入的字符串末尾都带了一个换行符
 while( p!=NULL &&  !(check(c, p->pe.name)))    //查找第 i 个节点并由 p 指向该节点 
 { 
  j++;
  p=p->next;
 }
 return j;
}

nodetype* List::insnode(int i)
{
 nodetype *h=head, *p, *s;
 s=(nodetype*)malloc(sizeof(nodetype));    //创建节点 s
 s->next=NULL;
 if(i==0)           //i=0 时 s 作为该单链表的第一个节点
 {
  s->next = h;
  h=s;           //重新定义头节点
 }
 else
 {
  p=findnode(i);       //查找第 i 个节点,并由 p 指向该节点
  if(p!=NULL)
  {
   s->next=p->next;
   p->next=s;
  }
  else cout<<"输入的 i 值不正确"<<endl;
 }
 head=h;

 return s;
}

void List::delnode(int i)   //删除第 i 个节点
{
 nodetype *h=head, *p=head, *s;
 int j=1;
 if(i==1)       //删除第一个节点
 {
  h=h->next;
  free(p);
 }
 else
 {
  p=findnode(i-1);     //查找第 i-1 个节点,并由 p 指向这个节点
  if(p!=NULL && p->next!=NULL)
  {
   s=p->next;      // s 指向要删除的节点
   p->next=s->next;
   free(s);
  }
  else
   cout<<"输入的 i 值不正确"<<endl;
 }
 head=h;
}

void List::editperson(nodetype* p)
{
 char c[100];
 cout<<"请输入姓名: "<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->pe.name, c);

 cout<<"请输入性别:"<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->pe.sex, c);

 cout<<"请输入生日(格式举例:1982-1-1): "<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->birthday, c);

 cout<<"请输入民族:"<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->pe.MZ, c);

 cout<<"请输入国籍:"<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->pe.GJ, c);

 cout<<"请输入学历:"<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->pe.XL, c);

 cout<<"请输入家庭住址(例如:广西玉林市解放路11号"<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->address, c);

 cout<<"编辑个人信息完成!"<<endl;

 dispperson(p);
}

void List::editscore(nodetype* p)
{
 char a[50];
 cout<<"请输入学号: "<<endl;
 cin>>a;
 strcat(a, "\n");
 strcpy(p->sc.num, a);

 cout<<"请输入大学语文成绩: "<<endl;
 cin>>a;
 strcat(a, "\n");
 strcpy(p->sc.chinese, a);

 cout<<"请输入英语成绩: "<<endl;
 cin>>a;
 strcat(a, "\n");
 strcpy(p->sc.english, a);

 cout<<"请输入数学成绩: "<<endl;
 cin>>a;
 strcat(a, "\n");
 strcpy(p->sc.math, a);

 cout<<"请输入物理成绩: "<<endl;
 cin>>a;
 strcat(a, "\n");
 strcpy(p->sc.physics, a);

 cout<<"编辑学科成绩完成!"<<endl;

 dispscore(p);
}

void List::edittelephone(nodetype* p)
{
 char c[50];
 cout<<"请输入手机号码: "<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->te.SJ, c);

 cout<<"请输入家庭电话号码: "<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->te.JD, c);

 cout<<"请输入学校电话号码: "<<endl;
 cin>>c;
 strcat(c, "\n");
 strcpy(p->te.XD, c);

 cout<<"编辑联系方式完成!"<<endl;

 disptelephone(p);
}

void List::dispperson(nodetype* p)
{
 coutpe.name;
 coutpe.sex;
 coutpe.MZ;
 coutpe.GJ;
 coutpe.XL;
 coutbirthday;
 coutaddress;
}

void List::dispscore(nodetype* p)
{
 coutsc.num;
 coutsc.chinese;
 coutsc.english;
 coutsc.math;
 coutsc.physics;
}

void List::disptelephone(nodetype* p)
{
 coutte.SJ;
 coutte.JD;
 coutte.XD;
}

void List::help()
{
 cout<<endl<<endl;
 cout<<"*********************************************************"<<endl;
 cout<<"1:   编辑个人信息"<<endl;
 cout<<"2:   编辑学科成绩"<<endl;
 cout<<"3:   编辑联系方式"<<endl;
 cout<<"4:   显示个人信息"<<endl;
 cout<<"5:   显示学科成绩"<<endl;
 cout<<"6:   显示联系方式"<<endl;
 cout<<"7:   显示该学生所有信息"<<endl;
 cout<<"8:   帮助菜单"<<endl;
 cout<<"9:   返回上一级菜单"<<endl;
 cout<<"*********************************************************"<<endl;
}

List::~List()
{
 nodetype *pa=head, *pb;
 if(pa!=NULL)
 {
  pb=pa->next;
  if(pb==NULL)
   free(pa);
  else
  {
   while(pb!=NULL)
   {
    free(pa);
    pa=pb;
    pb=pb->next;
   }
   free(pa);
  }
 }
}

void Operater::display()
{
 cout<<endl<<endl;
 cout<<"**************************** 学生管理系统 **************************"<<endl;
 cout<<"1:   添加一个学生信息"<<endl;
 cout<<"2:   删除一个学生信息"<<endl;
 cout<<"3:   显示所有学生的姓名"<<endl;
 cout<<"4:   根据姓名显示单个学生所有信息"<<endl;
 cout<<"5:   根据姓名对单个学生进行编辑"<<endl;
 cout<<"6:   帮助菜单"<<endl;
 cout<<"7:   保存数据"<<endl;
 cout<<"0:   退出系统"<<endl;
 cout<<"********************************************************************"<<endl;
}

void Operater::Loop()
{
 List L1;        //List 对象
 char ch[20];
 nodetype *p, *head;   
 int i;      //存放节点序号

 p=L1.load(); //初始化:从外部读入数据创建链表

 head=p;
 display();

 while(1)
 {
  cout<<endl<<endl;
  cout 6 ): "<<endl;
  cin>>ch;

  system("cls");
  if(L1.check(ch, "1"))
  {
   p=L1.insnode(0);
   head=p;

   system("cls");
   cout<<endl;
   cout<<"************** 添加一个学生信息 ******************"<<endl;
   cout<<"下面输入个人信息: "<<endl;
   L1.editperson(p);
   cout<<"下面输入学科成绩: "<<endl;
   L1.editscore(p);
   cout<<"下面输入联系方式: "<<endl;
   L1.edittelephone(p);
  }

  if(L1.check(ch, "2"))
  {
   system("cls");
   cout<<endl;
   cout<<"************** 删除一个学生信息 ******************"<<endl;
   L1.dispname();
   cout<<"请输入学生姓名: "<<endl;
   cin>>ch;
   i=L1.find2(ch);
   L1.delnode(i);
  }

  if(L1.check(ch, "3"))
  {
   system("cls");
   cout<<endl;
   cout<<"************** 显示所有学生姓名 ******************"<<endl;
   L1.dispname();
  }

  if(L1.check(ch, "4"))
  {
   system("cls");
   cout<<endl;
   cout<<"************** 根据姓名显示单个学生所有信息 ******************"<<endl;
   L1.dispname();
   cout<<"请输入学生姓名: "<<endl;
   cin>>ch;
   p=L1.find(ch);
   L1.dispnode(p);
  }

  if(L1.check(ch, "6"))
  {
   display();
  }

  if(L1.check(ch, "7"))  //保存数据
  {
   FILE *fp;
   if((fp=fopen("student.txt", "w"))==NULL)
   {
    cout<<"打开文件失败"<<endl;
    return;
   }

   int i;
   char t[255];

   //将 L1.listlen() 赋予字符串中的数字
   sprintf(t, "The Length Of Link: %d\n", L1.listlen()); 

   fputs(t, fp);
   strcpy(t, "\n");
   fputs(t, fp);

   p=L1.findnode(1);    //将链表头指针赋予 p

   for(i=0; i<L1.listlen(); i++)
   {
    fputs(p->address, fp);  //输出地址
    fputs(p->birthday, fp);  //输出生日

    fputs(p->sc.num, fp);  //输出学号
    fputs(p->sc.chinese, fp); //输出语文成绩
    fputs(p->sc.english, fp); //输出英语成绩
    fputs(p->sc.math, fp);  //输出数学成绩
    fputs(p->sc.physics, fp); //输出物理成绩

    fputs(p->pe.name, fp);  //输出姓名
    fputs(p->pe.sex, fp);  //输出性别
    fputs(p->pe.GJ, fp);  //输出国籍
    fputs(p->pe.MZ, fp);  //输出民族
    fputs(p->pe.XL, fp);  //输出学历

    fputs(p->te.SJ, fp);  //输出手机
    fputs(p->te.JD, fp);  //输出家庭电话
    fputs(p->te.XD, fp);  //输出学校电话
    fputs(t, fp);

    p=p->next;
   }
   p=head;
   fclose(fp);
  }

  if(L1.check(ch, "5"))
  {
   char c[20];
   system("cls");
   cout<<endl;
   cout<<"************** 根据姓名对单个学生进行编辑 ******************"<<endl;
   L1.dispname();
   cout<<"请输入学生姓名: "<<endl;
   cin>>c;
   p=L1.find(c);

   system("cls");
   cout<<endl<<endl;
   cout<<"*********************************************************"<<endl;
   cout<<"1:   编辑个人信息"<<endl;
   cout<<"2:   编辑学科成绩"<<endl;
   cout<<"3:   编辑联系方式"<<endl;
   cout<<"4:   显示个人信息"<<endl;
   cout<<"5:   显示学科成绩"<<endl;
   cout<<"6:   显示联系方式"<<endl;
   cout<<"7:   显示该学生所有信息"<<endl;
   cout<<"8:   帮助菜单"<<endl;
   cout<<"9:   返回上一级菜单"<<endl;
   cout<<"*********************************************************"<<endl;

   while(1)
   {
    cout<<endl<<endl;
    cout 8 ): "<<endl;
    cin>>c;
    system("cls");

    if(L1.check(c, "1"))
    {
     system("cls");
     cout<<endl;
     cout<<"************** 编辑个人信息 ******************"<<endl;
     L1.editperson(p);
    }
   
    else if(L1.check(c, "2"))
    {
     system("cls");
     cout<<endl;
     cout<<"************** 编辑学科成绩 ******************"<<endl;
     L1.editscore(p);
    }
   
    else if(L1.check(c, "3"))
    {
     system("cls");
     cout<<endl;
     cout<<"************** 编辑联系方式 ******************"<<endl;
     L1.edittelephone(p);
    }
   
    else if(L1.check(c, "4"))
    {
     system("cls");
     cout<<endl;
     cout<<"************** 显示个人信息 ******************"<<endl;
     L1.dispperson(p);
    }

    else if(L1.check(c, "5"))
    {
     system("cls");
     cout<<endl;
     cout<<"************** 显示学科成绩 ******************"<<endl;
     L1.dispscore(p);
    }

    else if(L1.check(c, "6"))
    {
     system("cls");
     cout<<endl;
     cout<<"************** 显示联系方式 ******************"<<endl;
     L1.disptelephone(p);
    }

    else if(L1.check(c, "7"))
    {
     system("cls");
     L1.dispnode(p);
    }

    else if(L1.check(c, "8"))
    {
     system("cls");
     L1.help();
    }

    else if(L1.check(c, "9"))
    {
     display();
     break; //用 break 跳出本循环,不要用 return ,return 是退出程序
    }
   }
  }

  else if(L1.check(ch, "0"))
   return;
 }
 return;
}
void main()
{
 Operater O1;
 O1.Loop();
}
自己看看吧,改改就好了,我也不太会

C/C++程序设计课程设计员工管理系统

6. C/C++高校工资管理系统 程序设计

要是要报告就留邮箱
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
const int N=7;
class teacher
{
public:
 void set(int i);          //录入信息
    void add(teacher p);         //增加资料
    void modification();         //修改资料
 void expurgate();          //删除资料
 int checkout(int n,int age1,string courseform1);  //查找资料
 void show();           //输出该档案
 int fanhui(int a);          //返回一数判断是否是所要选的档案
private:
 string name;
 int number;         //教工号
 char sex;
 int age;
 int comeworktime;       //参加工作时间
 string call;        //职称
 string courseform;       //课程组成
};
void teacher::set(int i)      //录入信息
{
 cout<<"                  录入档案   "<<i<<":"<<endl;
 cout<<"输入教师的教工号:";
 cin>>number;
 cout<<"输入教师姓名:";
 cin>>name;
 cout<<"输入教师姓别:";
 cin>>sex;
 cout<<"输入教师职称:";
 cin>>call;
 cout<<"输入教师年龄:";
 cin>>age;
 cout<<"输入教师参加工作时间:";
 cin>>comeworktime;
 cout<<"输入教师课程组成:";
 cin>>courseform;
 cout<<"       档案"<<i<<" 录入结束"<<endl;
}
void teacher::add(teacher p)     //增加信息
{
 cout<<"输入新增教师档案"<<endl;
 p.set(N-4);
}
void teacher::expurgate()      //删除信息
{
 name="0";
 number=0;
 sex='\0';
 age=0;
 comeworktime=0;
 call="0";
 courseform="0";
 cout<<"删除教师信息成功"<<endl;
}
int teacher::checkout(int n,int age1,string courseform1)              //查找信息
{
 int p;
    switch(n)
    {
    case 1:
     if(age==age1)    p=1;
     else     p=0;
          break;              
    case 2:
     if(courseform==courseform1)  p=1;
     else      p=0;
              break;
    }
 return p;
}
void teacher::show()       //输出信息
{
 cout<<"输出一档案**********"<<endl;
 cout<<setiosflags(ios_base::left)
  <<setw(16)<<"教工号"<<setw(16)<<number<<endl
     <<setw(16)<<"姓名"<<setw(16)<<name<<endl
     <<setw(16)<<"姓别"<<setw(16)<<sex<<endl
  <<setw(16)<<"职称"<<setw(16)<<call<<endl
  <<setw(16)<<"年龄"<<setw(16)<<age<<endl
  <<setw(16)<<"参加工作时间"<<setw(16)<<comeworktime<<endl
  <<setw(16)<<"课程组成"<<setw(16)<<courseform<<endl
  <<resetiosflags(ios_base::left);
 cout<<"**********输出结束"<<endl;
}
void teacher::modification()     //修改信息
{
 int n,renumber,recomeworktime,reage,flag=1;
 string rename,recall,recourseform;
 char resex;
 do
 {
  cout<<"                   ***子菜单:修改资料***"<<endl
   <<"    修改哪项信息?"<<endl
      <<"1(教工号) 2(姓名) 3(姓别) 4(职称) 5(年龄) 6(参加工作时间) 7(课程组成) 8(退出)"<<endl
      <<"    输入数字1-8进行修改或退出:";
     cin>>n;
    if(n<9&&n>0)
     switch(n)
    {
case 1:  
 cout<<"输入正确的教工号:";
 cin>>renumber;
 number=renumber;
 cout<<"教工号修改成功"<<endl;
 break;
case 2:
 cout<<"输入正确的姓名:";
 cin>>rename;
 name=rename;
 cout<<"姓名修改成功"<<endl;
 break;
case 3:
 cout<<"输入正确的姓别:";
 cin>>resex;
 sex=resex;
 cout<<"姓别修改成功"<<endl;
 break;
case 4:
 cout<<"输入正确的职称:";
 cin>>recall;
 call=recall;
 cout<<"职称修改成功"<<endl;
 break;
case 5:
 cout<<"输入正确的年龄:";
 cin>>reage;
 age=reage;
 cout<<"年龄修改成功"<<endl;
 break;
case 6:
 cout<<"输入正确的参加工作时间:";
 cin>>recomeworktime;
 comeworktime=recomeworktime;
 cout<<"参加工作时间修改成功"<<endl;
 break;
case 7:
 cout<<"输入正确的课程组成:";
 cin>>recourseform;
 courseform=recourseform;
 cout<<"课程组成修改成功"<<endl;
 break;
case 8:
 cout<<"退出到主菜单"<<endl;
 flag=0;
 break;
    }
    else
    {
     cout<<"输入的数字不在1-8之间,请重新输入."<<endl;
     flag=0;
    }
 }while(flag!=0);
}
int teacher::fanhui(int a)
{
 if(a==number)   return 1;
  else  return 0;
}
void main()
{
 int n,m=0,a,i,flag=1;
 teacher p[N],pt;
 int age1=0;
 string courseform1="0";
 cout<<"首先输入教师信息"<<endl;
 for(i=0;i<N-5;i++)
     p[i].set(i+1);
 do
 {
  cout<<"                                  ***************"<<endl
   <<"                                       主菜单"<<endl
   <<"                                  ***************"<<endl
   <<"(1)修改资料(2)增加资料(3)删除资料(4)显示资料(5)根据工龄或课程组成查找并显示"
      <<"(6)退出"<<endl
      <<"然后选择1-5进行操作:";
     cin>>n;
  switch(n)
  {
  case 1:
   cout<<"输入要修改的教师的教工号:";
      cin>>a;
   for(i=0;i<N-5;i++)
   {
    if(p[i].fanhui(a))    p[i].modification();
   }
   break;
  case 2:
            pt.add(p[N-5+m]);
   m++;
   break;
  case 3:
   cout<<"输入要删除的教师的教工号:";
      cin>>a;
   for(i=0;i<N-5;i++)
   {
    if(p[i].fanhui(a))    p[i].expurgate();
   }
   break;
  case 4:
   cout<<"输入要显示的教师的教工号:";
      cin>>a;
   for(i=0;i<N-5;i++)
   {
    if(p[i].fanhui(a))    p[i].show();
   }
   break;
  case 5:
   cout<<"                     ***子菜单:查找资料***"<<endl
          <<"(1)按教工年龄查找 (2)按担任课程组成查找 "<<endl
          <<"输入1-2:";
      cin>>n;
      if(n==1) 
     { 
      cout<<"输入教工年龄:"; 
           cin>>age1;
     }
     else if(n==2)
     {
       cout<<"输入担任课程组成:";
          cin>>courseform1;
     }
   for(i=0;i<N-5;i++)
       if(p[i].checkout(n,age1,courseform1))
    {
     cout<<"已查找到"<<endl;
     p[i].show();
    }
   break;
  case 6:
   flag=0;
   break;
  default:
   cout<<"输入错误,不在1-5之间"<<endl;
   flag=0;
  }
 }while(flag!=0);
 cout<<"                                 !!!程序运行结束!!!"<<endl;
}

7. 大家好,我是一个C语言初学者,我有一个项目,学员管理系统,我已经做得乱七八糟了,个人能力有限。

把代码发上来吧,大家一起学习学习。
关键的发上来。

大家好,我是一个C语言初学者,我有一个项目,学员管理系统,我已经做得乱七八糟了,个人能力有限。

8. 求一C语言课程设计,有关个人物品管理系统的源代码,不用找网上的那些 我都看过,有雷同,请原创,谢谢!

链表的题目嘛~可惜100分太少~估计没人帮你打
我自己做的时候花了几个小时~