lab c c++ 实验室设备管理系统C C++源代码 完整版

合集下载

EC-Lab software 中文操作手册

EC-Lab software 中文操作手册
EC-Lab 软件用户 Nhomakorabea册1


1. 介绍 ............................................................................................................................................. 6 2. EC-Lab 软件:设置.................................................................................................................... 7 2.1 开始程序............................................................................................................................ 7 2.2 EC-Lab 软件准备和运行实验 ........................................................................................... 9 2.2.1 EC-Lab 主界面 ...................................................................................................... 9 2.2.1.1 设置工具栏 .................................................................................................. 9

C语言课程设计图书馆管理系统程序代码

C语言课程设计图书馆管理系统程序代码

#include〈stdio.h〉#include<windows.h〉#include〈string。

h〉#include<conio。

h>#define M 100struct books{char tsmc[12];inttsbh;float dj;char zz[12];char czzt[12];char xm[12];char xb[12];intxh; }s[M];int N;bool flag;intmain (){intsele;flag=0;sele=1;void sr();void cx();void sc();void js();void hs();void tc();void jsh();//system ("tsgl”);printf("\n\n");printf(" ************************\n"); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n");printf(” ************************\n"); while(1){printf(”\n\n请输入功能序号:");scanf (”%d",&sele);if(sele>=0 && sele<=5){switch(sele){case 1:sr();break;case 2:cx();break;case 3:sc();break;case 4:js();break;case 5:hs();break;case 0:jsh();break;}if(flag)break;printf(”\n\n");printf(” ************************\n”); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n”);printf(” ************************\n”);}else{printf(”输入错误请再次输入|\n\n");printf("\n\n");printf(” ************************\n”);printf(" 1:输入2:查询3:删除\n”);printf(”4:借书5:还书0:退出\n");printf(" ************************\n");}printf("\n\n让任意键继续\n”);} //wr_file();}/******主函数***//*********输入*********/void sr(){intn,i;N=0;printf("可输入的书本数:");scanf("%d",&n);N=n+N;printf("请输入相关信息:\n");for(i=1;i<=n;i++){printf(”图书名称:”);scanf(”%s",s[N-n-1+i]。

数据结构上机实验源代码

数据结构上机实验源代码

数据结构上机实验源代码栈的应用十进制数转换为八进制数,逆序输出所输入的数实验代码://stack.h,头文件class stack{public:stack();bool empty()const;bool full()const;error_code gettop(elementtype &x)const;error_code push(const elementtype x);error_code pop();private:int count;elementtype data[maxlen];};stack::stack(){count=0;}bool stack::empty()const{return count==0;}bool stack::full()const{return count==maxlen;}error_code stack::gettop(elementtype &x)const{if(empty())return underflow;else{x=data[count-1];return success;}}error_code stack::push(const elementtype x){if(full())return overflow;data[count]=x;count++;return success;}error_code stack::pop(){if(empty())return underflow;count--;return success;}//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"stack.h"void read_write() //逆序输出所输入的数{stack s;int i;int n,x;cout<<"please input num int n:";cin>>n;for(i=1;i<=n;i++){cout<<"please input a num:";cin>>x;s.push(x);}while(!s.empty()){s.gettop(x);cout<<x<<" ";s.pop();}cout<<endl;}void Dec_to_Ocx(int n) //十进制转换为八进制{stack s1;int mod,x;while(n!=0){mod=n%8;s1.push(mod);n=n/8;}cout<<"the ocx of the dec is:";while(!s1.empty()){s1.gettop(x);cout<<x;s1.pop();}cout<<endl;}void main(){int n;// read_write();cout<<"please input a dec:";cin>>n;Dec_to_Ocx(n);}队列的应用打印n行杨辉三角实验代码://queue.hclass queue{public:queue(){count=0;front=rear=0;}bool empty(){return count==0;}bool full(){return count==maxlen-1;}error_code get_front(elementtype &x){if(empty())return underflow;x=data[(front+1)%maxlen];return success;}error_code append(const elementtype x){if(full())return overflow;rear=(rear+1)%maxlen;data[rear]=x;count++;return success;}error_code serve(){if(empty())return underflow;front=(front+1)%maxlen;count--;return success;}private:int count;int front;int rear;int data[maxlen];};//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"queue.h"void out_number(int n) //打印前n行的杨辉三角{int s1,s2;int i;int j;int k;queue q;for(i=1;i<=(n-1)*2;i++)cout<<" ";cout<<"1 "<<endl;q.append(1);for(i=2;i<=n;i++){s1=0;for(k=1;k<=(n-i)*2;k++)cout<<" ";for(j=1;j<=i-1;j++){q.get_front(s2);q.serve();cout<<s1+s2<<" ";q.append(s1+s2);s1=s2;}cout<<"1 "<<endl;q.append(1);}}void main(){int n;cout<<"please input n:";cin>>n;out_number(n);}单链表实验实验目的:实验目的(1)理解线性表的链式存储结构。

(完整word版)进程管理实验报告源代码

(完整word版)进程管理实验报告源代码

