#include<reg52.h> #include<intrins.h> #define LED P0 sbit KEY0=P2^0; //定義按鍵輸入端口 A sbit KEY1=P2^1; //定義按鍵輸入端口 B sbit KEY2=P2^2; //定義按鍵輸入端口 C unsigned int Led_table[8]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; char Led_num=0; unsigned int num=0; //中斷計(jì)數(shù) void delayms(unsigned int x) { unsigned int i,j;
標(biāo)簽: 單片機(jī)
上傳時(shí)間: 2015-12-23
上傳用戶(hù):kimyu
#include <iostream.h> #include <string.h> #include <iomanip.h> #include "Stud.h" Stud::Stud(){} char *Stud::getno() //獲取學(xué)號(hào) { return no; } char *Stud::getname() //獲取姓名 { return name; } char *Stud::getsex() //獲取性別 { return sex; } char *Stud::getminzu() //獲取民族 { return minzu; } char *Stud::getaddress() //獲取出生地 { return address; } char *Stud::getbirth() //獲取出生年月 { return birth; } int Stud::gettag() //獲取姓名 { return tag; } void Stud::changeno(char n[]) //設(shè)置學(xué)號(hào) { strcpy(no,n); } void Stud::changename(char na[]) //設(shè)置姓名 { strcpy(name,na); } void Stud::changesex(char s[]) //設(shè)置性別 { strcpy(sex,s); } void Stud::changeminzu(char m[]) //設(shè)置民族 { strcpy(minzu,m); } void Stud::changeaddress(char a[]) //設(shè)置出生地 { strcpy(address,a); } void Stud::changebirth(char b[]) //設(shè)置出生年月 { strcpy(birth,b); } void Stud::addstudent(char *rn,char *rna) //增加學(xué)生 { strcpy(no,rn); strcpy(name,rna); } void Stud::addstudent(char *rn,char *rna,char *rs,char *rm,char *ra,char *rb) //增加學(xué)生 { tag=0; strcpy(no,rn); strcpy(name,rna); strcpy(sex,rs); strcpy(minzu,rm); strcpy(address,ra); strcpy(birth,rb); } void Stud::delstud() //設(shè)置刪除標(biāo)記 { tag=1; } void Stud::disp() //輸出學(xué)生信息 { cout<<setw(15)<<no<<setw(10)<<name<<setw(10)<<sex<<setw(10)<<minzu<<setw(10)<<address<<setw(10)<<birth<<endl; } void Stud::display() //輸出學(xué)生信息 { cout<<setw(15)<<no<<setw(10)<<name; }
標(biāo)簽: 學(xué)生
上傳時(shí)間: 2016-12-29
上傳用戶(hù):767483511
/*================================================================= 4掃16*16下入上出C語(yǔ)言程序, 低位起筆,數(shù)據(jù)反相。 預(yù)定義 **************************************************************/ #include #include //可使用其中定義的宏來(lái)訪問(wèn)絕對(duì)地址? bit ture=1; // 使能正反相位選擇 bit false=0; // 使能反相 sbit SCK=P3^6; // EQU 0B6H ; 移位 sbit RCK=P3^5; //EQU 0B5H ; 并行鎖存 //sbit P1_3=P1^3; //外RAM擴(kuò)展讀寫(xiě)控制,不能重復(fù)申明 sbit EN1=P1^7; //BIT sbit FB=0xD8; // FB作為標(biāo)志 sfr BUS_SPEED=0xA1; //訪問(wèn)片外RAM速度設(shè)置寄存器 sfr P4SW=0xBB; //P4SW寄存器設(shè)置P4.4,P4.5,P4.6的功能 sfr P4=0xC0; // P4 EQU 0C0H sbit NC=P4^4; sbit CS=P4^6; //片選 sfr WDT_CONTR=0xC1; // 0C1H ;看門(mén)狗寄存器 sfr AUXR=0x8E; // EQU 08EH ;附件功能控制寄存器 sfr16 DPTR=0x82; sfr CLK_DIV=0x97 ; //時(shí)鐘分頻寄存器 const unsigned int code All_zk =256 ; // 0E11H ;原數(shù)據(jù)總字節(jié) const unsigned int code am_zk =128 ; // 0E13H ;單幕數(shù)據(jù)量 const unsigned char code asp = 255; // asp數(shù)據(jù)相位字,如果是正相字,那么asp=0 bit basp=1; // asp數(shù)據(jù)相位字標(biāo)記,如果是正相字,那么basp=0 const unsigned char code font[]= // 晶科電子LED數(shù)碼(反相字) {0xBD,0x81,0xEF,0xFF,0xBD,0x81,0xF7,0xFF,0xEF,0xEB,0x80,0x9F,0xEF,0x8F,0xEF,0xEF,0x7F,0x7B,0x7B,0x7F,0xBF,0xEF,0xEF,0xFF,0x7F,0x00,0xFF,0xFF,0xFF,0x80,0xFE,0xFF, 0x81,0xBD,0x0F,0x0F,0x81,0xBD,0xF0,0xF0,0xEF,0xED,0xE7,0xE1,0xEF,0xE1,0xEE,0xEE,0x7F,0x7B,0x7B,0x7F,0xBF,0xEF,0xEF,0xFF,0x7F,0x7F,0x7F,0x03,0xFF,0xFF,0xFF,0xF0, 0xBD,0x81,0xEF,0xEF,0xBD,0x81,0xF7,0xF7,0xEF,0x2E,0xC7,0xEF,0xEF,0xEE,0xED,0xED,0xFF,0x03,0x03,0x7F,0x80,0xE0,0xE0,0xFF,0x5F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFB, 0xFF,0xBD,0xFF,0x0F,0xFF,0xBD,0xFF,0xF0,0xEF,0xEF,0xAB,0xEF,0xEF,0xEF,0xED,0xED,0xFF,0x7B,0x7B,0x03,0xFF,0xEF,0xEF,0xE0,0xBF,0x7F,0x7F,0xFF,0xFF,0xFF,0xDF,0xFD, 0xBD,0xFD,0xFD,0xFF,0xBD,0xED,0xBD,0xFF,0xDD,0xBD,0xDD,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xEF,0x00,0xEF,0xEB,0xEB,0x81,0xFB,0xC3,0xDA,0xF7,0xFF,0xDF,0xDF,0xEE,0xFF, 0x80,0xFD,0xFD,0xFF,0xC0,0xED,0xED,0xFF,0xE0,0xBD,0xBD,0xFF,0xFF,0xFF,0xFF,0xFF,0xB3,0x00,0xC7,0x6D,0x8D,0xEB,0xDD,0xF3,0xDB,0xDB,0xFB,0x40,0xDF,0xDF,0xEE,0xE0, 0xFF,0xFD,0xFD,0xFF,0xFF,0xFD,0xED,0xFF,0xFF,0xBD,0xBD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xB7,0x2B,0xAB,0xDE,0xF7,0xDD,0xFB,0xFB,0x5B,0xC3,0xF7,0xEB,0xD0,0xEE,0xEF, 0xFF,0xFD,0xFD,0xF8,0xFF,0xBD,0xE1,0xC0,0xFF,0xBD,0xBD,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xD3,0xED,0xC7,0xFF,0xF7,0xDC,0xFB,0xFF,0xDB,0xD9,0xF7,0xF7,0xDF,0xC0,0xEE}; const unsigned char data xzL_data =0x08; //0603H;一幕一行字節(jié)數(shù) const unsigned int data aL_data =0x20; //單幕單號(hào)線(單組線)數(shù)據(jù)量 const unsigned char data mov =0x03A ; //移動(dòng)速度 const unsigned int data t_T =0x040A ; //0E0AH ; 05FAH; ;停留時(shí)間 const unsigned char data mu_num=0x02 ; //0602H ;幕數(shù) unsigned int m; //m幕長(zhǎng)變量<=am_zk unsigned char data_z; //數(shù)據(jù)寄存器 unsigned int xd; //數(shù)據(jù)指針寄存器 /*********************************************************************** 數(shù)據(jù)轉(zhuǎn)移子函數(shù) ===============================================================*/ char MOVD() { unsigned char f,nm; //nm幕數(shù)控制 unsigned char code *dptr; unsigned char xdata *xdptr = 0; f = asp ; for (m=0; m
標(biāo)簽: P10 單元板 單片機(jī)源程序
上傳時(shí)間: 2017-05-04
上傳用戶(hù):sbfd010
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定義 sfr WDT_CONTR = 0xe1;//stc2051的看門(mén)狗?????? /**********全局常量************/ //寫(xiě)卡的命令 #define write_command0 0//寫(xiě)密碼 #define write_command1 1//寫(xiě)配置字 #define write_command2 2//密碼寫(xiě)數(shù)據(jù) #define write_command3 3//喚醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //讀卡的時(shí)間參數(shù)us #define ts_min 250//270*11.0592/12=249//取近似的整數(shù) #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10調(diào)整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中斷處理:采用查詢(xún)的方法讀卡時(shí)關(guān)所有中斷****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI總線 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//測(cè)試綠燈 sbit led_light1 = P1^5;//測(cè)試紅燈 sbit led_light_ok = P1^1;//讀卡成功標(biāo)志 sbit fengmingqi = P1^5; /***********全局變量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存儲(chǔ)卡上用戶(hù)數(shù)據(jù)(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數(shù)組ram uchar command; //第一個(gè)命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //緩存定時(shí)值,因用同一個(gè)定時(shí)器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //緩存定時(shí)值,因用同一個(gè)定時(shí)器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函數(shù)原型*****************/ //讀寫(xiě)操作 void f_readcard(void);//全部讀出1~7 AOR喚醒 void f_writecard(uchar x);//根據(jù)命令寫(xiě)不同的內(nèi)容和操作 void f_clearpassword(void);//清除密碼 void f_changepassword(void);//修改密碼 //功能子函數(shù) void write_password(uchar data *data p);//寫(xiě)初始密碼或數(shù)據(jù) void write_block(uchar x,uchar data *data p);//不能用通用指針 void write_bit(bit x);//寫(xiě)位 /*子函數(shù)區(qū)*****************************************************/ void delay_2(uint x) //延時(shí),時(shí)間x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能頻繁的復(fù)位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允許接收 //SCON =0x50; //01010000B:10位異步收發(fā),波特率可變,SM2=0不用接收到有效停止位才RI=1, //REN=1允許接收 TMOD = 0x21; //定時(shí)器1 定時(shí)方式2(8位),定時(shí)器0 定時(shí)方式1(16位) TCON = 0x40; //設(shè)定時(shí)器1 允許開(kāi)始計(jì)時(shí)(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //啟動(dòng)定時(shí)器 WDT_CONTR = 0x3c;//使能看門(mén)狗 p_U2270B_Standby = 0;//單電源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//讀卡 { EA = 0;//全關(guān),防止影響跳變的定時(shí)器計(jì)時(shí) WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用喚醒功能來(lái)防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作碼讀0頁(yè) write_bit(0); write_password(&bankdata[24]);//密碼block7 p_U2270B_CFE =1 ;// delay_2(516);//編程及確認(rèn)時(shí)間5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一個(gè)穩(wěn)定的低電平?超時(shí)判斷? while(!p_U2270B_OutPut);//等待上升沿的到來(lái)同步信號(hào)檢測(cè)1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定時(shí)器晚啟動(dòng)10個(gè)周期 //同步頭 if((324 < a.W) && (a.W < 353)) ;//檢測(cè)同步信號(hào)1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //讀0~7塊的數(shù)據(jù) for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8個(gè)位 { //等待下降沿的到來(lái) while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再賦值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//讀卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//寫(xiě)卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//寫(xiě)密碼:初始化密碼 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//寫(xiě)操作碼1:10 write_bit(0);//寫(xiě)操作碼0 write_bit(0);//寫(xiě)鎖定位0 for(i = 0;i < 35;i++) { write_bit(1);//寫(xiě)數(shù)據(jù)位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//測(cè)試使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密碼存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡參數(shù):初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//寫(xiě)操作碼1:10 write_bit(0);//寫(xiě)操作碼0 write_bit(0);//寫(xiě)鎖定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密碼寫(xiě)數(shù)據(jù) { uchar data*data p; p = &bankdata[24]; write_bit(1);//寫(xiě)操作碼1:10 write_bit(0);//寫(xiě)操作碼0 write_password(p);//發(fā)口令 write_bit(0);//寫(xiě)鎖定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//寫(xiě)數(shù)據(jù) } else if(x == write_command3)//aor //喚醒 { //cominceptbuff[1]操作碼10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密碼 p_U2270B_CFE = 1;//此時(shí)數(shù)據(jù)不停的循環(huán)傳出 } else //停止操作碼 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密碼 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密碼 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作碼10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//發(fā)原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//寫(xiě)新配置參數(shù):pwd=0 //密碼無(wú)效:即清除密碼 DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密碼 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密碼 DATA = 0x80;//操作碼10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//發(fā)原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//寫(xiě)新密碼 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密碼存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函數(shù)***********************************/ void write_bit(bit x)//寫(xiě)一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延時(shí)448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫(xiě)1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫(xiě)0 } } /*******************寫(xiě)一個(gè)block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0數(shù)據(jù) { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //讀卡 f_writecard(command1); //寫(xiě)卡 f_clearpassword(); //清除密碼 f_changepassword(); //修改密碼 } }
標(biāo)簽: 12345
上傳時(shí)間: 2017-10-20
上傳用戶(hù):my_lcs
是否要先打開(kāi)ALLEGRO? 不需要(當(dāng)然你的機(jī)器須有CADENCE系統(tǒng))。生成完封裝后在你的輸出目錄下就會(huì)有幾千個(gè)器件(全部生成的話(huà)),默認(rèn)輸出目錄為c:\MySym\. Level里面的Minimum, Nominal, Maximum 是什么意思? 對(duì)應(yīng)ipc7351A的ABC封裝嗎? 是的 能否將MOST, NOMINAL, LEAST三種有差別的封裝在命名上也體現(xiàn)出差別? NOMINAL 的名稱(chēng)最后沒(méi)有后綴,MOST的后綴自動(dòng)添加“M”,LEAST的后綴自動(dòng)添加“L”,你看看生成的庫(kù)名稱(chēng)就知道了。(直插件以及特別的器件,如BGA等是沒(méi)有MOST和LEAST級(jí)別的,對(duì)這類(lèi)器件只有NOMINAL) IC焊盤(pán)用長(zhǎng)方形好像比用橢圓形的好,能不能生成長(zhǎng)方形的? 嗯。。。。基本上應(yīng)該是非直角的焊盤(pán)比矩形的焊盤(pán)好,我記不得是AMD還是NS還是AD公司專(zhuān)門(mén)有篇文檔討論了這個(gè)問(wèn)題,如果沒(méi)有記錯(cuò)的話(huà)至少有以下好處:信號(hào)質(zhì)量好、更省空間(特別是緊密設(shè)計(jì)中)、更省錫量。我過(guò)去有一篇帖子有一個(gè)倒角焊盤(pán)的SKILL,用于晶振電路和高速器件(如DDR的濾波電容),原因是對(duì)寬度比較大的矩形用橢圓焊盤(pán)也不合適,這種情況下用自定義的矩形倒角焊盤(pán)就比較好了---你可以從網(wǎng)上另外一個(gè)DDR設(shè)計(jì)的例子中看到。 當(dāng)然,我已經(jīng)在程序中添加了一選擇項(xiàng),對(duì)一些矩形焊盤(pán)可以選擇倒角方式. 剛才試了一下,感覺(jué)器件的命名的規(guī)范性不是太好,另好像不能生成器件的DEVICE文件,我沒(méi)RUN完。。。 這個(gè)程序的命名方法基本參照IPC-7351,每個(gè)人都有自己的命名嗜好,仍是不好統(tǒng)一的;我是比較懶的啦,所以就盡量靠近IPC-7351了。 至于DEVICE,的選項(xiàng)已經(jīng)添加 (這就是批量程序的好處,代碼中加一行,重新生產(chǎn)的上千上萬(wàn)個(gè)封裝就都有新東西了)。 你的庫(kù)都是"-"的,請(qǐng)問(wèn)用過(guò)ALLEGRO的兄弟,你們的FOOTPRINT認(rèn)"-"嗎?反正我的ALLEGRO只認(rèn)"_"(下劃線) 用“-”應(yīng)該沒(méi)有問(wèn)題的,焊盤(pán)的命名我用的是"_"(這個(gè)一直沒(méi)改動(dòng)過(guò))。 部分絲印畫(huà)在焊盤(pán)上了。 絲印的問(wèn)題我早已知道,只是盡量避免開(kāi)(我有個(gè)可配置的SilkGap變量),不過(guò)工作量比較大,有些已經(jīng)改過(guò),有些還沒(méi)有;另外我沒(méi)有特別費(fèi)功夫在絲印上的另一個(gè)原因是,我通常最后用AUTO-SILK的來(lái)合并相關(guān)的層,這樣既方便快捷也統(tǒng)一各個(gè)器件的絲印間距,用AUTO-SILK的話(huà)絲印線會(huì)自動(dòng)避開(kāi)SOLDER-MASK的。 點(diǎn)擊allegro后命令行出現(xiàn)E- Can't change to directory: Files\FPM,什么原因? 我想你一定是將FPM安裝在一個(gè)含空格的目錄里面了,比如C:\Program Files\等等之類(lèi),在自定義安裝目錄的時(shí)候該目錄名不能含有空格,且存放生成的封裝的目錄名也不能含有空格。你如果用默認(rèn)安裝的話(huà)應(yīng)該是不會(huì)有問(wèn)題的, 默認(rèn)FPM安裝在C:\FPM,默認(rèn)存放封裝的目錄為C:\MYSYM 0.04版用spb15.51生成時(shí).allegro會(huì)死機(jī).以前版本的Allegro封裝生成器用spb15.51生成時(shí)沒(méi)有死機(jī)現(xiàn)象 我在生成MELF類(lèi)封裝的時(shí)候有過(guò)一次死機(jī)現(xiàn)象,估計(jì)是文件操作錯(cuò)誤導(dǎo)致ALLEGRO死機(jī),原因是我沒(méi)有找到在skill里面直接生成SHAPE焊盤(pán)的方法(FLASH和常規(guī)焊盤(pán)沒(méi)問(wèn)題), 查了下資料也沒(méi)有找到解決方法,所以只得在外部調(diào)用SCRIPT來(lái)將就一下了。(下次我再查查看),用SCRIPT的話(huà)文件訪問(wèn)比較頻繁(幸好目前MELF類(lèi)的器件不多). 解決辦法: 1、對(duì)MELF類(lèi)器件單獨(dú)選擇生成,其它的應(yīng)該可以一次生成。 2、試試最新的版本(當(dāng)前0.05) 請(qǐng)說(shuō)明運(yùn)行在哪類(lèi)器件的時(shí)候ALLEGRO出錯(cuò),如果不是在MELF附近的話(huà),請(qǐng)告知,謝謝。 用FPM0.04生成的封裝好像文件都比較大,比如CAPC、RES等器件,都是300多K,而自己建的或采用PCB Libraries Eval生成的封裝一般才幾十K到100K左右,不知封裝是不是包含了更多的信息? 我的每個(gè)封裝文件包含了幾個(gè)文字層(REF,VAL,TOL,DEV,PARTNUMBER等),SILK和ASSEM也是分開(kāi)的,BOND層和高度信息,還有些定位線(在DISP層),可能這些越來(lái)越豐富的信息加大了生成文件的尺寸.你如果想看有什么內(nèi)容的話(huà),打開(kāi)所有層就看見(jiàn)了(或REPORT) 非常感謝 LiWenHui 發(fā)現(xiàn)的BUG, 已經(jīng)找到原因,是下面這行: axlDBChangeDesignExtents( '((-1000 -1000) (1000 1000))) 有尺寸空間開(kāi)得太大,后又沒(méi)有壓縮的原因,現(xiàn)在生成的封裝也只有幾十K了,0.05版已經(jīng)修復(fù)這個(gè)BUG了。 Allegro封裝生成器0.04生成do-27封裝不正確,生成封裝的焊盤(pán)的位號(hào)為a,c.應(yīng)該是A,B或者1,2才對(duì). 呵呵,DIODE通常管腳名為AC(A = anode, C = cathode) 也有用AK 或 12的, 極少見(jiàn)AB。 除了DIODE和極個(gè)別插件以及BGA外,焊盤(pán)名字以數(shù)字為主, 下次我給DIODE一個(gè)選擇項(xiàng),可以選擇AC 或 12 或 AK, 至于TRANSISTER我就不去區(qū)分BCE/CBE/ECB/EBC/GDS/GSD/DSG/DGS/SGD/SDG等了,這樣會(huì)沒(méi)完沒(méi)了的,我將對(duì)TRANSISTER強(qiáng)制統(tǒng)一以數(shù)字編號(hào)了,如果用家非要改變,只得在生成庫(kù)后手工修改。
標(biāo)簽: Footprint Maker 0.08 FPM skill
上傳時(shí)間: 2018-01-10
上傳用戶(hù):digitzing
#include<stdio.h> #include<windows.h> int xuanxiang; int studentcount; int banjihao[100]; int xueqihao[100][10]; char xm[100][100]; int xuehao[100][10]; int score[100][3]; int yuwen; int shuxue[000]; int yingyu[100]; int c[100]; int p; char x[1000][100]="",y[100][100]="";/*x學(xué)院 y專(zhuān)業(yè) z班級(jí)*/ int z[100]; main() { void input(); void inputsc(); void alter(); void scbybannji(); printf("--------學(xué)生成績(jī)管理-----\n"); printf("請(qǐng)按相應(yīng)數(shù)字鍵來(lái)實(shí)現(xiàn)相應(yīng)功能\n"); printf("1.錄入學(xué)生信息 2.錄入學(xué)生成績(jī) 3.修改學(xué)生成績(jī)\n"); printf("4.查詢(xún)學(xué)生成績(jī) 5.不及格科目及名單 6.按班級(jí)輸出學(xué)生成績(jī)單\n"); printf("請(qǐng)輸入你要實(shí)現(xiàn)的功能所對(duì)應(yīng)的數(shù)字:"); scanf("%d",&xuanxiang); system("cls"); getchar(); switch (xuanxiang) { case 1:input(); case 2:inputsc(); case 3:alter(); /*case 4:select score(); case 5:bujigekemujimingdan();*/ case 6:scbybanji; } } void input() { int i; printf("請(qǐng)輸入你的學(xué)院名稱(chēng):"); gets(x); printf("請(qǐng)輸入你的專(zhuān)業(yè)名稱(chēng):"); gets(y); printf("請(qǐng)輸入你的班級(jí)號(hào):"); scanf("%d",&z); printf("請(qǐng)輸入你們一個(gè)班有幾個(gè)人:"); scanf("%d",&p); system("cls"); for(i=0;i<p;i++) { printf("請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)號(hào):",i+1); scanf("%d",xuehao[i]); getchar(); printf("請(qǐng)輸入第%d個(gè)學(xué)生的姓名:",i+1); gets(xm[i]); system("cls"); } printf("您已經(jīng)錄入完畢您的班級(jí)所有學(xué)生的信息!\n"); printf("您的班級(jí)為%s%s%s\n",x,y,z); /*alter(p);*/ } void inputsc() { int i; for(i=0;i<p;i++) { printf("\n"); printf("--------------------------------------------------------------------------------\n\n"); printf("\t\t\t\t錄入學(xué)生的成績(jī)\n\n\n"); printf("--------------------------------------------------------------------------------\n\n"); printf("\t\t\t\t%s\n",xm[i]); printf("\n"); printf("\t\t\t\t數(shù)學(xué):"); scanf("%d",&shuxue[i]); printf("\n"); getchar(); printf("\t\t\t\t英語(yǔ):"); scanf("%d",&yingyu[i]); printf("\n"); getchar(); printf("\t\t\t\tc語(yǔ)言:"); scanf("%d",&c[i]); system("cls"); } } void alter() { int i;/*循環(huán)變量*/ int m[10000];/*要查詢(xún)的學(xué)號(hào)*/ int b;/*修改后的成績(jī)*/ char kemu[20]=""; printf("請(qǐng)輸入你要修改的學(xué)生的學(xué)號(hào)"); scanf("%d",&m); for (i=0;i<p;i++) { if (m==xuehao[i]) { printf("%s的數(shù)學(xué)成績(jī)?yōu)?d,英語(yǔ)成績(jī)?yōu)?d,c語(yǔ)言成績(jī)?yōu)?d,xm[i],shuxue[i],yingyu[i],c[i]"); printf("請(qǐng)輸入你想修改的科目");} } gets(kemu); getchar(); if (kemu=="數(shù)學(xué)"); { scanf("%d",&b); shuxue[i]=b;} if (kemu=="英語(yǔ)"); { scanf("%d",&b); yingyu[i]=b;} if (kemu=="c語(yǔ)言"); { scanf("%d",&b); c[i]=b; } printf("%s的數(shù)學(xué)成績(jī)?yōu)?d,英語(yǔ)成績(jī)?yōu)?d,c語(yǔ)言成績(jī)?yōu)?d,xm[i],shuxue[i],yingyu[i],c[i]"); } void scbybannji() { int i; char zyname[20]; int bjnumber; printf("請(qǐng)輸入你的專(zhuān)業(yè)名稱(chēng)"); scanf("%s",&zyname); printf("請(qǐng)輸入你的班級(jí)號(hào)"); scanf("%d",&bjnumber); for (i=0;i<p;i++) { if (zyname==y[i]); if (bjnumber==z[i]); printf("專(zhuān)業(yè)名稱(chēng)%s班級(jí)號(hào)%d數(shù)學(xué)成績(jī)%d英語(yǔ)成績(jī)%dc語(yǔ)言成績(jī)%d,y[i],z[i],shuxue[i],yingyu[i],c[i]"); } }
標(biāo)簽: c語(yǔ)言
上傳時(shí)間: 2018-06-08
上傳用戶(hù):2369043090
產(chǎn)品型號(hào):HT9B92 產(chǎn)品品牌:HOLTEK/合泰 封裝形式:TSSOP48/LQFP48 產(chǎn)品年份:新年份 原廠直銷(xiāo),工程服務(wù),技術(shù)支持,價(jià)格更具優(yōu)勢(shì)! RAM 映射 36×4 LCD 顯示驅(qū)動(dòng)器 概述 HT9B92 是一款存儲(chǔ)器映射和多功能LCD控制驅(qū)動(dòng)芯片。該芯片顯示模式有144 點(diǎn)(36×4 )。 HT9B92 軟件配置特性使得它適用于多種LCD應(yīng)用,包括LCD 模塊和顯示子系統(tǒng)。HT9B92 通過(guò)雙線雙向 I2C 接口與大多數(shù)微處理器/ 微控制器進(jìn)行通信。 功能特點(diǎn) ● 工作電壓:2.4V~5.5V ● 內(nèi)部集成振蕩電路 ● Bias: 1/2 or 1/3; Duty: 1/4 ● 帶電壓跟隨器的內(nèi)部LCD 偏置發(fā)生器 ● 提供VLCD 引腳來(lái)調(diào)整LCD 工作電壓 ● I2C接口 ● 可選 LCD 幀頻率 ● 多達(dá)36×4 位RAM 用來(lái)存儲(chǔ)顯示數(shù)據(jù) ● 最大顯示模式36×4:36 SEGs 和4 COMs ● 多種閃爍模式:不閃爍,0.5Hz,1Hz,2Hz ● 寫(xiě)地址自動(dòng)增加 ● 低功耗省電模式 ● 采用硅柵極CMOS 制造工藝 ● 封裝類(lèi)型:48-pin TSSOP/LQFP ● 市面可兼容型號(hào):元泰VINTEK:VKL44A TSSOP48封裝,VKL144B QFN48(6MM*6MM)封裝,VKL128 LQFP44封裝,VKL060 SSOP24封裝 ------ 同種腳位可以任意切換,少腳位更具性?xún)r(jià)比高,方便設(shè)計(jì)等特點(diǎn)。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品型號(hào):VKL144A 產(chǎn)品品牌:VINTEK/元泰 封裝形式:TSSOP48 產(chǎn)品年份:新年份 原廠直銷(xiāo),工程服務(wù),技術(shù)支持,價(jià)格更具優(yōu)勢(shì)! 超低功耗液晶LCD顯示驅(qū)動(dòng)芯片 概述 VKL144A是一款性能優(yōu)越的字段式液晶顯示驅(qū)動(dòng)芯片,由于其驅(qū)動(dòng)段位多達(dá)144段和超低功耗的工藝設(shè)計(jì)特點(diǎn)。還具有性能穩(wěn)定和低價(jià)格優(yōu)勢(shì)、供貨穩(wěn)定,目前被業(yè)界廣泛應(yīng)用在眾多的儀器儀表的產(chǎn)品上。比如手持式儀表、費(fèi)率表、工控儀表、醫(yī)療儀器、專(zhuān)用測(cè)量?jī)x表頭等等設(shè)備上使用 功能特點(diǎn) ● 液晶驅(qū)動(dòng)輸出: Common 輸出4線 Segment 輸出36線 ● 內(nèi)置Display data RAM (DDRAM) 內(nèi)置RAM容量:36*4 =144 bit ● 液晶驅(qū)動(dòng)的電源電路 1/2 ,1/3 Bias ,1/4 Duty 內(nèi)置Buffer AMP I2C串行接口(SCL, SDA) ● 內(nèi)置振蕩電路 ● 不需要外圍部件 ● 低功耗設(shè)計(jì) ● 搭載等待模式 ● 內(nèi)置Power-on Reset電路 ● 搭載閃爍功能 ● 工作電源電壓: 2.5-5.5V ★應(yīng)用推薦: 各種費(fèi)率表,電表、水表、氣表、熱表、各種計(jì)量專(zhuān)用表頭。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品型號(hào):VKL144B 產(chǎn)品品牌:VINTEK/元泰 封裝形式:QFN48L(6MM*6MM) 產(chǎn)品年份:新年份 原廠直銷(xiāo),工程服務(wù),技術(shù)支持,價(jià)格更具優(yōu)勢(shì)! 超低功耗液晶LCD顯示驅(qū)動(dòng)芯片 概述 VKL144B是一款性能優(yōu)越的字段式液晶顯示驅(qū)動(dòng)芯片,由于其驅(qū)動(dòng)段位多達(dá)144段和超低功耗的工藝設(shè)計(jì)特點(diǎn)。還具有性能穩(wěn)定和低價(jià)格優(yōu)勢(shì)、供貨穩(wěn)定,目前被業(yè)界廣泛應(yīng)用在眾多的儀器儀表的產(chǎn)品上。比如手持式儀表、費(fèi)率表、工控儀表、醫(yī)療儀器、專(zhuān)用測(cè)量?jī)x表頭等等設(shè)備上使用 功能特點(diǎn) ● 液晶驅(qū)動(dòng)輸出: Common 輸出4線 Segment 輸出36線 ● 內(nèi)置Display data RAM (DDRAM) 內(nèi)置RAM容量:36*4 =144 bit ● 液晶驅(qū)動(dòng)的電源電路 1/2 ,1/3 Bias ,1/4 Duty 內(nèi)置Buffer AMP I2C串行接口(SCL, SDA) ● 內(nèi)置振蕩電路 ● 不需要外圍部件 ● 低功耗設(shè)計(jì) ● 搭載等待模式 ● 內(nèi)置Power-on Reset電路 ● 搭載閃爍功能 ● 工作電源電壓: 2.5-5.5V ★應(yīng)用推薦: 各種費(fèi)率表,電表、水表、氣表、熱表、各種計(jì)量專(zhuān)用表頭。 HOLTEK合泰全系列產(chǎn)品 芯片介紹如下: 一.LCD液晶顯示驅(qū)動(dòng)控制器 HT1620 HT1620G HT1621 HT1621B HT1621G HT1622 HT1622G HT1623 HT1625 HT1626 HT16C21 HT16C22 HT16C23 HT16C24 HT1620 HT16220 HT1647 HT1650 HT1660 HT1670 HT16K23 HT9B92 HT9B92G HT9B95A HT9B95B HT9B95C HT16LK24 HT16L21 HT16L23 HT1611C HT1613C HT1616C (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 二:LED/VFD控制、驅(qū)動(dòng)器 HT16506 HT16511 HT16512 HT16515 HT16514 HT16561 HT16562 HT16565 HT16566 HT16523 HT16525 HT1632C HT16K33 HT16K33 HT16528-001 HT16528-002 HT16528-003 (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 三.Touch Key觸摸按鍵電路/ I/O Flash MCU BS801B/C BS802B/C BS804B/C BS804B/C BS806B/C BS808B/C BS812A-1 BS813A-1 BS814A-1 BS814A-2 BS816A-1 BS818A-2 BS8112A-3 BS8116A-3 BS83A02A-4 BS83A04A-3 BS83A04A-4 BS83B04A-4 BS83B08A-3 BS83B08A-4 BS83B12A-3 BS83B12A-4 (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 四.HT7XXX全系列 微功耗LDO HT1015-1 HT71xx-1 HT71xx-2 HT71xx-3 HT71xx-3 HT75xx-1 HT75xx-2 HT75xx-3 HT73xx HT72xx HT78xx Power management(電源LDO穩(wěn)壓管理IC) HT71**為30MA穩(wěn)壓芯片 產(chǎn)品:HT7130,HT7133,HT7136,HT7144,HT7150 HT75**為100MA穩(wěn)壓芯片 產(chǎn)品:HT7530,HT7533,HT7536,HT7544,HT7550 HT73**為300MA穩(wěn)壓芯片 產(chǎn)品:HT7318,HT7325,HT7327,HT7330,HT7333,HT7335,HT7350 HT70**為電壓檢測(cè)芯片 產(chǎn)品:HT7022,HT7024,HT7027,HT7033,HT7039,HT7044,HT7050 HT77::為升壓DC-DC芯片 產(chǎn)品:HT7727,HT7730,HT7733,HT7737,HT7750 LDO與探測(cè)器和數(shù)據(jù)收發(fā):HT71DXX 高電源抑制比300mA雙LDO穩(wěn)壓器:HT72Dxxxx 高電源抑制比300mA LDO穩(wěn)壓器:HT72BXX 高電源抑制比 150mA LDO穩(wěn)壓器:HT75BXX 高電源抑制比 500mA LDO穩(wěn)壓器:HT78BXX 3SOT89 T/R 電壓檢測(cè)器系列(小功率):HT70xxA-1 HT70xxA-2 HT70xxA-3 PFM升壓DC-DC變換器:HT77xx HT77xxA HT77S10 HT77S11 PFM同步升壓直流/直流轉(zhuǎn)換器:HT77xxS HT77xxSA LED照明驅(qū)動(dòng):HT7L4811 HT7L4091 HT7L4091 HT7L2102 HT7L2103 HT7L2103 白光LED背光驅(qū)動(dòng):HT7936 HT7937 HT7938 HT7938A HT7939 HT7943 HT7945 降壓直流-直流轉(zhuǎn)換器:HT7465 HT7466 AC/DC PWM變換器:HT7A3942 HT7A6002 HT7A6003 HT7A4016 充電泵直流/直流轉(zhuǎn)換器:HT7660 (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 五:時(shí)鐘IC及其他消費(fèi)類(lèi)IC HT1380 HT1380A HT1381 HT1381A HT1382 HT9200A HT9170 HT9172 HT9032 HT8970 HT9247 HT82V731 HT82V736 HT6221 HT6222 HT62104 HT12A\E HT12D\F (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 六.電可擦除只讀存儲(chǔ)器 HT2201 HT24LC02 HT24LC02A HT24LC04 HT24LC08 HT24LC16 HT24LC32 HT24LC64 HT24LC128 HT24LC256 HT93LC46 HT93LC66 HT93LC86 (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 七.各類(lèi)編碼/射頻/解碼器 HT12D HT12E HT12F HT6010 HT6012 HT6014 HT6026 HT6030 HT6032 HT6034 HT600 HT604L HT6207 HT680 HT6P20B HT6P20D HT6P40B2 HT6P40C2 HT6P40D2 HT6P40E2 HT6P40B2T3 HT6P40C2T3 HT6P40D2T3 HT6P40E2T3 HT6P423A HT6P423A HT6P427A HT6P433A HT6P437A HT12C2T3 HT12C2T4 HT12E2T3 HT12E2T4 HT12E2T4 HT16C2T3 HT16C2T4 HT16E2T3 HT16E2T4 HT16G2T3 HT16G2T4 HT9831 HT7610A HT7611A/B HT7612 HT7612B (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 八.MCU(微控IC) HT48 系列 應(yīng)用于遙控,電扇/電燈控制,洗衣機(jī)控制,電子秤,玩具及各種系統(tǒng)控制. 產(chǎn)品:HT48R05,HT48R06,HT48R30,HT48R50 HT49系列 應(yīng)用于多種LCD DI低功耗應(yīng)用,如電子秤,休閑產(chǎn)品,高階的家用電器 產(chǎn)品:HT49R30,HT49R50 HT46帶A/D系列 適用于充電器控制,電磁爐等 產(chǎn)品:HT46R47,HT46R22,HT46R23,HT46R24,HT46R51 HT46帶A/D及LCD系列 適用于洗衣機(jī)控制器,相機(jī)控制器和帶LCD顯示的家用電器系列 產(chǎn)品:HT46R62,HT46R63,HT46R64 HT48RA系列適用于紅外遙控器以及各種電子系統(tǒng)的控制器 (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 九.放大器/音頻放大器 /DA轉(zhuǎn)換器 HT9231 HT9232 HT9234 HT9251 HT9252 HT9254 HT9274 HT9291 HT9292 HT9294 HT82V732 HT82V733 HT82V735 HT82V736 HT82V736 HT82V739 HT82V73 HT82V731 HT82V737 HT82V738 (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) 十.音調(diào)IC/發(fā)生器 /接收器 HT9200A HT9200B HT9170B HT9170D HT9172 HT8970 HT8972 (全部封裝、規(guī)格形式 均有海量現(xiàn)貨!) IC型號(hào)眾多,未能一一收錄。 芯片主要應(yīng)用領(lǐng)域如下: ★顯示模塊:電子秤、無(wú)線麥克風(fēng)、錄音筆、影音多媒體、小家電周邊 ★家電類(lèi):電風(fēng)扇、電飯煲、玩具、冷氣機(jī)、暖風(fēng)機(jī)、空調(diào)扇、飲水機(jī)、抽油煙機(jī)、消毒柜、電熱水器、面包機(jī)、豆?jié){機(jī)、咖啡壺、電冰箱、洗衣機(jī)控制器、空調(diào)控制板等。 ★通訊類(lèi):來(lái)電顯示電話(huà)、無(wú)繩電話(huà)、IC電話(huà)、投幣電話(huà)、對(duì)講機(jī)等 ★玩具游戲類(lèi):無(wú)線遙控車(chē)、PS游戲機(jī)、跳舞毯、方向盤(pán)、手柄、電子槍、PS開(kāi)機(jī)IC等。 ★計(jì)算機(jī)周邊:顯示器控制、PC-MOUSE、單/雙滾、遙控MOUSE、鍵盤(pán)、手寫(xiě)板等。 ★智能卡類(lèi):IC卡煤氣表、電能表、水表、IC讀寫(xiě)器、IC卡門(mén)禁系統(tǒng)等。 ★汽車(chē)及防盜類(lèi):機(jī)車(chē)防盜器、********器、汽車(chē)天線控制器、里程表、汽車(chē)日歷等。 ★醫(yī)用保健類(lèi):電子針灸器、甩脂機(jī)、智能體溫計(jì)、LCD顯示血壓計(jì)、跑步機(jī)、按摩器、按摩墊、按摩椅 等。 ★儀表類(lèi):電壓表、瓦斯表、電池電壓檢測(cè)器、頻率計(jì)、計(jì)數(shù)器、電度表、水位檢測(cè)器等。 ★其它類(lèi):充電器、照相機(jī)、電子萬(wàn)年鐘、自動(dòng)給皂機(jī)、路燈控制器、呼叫服務(wù)器等
標(biāo)簽: TSSOP B92 HT9 LCD HT 9B 92 48 合泰 液晶驅(qū)動(dòng)
上傳時(shí)間: 2018-12-07
上傳用戶(hù):shubashushi66
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學(xué)生信息 void input_student2(void);//輸入總函數(shù) void input_student3(int &,int);//判斷學(xué)號(hào)是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語(yǔ)成績(jī)排序 void sort_student4(student s[],int);//按照計(jì)算機(jī)成績(jī)排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績(jī)排序 void sort_student5(student s[],int);//按照平均成績(jī)排序 float input_score2(int);//計(jì)算學(xué)生平均成績(jī) void print_student2(void);//顯示表頭 void print_student3(int);//顯示學(xué)生信息 void print_student1(int);//顯示全部學(xué)生資料 void sort_student1(void);//排序總函數(shù) void menu(void);//菜單調(diào)度總函數(shù) int search_student2(int);//按學(xué)號(hào)查詢(xún)學(xué)生信息并輸出 void search_student3(int);//按平均分最高查詢(xún)并輸出 void search_student1(void);//查詢(xún)總函數(shù) void delete_student2(int,int);//刪除學(xué)生信息 void delete_student1(void);//刪除總函數(shù) void change_student2(int);//修改學(xué)生資料 void change_student1(void);//修改總函數(shù) void input_score3(int);//統(tǒng)計(jì)成績(jī) void input_score1(void);//統(tǒng)計(jì)成績(jī)總函數(shù) void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統(tǒng) void save_student(student *,int);//保存學(xué)生信息 void main() { menu(); } void save_student(student *s,int a)//保存學(xué)生信息 { FILE *fp; if((fp=fopen("d:\\學(xué)生信息.txt","wb"))==NULL) { printf("不能打開(kāi)文件!\n"); } else { printf("保存信息到D盤(pán)\n"); fprintf(fp,"本班所有學(xué)生具體信息如下:\r\n"); fprintf(fp," 學(xué)號(hào) 姓名 數(shù)學(xué)成績(jī) 英語(yǔ)成績(jī) 計(jì)算機(jī)成績(jī) 平均成績(jī)\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系統(tǒng) { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統(tǒng)所能容納的最大學(xué)生數(shù)為%d人\n學(xué)生信息保存在D盤(pán)根目錄下,保存文件為“學(xué)生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統(tǒng)計(jì)成績(jī)總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號(hào):%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績(jī)錄入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//統(tǒng)計(jì)成績(jī) { printf("數(shù)學(xué)新成績(jī):"); scanf("%f",&stu[a].sco.math); printf("英語(yǔ)新成績(jī):"); scanf("%f",&stu[a].sco.english); printf("計(jì)算機(jī)新成績(jī):"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改學(xué)生資料 { printf("學(xué)號(hào):%d----修改為:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改為:",stu[a].name); gets(stu[a].name); printf("數(shù)學(xué)成績(jī):%.2f----修改為:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英語(yǔ)成績(jī):%.2f----修改為:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("計(jì)算機(jī)成績(jī):%.2f----修改為:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改總函數(shù) { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此學(xué)生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { change_student2(c); stu[c].average=input_score2(c); printf("信息修改成功!\n"); } } void delete_student1(void)//刪除總函數(shù) { int c; c=search_student2(iNumOfStu); getchar(); printf("是否刪除此條記錄?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { delete_student2(c,iNumOfStu); printf("記錄已刪除!\n"); } } void delete_student2(int a,int b)//刪除學(xué)生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查詢(xún)總函數(shù) { printf("1、按學(xué)號(hào)查詢(xún)\n2、按平均分最高查詢(xún)\n請(qǐng)選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜單調(diào)度總函數(shù) { print_menu(); choosemenu(); } void sort_student1(void)//排序總函數(shù) { printf("1、按數(shù)學(xué)成績(jī)排序\n2、按英語(yǔ)成績(jī)排序\n3、按計(jì)算機(jī)成績(jī)排序\n4、按平均成績(jī)排序\n請(qǐng)選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { sort_student2(stu,iNumOfStu); break; } case 2: { sort_student3(stu,iNumOfStu); break; } case 3: { sort_student4(stu,iNumOfStu); break; } case 4: { sort_student5(stu,iNumOfStu); break; } default: break; } } void print_student1(int a)//顯示全部學(xué)生資料 { printf("本班所有學(xué)生具體信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//顯示學(xué)生信息 { printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average); } void print_student2(void)//顯示表頭 { printf(" 學(xué)號(hào) 姓名 數(shù)學(xué)成績(jī) 英語(yǔ)成績(jī) 計(jì)算機(jī)成績(jī) 平均成績(jī)\n"); } void input_student4(int a,int b)//覆蓋原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判斷學(xué)號(hào)是否重復(fù) { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此學(xué)號(hào)代表的學(xué)生已錄入\n1、覆蓋原信息\n2、重新輸入\n請(qǐng)選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替換!\n"); break; } case 2: { printf("請(qǐng)重新輸入學(xué)生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//輸出菜單 { printf("======歡迎來(lái)到學(xué)生信息管理系統(tǒng)======\n"); printf(" 1、輸入學(xué)生資料\n"); printf(" 2、刪除學(xué)生資料\n"); printf(" 3、查詢(xún)學(xué)生資料\n"); printf(" 4、修改學(xué)生資料\n"); printf(" 5、顯示學(xué)生資料\n"); printf(" 6、統(tǒng)計(jì)學(xué)生成績(jī)\n"); printf(" 7、排序?qū)W生成績(jī)\n"); printf(" 8、保存學(xué)生資料\n"); printf(" 9、獲取幫助信息\n"); printf(" 10、退出系統(tǒng)\n"); printf("====================================\n"); printf("請(qǐng)選擇:"); } void input_student2(void)//輸入總函數(shù) { char end; printf("請(qǐng)輸入學(xué)生信息(在最后一個(gè)學(xué)生信息錄入完成后以“/”結(jié)束錄入):\n"); for(int i=0;(end=getchar())!='/';i++) { input_student1(i); ++iNumOfStu; input_student3(i,iNumOfStu); } for(int j=0;j<iNumOfStu;j++) { stu[j].average=input_score2(j); } } void input_student1(int a)//輸入學(xué)生信息 { printf("學(xué)號(hào):"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("數(shù)學(xué)成績(jī):"); scanf("%f",&stu[a].sco.math); printf("英語(yǔ)成績(jī):"); scanf("%f",&stu[a].sco.english); printf("計(jì)算機(jī)成績(jī):"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//計(jì)算學(xué)生平均成績(jī) { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查詢(xún)并輸出 { int max=0; for(int i=0;i<a;i++) { if(stu[max].average<stu[i].average) { max=i; } } print_student2(); print_student3(max); } void sort_student2(student s[],int a)//按照數(shù)學(xué)成績(jī)排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.math>stu[max].sco.math) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student3(student s[],int a)//按照英語(yǔ)成績(jī)排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.english>stu[max].sco.english) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student4(student s[],int a)//按照計(jì)算機(jī)成績(jī)排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.computer>stu[max].sco.computer) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student5(student s[],int a)//按照平均成績(jī)排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].average>stu[max].average) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } int search_student2(int a)//按照學(xué)號(hào)查找學(xué)生并輸出 { int num; int c; printf("請(qǐng)輸入要查詢(xún)的學(xué)號(hào):"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此學(xué)生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜單選擇 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 運(yùn)行結(jié)果: 源文件下載地址: http://115.com/file/clnq138g#一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng).rar (請(qǐng)將此地址復(fù)制到瀏覽器地址欄中訪問(wèn)下載頁(yè)面)
標(biāo)簽: 成績(jī)查詢(xún)系統(tǒng)
上傳時(shí)間: 2019-06-08
上傳用戶(hù):啊的撒旦
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學(xué)生信息 void input_student2(void);//輸入總函數(shù) void input_student3(int &,int);//判斷學(xué)號(hào)是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語(yǔ)成績(jī)排序 void sort_student4(student s[],int);//按照計(jì)算機(jī)成績(jī)排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績(jī)排序 void sort_student5(student s[],int);//按照平均成績(jī)排序 float input_score2(int);//計(jì)算學(xué)生平均成績(jī) void print_student2(void);//顯示表頭 void print_student3(int);//顯示學(xué)生信息 void print_student1(int);//顯示全部學(xué)生資料 void sort_student1(void);//排序總函數(shù) void menu(void);//菜單調(diào)度總函數(shù) int search_student2(int);//按學(xué)號(hào)查詢(xún)學(xué)生信息并輸出 void search_student3(int);//按平均分最高查詢(xún)并輸出 void search_student1(void);//查詢(xún)總函數(shù) void delete_student2(int,int);//刪除學(xué)生信息 void delete_student1(void);//刪除總函數(shù) void change_student2(int);//修改學(xué)生資料 void change_student1(void);//修改總函數(shù) void input_score3(int);//統(tǒng)計(jì)成績(jī) void input_score1(void);//統(tǒng)計(jì)成績(jī)總函數(shù) void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統(tǒng) void save_student(student *,int);//保存學(xué)生信息 void main() { menu(); } void save_student(student *s,int a)//保存學(xué)生信息 { FILE *fp; if((fp=fopen("d:\\學(xué)生信息.txt","wb"))==NULL) { printf("不能打開(kāi)文件!\n"); } else { printf("保存信息到D盤(pán)\n"); fprintf(fp,"本班所有學(xué)生具體信息如下:\r\n"); fprintf(fp," 學(xué)號(hào) 姓名 數(shù)學(xué)成績(jī) 英語(yǔ)成績(jī) 計(jì)算機(jī)成績(jī) 平均成績(jī)\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系統(tǒng) { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統(tǒng)所能容納的最大學(xué)生數(shù)為%d人\n學(xué)生信息保存在D盤(pán)根目錄下,保存文件為“學(xué)生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統(tǒng)計(jì)成績(jī)總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號(hào):%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績(jī)錄入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//統(tǒng)計(jì)成績(jī) { printf("數(shù)學(xué)新成績(jī):"); scanf("%f",&stu[a].sco.math); printf("英語(yǔ)新成績(jī):"); scanf("%f",&stu[a].sco.english); printf("計(jì)算機(jī)新成績(jī):"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改學(xué)生資料 { printf("學(xué)號(hào):%d----修改為:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改為:",stu[a].name); gets(stu[a].name); printf("數(shù)學(xué)成績(jī):%.2f----修改為:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英語(yǔ)成績(jī):%.2f----修改為:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("計(jì)算機(jī)成績(jī):%.2f----修改為:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改總函數(shù) { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此學(xué)生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { change_student2(c); stu[c].average=input_score2(c); printf("信息修改成功!\n"); } } void delete_student1(void)//刪除總函數(shù) { int c; c=search_student2(iNumOfStu); getchar(); printf("是否刪除此條記錄?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { delete_student2(c,iNumOfStu); printf("記錄已刪除!\n"); } } void delete_student2(int a,int b)//刪除學(xué)生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查詢(xún)總函數(shù) { printf("1、按學(xué)號(hào)查詢(xún)\n2、按平均分最高查詢(xún)\n請(qǐng)選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜單調(diào)度總函數(shù) { print_menu(); choosemenu(); } void sort_student1(void)//排序總函數(shù) { printf("1、按數(shù)學(xué)成績(jī)排序\n2、按英語(yǔ)成績(jī)排序\n3、按計(jì)算機(jī)成績(jī)排序\n4、按平均成績(jī)排序\n請(qǐng)選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { sort_student2(stu,iNumOfStu); break; } case 2: { sort_student3(stu,iNumOfStu); break; } case 3: { sort_student4(stu,iNumOfStu); break; } case 4: { sort_student5(stu,iNumOfStu); break; } default: break; } } void print_student1(int a)//顯示全部學(xué)生資料 { printf("本班所有學(xué)生具體信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//顯示學(xué)生信息 { printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average); } void print_student2(void)//顯示表頭 { printf(" 學(xué)號(hào) 姓名 數(shù)學(xué)成績(jī) 英語(yǔ)成績(jī) 計(jì)算機(jī)成績(jī) 平均成績(jī)\n"); } void input_student4(int a,int b)//覆蓋原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判斷學(xué)號(hào)是否重復(fù) { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此學(xué)號(hào)代表的學(xué)生已錄入\n1、覆蓋原信息\n2、重新輸入\n請(qǐng)選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替換!\n"); break; } case 2: { printf("請(qǐng)重新輸入學(xué)生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//輸出菜單 { printf("======歡迎來(lái)到學(xué)生信息管理系統(tǒng)======\n"); printf(" 1、輸入學(xué)生資料\n"); printf(" 2、刪除學(xué)生資料\n"); printf(" 3、查詢(xún)學(xué)生資料\n"); printf(" 4、修改學(xué)生資料\n"); printf(" 5、顯示學(xué)生資料\n"); printf(" 6、統(tǒng)計(jì)學(xué)生成績(jī)\n"); printf(" 7、排序?qū)W生成績(jī)\n"); printf(" 8、保存學(xué)生資料\n"); printf(" 9、獲取幫助信息\n"); printf(" 10、退出系統(tǒng)\n"); printf("====================================\n"); printf("請(qǐng)選擇:"); } void input_student2(void)//輸入總函數(shù) { char end; printf("請(qǐng)輸入學(xué)生信息(在最后一個(gè)學(xué)生信息錄入完成后以“/”結(jié)束錄入):\n"); for(int i=0;(end=getchar())!='/';i++) { input_student1(i); ++iNumOfStu; input_student3(i,iNumOfStu); } for(int j=0;j<iNumOfStu;j++) { stu[j].average=input_score2(j); } } void input_student1(int a)//輸入學(xué)生信息 { printf("學(xué)號(hào):"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("數(shù)學(xué)成績(jī):"); scanf("%f",&stu[a].sco.math); printf("英語(yǔ)成績(jī):"); scanf("%f",&stu[a].sco.english); printf("計(jì)算機(jī)成績(jī):"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//計(jì)算學(xué)生平均成績(jī) { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查詢(xún)并輸出 { int max=0; for(int i=0;i<a;i++) { if(stu[max].average<stu[i].average) { max=i; } } print_student2(); print_student3(max); } void sort_student2(student s[],int a)//按照數(shù)學(xué)成績(jī)排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.math>stu[max].sco.math) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student3(student s[],int a)//按照英語(yǔ)成績(jī)排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.english>stu[max].sco.english) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student4(student s[],int a)//按照計(jì)算機(jī)成績(jī)排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.computer>stu[max].sco.computer) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student5(student s[],int a)//按照平均成績(jī)排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].average>stu[max].average) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } int search_student2(int a)//按照學(xué)號(hào)查找學(xué)生并輸出 { int num; int c; printf("請(qǐng)輸入要查詢(xún)的學(xué)號(hào):"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此學(xué)生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜單選擇 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回車(chē)鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 運(yùn)行結(jié)果: 源文件下載地址: http://115.com/file/clnq138g#一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng).rar (請(qǐng)將此地址復(fù)制到瀏覽器地址欄中訪問(wèn)下載頁(yè)面) #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學(xué)生信息 void input_student2(void);//輸入總函數(shù) void input_student3(int &,int);//判斷學(xué)號(hào)是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語(yǔ)成績(jī)排序 void sort_student4(student s[],int);//按照計(jì)算機(jī)成績(jī)排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績(jī)排序 void sort_student5(student s[],int);//按照平均成績(jī)排序 float input_score2(int);//計(jì)算學(xué)生平均成績(jī) void print_student2(void);//顯示表頭 void print_student3(int);//顯示學(xué)生信息 void print_student1(int);//顯示全部學(xué)生資料 void sort_student1(void);//排序總函數(shù) void menu(void);//菜單調(diào)度總函數(shù) int search_student2(int);//按學(xué)號(hào)查詢(xún)學(xué)生信息并輸出 void search_student3(int);//按平均分最高查詢(xún)并輸出 void search_student1(void);//查詢(xún)總函數(shù) void delete_student2(int,int);//刪除學(xué)生信息 void delete_student1(void);//刪除總函數(shù) void change_student2(int);//修改學(xué)生資料 void change_student1(void);//修改總函數(shù) void input_score3(int);//統(tǒng)計(jì)成績(jī) void input_score1(void);//統(tǒng)計(jì)成績(jī)總函數(shù) void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統(tǒng) void save_student(student *,int);//保存學(xué)生信息 void main() { menu(); } void save_student(student *s,int a)//保存學(xué)生信息 { FILE *fp; if((fp=fopen("d:\\學(xué)生信息.txt","wb"))==NULL) { printf("不能打開(kāi)文件!\n"); } else { printf("保存信息到D盤(pán)\n"); fprintf(fp,"本班所有學(xué)生具體信息如下:\r\n"); fprintf(fp," 學(xué)號(hào) 姓名 數(shù)學(xué)成績(jī) 英語(yǔ)成績(jī) 計(jì)算機(jī)成績(jī) 平均成績(jī)\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系統(tǒng) { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統(tǒng)所能容納的最大學(xué)生數(shù)為%d人\n學(xué)生信息保存在D盤(pán)根目錄下,保存文件為“學(xué)生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統(tǒng)計(jì)成績(jī)總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號(hào):%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績(jī)錄入成功!
標(biāo)簽: c語(yǔ)言
上傳時(shí)間: 2019-06-09
上傳用戶(hù):啊的撒旦
ap6255驅(qū)動(dòng)ap6255是一款支持藍(lán)牙BT4.2+WiFi支持11ac雙頻的藍(lán)牙11ac雙頻WiFi二合一模塊,采用博通BCM43455方案,支持Win10/Android操作系統(tǒng);ap6255無(wú)線模塊符合IEEE802.11 a/b/g/n/ac標(biāo)準(zhǔn),能在802.11ac單流下實(shí)現(xiàn)433.3Mbps的速率連接到無(wú)線局域網(wǎng)。綜合mODULE提供了用于藍(lán)牙的wifi、UART/PCM接口的SDIO接口。該緊湊模塊是WiFi+BT技術(shù)的組合的總解決方案。本模塊專(zhuān)為智能手機(jī)和便攜式設(shè)備開(kāi)發(fā)。AP6255特性:IEEE802.11a/b/g/n/ac雙頻虛擬同步雙頻無(wú)線電單流空間復(fù)用高達(dá)433.3 mbps的數(shù)據(jù)速率支持20,40,80兆赫頻道的可選SGI(256 QAM調(diào)制)帶集成Class1PA和低能量(BLE)支持的藍(lán)牙v4.0+EDR并發(fā)藍(lán)牙和WLAN操作單天線同時(shí)接收BT/WLAN支持標(biāo)準(zhǔn)SDIOV3.0,并與SDIOv2.0主機(jī)接口向后兼容:SDIOV3.0(4位)-在SDR104模式下最高可達(dá)208MHz時(shí)鐘速率BT主機(jī)數(shù)字接口:-UART(高達(dá)4 Mbps)成的模具解決方案ECI-增強(qiáng)的共存支持、協(xié)調(diào)WLAN接收的BTSCO傳輸?shù)哪芰?/p>
標(biāo)簽: ap6255 驅(qū)動(dòng) 藍(lán)牙
上傳時(shí)間: 2022-05-20
上傳用戶(hù):
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1