使用c语言读出Excel表格课程设计.docx
- 文档编号:4315634
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:14
- 大小:26.91KB
使用c语言读出Excel表格课程设计.docx
《使用c语言读出Excel表格课程设计.docx》由会员分享,可在线阅读,更多相关《使用c语言读出Excel表格课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
使用c语言读出Excel表格课程设计
课程设计(大作业)报告
信息技术学院
昆明学院课程设计(大作业)任务书
姓名:
院(系):
信息技术学院
专业:
计算机应用技术学号:
任务起止日期:
2011.12.24
课程设计题目:
简单综合成绩计算系统
课程设计要求:
各科成绩和综合分数加减分数保存在excel表格里面,请读取excel表格的成绩然后计算平均成绩并输出成绩报表。
综合成绩的计算方法在学生手册上可以查到。
1.查看学生手册了解综合成绩计算办法。
2.设计多维数组分别存储班上41个同学的智育、德育、体育、及相关的加减分。
3.计算出智育平均成绩,计算出综合测评成绩。
写出排序函数,分别按智育平均成绩、综合测评成绩排序。
4.C语言保存计算结果到excel表格(
注:
设计的时候需不断测试保证程序的正确性
工作计划及安排:
1.到底包括哪些成绩?
2.求智育的平均分及写函数。
3.求综合成绩及写函数。
4.排序。
5.把结果写到exce表里。
指导教师签字
年月日
课程设计(大作业)成绩
学号:
姓名:
指导教师:
课程设计题目:
简单综合成绩计算系统
总结:
通过本次的作业,让我更加的进一步的学习到更多关于C语言的知识,也进一步的巩固了以前所学习的东西,也能够比以前更加熟练的应用C了。
也让我认识到合作精神的重要性,作为一个团队,只有大家一起相互合作相互交流才能将我们的任务做的更好。
一次课题设计不仅是对我们学习的知识的一种检测,也是体现我们对知识的综合能力的一种测试。
在课题设计中我们充分发挥自己的应用知识的能力,将自己负责的那一部分做好,与组员们相互讨论,合作做好每一个细节。
并且在这个互联网的时代,上网查找资料是并不可少的,因此在本次的课程设计中,有许多不懂的地方,我们只有通过上网查询一些资料,和老师的指导才能完成。
而且对于编程,必须要有一定的耐心和毅力才能够做的,因为一个小小的错误,整个程序就不能够应行,必须耐心的找出那个错误,并改正。
相信在本次的作业中每个同学都学习到了许多,不管是知识还是其他的,都会让我们每个人受益匪浅。
“只要功夫深,铁杵磨成针”所以不管多难的作业,在我们的努力下与合作下,我们可以完成,我们也可以做好。
指导教师评语:
成绩:
填表时间:
指导教师签名:
课程设计(大作业)报告
一、题目分析
简单综合成绩计算系统
二、总体设计
1.到底包括哪些成绩。
2.求智育平均分的函数。
3.求综合成绩平均分的函数。
4.排序。
5.把结果写到excel表里。
将此上述5步小组人员内部协商分工合作。
三、实验器材
计算机
四、制作步骤
1.到底包括哪些成绩?
2.求智育平均分的函数。
3.求综合成绩平均分的函数。
4.排序。
5.把结果写到excel表了。
五、程序代码
1.
#include"stdafx.h"
#defineN41
floatzonghecj[41];
voidzhcj(float*zhiyupj,float*deyu,float*zhnl,float*tiyu,intn)
{
inti;
for(i=0;i { zonghecj[i]=zhiyupj[i]*0.55+deyu[i]*0.25+tiyu[i]*0.1+zhnl[i]*0.1; } } intmain(intargc,char*argv[]) { inti; floatzhiyupj[41]; floatzhiyu[41][4]={{85,65,80,76},{66,71,77,69},{65,71,75,72},{58,81,77,73},{65,74,75,80},{66,83,82,71},{68,65,62,71},{80,74,76,73},{82,80,70,76},{76,74,75,72},{65,65,71,80},{80,85,81,90},{90,82,84,86},{85,60,75,82},{85,68,75,72},{80,84,72,76},{65,85,69,72},{80,82,81,77},{90,82,77,76},{58,71,68,80},{60,71,68,77},{68,74,75,72},{94,82,71,76},{74,75,76,80},{66,85,77,78},{66,81,72,76},{68,72,75,78},{80,74,76,79},{81,79,81,76},{60,85,71,79},{78,80,75,60},{62,81,75,73},{82,72,76,52},{65,77,76,72},{81,75,77,76},{89,86,82,79},{80,71,76,79},{80,75,72,79},{82,71,76,79},{90,68,82,71},{82,80,75,76}}; for(i=0;i<41;i++) { zhiyupj[i]=(zhiyu[i][0]+zhiyu[i][1]+zhiyu[i][2]+zhiyu[i][3])/4; printf("智育平均成绩%f\n",zhiyupj[i]); } floatdeyu[41]={66,70,71,86,72,68,60,75,65,67,80,77,76,65,50,69,72,75,63,65,77,75,76,60,59,60,86,79,62,90,85,73,54,66,75,73,65,80,56,80,75};//德育总评分 floattiyu[41]={82,65,74,68,76,80,66,85,72,77,80,72,85,68,63,72,65,76,88,67,82,71,65,56,77,82,82,53,94,78,72,81,61,72,84,79,68,72,84,68,76};//体育总评分 floatzhnl[41]={71,82,62,75,86,74,88,69,73,83,75,66,77,82,65,59,72,65,81,74,66,78,76,92,75,66,80,85,70,63,71,84,86,83,90,92,66,75,91,84,75};//综合总评分 zhcj(zhiyupj,deyu,zhnl,tiyu,41); for(i=0;i<41;i++) { printf("综合成绩%f\n",zonghecj[i]); } return0; } 2. #include intpingjufen(floatcj[]) { floatsum=0,s; inti; for(i=0;i<2;i++) sum+=cj[i]; s=sum/3; printf("%f",s); getch(); } voidmain() { floatcj[3]={78,88,68}; pingjufen(cj); } 3. //CC.cpp: Definestheentrypointfortheconsoleapplication. // #include"stdafx.h" #include"string.h" floatjg[41]; voidzhcj(int*deyu,int*zhiyu,int*tiyu,int*zhnl) { inti; for(i=0;i<2;i++){ jg[i]=deyu[i]*0.25+zhiyu[i]*0.55+tiyu[i]*0.10+zhnl[i]*0.10; printf("jg=%f\n",jg[i]); } } intmain(intargc,char*argv[]) { intdeyu[41]={68,78}; intzhiyu[41]={66,59}; inttiyu[41]={88,90}; intzhnl[41]={78,85}; zhcj(deyu,zhiyu,tiyu,zhnl); return0; } 4. #include"stdafx.h" voidswap(intcj[],intn) { inti,j,*p=cj; intq; for(i=1;i<=n-2;i++) for(j=n-1;j>=i;j--) { if(*(p+j)>*(p+j-1)) { intt; t=*(p+j); *(p+j)=*(p+j-1); *(p+j-1)=t; } for(q=0;q<41;q++)printf("%d",*(p+q)); printf("\n"); } } intmain(void) { inti; intcj[41]={71,82,62,75,86,74,88,69,73,83,75,66,77,82,65,59,72,65,81,74,66,78,76,92,75,66,80,85,70,63,71,84,86,83,90,92,66,75,91,84,75}; swap(cj,41); return0; } 5. #include"stdafx.h" #include"string.h" #include #include #include #ifdef_MSC_VER #pragmacomment(lib,"odbc32.lib") #defineSQLLENSQLINTEGER #endif enumerrtype{ERRORFREE,ERRACTION,XLSBUSY,TXTBUSY,TXTOPENERROR, SQLHANDLEENVERROR,SQLSETENVERROR,SQLHANDLEDBCERROR, SQLCONNECTERROR,SQLALLOCSTMTERROR,SQLCREATEERROR, SQLSELECTERROR,SQLBINDERROR}; SQLHENVhenv; SQLHDBChdbc; SQLHSTMThstmt; //------------------------------------------------------------------------------------------------------------ staticvoiddbError(LPSTRlp,SQLSMALLINThandleType,SQLHANDLEhandle) { BYTEbuf[250],sqlstate[15]; SQLGetDiagRec(handleType,handle,1,sqlstate,NULL,buf,sizeof(buf),NULL); fprintf(stderr,"%s: %sSQLSTATE=%s/n",lp,buf,sqlstate); } //------------------------------------------------------------------------------------------------------------ staticvoiddbCleanup() { if(hstmt! =SQL_NULL_HANDLE){ SQLFreeStmt(hstmt,SQL_UNBIND); SQLFreeHandle(SQL_HANDLE_STMT,hstmt); } if(hdbc! =SQL_NULL_HANDLE){ SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC,hdbc); } if(henv! =SQL_NULL_HANDLE)SQLFreeHandle(SQL_HANDLE_ENV,henv); } //------------------------------------------------------------------------------------------------------------ staticvoiddbErrorCleanup(LPSTRlp,SQLSMALLINThandleType,SQLHENVhenv,SQLHDBChdbc,SQLHSTMThstmt) { SQLHANDLEhandle; switch(handleType){ caseSQL_HANDLE_STMT: handle=hstmt; break; caseSQL_HANDLE_DBC: handle=hdbc; break; default: handle=henv; } if(handle! =SQL_NULL_HANDLE)dbError(lp,handleType,handle); //dbCleanup(henv,hdbc) dbCleanup(); } //--------------------------------------------------------- staticBOOLisFileOpen(constchar*fileName) { HANDLEhFile; //以非共享方式打开文件.检查EXCEL文件当前是否在使用中........... hFile=CreateFile(fileName,GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); if(hFile==INVALID_HANDLE_VALUE){ if(GetLastError()==ERROR_SHARING_VIOLATION)returnTRUE;//使用中 elsereturnFALSE;//未使用中,或者无此文件(现在可以创建) }else{ CloseHandle(hFile); returnFALSE; } } intOpenExcel(char*szExcelName,char*szSheetName,char*szFieldName[],char*szFieldType[],intnColCount) { SQLRETURNretcode; BYTEszSql[512],*pszSql=szSql; charszdatabase[256]; //intrc, inti; henv=hdbc=hstmt=SQL_NULL_HANDLE; if(isFileOpen(szExcelName))returnXLSBUSY; //准备环境------------------- retcode=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); if(retcode! =SQL_SUCCESS){ dbErrorCleanup("SQLAllocHandle(ENV)",SQL_HANDLE_ENV,henv,hdbc,hstmt); returnSQLHANDLEENVERROR; } retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,0); if(retcode! =SQL_SUCCESS){ dbErrorCleanup("SQLSetEnvAttr()",SQL_HANDLE_ENV,henv,hdbc,hstmt); returnSQLSETENVERROR; } retcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); if(retcode! =SQL_SUCCESS){ dbErrorCleanup("SQLAllocHandle(DBC)",SQL_HANDLE_ENV,henv,hdbc,hstmt); returnSQLHANDLEDBCERROR; } //与数据库建立连接------------------ sprintf(szdatabase,"DRIVER=MicrosoftExcelDriver(*.xls);CREATE_DB=%s;DBQ=%s;READONLY=FALSE;EXCLUSIVE=Yes;", szExcelName,szExcelName); //fprintf(stderr,"DATABASE: %s/n",szdatabase); retcode=SQLDriverConnect(hdbc,NULL,(SQLCHAR*)szdatabase,(short)(strlen(szdatabase)+1),NULL,0,NULL,SQL_DRIVER_NOPROMPT); if(retcode! =SQL_SUCCESS&&retcode! =SQL_SUCCESS_WITH_INFO){ dbErrorCleanup("SQLDriverConnect()",SQL_HANDLE_DBC,henv,hdbc,hstmt); returnSQLCONNECTERROR; } retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt); if(retcode! =SQL_SUCCESS){ dbErrorCleanup("SQLAllocHandle(STMT)",SQL_HANDLE_DBC,henv,hdbc,hstmt); returnSQLALLOCSTMTERROR; } //构造执行CREATETABLE语句---------------------- pszSql=szSql+sprintf((char*)szSql,"CREATETABLE%s(",szSheetName); for(i=0;i if(i)*pszSql++=','; pszSql+=sprintf((char*)pszSql,"%s%s",szFieldName[i],szFieldType[i]); } *pszSql++=')'; *pszSql='\0'; //fprintf(stderr,"STATEMENT: [%s]/n",szSql); retcode=SQLExecDirect(hstmt,szSql,SQL_NTS); if(retcode! =SQL_SUCCESS){ SQLCHARsqlState[15]; SQLGetDiagField(SQL_HANDLE_STMT,hstmt,1,SQL_DIAG_SQLSTATE,sqlState,sizeof(sqlState),NULL); if(lstrcmpiA((char*)sqlState,"42S01")! =0){//Alreadyexisting... dbErrorCleanup("SQLExecDirect()",SQL_HANDLE_STMT,henv,hdbc,hstmt); returnSQLCREATEERROR; } } return0; } intAppendExcel(char*szSheetName,char*szFieldName[],intnColCount,char*szData) { inti,rc; BYTEszSql[512],*psz; //构造INSERTINTO语句-------------------------------- psz=szSql+sprintf((char*)szSql,"INSERTINTO%s(",szSheetName); for(i=0;i if(i)*psz++=','; psz+=sprintf((char*)psz,"%s",szFieldName[i]); } psz+=sprintf((char*)psz,")VALUES(%s)",szData); //fprintf(stderr,"STATEMENT: %s/n",szSql); rc=(int)SQLExecDirect(hstmt,szSql,SQL_NTS); if(rc! =SQL_SUCCESS){ dbError("SQLExecDirect()",SQL_HANDLE_STMT,hstmt); } return0; } voidCloseExcel() { //fprintf(stderr,"CleanUp: henv=%08X;hdbc=%08X,hstmt=%08X./n",henv,hdbc,hstmt); dbCleanup(); } //------------------Testdata--------------------------------------- staticcharszExcelName[]="Test.xls";//Excel文件名 staticcharszSheetNameA[]="成绩表";//工作表名 staticchar*szFieldNameA[]={"成绩"};//字段名 staticchar*szFieldTypeA[]={"NUMBER"};//字段类型 staticcharszSheetNameB[]="日程";//工作表名 staticchar*szFieldNameB[]={"日期","时间","安排"};//字段名 staticchar*szFieldTypeB[]={"TEXT","TEXT","TEXT"};//字段类型 charstr[20]; voiditos(intn)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 语言 读出 Excel 表格 课程设计