实验一进程管理1.目的和要求通过实验理解进程的概念,进程的组成(PCB结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。

2.实验内容用C语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。

3.实验环境Windows操作系统、VC++6.0C语言4.实验提示PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当前队列指针等。

可根据实验的不同,PCB结构的内容可以作适当的增删。

主体程序#include "conio.h"#include "stdio.h"#include "stdlib.h"struct jincheng_type{int pid;int youxian;int daxiao;int msg;int live;};struct jincheng_type neicun[20],waicun[20];int shumu=0,pid_l;main(){int n,m,i;char a;n=1;while(n==1){system("cls");printf("\n********************************************");printf("\n* 进程演示系统*");printf("\n********************************************");printf("\n 1.创建新的进程 2.查看运行进程");printf("\n 3.换出某个进程 4.杀死运行进程");printf("\n 5.进程之间通信 6.退出");printf("\n********************************************");printf("\n请选择(1~6) ");a=getch();switch(a){case'1':create( );break;case'2':viewrun( );break;case'3':huanchu();break;case'4':kill( );break;case'5':tongxun( );break;case'6': exit(0);default: n=0;}}}create( ) /* 创建一个进程的示例(不完整的程序)*/ {if(shumu>=20){printf("\n内存已满,请先结束或换出进程\n");}else{printf("\n请输入新进程的pid\n");scanf("%d",&neicun[shumu+1].pid);printf("\n请输入新进程的优先级\n");scanf("%d",&neicun[shumu+1].youxian);printf("\n请输入新进程的大小\n");scanf("%d",&neicun[shumu+1].daxiao);printf("\n请输入新进程的消息\n");scanf("%d",&neicun[shumu+1].msg);neicun[shumu+1].live=1;shumu++;}return neicun[shumu-1].live;}viewrun( )/*查看运行进程*/{int vpid;printf("\n请输入进程的pid\n");scanf("%d",&vpid);if(vpid>0&&vpid<=20&&neicun[vpid].live==1){printf("\n进程的pid是: %d\n",neicun[vpid].pid);printf("进程的优先级是: %d\n",neicun[vpid].youxian);printf("进程的大小是:%d\n",neicun[vpid].daxiao);printf("进程的消息是:%d\n",neicun[vpid].msg);}else{printf("\n所查看运行进程不存在\n");}printf("请按回车退出查看\n");vpid=getch();}huanchu()/*换出某个进程*/{int pid1,pid2;char c;printf("\n请输入第一个替换进程的pid\n");scanf("%d",&pid1);printf("\n请输入第二个替换进程的pid\n");scanf("%d",&pid2);if(pid1>0&&pid1<=20&&neicun[pid1].live==1){if(neicun[pid1].youxian>neicun[pid2].youxian){waicun[20].pid=neicun[pid1].pid;waicun[20].youxian=neicun[pid1].youxian;waicun[20].daxiao=neicun[pid1].daxiao;waicun[20].msg=neicun[pid1].msg;neicun[pid1].pid=neicun[pid2].pid;neicun[pid1].youxian=neicun[pid2].youxian;neicun[pid1].daxiao=neicun[pid2].daxiao;neicun[pid1].msg=neicun[pid2].msg;neicun[pid2].pid=waicun[20].pid;neicun[pid2].youxian=waicun[20].youxian;neicun[pid2].daxiao=waicun[20].daxiao;neicun[pid2].msg=waicun[20].msg;printf("\n替换完成\n");printf("\n被替换进程的pid是: %d\n",waicun[20].pid); printf("被替换进程的优先级是: %d\n",waicun[20].youxian); printf("被替换进程的大小是:%d\n",waicun[20].daxiao); printf("被替换进程的消息是:%d\n",waicun[20].msg);}else{printf("\n进程优先级不够大");}}else{printf("所查看运行进程不存在");}printf("请按回车退出换出进程\n");c=getche();return;}kill()/*杀死运行进程*/{int kpid;printf("\n请输入进程的pid\n");scanf("%d",&kpid);if(kpid>0&&kpid<20&&neicun[kpid].live==1){neicun[kpid].live=0;}return;}tongxun( )/*进程之间通信*/{int tpid1,tpid2;int buffer;char d;printf("\n请输入通信源进程pid\n");scanf("%d",&tpid1);printf("\n请输入通信目的进程pid\n");scanf("%d",&tpid2);if(tpid1>0&&tpid1<20&&neicun[tpid1].live==1){buffer=neicun[tpid1].msg;neicun[tpid1].msg=neicun[tpid2].msg;neicun[tpid2].msg=buffer;printf("\n源进程的消息是: %d\n",neicun[tpid1].msg);printf("\n目的进程的消息是: %d\n",neicun[tpid2].msg);}else{printf("\n所查看运行进程不存在\n");}printf("\n请按回车退出进程通信\n");d=getch();return;}5.实验运行结果******************************************** * 进程演示系统* ********************************************1.创建新的进程2.查看运行进程3.换出某个进程4.杀死运行进程5.进程之间通信6.退出系统******************************************** 请选择(1~6)然后根据你选择的不同,出现不同的结果。

仓库管理系统源代码

仓库管理系统源代码

仓库管理系统源代码#include#include#include#include#includestruct cangku{int num;char name[20];char introdution[50];float square;};typedef struct cangku Cangku;int Input(Cangku t[]);void List(Cangku t[],int n); void SearchOnName(Cangku t[],int n);int DeleteRecord(Cangku t[],int n); int AlterRecord(Cangku t[],int n); int AddRecord(Cangku t[],int n); void SortOnName(Cangku t[],int n); void SortOnSquare(Cangku t[],int n); void SaveRecord(Cangku t[],int n); int LoadRecord(Cangku t[]); int LoadRecord1(Cangku t[]); void Save(Cangkut[],int n); void Load(Cangku t[],int n); void Load1(Cangku t[]);int Menu_select();void main(){Cangku ck[50];int i,l,length,w=1;int q[4]={5,2,1,0};system("cls");printf("请输入第1个密码:\n");for (i=0;i<4;i++){scanf("%d",&l);system("cls");if(l==q[i])printf("正确,继续输入第%d个密码:.\n",i+2); else{w=0;printf ("输入错误!\n");break;}}while(w){switch(Menu_select()){case 1: length=Input(ck);SaveRecord(ck,length);break;case 2: length=LoadRecord(ck); SearchOnName(ck,length); break;case 3: length=LoadRecord(ck); length=DeleteRecord(ck,length); SaveRecord(ck,length);break;case 4: length=LoadRecord(ck); length=AlterRecord(ck,length); SaveRecord(ck,length);break;case 5: length=LoadRecord(ck); length=AddRecord(ck,length); SaveRecord(ck,length);break;case 6: length=LoadRecord(ck); system("cls");List(ck,length);break;case 7: length=LoadRecord(ck); system("cls");SortOnName(ck,length);SaveRecord(ck,length);break;case 8: length=LoadRecord(ck); system("cls");SortOnSquare(ck,length);SaveRecord(ck,length);break;case 9: length=LoadRecord(ck); system("cls");Save(ck,length);break;case 0: length=LoadRecord1(ck);Load1(ck);system("cls");Load(ck,length);break;case 10: exit(0);}}}int Menu_select(){int c;printf("按任意键进入仓库管理菜单\n");getchar();system("cls");system("color F0");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");printf(" * 0. 恢复*\n");printf(" * 10. 退出*\n");printf("******************************************************************** *\n");do{printf("\n输入您想要进行的操作选项键(0-10):"); if(scanf("%d",&c)!=1){while(getchar()!='\n')continue;}}while(c<0||c>10);return c;}int Input(Cangku t[]){int i,n;system("cls");printf("\n请输入要输入的仓库数目:\n");scanf("%d",&n);printf("开始输入仓库信息:\n");for(i=0;i<n;i++){system("cls");printf("\n第%d个仓库的编号:",i+1);scanf ("%d",&t[i].num);printf("第%d个仓库的名称:",i+1);scanf ("%s",t[i].name);printf("第%d个仓库的面积:",i+1);scanf ("%f",&t[i].square);printf("第%d个仓库的说明:",i+1);scanf ("%s",t[i].introdution); }return (n);}void List(Cangku t[],int n){int i;printf("******************************************************************** *\n");printf(" ** 编号名称面积说明\n");printf("---------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].intr odution);}printf("******************************************************************** *\n");printf ("\n");getchar();}void SearchOnName(Cangku t[],int n) {char s[20];int i,flag=0;system("cls");printf("请输入要查找的仓库名称:\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要查找的仓库信息如下:\n");printf("\n");printf("******************************************************************** *\n");printf(" ** 编号名称面积说明\n");printf("---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].intr odution);}printf("******************************************************************** *\n");printf ("\n");}}if(flag==0)printf("要查找的仓库不存在!!\n");getchar();}int DeleteRecord(Cangku t[],int n){char s[20];char ch;int i,j,flag=0;system("cls");printf("请输入要删除的仓库名称\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要删除的仓库信息如下:\n");printf("\n");printf("******************************************************************** *\n");printf(" ** 编号名称面积说明\n");printf("---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].intr odution);}printf("******************************************************************** *\n");printf ("\n");printf("确定删除仓库信息吗?(Y/N)\n"); ch=getchar();ch=getchar();if(ch=='Y'||ch=='y'){for(j=i;j<n-1;j++)t[j]=t[j+1];n--;i--;printf ("删除成功.\n");}}}if(flag==0)printf("要删除的仓库不存在!!\n"); getchar();return n;}int AlterRecord(Cangku t[],int n) { int i,flag=0;char s[20],ch;system("cls");printf("请输入要修改的仓库名称\n");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0){flag=1;system("cls");printf("\n\n要修改的仓库信息如下:\n");printf("\n");printf("*********************************************************************\n" );printf(" ** 编号名称面积说明\n");printf(" ---------------------------------------------------------------------\n");{printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].intr odution);}printf("******************************************************************** *\n");printf ("\n");printf("确定修改仓库信息吗,(Y/N)\n");ch=getchar();ch=getchar();if(ch=='y'||ch=='Y'){system("cls");printf("请输入修改后的信息:\n");printf("请输入仓库新的名称:");scanf("%s",t[i].name);printf("请输入%s仓库新的编号:",t[i].name); scanf("%d",&t[i].num);printf("请输入%s仓库新的面积:",t[i].name); scanf("%f",&t[i].square);printf("请输入%s仓库新的说明:",t[i].name); scanf("%s",t[i].introdution);}}}if(flag==0)printf("要修改的仓库不存在~~\n"); getchar();return n;}int AddRecord(Cangku t[],int n) {int i,m;system("cls");printf("\n请输入再增加的记录数:\n"); scanf("%d",&m);printf("开始追加记录\n");for(i=n;i<n+m;i++){ system("cls");printf("\n第%d个仓库的编号:",i+1); scanf("%d",&t[i].num);printf("第%d个仓库的名称:",i+1); scanf("%s",t[i].name);printf("第%d个仓库的面积:",i+1); scanf("%f",&t[i].square);printf("第%d个仓库的说明:",i+1); scanf("%s",t[i].introdution);}return (n+m);}void SortOnName(Cangku t[],int n) {int i,j;struct cangku temp ;for(j=1;j<n;j++)for(i=0;i<n-j;i++)if((strcmp(t[i].name,t[i+1].name))>0) {temp=t[i];t[i]=t[i+1];t[i+1]=temp;}printf("排序成功!!!\n");printf("排序后仓库信息列表如下:\n"); List(t,n);}void SortOnSquare(Cangku t[],int n) {int i,j;struct cangku temp ;for(j=1;j<n;j++)for(i=0;i<n-j;i++)if(t[i].square<t[i+1].square){temp=t[i];t[i]=t[i+1];t[i+1]=temp;}printf("排序成功!!!\n");printf("排序后仓库信息列表如下:\n");List(t,n);}void SaveRecord(Cangku t[],int n) {int i;FILE *fp;if((fp=fopen("record.txt","w"))==NULL) {printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp); }fclose(fp);}int LoadRecord(Cangku t[]){int n=0;FILE *fp;if((fp=fopen("record.txt","a+"))==NULL) {printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++; fclose(fp);printf("从文件中成功读出记录!!!\n");return n;}int LoadRecord1(Cangku t[]) {int n=0;FILE *fp;if((fp=fopen("bkrecord.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++; fclose(fp);printf("从文件中成功读出记录!!!\n");return n;}void Save(Cangku t[],int n) {int i;FILE *fp;if((fp=fopen("bkrecord.txt","w"))==NULL){printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp);}fclose(fp);printf("备份成功.\n");getchar();}void Load1(Cangku t[]) {int n=0;FILE *fp;if((fp=fopen("bkrecord.txt","a+"))==NULL){printf("不能打开文件!\n");exit(1);}while(fread(&t[n],sizeof(struct cangku),1,fp)) n++; fclose(fp);getchar();}void Load(Cangku t[],int n) {int i;FILE *fp;if((fp=fopen("record.txt","w"))==NULL) {printf("不能打开文件!\n");exit(1);}for(i=0;i<n;i++){fwrite(&t[i],sizeof(struct cangku),1,fp); }fclose(fp);printf("恢复成功.\n");}。

C语言财务管理系统源代码

C语言财务管理系统源代码

#include"stdio.h"#include"stdlib.h"#define MAX_NAME 11#define MAX_DETAIL 21#define MENU_COUNT 9#define DATA_FILE "fa.dat" typedef wnum_fi_type ( income=1,payout=-1}fi_type;typedef struct_fi_info (int year;int month;fi_type type;char name[MAX_NAME];float money;char detail[MAX_DETAIL];}fi_info;typedef struct_fi_data (fi_info info;struct_fi_data *next;}fi_data;void add_income();void search_income();void delete_income();void update_income();void add_payout();void search_payout();void delete_payout();void update_payout();void count_total();void quit();void search_data(fi_type type);void delete_data(fi_type type);void update_data(fi_type type);void initialize();void save_to_file();void clear_data();fi_data *get_last();fi_data *get_previous(fi_data *p);void input_info(fi_info *info);void show_info(fi_data *p[],int count);fi_data *head;char menu[]=" ------------------------------------------------ ==\n""|家庭财务管理系统|\n""+ --------------------------------------- +\n""|收入管理|\n""| 1添加收入|\n""| 2查询收入明细|\n""| 3删除收入|\n""| 4修改收入|\n""|支出管理|\n""| 5添加支出|\n""| 6查询支出明细|\n""| 7删除支出|\n""| 8修改支出|\n""|统计|\n""| 9统计总收入总支出|\n"" --------------------------------------- +\n""| 0退出系统|\n""==============================================+\n"; void(*menu_fun[])()= ( quit,add_income, search_income, delete_income, update_income, add_payout, search_payout, delete_payout, update_payout, count_total };int main() (int selected=0;initialize();while(selected>=0 && selected<=MENU_COUNT) ( system("cls");printf(menu);printf("> 请选择要进行的操作(%d - %d):",0,MENU_COUNT);if(scanf("%d”,&selected)!=1llselected<0llselected>MENU_COUNT) (printf(">输入错误!请选择[%d - %d]之间的数字!按任意键重试…",0,MENU_COUNT);fflush(stdin);getchar();) else(menu_fun[selected]();)selected=0;))void add_income()(fi_data *p=(fi_data *)malloc(sizeof(fi_data));memset(p,0,sizeof(fi_data));p->next=NULL;input_info(&(p->info));p->info.type=income;if(head==NULL)( head=p;) else(get_last(head)->next=p;))void search_income()(search_data(income);)void delete_income()(delete_data(income);)void update_income()(update_data(income);)void add_payout() (fi_data *p=(fi_data*)malloc(sizeof(fi_data)); memset(p,0,sizeof(fi_data));input_info(&(p->info));p->info.type=payout;if(head==NULL)( head=p;) else(get_last(head)->next=p;))void search_payout()(search_data(payout);)void delete_payout()(delete_data(payout);)void update_payout()(update_data(payout);)void count_total()(float total_income=0.0;float total_payout=0.0;fi_data *p=head;while(p!=NULL)(if(p->info.type==income)(total_income+=p->info.money;) else(total_payout+=p->info.money;)p=p->next;)printf("+ ------- + ------- + -------- +\n");printf("|合计收入|合计支出| 结余printf("+|\n");---------------- + ------- + -------- +\n");printf("l%12.2fl%12.2fl%12.2fl\n", total_income, total_payout,total_income - total_payout); printf("+ ------- + -------- + ------- +\n");printfC、按任意键继续返回主菜单…) fflush(stdin);getchar();)void search_data(fi_type type) (int year=0;int month=0;fi_data *p=NULL;fi_data *result[9]={NULL}; int count=0; char input='';while(1) {printfC、请输入要查询的年月(例如:2009/1)"); if(scanf("%d/%d”,&year,&month)!=2) { printf(">输入错误。

c语言管理系统设计源代码

c语言管理系统设计源代码

c语言管理系统设计源代码以下是一个简单的C语言管理系统示例,用于管理学生信息。

该系统可以添加、删除、修改和查找学生信息。

c复制代码#include<stdio.h>#include<stdlib.h>#include<string.h>struct student {char name[50];int roll;float marks;};struct student students[100];int count = 0;void add_student() {struct student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter roll number: ");scanf("%d", &new_student.roll);printf("Enter marks: ");scanf("%f", &new_student.marks);students[count] = new_student;count++;}void delete_student() {int index;printf("Enter index of student to delete: ");scanf("%d", &index);for (int i = index; i < count - 1; i++) {students[i] = students[i + 1];}count--;}void modify_student() {int index;struct student new_student;printf("Enter index of student to modify: "); scanf("%d", &index);printf("Enter new name: ");scanf("%s", new_);printf("Enter new roll number: ");scanf("%d", &new_student.roll);printf("Enter new marks: ");scanf("%f", &new_student.marks);students[index] = new_student;}void find_student() {char name[50];printf("Enter name of student to find: "); scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("Roll number: %d\n", students[i].roll); printf("Marks: %.2f\n", students[i].marks); return;}}printf("Student not found.\n");}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Delete student\n");printf("3. Modify student\n");printf("4. Find student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case1: add_student(); break;case2: delete_student(); break;case3: modify_student(); break;case4: find_student(); break;case5: exit(0); break; // exit the program here, otherwise the loop will keep running indefinitely, as it is in the do-while loop above. We are not returning, but rather exiting the program completely, so we do not need to return anything. The return value of main is always 0, and this is how the program exits. If you want to return a value other than 0, you can do so like this: return 1; or return -1; or return any other integer value you want to represent an error condition. The operating system will interpret this as the program's exit status. In this case, it will be seen as successful, as it is returning 0. The return value of main is not used for anything in this program, but it can be used in other programs to determine whether the program exited successfully or with an error. For example, if you were writing a shell script that executed this program and needed to know if it was successful or not, you could check the return value of the program and act accordingly. This is a common practice in programming, and it is important to understand how it works so that you can use it effectively in your own programs.。

C#程序源代码_辛苦整理

C#程序源代码_辛苦整理
if(each [j]>=each [j+1])
{
temp=each [j];
each [j]=each [j+1];
{
if ((sieve >> i & 0x01) != 0)
Console.Write("{0,3}", p);
p += 2;
}
Console.WriteLine();
sum+=t;
}
Console .WriteLine ("\nPI={0,10:f8}",sum *6);
Console .Read ();
}
}
}
抓图结果:
{
each [i++]=num%10;
num=num/10;
}
for(i=0;i<3;i++)
for(j=0;j<3-i;j++)
C#程序设计
一、实验名称:C#实验
二、实验目的:通过上机实际操作将平时课堂所学具体实现,通过该实验来检查自己的学习成功,并且发现平时学习中没有注意到的问题并解决之,从而加深对该门课程的以及C#语言的了解。
三、实验步骤:
实验一:C#编程环境
实验目的:
1. 熟悉掌握C#开发环境的安装与配置
num = max -min ;
Console .WriteLine ("{0}-{1}={2}",max,min,num);
}
Console .Read();
}
相关的主要代码:

