VK1623是一個48x8的LCD駆動器.可軟體程式控制使其適用於多樣化的LCD應用線路.僅用到3至4條訊號線便可控制LCD駆動器,除此之外亦可介由指令使其進入省電模式
標簽: 1623 LCD VK HT 液晶顯示 驅動IC 規格書
上傳時間: 2018-07-27
上傳用戶:szqxw1688
產品型號:VK1072B VK1072C 產品品牌:VINTEK/元泰 封裝形式:SOP28 產品年份:新年份 聯 系 人:許先生 聯系手機:18898582398 原廠直銷,工程服務,技術支持,價格具有優勢! VK1072B 替代 TM1621C AIP31621E 完美兼容 價格更低 VK1072B SOP28 VK1072B 完全替代 HT1621 更小點陣 價格更優惠 VK1072B概述: VK1072B 是一個18*4的LCD驅動器,可軟體程式控制使其適用於多樣化的LCD應用線路,僅用到3條訊號線便可控制LCD驅動器,除此之外也可介由指令使其進入省電模式.VK1072封裝SOP28 特色: ★工作電壓:2.4-5.2V ★內建256KHz RC oscillator ★可選擇1/2,1/3 偏壓,也可選擇1/2,1/3或1/4的COM周期 ★省電模式, 節電命令可用于減少功耗 ★內 嵌 時 基 發 生 器 和 看 門 狗 定 時 器(WDT) ★內建time base generator ★18X4 LCD 驅動器VLCD 腳位可用來調整LCD輸 ★三種數據訪問模式 ★內建32X4 bit 顯示記憶體 ★三線串行接口 ★軟體程式控制 ★資料及指令模式 ★自動增加讀寫位址 ★提供VLCD 腳位可用來調整LCD輸出電壓 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索取!
標簽: 額溫槍 顯示屏 驅動IC VK1072C VK1072B TM1621 HT1621B
上傳時間: 2020-03-16
上傳用戶:szqxw1688
產品型號:VK1056B VK1056C 產品品牌:VINTEK/元泰 封裝形式:SOP24 SSOP24 產品年份:新年份 原廠直銷,工程服務,技術支持,價格具有優勢! VK1056B概述: VK1056B 是 56 點、 內存映象和多功能的 LCD 驅動, VK1056B 的軟件配置特性使它適用于多種 LCD 應用場合,包括 LCD 模塊和顯示系統,用于連接主控制器和 VK1056B 的管腳只有 4 條, VK1056B 還有一個節電命令用于降低系統功耗。VK1056B封裝:SOP24/SSOP24 特點: ★ 工作電壓:3.0-5.0V ★ 內嵌 256KHz RC oscillator ★ 可外接 32KHz 晶片或 256KHz 頻率源程 ★ 可選擇 1/2,1/3 偏壓,也可選擇 1/2,1/3 1/4 的占空比 ★ 兩種蜂鳴器頻率 ★ 節電命令可用于減少功耗 ★ 內 嵌 時 基 發 生 器 和 看 門 狗 定 時 器(WDT) ★ 8 個時基/看門狗定時器時鐘源 ★ 一個 14X4 的 LCD 驅動器 ★ 一個內嵌的 32X4 位顯示 RAM 內存 ★ 四線串行接口 ★ 內片 LCD 驅動頻率源 ★ 數據模式和命令模式指令 ★ 三種數據訪問模式 ★ 提供 VLCD 腳位可用來調整 LCD 電壓 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索??! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產品型號:VK1072B VK1072C 產品品牌:VINTEK/元泰 封裝形式:SOP28 產品年份:新年份 原廠直銷,工程服務,技術支持,價格具有優勢! VK1072B 替代 TM1621C AIP31621E 完美兼容 價格更低 VK1072B SOP28 VK1072B 完全替代 HT1621 更小點陣 價格更優惠 VK1072B概述: VK1072B 是一個18*4的LCD驅動器,可軟體程式控制使其適用於多樣化的LCD應用線路,僅用到3條訊號線便可控制LCD驅動器,除此之外也可介由指令使其進入省電模式.VK1072封裝SOP28 特色: ★工作電壓:2.4-5.2V ★內建256KHz RC oscillator ★可選擇1/2,1/3 偏壓,也可選擇1/2,1/3或1/4的COM周期 ★省電模式, 節電命令可用于減少功耗 ★內 嵌 時 基 發 生 器 和 看 門 狗 定 時 器(WDT) ★內建time base generator ★18X4 LCD 驅動器VLCD 腳位可用來調整LCD輸 ★三種數據訪問模式 ★內建32X4 bit 顯示記憶體 ★三線串行接口 ★軟體程式控制 ★資料及指令模式 ★自動增加讀寫位址 ★提供VLCD 腳位可用來調整LCD輸出電壓 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索??! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產品型號:VK1088B 產品品牌:VINTEK 封裝形式:QFN32 產品年份:新年份 原廠直銷,工程服務,技術支持,價格具有優勢! VK1088B概述: VK1088B 是一個22*4的LCD驅動器,可軟體程式控制使其適用於多樣化的LCD應用線路,僅用到3條訊號線便可控制LCD驅動器,除此之外也可介由指令使其進入省電模式. 特色: ★ 工作電壓:2.4-5.2V ★ 內建256KHz RC oscillator ★ 可選擇1/2,1/3 偏壓,也可選擇1/2,1/3或1/4的COM周期 ★ 省電模式 ★ 內建time base generator ★ 22X4 LCD 驅動器VLCD 腳位可用來調整LCD輸 ★ 三種數據訪問模式 ★ 內建22X4 bit 顯示記憶體 ★ 三線串行接口 ★ 軟體程式控制 ★ 資料及指令模式 ★ 自動增加讀寫位址 ★ VLCD 腳位可用來調整LCD輸入 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索??! 產品型號:VK1621B 產品品牌:VINTEK/元泰 封裝形式:LQFP48 LQFP44 SSOP48 DIP28 DICE/裸片 COB邦定片 定制COG 產品年份:新年份 工程服務,技術支持,價格具有優勢! VK1621B 是128模式(32x4),內存映射和多功能液晶驅動程序。S / W的VK1621配置特性使得它適合于多種LCD應用包括液晶顯示模塊和顯示子系統。只用三或四線的主機控制器連接VK1621之間的接口要求。VK1621包含一個電源關閉命令來降低功耗。 VK1621產品特征: ★ 工作電壓:2.4V ~ 5.2V ★ 內置RC振蕩器 ★ 外部的32.768kHz晶體或喚頻率源的輸入 ★ 1 / 2或1 / 3 偏壓選擇,和1 / 2或1 / 3或1 / 4液晶顯示應用程序的選擇 ★內部時間基準頻率源 ★兩個可選蜂鳴器的頻率(2/3) ★關機命令降低功耗 ★內置的時基發生器和看門狗 ★ 時基或WDT溢出輸出 ★ 8種時基/定時器的時鐘源 ★ 32x4 LCD驅動器 ★內置32x4位顯示RAM ★ 三線串行接口 ★ 內部LCD驅動頻率源 ★軟件配置特征 ★ 數據模式和命令模式指令的R / W地址自動遞增 ★三種數據訪問模式 ★提供 VLCD引腳來調整 LCD 工作電壓 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索取
標簽: VK1621B 1056B 1072 1088 體溫槍 額溫槍 測溫槍 耳溫槍 顯示驅動
上傳時間: 2020-03-17
上傳用戶:2937735731
linux 中斷和設備驅動 本章介紹L i n u x內核是如何維護它支持的文件系統中的文件的,我們先介紹 V F S ( Vi r t u a lFile System,虛擬文件系統),再解釋一下L i n u x內核的真實文件系統是如何得到支持的。L i n u x的一個最重要特點就是它支持許多不同的文件系統。這使 L i n u x非常靈活,能夠與許多其他的操作系統共存。在寫這本書的時候, L i n u x共支持1 5種文件系統: e x t、 e x t 2、x i a、 m i n i x、 u m s d o s、 msdos 、v f a t、 p r o c、 s m b、 n c p、 i s o 9 6 6 0、 s y s v、 h p f s、 a ffs 和u f s。無疑隨著時間的推移,L i n u x支持的文件系統數還會增加。
上傳時間: 2013-11-13
上傳用戶:zxh122
當許多編程人員從事這項工作但又不使用源代碼管理工具時,源代碼管理幾乎不可能進行。Visual SourceSafe是Visual Basic的企業版配備的一個工具,不過這個工具目的是為了保留一個內部應用版本,不向公眾發布(應當說明的是,M i c r o s o f t并沒有開發Visual SourceSafe,它是M i c r o s o f t公司買來的) 。雖然Visual SourceSafe有幫助文本可供參考,但該程序的一般運行情況和在生產環境中安裝 Visual SourceSafe的進程都沒有詳細的文字說明。另外,Visual SourceSafe像大多數M i c r o s o f t應用程序那樣經過了很好的修飾,它包含的許多功能特征和物理特征都不符合 Microsoft Wi n d o w s應用程序的標準。例如,Visual SourceSafe的三個組件之一(Visual SourceSafe Administrator)甚至連F i l e菜單都沒有。另外,許多程序的菜單項不是放在最合適的菜單上。在程序開發環境中實現Visual SourceSafe時存在的復雜性,加上它的非標準化外觀和文檔資料的不充分,使得許多人無法實現和使用 Visual SourceSafe。許多人甚至沒有試用 Vi s u a l S o u r c e S a f e的勇氣。我知道許多高水平技術人員無法啟動Visual SourceSafe并使之運行,其中有一位是管理控制系統項目師。盡管如此,Visual SourceSafe仍然不失為一個很好的工具,如果你花點時間將它安裝在你的小組工作環境中,你一定會為此而感到非常高興。在本章中我并不是為你提供一些指導原則來幫助你創建更好的代碼,我的目的是告訴你如何使用工具來大幅度減少管理大型項目和開發小組所需的資源量,這個工具能夠很容易處理在沒有某種集成式解決方案情況下幾乎無法處理的各種問題。
上傳時間: 2013-10-24
上傳用戶:lgd57115700
迄今為止,本書已介紹了可在Microsoft Wi n d o w s操作系統中使用的全部網絡A P I函數。 利用這些函數,我們的應用程序可通過網絡,建立與其他程序的通信聯系。在那些討論中, 我們在很大程度上將重點放在七層O S I模型的應用層和表示層上面
標簽:
上傳時間: 2015-07-08
上傳用戶:royzhangsz
struts的詳細說明,是struts的經典經驗集合,對于做web開發的技術人員來說恨合適d o dio 哦!感覺寫的恨不錯就發上來了!
標簽: struts
上傳時間: 2016-01-01
上傳用戶:懶龍1988
#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);//輸入學生信息 void input_student2(void);//輸入總函數 void input_student3(int &,int);//判斷學號是否重復 void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數學成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學生信息 void print_student1(int);//顯示全部學生資料 void sort_student1(void);//排序總函數 void menu(void);//菜單調度總函數 int search_student2(int);//按學號查詢學生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數 void delete_student2(int,int);//刪除學生信息 void delete_student1(void);//刪除總函數 void change_student2(int);//修改學生資料 void change_student1(void);//修改總函數 void input_score3(int);//統計成績 void input_score1(void);//統計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統 void save_student(student *,int);//保存學生信息 void main() { menu(); } void save_student(student *s,int a)//保存學生信息 { FILE *fp; if((fp=fopen("d:\\學生信息.txt","wb"))==NULL) { printf("不能打開文件!\n"); } else { printf("保存信息到D盤\n"); fprintf(fp,"本班所有學生具體信息如下:\r\n"); fprintf(fp," 學號 姓名 數學成績 英語成績 計算機成績 平均成績\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)//退出系統 { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統計成績總函數 { int c; c=search_student2(iNumOfStu); printf("學號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//統計成績 { printf("數學新成績:"); scanf("%f",&stu[a].sco.math); printf("英語新成績:"); scanf("%f",&stu[a].sco.english); printf("計算機新成績:"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改學生資料 { printf("學號:%d----修改為:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改為:",stu[a].name); gets(stu[a].name); printf("數學成績:%.2f----修改為:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英語成績:%.2f----修改為:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("計算機成績:%.2f----修改為:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改總函數 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此學生信息?(“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)//刪除總函數 { 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)//刪除學生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查詢總函數 { printf("1、按學號查詢\n2、按平均分最高查詢\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜單調度總函數 { print_menu(); choosemenu(); } void sort_student1(void)//排序總函數 { printf("1、按數學成績排序\n2、按英語成績排序\n3、按計算機成績排序\n4、按平均成績排序\n請選擇:"); 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)//顯示全部學生資料 { printf("本班所有學生具體信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//顯示學生信息 { 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(" 學號 姓名 數學成績 英語成績 計算機成績 平均成績\n"); } void input_student4(int a,int b)//覆蓋原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判斷學號是否重復 { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此學號代表的學生已錄入\n1、覆蓋原信息\n2、重新輸入\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替換!\n"); break; } case 2: { printf("請重新輸入學生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//輸出菜單 { 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(" 10、退出系統\n"); printf("====================================\n"); printf("請選擇:"); } void input_student2(void)//輸入總函數 { char end; printf("請輸入學生信息(在最后一個學生信息錄入完成后以“/”結束錄入):\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)//輸入學生信息 { printf("學號:"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("數學成績:"); scanf("%f",&stu[a].sco.math); printf("英語成績:"); scanf("%f",&stu[a].sco.english); printf("計算機成績:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//計算學生平均成績 { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查詢并輸出 { 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)//按照數學成績排序 { 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)//按照英語成績排序 { 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)//按照計算機成績排序 { 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)//按照平均成績排序 { 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)//按照學號查找學生并輸出 { int num; int c; printf("請輸入要查詢的學號:"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此學生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜單選擇 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 運行結果: 源文件下載地址: http://115.com/file/clnq138g#一個簡單的學生成績管理系統.rar (請將此地址復制到瀏覽器地址欄中訪問下載頁面)
標簽: 成績查詢系統
上傳時間: 2019-06-08
上傳用戶:啊的撒旦
#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);//輸入學生信息 void input_student2(void);//輸入總函數 void input_student3(int &,int);//判斷學號是否重復 void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數學成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學生信息 void print_student1(int);//顯示全部學生資料 void sort_student1(void);//排序總函數 void menu(void);//菜單調度總函數 int search_student2(int);//按學號查詢學生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數 void delete_student2(int,int);//刪除學生信息 void delete_student1(void);//刪除總函數 void change_student2(int);//修改學生資料 void change_student1(void);//修改總函數 void input_score3(int);//統計成績 void input_score1(void);//統計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統 void save_student(student *,int);//保存學生信息 void main() { menu(); } void save_student(student *s,int a)//保存學生信息 { FILE *fp; if((fp=fopen("d:\\學生信息.txt","wb"))==NULL) { printf("不能打開文件!\n"); } else { printf("保存信息到D盤\n"); fprintf(fp,"本班所有學生具體信息如下:\r\n"); fprintf(fp," 學號 姓名 數學成績 英語成績 計算機成績 平均成績\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)//退出系統 { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統計成績總函數 { int c; c=search_student2(iNumOfStu); printf("學號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//統計成績 { printf("數學新成績:"); scanf("%f",&stu[a].sco.math); printf("英語新成績:"); scanf("%f",&stu[a].sco.english); printf("計算機新成績:"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改學生資料 { printf("學號:%d----修改為:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改為:",stu[a].name); gets(stu[a].name); printf("數學成績:%.2f----修改為:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英語成績:%.2f----修改為:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("計算機成績:%.2f----修改為:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改總函數 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此學生信息?(“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)//刪除總函數 { 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)//刪除學生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查詢總函數 { printf("1、按學號查詢\n2、按平均分最高查詢\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜單調度總函數 { print_menu(); choosemenu(); } void sort_student1(void)//排序總函數 { printf("1、按數學成績排序\n2、按英語成績排序\n3、按計算機成績排序\n4、按平均成績排序\n請選擇:"); 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)//顯示全部學生資料 { printf("本班所有學生具體信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//顯示學生信息 { 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(" 學號 姓名 數學成績 英語成績 計算機成績 平均成績\n"); } void input_student4(int a,int b)//覆蓋原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判斷學號是否重復 { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此學號代表的學生已錄入\n1、覆蓋原信息\n2、重新輸入\n請選擇:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替換!\n"); break; } case 2: { printf("請重新輸入學生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//輸出菜單 { 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(" 10、退出系統\n"); printf("====================================\n"); printf("請選擇:"); } void input_student2(void)//輸入總函數 { char end; printf("請輸入學生信息(在最后一個學生信息錄入完成后以“/”結束錄入):\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)//輸入學生信息 { printf("學號:"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("數學成績:"); scanf("%f",&stu[a].sco.math); printf("英語成績:"); scanf("%f",&stu[a].sco.english); printf("計算機成績:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//計算學生平均成績 { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查詢并輸出 { 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)//按照數學成績排序 { 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)//按照英語成績排序 { 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)//按照計算機成績排序 { 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)//按照平均成績排序 { 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)//按照學號查找學生并輸出 { int num; int c; printf("請輸入要查詢的學號:"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此學生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜單選擇 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 運行結果: 源文件下載地址: http://115.com/file/clnq138g#一個簡單的學生成績管理系統.rar (請將此地址復制到瀏覽器地址欄中訪問下載頁面) #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);//輸入學生信息 void input_student2(void);//輸入總函數 void input_student3(int &,int);//判斷學號是否重復 void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數學成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學生信息 void print_student1(int);//顯示全部學生資料 void sort_student1(void);//排序總函數 void menu(void);//菜單調度總函數 int search_student2(int);//按學號查詢學生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數 void delete_student2(int,int);//刪除學生信息 void delete_student1(void);//刪除總函數 void change_student2(int);//修改學生資料 void change_student1(void);//修改總函數 void input_score3(int);//統計成績 void input_score1(void);//統計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統 void save_student(student *,int);//保存學生信息 void main() { menu(); } void save_student(student *s,int a)//保存學生信息 { FILE *fp; if((fp=fopen("d:\\學生信息.txt","wb"))==NULL) { printf("不能打開文件!\n"); } else { printf("保存信息到D盤\n"); fprintf(fp,"本班所有學生具體信息如下:\r\n"); fprintf(fp," 學號 姓名 數學成績 英語成績 計算機成績 平均成績\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)//退出系統 { exit(1); } void print_help(void)//輸出幫助信息 { printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N); } void input_score1(void)//統計成績總函數 { int c; c=search_student2(iNumOfStu); printf("學號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!
標簽: c語言
上傳時間: 2019-06-09
上傳用戶:啊的撒旦
產品型號:VK1056B VK1056C 產品品牌:VINTEK/元泰 封裝形式:SOP24 SSOP24 產品年份:新年份 聯 系 人:許先生 聯系手機:18898582398 原廠直銷,工程服務,技術支持,價格具有優勢! VK1056B概述: VK1056B 是 56 點、 內存映象和多功能的 LCD 驅動, VK1056B 的軟件配置特性使它適用于多種 LCD 應用場合,包括 LCD 模塊和顯示系統,用于連接主控制器和 VK1056B 的管腳只有 4 條, VK1056B 還有一個節電命令用于降低系統功耗。VK1056B封裝:SOP24/SSOP24 特點: ★ 工作電壓:3.0-5.0V ★ 內嵌 256KHz RC oscillator ★ 可外接 32KHz 晶片或 256KHz 頻率源程 ★ 可選擇 1/2,1/3 偏壓,也可選擇 1/2,1/3 1/4 的占空比 ★ 兩種蜂鳴器頻率 ★ 節電命令可用于減少功耗 ★ 內 嵌 時 基 發 生 器 和 看 門 狗 定 時 器(WDT) ★ 8 個時基/看門狗定時器時鐘源 ★ 一個 14X4 的 LCD 驅動器 ★ 一個內嵌的 32X4 位顯示 RAM 內存 ★ 四線串行接口 ★ 內片 LCD 驅動頻率源 ★ 數據模式和命令模式指令 ★ 三種數據訪問模式 ★ 提供 VLCD 腳位可用來調整 LCD 電壓 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索??! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產品型號:VK1072B VK1072C 產品品牌:VINTEK/元泰 封裝形式:SOP28 產品年份:新年份 聯 系 人:許先生 聯系手機:18898582398 原廠直銷,工程服務,技術支持,價格具有優勢! VK1072B 替代 TM1621C AIP31621E 完美兼容 價格更低 VK1072B SOP28 VK1072B 完全替代 HT1621 更小點陣 價格更優惠 VK1072B概述: VK1072B 是一個18*4的LCD驅動器,可軟體程式控制使其適用於多樣化的LCD應用線路,僅用到3條訊號線便可控制LCD驅動器,除此之外也可介由指令使其進入省電模式.VK1072封裝SOP28 特色: ★工作電壓:2.4-5.2V ★內建256KHz RC oscillator ★可選擇1/2,1/3 偏壓,也可選擇1/2,1/3或1/4的COM周期 ★省電模式, 節電命令可用于減少功耗 ★內 嵌 時 基 發 生 器 和 看 門 狗 定 時 器(WDT) ★內建time base generator ★18X4 LCD 驅動器VLCD 腳位可用來調整LCD輸 ★三種數據訪問模式 ★內建32X4 bit 顯示記憶體 ★三線串行接口 ★軟體程式控制 ★資料及指令模式 ★自動增加讀寫位址 ★提供VLCD 腳位可用來調整LCD輸出電壓 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索?。? ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產品型號:VK1088B 產品品牌:VINTEK 封裝形式:QFN32 產品年份:新年份 聯 系 人:許先生 聯系手機:18898582398 原廠直銷,工程服務,技術支持,價格具有優勢! VK1088B概述: VK1088B 是一個22*4的LCD驅動器,可軟體程式控制使其適用於多樣化的LCD應用線路,僅用到3條訊號線便可控制LCD驅動器,除此之外也可介由指令使其進入省電模式. 特色: ★ 工作電壓:2.4-5.2V ★ 內建256KHz RC oscillator ★ 可選擇1/2,1/3 偏壓,也可選擇1/2,1/3或1/4的COM周期 ★ 省電模式 ★ 內建time base generator ★ 22X4 LCD 驅動器VLCD 腳位可用來調整LCD輸 ★ 三種數據訪問模式 ★ 內建22X4 bit 顯示記憶體 ★ 三線串行接口 ★ 軟體程式控制 ★ 資料及指令模式 ★ 自動增加讀寫位址 ★ VLCD 腳位可用來調整LCD輸入 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索取! 產品型號:VK1621B 產品品牌:VINTEK/元泰 封裝形式:LQFP48 LQFP44 SSOP48 DIP28 DICE/裸片 COB邦定片 定制COG 產品年份:新年份 聯 系 人:許先生 聯系手機:18898582398 工程服務,技術支持,價格具有優勢! VK1621B 是128模式(32x4),內存映射和多功能液晶驅動程序。S / W的VK1621配置特性使得它適合于多種LCD應用包括液晶顯示模塊和顯示子系統。只用三或四線的主機控制器連接VK1621之間的接口要求。VK1621包含一個電源關閉命令來降低功耗。 VK1621產品特征: ★ 工作電壓:2.4V ~ 5.2V ★ 內置RC振蕩器 ★ 外部的32.768kHz晶體或喚頻率源的輸入 ★ 1 / 2或1 / 3 偏壓選擇,和1 / 2或1 / 3或1 / 4液晶顯示應用程序的選擇 ★內部時間基準頻率源 ★兩個可選蜂鳴器的頻率(2/3) ★關機命令降低功耗 ★內置的時基發生器和看門狗 ★ 時基或WDT溢出輸出 ★ 8種時基/定時器的時鐘源 ★ 32x4 LCD驅動器 ★內置32x4位顯示RAM ★ 三線串行接口 ★ 內部LCD驅動頻率源 ★軟件配置特征 ★ 數據模式和命令模式指令的R / W地址自動遞增 ★三種數據訪問模式 ★提供 VLCD引腳來調整 LCD 工作電壓 ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索取聯系電話:18898582398
標簽: 1621 1056 1072 1088 VK 額溫槍 測溫 顯示驅動 耳溫槍
上傳時間: 2020-03-16
上傳用戶:szqxw1688