struct user_info {
char[10] user_code
char[10] user_name
char[10] passeord
char user_limit
}
#include <conio.h>#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <string.h>
struct PCB_type
{ char pid[100] //进程名输入用字符串健壮性比较好
int priority
int cputime
int state
} //缺少“}”
int shumu=0,pid_l
struct PCB_type neicun[20]
struct PCB_type hc[10]
int max=0
int number=0
void create()
void run()
void huanchu()
void kill()
int main()
{
int n,a
n=1
system("color 1d")
while(n==1)
{
system("cls")
printf("\n**********************************************")
printf("\n* 进程演示系统 *")
printf("\n**********************************************")
printf("\n 1.创建新的进程 2.查看运行进程")
printf("\n 3.换出某个进程 4.杀死运行进程") //新增了一个唤醒功能
printf("\n 5.退出系统 ")
printf("\n**********************************************")
printf("\n请选择(1~5):")
scanf("%d",&a)
switch(a)
{ case 1:
create( )
printf("\npress any key to go on~")
getch()
break
case 2 :
run()
printf("\npress any key to go on~")
getch()
break
case 3 :
huanchu()
printf("\npress any key to go on~")
getch()
break
case 4 :
kill()
printf("\npress any key to go on~")
getch()
break
case 5 :
exit(0)
default:
n=1
break
}
}
}
void create()
{
if(shumu>=20)
{
printf("\n内存已满,请先结束或换出进程\n")
}
else
携毁薯 {
shumu++
printf("\n请输入新进程的程序名\n")
scanf("%s",neicun[shumu-1].pid)
printf("\n请输入新进程的优先级(数字)\n")//
scanf("%d",&neicun[shumu-1].priority)
printf("\n请输入新进程的需要的运行时辩者间\n")//
scanf("%d",&neicun[shumu-1].cputime)
printf("\n创建进程时令其状态为就绪\n")
neicun[shumu-1].state=2 //1为等待,2就绪,3为运行
}
printf("\n创建进程成功!\n")
}
void run()
{
if(shumu<=0)//查看//判断是否存在进程
{
printf("当前状态无进程,按任意键继续创建进程\n")
return
}
int max=0
for(int i=0i<shumui++)//
if((neicun[i].state==2&&neicun[i].priority>=neicun[max].priority))
{
max=i //这里判断优先级,优先级高的进程优先执行。
}
if(neicun[max].state==2)
{
neicun[max].state=3 //进程运行,状态为3 余散
system("color 5F")
printf("/*********************当前已有进程%d个*************************/:\n",shumu)
for(int i=0i<shumui++){
printf("进程编号:%d",i+1)
printf("\n/***********正在运行进程程序名:%s*************************/\n",neicun[i].pid)
printf("\n/***********该进程的优先级:%d*****************************/\n",neicun[i].priority)
printf("\n/***********该进程的需要运行时间:%d***********************/\n",neicun[i].cputime)
printf("\n/***********该进程的状态:%d(1为等待,2就绪,3为运行)******/\n\n\n",neicun[i].state) } //这里增加显示当前运行的进程
}
}
/* 换出 */
void huanchu()
{
int k
if(shumu<=0)//判断是否存在进程
{
printf("当前进程数目为0,不能执行该 *** 作\n")
return
}
printf("当前已有进程%d个:\n",shumu)
for(int h=0h<shumuh++)//当前所有的进程
printf("序号:%d\t程序名:%s\t优先级:%d\t运行时间:%d\t状态:%d\t\n"
,h,neicun[h].pid,neicun[h].priority,neicun[h].cputime,neicun[h].state)
printf("请输入要换出程序的序号:")
scanf("%d",&k)
if(neicun[k].state==3)
{
neicun[k].state=1
printf("已被换出,进程名为:%s、状态为:[%d]",neicun[k].pid,neicun[k].state)
}
else
printf("无法换出,进程名为:%s的进程",neicun[k].pid) //换出结果提示
}
void kill()
{
if(shumu<=0)//对存在的进程进行判断
{
printf("当前进程数目为0,不能执行该 *** 作\n")
return
}
int k=0
printf("/******************当前已有进程%d个******************/:\n",shumu)
for(int h=0h<shumuh++)//当前所有的进程
printf("序号:%d\t程序名:%s\t优先级:%d\t运行时间:%d\t状态:%d\t\n"
,h,neicun[h].pid,neicun[h].priority,neicun[h].cputime,neicun[h].state)
printf("请输入要杀死程序的序号:")
scanf("%d",&k)
neicun[k].cputime=0
neicun[k].priority=0
neicun[k].state=0
if(k==(shumu-1))
shumu--
else{
for(int j=k+1j<shumuj++)
{
strcmp(neicun[j-1].pid,neicun[j].pid)
neicun[j-1].priority=neicun[j].priority
neicun[j-1].cputime=neicun[j].cputime
neicun[j-1].state=neicun[j].state
}
shumu--
}
printf("进程名为:%s已被杀死!\n",neicun[k].pid) //显示进程已被杀死
}
超市管理系统*/
#include<stdio.h>
#include<string.h>
//欢迎界面//
void welcome()
//功能浏览//
void mainMenu()
//购物结算//
void saleCalc()
//进货管理//
void addGoods()
//修改信息
void updateGoods()
//显示商品//
void showGoods()
//删除商品//
void deleteGoods()
//查询商品//
int searchGoods()
//购买结算
void saleCalc()
//更新库存//
void updateGoodsNum(int number,char name[50])
//结构体
struct goods
{
char name[50]//商品名称
int num//商品数量
float price//商品价格
}
int count/雀族袭/商品种类数量
goods list[1000]//声明goods的变量数组
char name[50]
void main()//主函数
{
int num
welcome()
do{
mainMenu()
printf("请选择功能:")
scanf("%d",&num)
switch(num)
{
case 1:
saleCalc()
break
case 2:
addGoods()
break
case 3:
updateGoods()
break
case 4:
showGoods()
break
case 5:
deleteGoods()
break
case 0:
break
}
}while(num!=0)
}
void welcome()//欢迎界面
{
printf("-------------------------------------------------------------------------\n")
printf("****************欢迎使用超市管理系统*******************\n")
printf("-------------------------------------------------------------------------\n")
}
void mainMenu()//功能浏览界面
{
printf("****1.购物结算****\n")
printf("****2.进货管理****\n")
printf("****3.修改商品****\n")
printf("****4.显示商品****\n")
printf("****5.删穗厅除商品****\n")
printf("****0.退出系统****\n")
}
//查询信息
int searchGoods()//查询商品信息
{
printf("请输入您要购买商品的名字:")
scanf("%s",name)
for(int i=0i<counti++)
{
if(stricmp(name,list[i].name)==0)
{
return 1
}
else
{
printf("对不起了,没有找到%c商品\n",name)
return -1
}
}
}
//购物结算
void saleCalc()//购物结算
{
int number,i,s
float priceGoods=0,sum=0,money
char c=' '
s=searchGoods()
do
{
if(s==-1)
{
s=searchGoods()
}else
{
printf("该商品b存在")
for(i=0i<counti++)
{
if(strcmp(name,list[i].name)==0)
{
priceGoods=list[i].price
break
}
}
printf("请顷兄输入您要购买的数量:")
scanf("%d",&number)
sum=priceGoods*number
updateGoodsNum(-number,name)
printf("是否继续购买(y/n)")
fflush(stdin)
c=getchar()
}
}while(c=='y'||c=='Y')
printf("本次消费总金额为:%.2f",sum)
printf("请输入您的实际付款金额:")
scanf("%f",&money)
printf("找零:%.2f\n",money-sum)
}
//进货管理
void addGoods() //商品的录入
{
int i=0
char c=' '
do
{
printf("请输入商品的名称:")
fflush(stdin)
scanf("%s",list[i].name)
printf("请输入商品的数量:")
scanf("%d",&list[i].num)
printf("请输入商品的单价:")
scanf("%f",&list[i].price)
printf("是否继续(y/n)")
fflush(stdin)
c=getchar()
}while(c=='Y'||c=='y')
}
//更新库存
void updateGoodsNum(int number,char name[50])
{
int i
for(i=0i<counti++)
{
list[i].num+=number//list[i].num=list[i].num+number
}
}
//显示货物信息
void showGoods()
{
printf("商品名称\t数量\t单价\n")
for(int i=0i<counti++)
{
printf("%s\t%d\t%.2f\n",list[i].name,list[i].num,list[i].price)
}
}
//修改商品信息
void updateGoods()
{
int i
printf("请输入您要修改商品的名字:")
scanf("%s",&name)
for(i=0i<counti++)
{
if(strcmp(name,list[i].name)==0)
{
printf("请输入新的商品名字:")
scanf("%s",list[i].name)
printf("请输入您要修改商品的数量:")
scanf("%d",list[i].num)
printf("请输入您要修改商品的单价:")
scanf("%f",list[i].price)
}
else
{
printf("对不起,没有找到该商品信息!")
}
}
}
//删除商品信息
void deleteGoods()
{
int index=-1
printf("请输入您要删除的商品名字:")
scanf("%s",name)
for(int i=0i<counti++)
{
if(strcmp(name,list[i].name)==0)
{
index=i
}
}if(index==-1)
{
printf("对不起!没有找到您要删除的商品信息!")
}
else{
for(int i=indexi<counti++)
{
list[i]=list[i+1]
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)