实验一C程序的运行环境和运行C程序的方法实验报告

实验一C程序的运行环境和运行C程序的方法实验报告

实验一C程序的运行环境和运行C程序的方法实验报告实验一:C程序的运行环境和运行C程序的方法一、实验目的1.了解C程序的运行环境和运行C程序的方法;2.掌握在不同操作系统环境下编写和运行C程序的基本步骤;3.加深对C程序运行机制的理解。

二、实验原理C程序是一种用于系统编程的高级编程语言,广泛应用于开发应用程序和操作系统。

在运行C程序之前,我们需要了解C程序的运行环境和运行方法。

1.运行环境:运行C程序的环境可以是不同的操作系统,如Windows、Linux、MacOS等。

每个操作系统都提供了一种特定的环境来运行C程序。

2.运行方法:在不同的操作系统下,运行C程序的方法也有所不同。

- 在Windows操作系统下,可以使用任何支持C编译器的集成开发环境(IDE)来编写和运行C程序。

常用的IDE有Dev-C++、Code::Blocks 等。

- 在Linux操作系统下,可以使用GNU编译器套装(GCC)来编译和运行C程序。

首先需要安装GCC编译器,然后使用命令行工具编写和运行C程序。

- 在MacOS操作系统下,可以使用Xcode开发工具来编写和运行C程序。

