VK2C21 是一款存儲器映射和多功能 LCD 控制 / 驅動芯片。該芯片顯示模式有 80 點 (20×4) 或 128 點 (16×8)。VK2C21 的軟件配置特性使得它 適用于多種 LCD 應用,包括 LCD 模塊和顯示子 系統。VK2C2X系列為I2C介面、RAM mapping的LCD控制暨驅動IC,此系列以先進設計技術降低IC耗電、提升抗雜訊及ESD防護能力。全系列包含VK2C22、VK2C23、VK2C24等。VK2C22已成功獲得單相電表客戶的認可及采用,VK2C23及VK2C24適合于點數需求較大的三相電表的應用。
上傳時間: 2018-07-13
上傳用戶:szqxw1688
VK2C23 是一款存儲器映射和多功能 的 LCD 控制 / 驅動芯片。該芯片的顯示字段為 224 點 (56 SEG × 4 COM) 或 416 點 (52 SEG × 8 COM)。VK2C23 芯片的軟件配置特 性使其適用于多種 LCD 應用,包括 LCD 模塊和 顯示子系統。VK2C23 芯片可通過雙 線雙向 I2C 接口與大多數微處理器或微控制器進 行通信。 VK2C2X系列為I2C介面、RAM mapping的LCD控制暨驅動IC,此系列以先進設計技術降低IC耗電、提升抗雜訊及ESD防護能力。全系列包含VK2C22、VK2C23、VK2C24等。VK2C22已成功獲得單相電表客戶的認可及采用,VK2C23及VK2C24適合于點數需求較大的三相電表的應用。
標簽: C23 23 16C LCD VK2 VK 2C 16 HT 存儲器
上傳時間: 2018-07-14
上傳用戶:szqxw1688
步驟一 按快捷鍵Ctrl+N新建A4大小空白橫向文檔,并填充顏色為淺綠色。 步驟二 選擇工具箱中的“貝塞爾工具”繪制荷葉,使用“形狀工具”進行節點調整。填充輪廓色和填充色。 步驟三 在工具箱中選擇“網狀填充工具”設置網格中的行列數為3*3,鼠標框選中間4個節點,統一填充顏色為(R:0,G:153,B:51)。 步驟四 選擇“貝塞爾工具”繪制荷葉葉脈,由于所畫線條是不連接的單一曲線,所以繪制時可以借助鍵盤上的“空格”鍵來進行切換。 步驟五 接著利用“貝塞爾工具”依照前面的方法繪制出不同形態的葉子并Ctrl+G群組。 步驟六 用“貝塞爾工具”繪制荷葉莖部,按F12鍵調整曲線寬度為3,自定義顏色值為(C:70,M:0,Y:100,K:0),然后執行“對象”→“將輪廓轉換為對象”命令,再次按F12鍵添加寬度為細線的(C:78,M:19,Y:76,K:0)的顏色值,調整順序到后層。 步驟七 選擇一片群組合過的葉子,進行位圖模糊處理,放在畫面后面,達到近實遠虛的視覺效果。 步驟八 選擇“貝塞爾工具”繪制花瓣,借助網狀填充工具填充粉色到洋紅色,按Ctrl鍵繪制一個正圓,按F12把圓加粗,然后執行“對象”→“將輪廓轉換為對象”命令(Ctrl+Shift+Q)。 步驟九 繪制各種形態的荷花造型,并群組圖形。
上傳時間: 2018-08-03
上傳用戶:cjmktt
read_segy_file_legacy Function reads a SEG-Y file and outputs a seismic structure Last updated: April 6, 2007: fix bug in reading of user-specified header
上傳時間: 2019-04-04
上傳用戶:wc12
Function reads a SEG-Y file and outputs a seismic structure; the function
標簽: read_segy_file
上傳時間: 2019-04-04
上傳用戶:wc12
#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
上傳用戶:啊的撒旦
產品型號:VK2C21 ——— 【完全兼容替代HT16C21,無需做任何改動!直接可以切換】 產品品牌:VINTEK/元泰 產品年份:新年份 封裝形式:NSOP16 SOP20 SOP24 SOP28 聯 系 人:許先生 聯 系 QQ:1918885898 聯系手機:18898582398 工程服務,技術支持,價格具有優勢! 概述 VK2C21 是一款存儲器映射和多功能 LCD 控制 / 驅動芯片。該芯片顯示模式有 80 點 (20×4) 或 128 點 (16×8)。VK2C21 的軟件配置特性使得它 適用于多種 LCD 應用,包括 LCD 模塊和顯示子 系統。VK2C2X系列為I2C介面、RAM mapping的LCD控制暨驅動IC,此系列以先進設計技術降低IC耗電、提升抗雜訊及ESD防護能力。全系列包含VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功獲得單相電表客戶的認可及采用,VK2C23及VK2C24適合于點數需求較大的三相電表的應用。 此系列內建顯示記憶體及RC振蕩電路;工作電壓范圍:2.4V~5.5V;提供2種圖框掃描頻率:80Hz or 160Hz;可由外掛電阻調整VLCD電壓,也提供內建可由指令調整16階的VLCD電壓;提供全屏閃爍功能、有三種頻率可選。透過I2C介面及多項內置電路,VK2C2X系列與系統控制晶片的傳輸只需2根信號線,大大省去系統零件及布線、降低客戶系統成本。 特性 ★工作電壓:2.4 ~ 5.5V ★內部 32kHz RC 振蕩器 ★Bias:1/3 或 1/4;Duty:1/4 或 1/8 ★帶電壓跟隨器的內部 LCD 偏置發生器 ★I2C 接口 ★兩個可選 LCD 幀頻率:80Hz 或 160Hz ★多達 16×8 位 RAM 用來存儲顯示數據 ★顯示模式: 20×4 模式:20 SEGs 和 4 COMs 16×8 模式:16 SEGs 和 8 COMs ★多種閃爍模式 ★讀 / 寫地址自動增加 ★內建 16 級 VLCD 電壓調整電路 ★低功耗 ★提供 VLCD 引腳用來調整 LCD 工作電壓 ★采用硅柵極 CMOS 制造工藝 ★封裝類型:20/24/28 SOP, 16 NSOP ★此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索取! VK2C21適用于高抗噪聲的小點數LCD應用 VK2C21是采用I2C接口的通用型LCD控制暨驅動器,可選用4 Common或8 Common的驅動模式,最多可顯示128點;本產品采用低耗電設計、在3V工作時只有18uA耗電流。高整合性腳位設計:比競爭者封裝腳數更少、可顯示點數更多;與系統控制芯片的傳輸只需2根信號線、外掛零件少、可降低客戶系統成本。 VK2C21內建有128 Bit顯示內存,可降低主控MCU的負擔;工作電壓寬廣:2.4V~5.5V;提供2種圖框掃瞄頻率;內建調整電路可以指令設定16階VLCD電壓;提供全屏閃爍功能、有三種頻率可選。最大可顯示點數為4 COM x 20 SEG或8 COM x 16 SEG。 VK2C2x系列具備低耗電、高抗噪聲及高ESD防護能力。全系列包含VK2C21、VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功獲得大陸、美國地區單相電表客戶的認可及采用,VK2C23及VK2C24適合于點數需求較大的三相電表的應用。 VK2C21適用于家電、民生消費品、工業儀表、水表、農網表、瓦斯表等之應用。VK2C21提供28/24/20SOP及16NSOP封裝,依封裝不同、點數略有差異,有關點數及封裝的選用。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產品型號:VK2C22 ——— 【完全兼容替代HT16C22,無需做任何改動!直接可以切換】 產品品牌:VINTEK/元泰 產品年份:新年份 封裝形式:LQFP48 LQFP52 聯 系 人:許先生 聯 系 QQ:1918885898 聯系手機:18898582398 工程服務,技術支持,價格具有優勢! 概述 VK2C22/VK2C22G 是一款存儲器映射和多功能 LCD 控制 / 驅動芯片。該系列芯片顯示模式有 176 點 (44×4)VK2C22/VK2C22G 軟件配置特性使 得它適用于多種 LCD 應用,包括 LCD 模塊和顯示子系統。VK2C22/VK2C22G 通過雙線雙向 I2C 接口與大多數微處理器 / 微控制器進行通信。 VK2C2X系列為I2C介面、RAM mapping的LCD控制暨驅動IC,此系列以先進設計技術降低IC耗電、提升抗雜訊及ESD防護能力。全系列包含VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功獲得單相電表客戶的認可及采用,VK2C23及VK2C24適合于點數需求較大的三相電表的應用。 特性 ★工作電壓:2.4V ~ 5.5V ★內部 32kHz RC 振蕩器S ★Bias:1/2 或 1/3;Duty:1/4 ★帶電壓跟隨器的內部 LCD 偏置發生器 ★I2C接口 ★兩個可選 LCD 幀頻率:80Hz 或 160Hz ★多達 44×4 位 RAM 用來存儲顯示數據 ★最大顯示模式 44×4:44 SEGs 和 4 COMs ★多種閃爍模式 ★讀 / 寫地址自動增加 ★內建 16 級 VLCD 電壓調整電路 ★低功耗 ★提供 VLCD 引腳來調整 LCD 工作電壓 ★采用硅柵極 CMOS 制造工藝 ★封裝類型:48LQFP,52QFP ★此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索取! LCD驅動IC推出VK2C22新I2C接口系列 本公司專注于TN/STN LCD的中小尺寸應用,VK162X系列控制暨驅動IC已營銷業界多年。2010年更展開I2C標準接口系列的新產品開發,此系列包含VK2C22、VK2C23、VK2C24等。IC特性強調低功耗、高抗噪聲及高系統ESD防護能力,以高整合度的腳位包裝,提供客戶最大的顯示點數。VK2C22是首先開發完成的型號,VK2C23、VK2C24會陸續推出。 VK2C22內建顯示內存及RC振蕩電路;工作電壓寬廣:2.4V~5.5V;2種Bias分壓:1/2 & 1/3;最大顯示點數可支持4 Common x 44 Segment(52QFP)。提供2種圖框掃瞄頻率:80Hz or 160Hz;可由外掛電阻調整VLCD電壓,也提供16階可由內建指令調整的VLCD電壓。透過I2C接口及多項內置電路,VK2C22與系統控制芯片的傳輸只需2根信號線,大大省去系統零件及布線、降低客戶系統成本。與其它同包裝的產品,VK2C22提供更多的顯示點數。 VK2C22適用于家電、車載、民生消費品、工業儀表等的LCD顯示器的控制及驅動,高抗噪聲及高ESD防護能力尤適合數字式LCD電表、水表、瓦斯表等。依包裝不同尚有2種點數可選擇:4 Common x 40 Segment(48 LQFP)及4 Common x 36 Segment(44QFP)。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產品型號:VK2C23 ——— 【完全兼容替代HT16C23,無需做任何改動!直接可以切換】 產品品牌:VINTEK/元泰 產品年份:新年份 封裝形式:LQFP64 LQFP48 聯 系 人:許先生 聯 系 QQ:1918885898 聯系手機:18898582398 工程服務,技術支持,價格具有優勢! VK2C23/VK2C23G -- RAM Mapping 56*4 / 52*8 LCD Driver Controller 概述 VK2C23/VK2C23G 是一款存儲器映射和多功能 的 LCD 控制 / 驅動芯片。該芯片的顯示字段為 224 點 (56 SEG × 4 COM) 或 416 點 (52 SEG × 8 COM)。VK2C23/VK2C23G 芯片的軟件配置特 性使其適用于多種 LCD 應用,包括 LCD 模塊和 顯示子系統。VK2C23/VK2C23G 芯片可通過雙 線雙向 I2C 接口與大多數微處理器或微控制器進 行通信。 VK2C2X系列為I2C介面、RAM mapping的LCD控制暨驅動IC,此系列以先進設計技術降低IC耗電、提升抗雜訊及ESD防護能力。全系列包含VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功獲得單相電表客戶的認可及采用,VK2C23及VK2C24適合于點數需求較大的三相電表的應用。 此系列內建顯示記憶體及RC振蕩電路;工作電壓范圍:2.4V~5.5V;提供2種圖框掃描頻率:80Hz or 160Hz;可由外掛電阻調整VLCD電壓,也提供內建可由指令調整16階的VLCD電壓;提供全屏閃爍功能、有三種頻率可選。透過I2C介面及多項內置電路,VK2C2X系列與系統控制晶片的傳輸只需2根信號線,大大省去系統零件及布線、降低客戶系統成本。 產品特性 ★工作電壓:2.4 ~ 5.5V ★內部 32kHz RC 振蕩器 ★Bias:1/3 或 1/4;Duty:1/4 或 1/8 ★帶電壓跟隨器的內部 LCD 偏置發生器 ★I2C 總線接口 ★兩種可選的 LCD 幀頻率:80Hz 或 160Hz ★多達 52×8 位的 RAM 用于存儲顯示數據 ★顯示模式: – 56×4 模式:56 SEG × 4 COM – 56×4 模式:56 SEG × 4 COM ★多種閃爍模式 ★讀 / 寫地址自動增加 ★內建 16 級 VLCD 電壓調整電路 ★低功耗 ★提供 VLCD引腳來調整 LCD 工作電壓 ★采用硅柵極 CMOS 工藝制造 ★封裝類型:48LQFP,64LQFP ★ 此篇產品敘述為功能簡介,如需要完整產品PDF資料可以聯系許先生索取! LCD/LED液晶控制器及驅動器系列 芯片簡介如下: RAM映射LCD控制器和驅動器系列 VK1024B 2.4V~5.2V 6seg*4com 6*3 6*2 偏置電壓1/2 1/3 S0P-16 VK1056B 2.4V~5.2V 14seg*4com 14*3 14*2 偏置電壓1/2 1/3 SOP-24/SSOP-24 VK1072B 2.4V~5.2V 18seg*4com 18*3 18*2 偏置電壓1/2 1/3 SOP-28 VK1072C 2.4V~5.2V 18seg*4com 18*3 18*2 偏置電壓1/2 1/3 SOP-28 VK1088B 2.4V~5.2V 22seg*4com 22*3 偏置電壓1/2 1/3 QFN-32L(4MM*4MM) VK0192 2.4V~5.2V 24seg*8com 偏置電壓1/4 LQFP-44 VK0256 2.4V~5.2V 32seg*8com 偏置電壓1/4 QFP-64 VK0256B 2.4V~5.2V 32seg*8com 偏置電壓1/4 LQFP-64 VK0256C 2.4V~5.2V 32seg*8com 偏置電壓1/4 LQFP-52 VK1621S-1 2.4V~5.2V 32*4 32*3 32*2 偏置電壓1/2 1/3 LQFP44/48/SSOP48/SKY28/DICE裸片 VK1622B 2.7V~5.5V 32seg*8com 偏置電壓1/4 LQFP-48 VK1622S 2.7V~5.5V 32seg*8com 偏置電壓1/4 LQFP44/48/52/64/QFP64/DICE裸片 VK1623S 2.4V~5.2V 48seg*8com 偏置電壓1/4 LQFP-100/QFP-100/DICE裸片 VK1625 2.4V~5.2V 64seg*8com 偏置電壓1/4 LQFP-100/QFP-100/DICE VK1626 2.4V~5.2V 48seg*16com 偏置電壓1/5 LQFP-100/QFP-100/DICE (高品質 高性價比:液晶顯示驅動IC 原廠直銷 工程技術支持!) (所有型號全部封裝均有現貨,歡迎加Q查詢 191 888 5898 許生) 高抗干擾LCD液晶控制器及驅動系列 VK2C21A 2.4~5.5V 20seg*4com 16*8 偏置電壓1/3 1/4 I2C通訊接口 SOP-28 VK2C21B 2.4~5.5V 16seg*4com 12*8 偏置電壓1/3 1/4 I2C通訊接口 SOP-24 VK2C21C 2.4~5.5V 12seg*4com 8*8 偏置電壓1/3 1/4 I2C通訊接口 SOP-20 VK2C21D 2.4~5.5V 8seg*4com 4*8 偏置電壓1/3 1/4 I2C通訊接口 NSOP-16 VK2C22A 2.4~5.5V 44seg*4com 偏置電壓1/2 1/3 I2C通訊接口 LQFP-52 VK2C22B 2.4~5.5V 40seg*4com 偏置電壓1/2 1/3 I2C通訊接口 LQFP-48 VK2C23A 2.4~5.5V 56seg*4com 52*8 偏置電壓1/3 1/4 I2C通訊接口 LQFP-64 VK2C23B 2.4~5.5V 36seg*8com 偏置電壓1/3 1/4 I2C通訊接口 LQFP-48 VK2C24 2.4~5.5V 72seg*4com 68*8 60*16 偏置電壓1/3 1/4 1/5 I2C通訊接口 LQFP-80 超低功耗LCD液晶控制器及驅動系列 VKL060 2.5~5.5V 15seg*4com 偏置電壓1/2 1/3 I2C通訊接口 SSOP-24 VKL128 2.5~5.5V 32seg*4com 偏置電壓1/2 1/3 I2C通訊接口 LQFP-44 VKL144A 2.5~5.5V 36seg*4com 偏置電壓1/2 1/3 I2C通訊接口 TSSOP-48 VKL144B 2.5~5.5V 36seg*4com 偏置電壓1/2 1/3 I2C通訊接口 QFN48L (6MM*6MM) 靜態顯示LCD液晶控制器及驅動系列 VKS118 2.4~5.2V 118seg*2com 偏置電壓 -- 4線通訊接口 LQFP-128 VKS232 2.4~5.2V 116seg*2com 偏置電壓1/1 1/2 4線通訊接口 LQFP-128 內存映射的LED控制器及驅動器 VK1628 --- 通訊接口:STB/CLK/DIO 電源電壓:5V(4.5~5.5V) 驅動點陣:70/52 共陰驅動:10段7位/13段4位 共陽驅動:7段10位 按鍵:10x2 封裝SOP28 VK1629 --- 通訊接口:STB/CLK/DIN/DOUT 電源電壓:5V(4.5~5.5V) 驅動點陣:128 共陰驅動:16段8位 共陽驅動:8段16位 按鍵:8x4 封裝QFP44 VK1629A --- 通訊接口:STB/CLK/DIO 電源電壓:5V(4.5~5.5V) 驅動點陣:128 共陰驅動:16段8位 共陽驅動:8段16位 按鍵:--- 封裝SOP32 VK1629B --- 通訊接口:STB/CLK/DIO 電源電壓:5V(4.5~5.5V) 驅動點陣:112 共陰驅動:14段8位 共陽驅動:8段14位 按鍵:8x2 封裝SOP32 VK1629C --- 通訊接口:STB/CLK/DIO 電源電壓:5V(4.5~5.5V) 驅動點陣:120 共陰驅動:15段8位 共陽驅動:8段15位 按鍵:8x1 封裝SOP32 VK1629D --- 通訊接口:STB/CLK/DIO 電源電壓:5V(4.5~5.5V) 驅動點陣:96 共陰驅動:12段8位 共陽驅動:8段12位 按鍵:8x4 封裝SOP32 VK1640 --- 通訊接口: CLK/DIN 電源電壓:5V(4.5~5.5V) 驅動點陣:128 共陰驅動:8段16位 共陽驅動:16段8位 按鍵:--- 封裝SOP28 VK1650 --- 通訊接口: SCL/SDA 電源電壓:5V(3.0~5.5V) 驅動點陣:8x16 共陰驅動:8段4位 共陽驅動:4段8位 按鍵:7x4 封裝SOP16/DIP16 VK1668 ---通訊接口:STB/CLK/DIO 電源電壓:5V(4.5~5.5V) 驅動點陣:70/52 共陰驅動:10段7位/13段4位 共陽驅動:7段10位 按鍵:10x2 封裝SOP24 VK6932 --- 通訊接口:STB/CLK/DIN 電源電壓:5V(4.5~5.5V) 驅動點陣:128 共陰驅動:8段16位17.5/140mA 共陽驅動:16段8位 按鍵:--- 封裝SOP32 VK16K33 --- 通訊接口:SCL/SDA 電源電壓:5V(4.5V~5.5V) 驅動點陣:128/96/64 共陰驅動:16段8位/12段8位/8段8位 共陽驅動:8段16位/8段12位/8段8位 按鍵:13x3 10x3 8x3 封裝SOP20/SOP24/SOP28 (所有型號全部封裝均有現貨,歡迎加Q查詢 191 888 5898 許生) 以上介紹內容為IC參數簡介,難免有錯漏,且相關IC型號眾多,未能一一收錄。歡迎聯系索取完整資料及樣品! 請加許先生 QQ:191 888 5898聯系!謝謝 生意無論大小,做人首重誠信!本公司全體員工將既往開來,再接再厲。爭取為各位帶來更專業的技術支持,更優質的銷售服務,更高性價比的好產品.竭誠希望能與各位客戶朋友深入溝通,攜手共進,共同成長,合作共贏!謝謝。
標簽: 工程服務 技術支持 LCD液晶驅動顯示芯片 兼容替代 性價比高
上傳時間: 2019-07-03
上傳用戶:shubashushi66
# include<stdio.h> # include<math.h> # define N 3 main(){ float NF2(float *x,float *y); float A[N][N]={{10,-1,-2},{-1,10,-2},{-1,-1,5}}; float b[N]={7.2,8.3,4.2},sum=0; float x[N]= {0,0,0},y[N]={0},x0[N]={}; int i,j,n=0; for(i=0;i<N;i++) { x[i]=x0[i]; } for(n=0;;n++){ //計算下一個值 for(i=0;i<N;i++){ sum=0; for(j=0;j<N;j++){ if(j!=i){ sum=sum+A[i][j]*x[j]; } } y[i]=(1/A[i][i])*(b[i]-sum); //sum=0; } //判斷誤差大小 if(NF2(x,y)>0.01){ for(i=0;i<N;i++){ x[i]=y[i]; } } else break; } printf("經過%d次雅可比迭代解出方程組的解:\n",n+1); for(i=0;i<N;i++){ printf("%f ",y[i]); } } //求兩個向量差的二范數函數 float NF2(float *x,float *y){ int i; float z,sum1=0; for(i=0;i<N;i++){ sum1=sum1+pow(y[i]-x[i],2); } z=sqrt(sum1); return z; }
上傳時間: 2019-10-13
上傳用戶:大萌萌撒
API函數詳解winAPI32.chm 表1 SetWindowPos函數的參數解釋 參數名 參數含義 hwnd 要移動的窗口的句柄(可以用窗體的hwnd屬性) hWndInsertAfter 關于如何在Z軸上放置窗口的標記(具體見表2) x 相當于窗口的Left屬性 y 相當于窗口的Top屬性 cx 相當于窗口的Right屬性 cy 相當于窗口的Bottom屬性 wFlags 關于如何移動窗口的標記(具體見表3)
上傳時間: 2019-12-01
上傳用戶:gdqiutao