使用c语言读出Excel表格课程设计.docx

上传人:b****5 文档编号:4315634 上传时间:2022-11-29 格式:DOCX 页数:14 大小:26.91KB
下载 相关 举报
使用c语言读出Excel表格课程设计.docx_第1页
第1页 / 共14页
使用c语言读出Excel表格课程设计.docx_第2页
第2页 / 共14页
使用c语言读出Excel表格课程设计.docx_第3页
第3页 / 共14页
使用c语言读出Excel表格课程设计.docx_第4页
第4页 / 共14页
使用c语言读出Excel表格课程设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

使用c语言读出Excel表格课程设计.docx

《使用c语言读出Excel表格课程设计.docx》由会员分享,可在线阅读,更多相关《使用c语言读出Excel表格课程设计.docx(14页珍藏版)》请在冰豆网上搜索。

使用c语言读出Excel表格课程设计.docx

使用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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1