Xcode是苹果官方提供的集成开发环境,提供了编译器和调试器等工具。

三、实验步骤1. 在Windows操作系统下运行C程序:- 启动Dev-C++,选择"File"菜单中的"New"选项,创建一个新的C 源文件;-在源文件中编写C程序代码,并保存为以.c为扩展名的文件;2. 在Linux操作系统下运行C程序:- 在终端窗口中使用GCC编译器编译C程序,如gcc -o program program.c,其中program为可执行文件名;- 运行C程序,如./program。

3. 在MacOS操作系统下运行C程序:- 启动Xcode,选择"File"菜单中的"New"选项,创建一个新的C源文件;-在源文件中编写C程序代码,并保存为以.c为扩展名的文件;- 点击Xcode窗口右上角的"Run"按钮,编译并运行C程序。

操作系统实验四设备管理

操作系统实验四设备管理

图4-1 Lab4_1运行结果讨论:如输入磁盘号为C,显示的磁盘信息是整个硬盘信息,而不是C盘分区的信息。

如输入磁盘号为D,显示的磁盘信息与如输入磁盘号为C显示的磁盘信息相同。

用磁盘I/O API函数读出的磁盘信息是从硬盘的主引导区得到。

六、实验心得体会通过本次实验,我了解了磁盘的物理组织,不同磁盘不同的物理构造,如SSD和HDD,了解了其特点,以及如何通过用户态的程序直接调用磁盘I/O API函数(DeviceIoControl),使程序可以根据输入的驱动器号读取驱动器中磁盘的基本信息。

本次实验调试过程的前半段,我是使用Windows 10进行的,遇到了一些类型转化以及无输出的问题,纠结了很久没有弄出来,但是在Windows Server 2016中,没有任何问题,可以直接运行。

以后调试程序应尽量在目标机器上调试,防止出现问题。

附录程序清单清单4-11.#include <windows.h>2.#include <iostream>ing namespace std;4.#include <winioctl.h>5.#include <string.h>6.7.struct Disk //关于 Disk 结构的定义8.{9.HANDLE handle;10. DISK_GEOMETRY disk_info;11.};12.13.Disk disk;14.HANDLE Floppy;15.static _int64 sector;16.bool flag;17.Disk physicDisk(char driverLetter);18.19.void main(void)20.{21.char DriverLetter;22. cout << "请输入磁盘号:a/c" << endl;23. cin >> DriverLetter;//选择要查看的磁盘24. disk = physicDisk(DriverLetter);25.}26.27.Disk physicDisk(char driverLetter) //28.{29. flag = true;30. DISK_GEOMETRY* temp = new DISK_GEOMETRY;31.char device[9] = "\\\\.\\c:";32. device[4] = driverLetter;33. Floppy = CreateFile(device, //将要打开的驱动器名34. GENERIC_READ, //存取的权限35. FILE_SHARE_READ | FILE_SHARE_WRITE, // 共享的权限36. NULL, //默认属性位37. OPEN_EXISTING, //创建驱动器的方式38. 0, //所创建的驱动器的属性39. NULL); //指向模板文件的句柄40.if (GetLastError() == ERROR_ALREADY_EXISTS) //如打开失败,返回错误代码41. {42. cout << "不能打开磁盘" << endl;43. cout << GetLastError() << endl;44. flag = false;45.return disk;46. }47.48.DWORD bytereturned;49.BOOL Result;50. disk.handle = Floppy;51. Result = DeviceIoControl(Floppy,52. IOCTL_DISK_GET_DRIVE_GEOMETRY,53. NULL,54. 0,55. temp,56.sizeof(*temp),57. &bytereturned,58. (LPOVERLAPPED)NULL);59.if (!Result) //如果失败,返回错误代码60. {61. cout << "打开失败" << endl;62. cout << "错误代码为:" << GetLastError() << endl;63. flag = false;64.return disk;65. }66.67. disk.disk_info = *temp;//输出整个物理磁盘的信息68. cout << driverLetter << "盘有: " << endl;69. cout << "柱面数为:" << (unsigned long)disk.disk_info.Cylinders.QuadPart << endl;70. cout << "每柱面的磁道数为:" << disk.disk_info.TracksPerCylinder << endl;71. cout << "每磁道的扇区数为:" << disk.disk_info.SectorsPerTrack << endl;72. cout << "每扇区的字节数为:" << disk.disk_info.BytesPerSector << endl;73. sector = disk.disk_info.Cylinders.QuadPart * (disk.disk_info.TracksPerCylinder) * (disk.disk_info.SectorsPerTrack);74.double DiskSize = (double)disk.disk_info.Cylinders.QuadPart * (disk.disk_info.TracksPerCylinder) * (disk.disk_info.SectorsPerTrack) * (disk.disk_info.BytesPerSector);75. cout << driverLetter << "盘所在磁盘总共有" << (long)sector << "个扇区" << endl;76. cout << "磁盘大为:" << DiskSize / (1024 * 1024) << "MB " << endl;77.delete temp;78.return disk;79.}。

实验六:设备管理---device.c

实验六:设备管理---device.c

实验六:设备管理---device.c实验目的:1、对理论课中学习的设备管理中的概念作进一步的理解;2、明白设备管理的主要任务;3、了解设备管理任务的主要实现方法;4、通过编程,学会独占设备的分配、回收等主要算法的原理;实验内容:1、编写程序,由必要的数据结构、主函数、设备分配函数及设备回收函数构成,实现对独占设备的分配与回收的模拟。

2、模拟实验的程序包括建立设备类表和设备表的程序段,分配设备和回收设备的函数,分配设备要求输入作业名、设备类名和相对号;回收设备要求输入作业名和设备类名。

#include<stdio.h>#include<sys/types.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#define false 0#define true 1#define n 3#define m 5struct{char type[10];int count;int remain;int address;}equip_type[n];struct{int number;int status;int remain;char jobname[10];int lnumber;}equipment[m];allocate(char *job,char *type,int mm){int i,t,j;i=0;while(i<n&&strcmp(equip_type[i].type,type)!=0)i++;if(i>=n){printf("No the device,device allocate errno");return(false);}printf("there is no much device,the request of device is failure");return(false);}t=equip_type[i].address;while(!(equipment[t].status==1&&equipment[t].remain==0))t++;equip_type[i].remain--;equipment[t].remain=1;strcpy(equipment[t].jobname,job);equipment[t].lnumber=mm;}reclaim(char *job,char *type){int i,t,j,k,nn;i=0;while(i<n&&strcmp(equip_type[i].type,type)!=0)i++;if(i>=n){printf("there is no this device,the device reclaim is failure");return(false);}t=equip_type[i].address;j=equip_type[i].count;k=0;nn=t+j;for(;t<nn;t++)if(strcmp(equipment[t].jobname,job)==0&&equipment[t].remain==1){ equipment[t].remain=0;k++;}equip_type[i].remain=equip_type[i].remain+k;if(k==0)printf("job is not use this device");}main(){char job[10];int i,mm,a;char type[10];strcpy(equip_type[0].type,"input") ;equip_type[0].count=2;equip_type[0].address=0;strcpy(equip_type[1].type,"printer");equip_type[1].count=3;equip_type[1].remain=3;equip_type[1].address=2;strcpy(equip_type[2].type,"disk");equip_type[2].count=4;equip_type[2].remain=4;equip_type[2].address=5;for(i=0;i<10;i++){equipment[i].number=i;equipment[i].status=1;equipment[i].remain=0;}while(1){printf("\n0---exit, 1---allocate, 2---recycle, 3---display");printf("\nplease select the function:");scanf("%d",&a);switch(a){case 0:exit(0);case 1:printf("please input the name of the job,type,N-device:\n");scanf("%s%s%d",job,type,&mm);allocate(job,type,mm);break;case 2:printf("please input the name of the job and the type of the device:\n");scanf("%s%s",job,type);reclaim(job,type);break;case 3:printf("\n the table of output device:\n");printf("device type device number Idle device number\n");for(i=0;i<n;i++)printf("%8s%9d%8d\n",equip_type[i].type,equip_type[i].count,equip_type[i].remain);printf("-----------------------------------\n");printf("output device table:\n");printf("juedui-Nomber best/bed allocated/No-allocated Name-job xiang-dui-Nomber\n");for(i=0;i<m;i++)printf("%3d%7d%8d%10s%7d\n",equipment[i].number,equipment[i].status,equipment[i].remain,equipment[i].jobname,equipment[i] .lnumber);}}}执行结果截图中文注释device003.c文件#include<stdio.h>#include<sys/types.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#define false 0#define true 1#define n 3 //假设系统有3类设备#define m 5 //假设系统有5个设备struct{char type[10]; //设备类名int count; //拥有设备数量int remain; //现存的可用设备数量int address; //该类设备在设备表中的起始地址}equip_type[n]; //设备类表定义,假设系统有n个设备类型struct{int number; //设备绝对号int status; //设备状态可否使用int remain; //设备是否已分配char jobname[10]; //占有设备的作业名int lnumber; //设备相对号}equipment[m]; //设备表定义,假设系统有m个设备allocate(char *job,char *type,int mm){int i,t,j;//查询该类型设备i=0;while(i<n&&strcmp(equip_type[i].type,type)!=0)i++;//没有找到该类设备if(i>=n){printf("无该类设备,设备分配请求失败");return(false);}//所需设备现在可用数量不足if(equip_type[i].remain<1){printf("该类设备数量不足,设备分配请求失败");return(false);}t=equip_type[i].address; //得到该类设备在设备表中的起始地址while(!(equipment[t].status==1&&equipment[t].remain==0))t++;//填写作业名、相对号,状态更改为“已分配”equip_type[i].remain--;equipment[t].remain=1;strcpy(equipment[t].jobname,job);equipment[t].lnumber=mm;} //设备分配函数reclaim(char *job,char *type){int i,t,j,k,nn;i=0;while(i<n&&strcmp(equip_type[i].type,type)!=0)i++;//没有找到该类要回收的设备if(i>=n){printf("无该类设备,设备回收失败");return(false);}t=equip_type[i].address; //得到该类型设备在设备表中的起始地址j=equip_type[i].count; //得到该设备的数量k=0;nn=t+j;for(;t<nn;t++)if(strcmp(equipment[t].jobname,job)==0&&equipment[t].remain==1){ equipment[t].remain=0;k++;}equip_type[i].remain=equip_type[i].remain+k;if(k==0)printf("作业没有使用该类设备");} //设备回收函数main(){char job[10];int i,mm,a;char type[10];//设备类初始化strcpy(equip_type[0].type,"input") ; //设备类型:输入设备equip_type[0].count=2;equip_type[0].remain=2;equip_type[0].address=0;strcpy(equip_type[1].type,"printer"); //设备类型:打印机equip_type[1].count=3;equip_type[1].remain=3;equip_type[1].address=2;strcpy(equip_type[2].type,"disk"); //设备类型:磁盘equip_type[2].count=4;equip_type[2].remain=4;equip_type[2].address=5;for(i=0;i<10;i++){equipment[i].number=i;equipment[i].status=1;equipment[i].remain=0;}while(1){printf("\n0---退出, 1---分配, 2---回收, 3---显示");printf("\n清选择功能项:");scanf("%d",&a);switch(a){case 0: //a=0程序结束exit(0);case 1: //a=1 分配设备printf("请输入作业名、作业所需设备类型和设备相对号:\n");scanf("%s%s%d",job,type,&mm);allocate(job,type,mm); //分配设备break;case 2: //a=2 回收设备printf("请输入作业名和作业要归还的设备类型:\n");scanf("%s%s",job,type);reclaim(job,type);break;case 3: //a=3 显示设备类表和设备表的内容printf("\n 输出设备类表:\n");printf(" 设备类型设备数量空闲设备数量\n");for(i=0;i<n;i++)printf("%8s%9d%8d\n",equip_type[i].type,equip_type[i].count,equip_type[i].remain);printf("-----------------------------------\n");printf("输出设备表:\n");printf("绝对号好/坏已/未分配占用作业名相对号\n");for(i=0;i<m;i++)printf("%3d%13d%10d%6s%10d\n",equipment[i].number,equipment[i].status,equipment[i].remain,equipment[i].jobname,equipment[i] .lnumber);} //case结束} //while结束} //main()结束。

c程序课程设计--实验室管理系统

c程序课程设计--实验室管理系统

目录1需求分析 (4)2 总体设计 (4)2.1程序的总体设计 (4)2.2数据结构 (5)3 详细设计 (6)3.1主控模块设计 (6)3.2实验设备信息录入模块设计 (7)3.3实验设备信息更改模块设计 (8)3.4实验设备信息删除模块设计 (9)4.主要函数功能描述 (10)4.1 添加设备函数addEequipment() (10)4.2 输入到文件函数fpintE (10)4.3 修改设备信息函数changeEquipment() (10)4.4 删除设备信息函数deleteEquipment() (10)5 测试与调试 (11)6 个人设计小结与心得体会 (12)参考文献 (12)致谢 (13)附件1 程序源代码 (13)前言现在,科学技术的飞速发展把人类社会推向了一个崭新的时代─信息时代。

这已是无可争议的事实;信息对社会经济发展的巨大推动作用,使其与物质能源一起并列为现代社会的三大支柱,这已在全社会达到共识。

随着对信息作为一种资源来管理的需求日益加强,信息研究领域出现了一种新的管理思想和模式─信息管理。

计算机管理以其快捷高效的特点在很多领域已经取代了传统的手工管理方式,尤其是在繁复琐碎的物资设备管理中,计算机管理手段的这一优势更显得十分突出。

与传统管理方式相比较,设备管理系统能更加有效的进行信息管理。

设备管理系统应用数据库,对信息数据以数据库形式表示,更容易更新和管理。

传统的管理方式往往以表格的形式进行管理,一旦数据过于庞大,要对这些数据进行管理时,就要花费大量的时间,而且很容易出错。

由于现代信息化的普及化,因此现代信息化的设备管理模式很快取代了传统模式的管理方式。

摘要在此次课程设计中我们小组的课设题目是实验室设备信息管理系统,我们使用软件Visual C++6.0及C语言来完成此次课程设计。

我在课设过程中实现了系统的主菜单,设备信息录入,设备信息修改,设备信息删除等功能。

利用开发程序对实验室设备进行方便、有效、合理的管理。

实验基本指令实验报告

实验基本指令实验报告

一、实验目的1. 熟悉实验基本指令的使用方法。

2. 掌握常用指令的编写和调试技巧。

3. 培养实验操作的规范性和准确性。

二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 实验设备:个人电脑三、实验内容1. 实验一:Hello World(1)实验目的学习C语言的基本语法,编写一个简单的“Hello World”程序。

(2)实验步骤1)打开Visual Studio 2019,创建一个新的C++项目。

2)在项目主界面中,选择“源文件”,然后点击“添加新项”。

3)在弹出的对话框中,选择“C++文件”,命名为“hello.cpp”。

4)在“hello.cpp”文件中,编写以下代码:```c#include <iostream>using namespace std;int main() {cout << "Hello World!" << endl;return 0;}```5)保存文件,并返回到项目主界面。

6)点击“生成”菜单,选择“生成解决方案”,生成可执行文件。

7)运行程序,观察结果。

(3)实验结果程序输出“Hello World!”,实验成功。

2. 实验二:变量和运算符(1)实验目的学习C语言中的变量和运算符,编写一个计算两个整数相加的程序。

(2)实验步骤1)打开Visual Studio 2019,创建一个新的C++项目。

2)在项目主界面中,选择“源文件”,然后点击“添加新项”。

3)在弹出的对话框中,选择“C++文件”,命名为“add.cpp”。

4)在“add.cpp”文件中,编写以下代码:```c#include <iostream>using namespace std;int main() {int a = 10;int b = 20;int sum = a + b;cout << "The sum of " << a << " and " << b << " is " << sum << endl;return 0;}```5)保存文件,并返回到项目主界面。

操作系统原理_实验报告

操作系统原理_实验报告

一、实验目的1. 理解操作系统基本原理,包括进程管理、内存管理、文件系统等。

2. 掌握操作系统的基本命令和操作方法。

3. 通过实验加深对操作系统原理的理解和掌握。

二、实验环境1. 操作系统:Linux2. 编程语言:C语言3. 开发工具:Eclipse三、实验内容本次实验主要分为以下几个部分:1. 进程管理实验2. 内存管理实验3. 文件系统实验四、实验步骤及结果1. 进程管理实验实验步骤:- 使用C语言编写一个简单的进程管理程序,实现进程的创建、调度、同步和通信等功能。

- 编写代码实现进程的创建,通过调用系统调用创建新的进程。

- 实现进程的调度,采用轮转法进行进程调度。

- 实现进程同步,使用信号量实现进程的互斥和同步。

- 实现进程通信,使用管道实现进程间的通信。

实验结果:- 成功创建多个进程,并实现了进程的调度。

- 实现了进程的互斥和同步,保证了进程的正确执行。

- 实现了进程间的通信,提高了进程的效率。

2. 内存管理实验实验步骤:- 使用C语言编写一个简单的内存管理程序,实现内存的分配、释放和回收等功能。

- 实现内存的分配,采用分页存储管理方式。

- 实现内存的释放,通过调用系统调用释放已分配的内存。

- 实现内存的回收,回收未被使用的内存。

实验结果:- 成功实现了内存的分配、释放和回收。

- 内存分配效率较高,回收内存时能保证内存的连续性。

3. 文件系统实验实验步骤:- 使用C语言编写一个简单的文件系统程序,实现文件的创建、删除、读写等功能。

- 实现文件的创建,通过调用系统调用创建新的文件。

- 实现文件的删除,通过调用系统调用删除文件。

- 实现文件的读写,通过调用系统调用读取和写入文件。

实验结果:- 成功实现了文件的创建、删除、读写等功能。

- 文件读写效率较高,保证了数据的正确性。

五、实验总结通过本次实验,我对操作系统原理有了更深入的理解和掌握。

以下是我对实验的几点总结:1. 操作系统是计算机系统的核心,负责管理和控制计算机资源,提高计算机系统的效率。

C语言程序设计——教室管理系统(源代码))

C语言程序设计——教室管理系统(源代码))

C语言程序设计——教室管理系统(源代码))C语言程序设计——教室管理系统(源代码)非常有用的。

#include#include#include#define szSTR 64#define fileDB "c:\\contact.txt"struct CONTACT {char num[szSTR];/*教室编号*/char site[szSTR];/*教室位置*/char snum[szSTR];/*座位数*/char tv[szSTR];/*有无多媒体*/char use[szSTR];/*是否可用*/};typedef struct CONTACT CON;#define ANUM 1#define ASITE 2#define ASNUM 3#define ATV 4#define AUSE 5#define BFULL 0xFFint OPER[6] = {BFULL, ANUM, ASITE, ASNUM, ATV,AUSE};void input(CON * s, int mask){if(mask & ANUM) { printf("请输入教室编号:"); scanf("%s", s->num); }if(mask & ASITE) { printf("请输入教室位置:"); scanf("%s", s->site); }if(mask & ASNUM) { printf("请输入座位数:"); scanf("%s", s->snum); }if(mask & ATV){printf("请输入是否有多媒体(有/Y*无/N):");scanf("%s",s->tv);}if(mask & AUSE) { printf("请输入是否可用(可/Y*否/N):"); scanf("%s", s->use); } }/*end input*/void show (int id, CON * s){if(!s) return ;if(id)printf("%d\t%s\t\t%s\t%s\t\t%s\t\t%s\n",id, s->num , s->site , s->snum , s->tv,s->use );elseprintf("【编号】%s【教室编号】%s【位置】%s【座位数】%s 【有无多媒体】%s【是否可用】%s\n",s->num , s->site , s->snum , s->tv,s->use );/*end if*/}/*end show*/void regist(void){CON s; FILE * f = 0;input(&s, BFULL);f = fopen(fileDB, "ab");fwrite(&s,sizeof(s),1,f);fclose(f);printf("资料已保存!\n\n\n\n");}/*end regist*/int browse(char * key, fpos_t * p, CON * s){FILE * f =0; int i = 0, r = 0; CON t;char * a = 0, * b = 0; fpos_t q;if(!s) return 0;f = fopen(fileDB, "rb");if(!f) {printf("数据库暂无记录\n\n\n\n");return 0;}/*end if*/printf("编号\t教室编号\t位置\t座位数\t有无多媒体(Y/N)\t是否可用(Y/N)\n");printf("----------------------------------------------------------------------\n");while(!feof(f)) {fgetpos(f, &q);r = fread(&t, sizeof(t), 1, f);if(r<1)break;if(t.num[0]==0) continue;if(key) {a = strstr(t.num , key);b = strstr(t.site , key);if(a == 0 && b == 0) continue;}/*end if*/if(p) *p = q;if(s) memcpy(s, &t, sizeof(t));i++;show(i, &t);}/*end while*/printf("----------------------------------------------------------------------\n\n\n\n\n");return i;}/*end browse*/fpos_t query(CON * s){char key[szSTR]=""; fpos_t p = 0; int r = 0;printf("请输入教室编号或者位置:");scanf("%s", key);r = browse(key, &p, s);return r?p:-1;}/*end query*/void clear(void){FILE * f = 0; CON s;fpos_t p = query(&s);if(p<0) return;f = fopen(fileDB, "rb+");fsetpos(f, &p);memset(&s, 0, sizeof(s));fwrite(&s, sizeof(s),1, f);fclose(f);printf("记录已删除!\n\n\n\n\n");}/*end clear*/void modify(void){FILE * f = 0; CON s; int cmd = 0;fpos_t p = query(&s);if(p<0) return;f = fopen(fileDB, "rb+");fsetpos(f, &p);for(;;) {show(0, &s);printf("请选择:1-编号;2-位置;3-座位数;4-有无多媒体;5-是否可用;6-保存并退出;7-放弃修改并退出\n\n\n\n");scanf("%d", &cmd);switch(cmd) {case 1:case 2:case 3:case 4:input(&s, OPER[cmd]);break;case 6:fsetpos(f, &p);fwrite(&s, sizeof(s), 1, f);case 7:fclose(f);return;default:printf("错误的操作,请重新输入。

C语言程序设计 机房管理系统

C语言程序设计 机房管理系统

#include<stdio.h>#include<string.h>#define Size 100struct machine{int bianhao;char zhuban[10];char yingpan[10];char neicun[10];char zhupin[10];char xianka[10];char fangjian[10];char shiyong[10];}Com[Size];void menu();void password();void insert(int *);void search1(int);//void search2(int);void update(int);void Delete(int *);void show(int);void save();void read();int count=0;int main(){int i;char name[20];char ad[20]={"zyc"};password();{read ();do{menu();scanf("%d",&i);switch(i){case 1:insert(&count);break;case 2:search1(count);break;case 3:update(count);break;case 4:Delete(&count);break;case 5:show(count);break;case 6:save();break;default:printf("errow!");break;}}while(i!=6);}if(strcmp(ad,name)!=0)// printf("You are wrong!\n");return 0;}void password(){int i;char name[20];char ad[20]={"zyc"};printf("请输入验证信息:");scanf("%s",name);if(strcmp(ad,name)==0);}void menu(){printf("\n");printf("---------------北软机房管理系统---------------\n");printf("---1.插入---\n");printf("---2.按编号查找---\n");//printf("---3.按机房查找---\n");printf("---3.修改---\n");printf("---4.删除---\n");printf("---5.显示---\n");printf("---6.退出---\n");}void insert(int *count){int i,number;if(*count==Size){printf("full!");return;}printf("请输入编号:");scanf("%d",&number);for(i=0;i<*count;i++)if(Com[i].bianhao==number){printf("已经有相同的编号:");return;}Com[i].bianhao=number;printf("请输入主板型号:");scanf("%s",Com[i].zhuban);printf("请输入硬盘容量:");scanf("%s",Com[i].yingpan);printf("请输入内存容量:");scanf("%s",Com[i].neicun);printf("请输入cpu主频:");scanf("%s",Com[i].zhupin);printf("请输入显卡型号:");scanf("%s",Com[i].xianka);printf("请输入机器所属机房:");scanf("%s",Com[i].fangjian);printf("请输入机器使用情况:");scanf("%s",Com[i].shiyong);(*count)++;}void search1(int count){int i,number,flag=0;printf("请输入要查询的编号:");scanf("%d",&number);for(i=0;i<count;i++)if(Com[i].bianhao==number){printf("机器编号: %d\n",Com[i].bianhao);printf("主板型号: %s\n",Com[i].zhuban);printf("硬盘容量: %s\n",Com[i].yingpan);printf("内存容量: %s\n",Com[i].neicun);printf("机器主频: %s\n",Com[i].zhupin);printf("显卡型号: %s\n",Com[i].xianka);printf("所属机房: %s\n",Com[i].fangjian);printf("使用情况: %s\n",Com[i].shiyong);flag=1;}if(flag==0)printf("没有查到!");}/*void search2(int count){int i,flag=0;int number;printf("请输入要查询的主板:");scanf("%d",&number);for(i=0;i<count;i++)if(Com[i].fangjian==number){printf("机器编号: %d\n",Com[i].bianhao);printf("主板型号: %s\n",Com[i].zhuban);printf("硬盘容量: %s\n",Com[i].yingpan);printf("内存容量: %s\n",Com[i].neicun);printf("机器主频: %s\n",Com[i].zhupin);printf("显卡型号: %s\n",Com[i].xianka);printf("所属机房: %d\n",Com[i].fangjian);printf("使用情况: %s\n",Com[i].shiyong);flag=1;}if(flag==0)printf("没有查到!");}*/void update(int count){int i,number,flag=0;printf("请输入要修改的编号:");scanf("%d",&number);for(i=0;i<count;i++)if(Com[i].bianhao==number){printf("请输入主板型号:");scanf("%s",Com[i].zhuban);printf("请输入硬盘容量:");scanf("%s",Com[i].yingpan);printf("请输入内存容量:");scanf("%s",Com[i].neicun);printf("请输入cpu主频:");scanf("%s",Com[i].zhupin);printf("请输入显卡型号:");scanf("%s",Com[i].xianka);printf("请输入机器所属机房:");scanf("%s",Com[i].fangjian);printf("请输入机器使用情况:");scanf("%s",Com[i].shiyong);flag=1;}if(flag==0)printf("没有查到可以修改的数据!");}void Delete(int *count){int i,j,number,flag=0;printf("请输入要删除的编号:");scanf("%d",&number);for(i=0;i<*count;i++){if(Com[i].bianhao==number){for(j=i;j<*count-1;j++)Com[j]=Com[j+1];(*count)--;flag=1;}}if(flag==0)printf("没有查询到可删除的数据:");}void show(int count){ int i;printf("\n");printf(" 编号主板硬盘内存主频显卡机房使用\n"); for(i=0;i<count;i++){printf("%8d",Com[i].bianhao);printf("%8s",Com[i].zhuban);printf("%8s",Com[i].yingpan);printf("%8s",Com[i].neicun);printf("%8s",Com[i].zhupin);printf("%8s",Com[i].xianka);printf("%8s",Com[i].fangjian);printf("%8s",Com[i].shiyong);printf("\n");}printf("机器总数量:%d",i);}void save(){FILE *fp;int i;if((fp=fopen("D:\\jiqi.txt","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<count;i++)if(fwrite(&Com[i],sizeof(struct machine),1,fp)!=1) printf("file write error!");fclose(fp);}void read(){FILE *fp;int i=0;if((fp=fopen("D:\\jiqi.txt","rb"))==NULL){return;}while(!feof(fp))if(fread(&Com[i],sizeof(struct machine),1,fp)==1) {count++;i++;}fclose(fp);}。

c语言程序设计实验设备管理系统-百度文库

c语言程序设计实验设备管理系统-百度文库

本文由导员0000贡献doc文档课程设计报告书实验设备管理系统<br />班学姓<br />级:号:名:<br />0909方 0909-1 20096409 王晶康亚男<br />指导教师:指导教师:<br />石家庄铁道大学四方学院<br />二零一零年七月十五号<br />1<br />课程设计报告内容<br />1. 选择题目<br />题目:实验设备管理系统题目:实验设备管理系统 2. 内容摘要<br />实验室设备管理系统是典型的设备信息管理系统,要求能为学校实验摘要:室管理提供信息化动态化的管理,方便实验室设备管理工作,提高设备管理质量和使用效率。

而且系统应符合设备管理的有关规定,包括新设备的申请、购买确认、新设备信息录入、旧设备维修和报废及用户管理等。

能满足日常工作的基本需要,并达到操作过程中的直观、方便、实用、安全等有关要求。

实验室设备管理系统是一个典型的信息管理系统,采用面向对象的分析方法,给出系统的基本结构?设计特色?设计模型及实现途径,并且对系统的开发技术进行研究?本系统是一个为适应对学校实验室设备管理的迫切需求而设计开发的软件系统。

<br /> 3. 索引关键词<br />关键词:结构体、文件、数组、函数<br />4.目录目录<br />目录……………………………………………………………目录题目要求………………………………………………………3 题目要求设计思想……………………………………………………3-4 设计思想系统完成及功能系统完成及功能……………………………………………… 4 界面设计……………………………………………………4-5 界面设计<br />2<br />核心算法及说明………………………………………….5-11 核心算法及说明结论…………………………………………………………11 结论考资料………………………………………………………12 考资料后记…………………………………………………………12 后记附录………………………………………………………12-13 附录<br />5. 正文<br />包括课程设计的要求,设计思想,系统完成的功能,及界面设计,核心算法及说明,和结论几部分,正文必须从页首开始。

设备管理系统源代码及运行界面

设备管理系统源代码及运行界面

源代码及运行界面1.model类a.Depart.csusing System。

using System.Collections.Generic。

using System.Linq。

using System.Text。

namespace model{public class Depart{public Depart(){ }#region modelprivate int _departid。

private string _departname。

private int _parentid。

public int DepartID{set {_departid = value。

}get { return _departid。

}}public string DepartName{set { _departname = value。

}get { return _departname。

}}public int ParentID{set { _parentid = value。

}get { return _parentid。

}}#endregion model}}b.Device.csusing System。

using System.Collections.Generic。

using System.Linq。

using System.Text。

namespace model{public class Device{public Device(){ }#region modelprivate int _deviceid。

private string _devicetypeid。

private int _typeid。

private int _classid。

private string _devicestate。

private Single _price。

private int _useofyear。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fprintf(fp,"%s\n",current->model);
fprintf(fp,"%s\n",current->factory);
fprintf(fp,"%s\n",current->buy_date);
//printf("%d %s %s %s %s ",current->num,current->name,current->model,current->factory,current->buy_date);
current = current->next;
}
fclose(fp);
}
//删除设备
void deleteEum){
if(head->next==NULL){
printf("没有设备!请先录入设备!");
char factory[20]; //厂家
char buy_date[20]; //购买日期
struct equipment *next;
char repair_time[20];
}Equipment;
void fprintE(Equipment *head); //将设备信息输出到文件
fclose(fp);
printf("记录成功!");
break;
}case 2:{
int t = 0;
printf("请输入查找编号:");
scanf("%d",&num);
printf("没有设备!请先录入设备!");
return;
}
Equipment *current = head->next;
while(current && (current->num!=num)){
current = current->next;
void findEquipment(); //设备查找
Equipment* fscanE(); //从文件读取设备信息
void repairEquipment(); // 维修管理
void printList(Equipment *head); //输出设备信息列表
int checkNum(Equipment *head, int num);
current->next = current_next->next;
printf("删除成功!");
fprintE(head);
return;
}
current = current->next;
int rnum;
//将设备信息输出到文件
void addEquipment(Equipment *head){
Equipment *tail = head;
while(tail->next!=NULL) tail = tail->next;
Equipment *newnode = (Equipment*)malloc(sizeof(Equipment));
fscanf(fp,"%s\n",newnode->buy_date);
current->next = newnode;
newnode->next = NULL;
current = current->next;
}
fclose(fp);
scanf("%s",&newnode->buy_date);
tail->next = newnode;
newnode->next = NULL;
fprintE(head);
printf("录入成功!");
}
//将链表输入到文件
void fprintE(Equipment *head){
fscanf(fp,"%d\n",&newnode->num);
fscanf(fp,"%s\n",newnode->name);
fscanf(fp,"%s\n",newnode->model);
fscanf(fp,"%s\n",newnode->factory);
printf("请输入设备编号:");
scanf("%d",&newnode->num);
if(checkNum(head,newnode->num)){
printf("输入编号已有,输入失败!");
return;
}
printf("请输入设备名称:");
printf("请输入设备购买日期:");
scanf("%s",&current->buy_date);
fprintE(head);
}else{
printf("操作失败,没有找到设备编号!");
}
}
//设备查找
head1->next = NULL;
Equipment *current = head1;
FILE *fp = fopen("data.txt","r");
while(!feof(fp)){
Equipment *newnode = (Equipment*)malloc(sizeof(Equipment));
}
if(current!=NULL){
printf("请输入更新后的数据:\n");
printf("请输入设备编号:");
scanf("%d",&current->num);
printf("请输入设备名称:");
void findEquipment(){
Equipment *head = fscanE();
if(head->next==NULL){
printf("没有设备!请先录入设备!");
return;
}
int num;
printf("请输入查找设备的编号:");
getchar();
switch(oper){
case 1:{
FILE *fp = fopen("myfile.txt","a");
printf("请输入维修编号:");
scanf("%d",&num);
return head1;
}
//维修信息管理
void repairEquipment(){
int num;
int oper;
char time[16];
printf("请输入维修操作(1~2):\n1.记录\t2.查找\n");
scanf("%d",&oper);
scanf("%s",&newnode->name);
printf("请输入设备型号:");
scanf("%s",&newnode->model);
printf("请输入设备厂家:");
scanf("%s",&newnode->factory);
printf("请输入设备购买日期:");
printf("请输入维修时间(xxxx-xx-xx):");
scanf("%s",&time);
fprintf(fp,"%d\n",num);
fprintf(fp,"%s\n",time);
fflush(fp);
scanf("%s",&current->name);
printf("请输入设备型号:");
scanf("%s",&current->model);
printf("请输入设备厂家:");
scanf("%s",&current->factory);
scanf("%d",&num);
while(head){
if(head->num==num){
printf("编号为%d的信息为:\n",num);
printf("编号:%d\n",head->num);
printf("名称:%s\n",head->name);
}
head = head->next;
}
printf("查找失败,没有找到设备编号!");
}
//从文件读取设备信息
Equipment* fscanE(){
Equipment *head1 = (Equipment*)malloc(sizeof(Equipment));
相关文档
最新文档