C语言课程设计报告模板

时间:2024.4.20

本模板是课程设计报告模板,请各位同学认真阅读以下要求:

1.

C语言课程设计报告模板

报告后输出时将本页删除)

2.

C语言课程设计报告模板

3.

4.

5. 本设计报告左侧装订。在虚线处装订。 在课程设计封皮一页上用已经设置好的宋体四号来填写各个项目。 在课程设计评定表一页上用宋体小四填写班级、学号、姓名、项目组、项目

组长、项目组组员、本人工作简介。

组长评语一栏应由组长来给出。

6. 在课程设计任务书一页的开头应按照给定的设置(黑体三号)填写好你的班

级,在第五项时间安排里面应用宋体五号加粗来填写好日期范围。

7. 从程序基本框架结构图开始到设计报告的最后一页都要求有页眉,内容为你

的课程设计题目,宋体小五居中。页脚中的页码已经设置好,同学们不必改动。

8. 在程序基本框架结构图采用WORD中的自选图形绘制程序基本框架结构图,

也就是程序流程图。

9. 在程序设计说明书中应该描述程序的设计思想,重点描述自己做的那部分的

设计思想。字体用宋体小四。

10. 在代码清单中打印程序已经调试好的可运行的程序代码。

要求字体为宋体 五号。(页数可增加)

11. 报告的最后一部分是设计总结,应在程序代码之后另起一页,主要写通过一

周课程设计你自己的体会,包括你学到了什么,哪里遇到了困难解决的办法以及今后的目标。

字体用宋体小四。

12. 报告的各个部分都可以不为规定的一页,自己可增加页数,但要保证开始另外一项要另起一页。

13. 服务课程名称:本科添写:C语言;/专科添写:计算机语言(c)

14. 报告完成后,要更新目录。方法为:单击目录左侧,选定整个目录后,按F9键更新目录。

┊┊

课 程 设 计

C语言课程设计报告模板

目录

C语言课程设计成绩评定表 .............................................. 1

C语言课程设计任务书 ...................................................... 2

程序设计思路 ...................................................................... 4

程序基本框架结构图 .......................................................... 5 系统运行界面截图 ............................ 错误!未定义书签。

源代码清单 .......................................................................... 6

课程设计总结 .................................................................... 15

C语言课程设计

C语言课程设计成绩评定表

C语言课程设计报告模板

- 1 -

C语言课程设计

C语言课程设计任务书

一、设计目的

通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。

二、设计要求

1、认真查阅参考书、资料 2、遵守课程设计时间安排

3、按时上机,认真调试程序 4、认真完成课程设计报告

三、课设报告装订内容及顺序

1、课程设计封皮 2、目录

3、课程设计成绩评定表 4、课程设计任务书

5、程序基本框架图 6、程序设计说明书

7、源代码清单 8、课设总结与心得

四、设计题目

_____________工资管理系统_________________

五、时间安排(一周:从 月 日到 月 日 )

1、查阅资料及程序设计(1天) 2、程序编制及调试(3天)

3、成绩评定(0.5天) 3、打印报告(0.5天)

六、参考文献

1、《C语言程序设计》李淑华/李贞编 大连理工大学出版社

2、《C语言程序设计》孙连科/姚大鹏编 辽海出版社

3、《C++时尚编程百例》网冠科技编.机械工业出版社

4、《TURBO C 实用大全》徐金梧等编. 机械工业出版社

- 2 -

C语言课程设计

- 3 -

C语言课程设计

程序设计思路

我们程序设计的是工资管理系统。它包括:输入函数、显示函数、追加函数、排序函数、删除函数、插入函数、修改函数以及查询函数。我在程序设计中主要负责对插入函数和修改函数的编写。

调用插入函数时,先用fread函数以读方式打开文件,然后输入所要插入的编号,把文件中的所有元素存放到数组a[n]中,利用for循环,使插入点之后的每个数组元素都往后移动一个位置(从最后一个开始移动),利用fclose函数关闭文件。再以写方式重新打开文件,输入所要插入函数的数据,利用for循环把数组中每个元素重新写回到到文件中,这样就得到了比原来多一个的数组a[n+1],关闭文件,程序终止。

至于显示函数,先以读方式打开文件,再输入所要修改的编号,将文件中的所有元素存放到数组a[]中来,利用for循环,把数组中的元素与输入编号进行对比,当二者相同时,记录其下标为t,关闭文件。再重新以写方式打开文件,输入a[t]元素中的所有数据。利用循环把数组中的所有元素重新写回到到文件中,关闭文件。这样修改函数就完成了。

若原始数据为:

01 女 1000 200 300 300

08 男 1200 300 200 200

插入点为1,插入数据:

02 女 1300 200 300 200

运行结果为:

修改编号为08,修改数据:

08 男 1300 300 400 100

- 4 -

C语言课程设计

程序基本框架结构图

C语言课程设计报告模板

- 5 -

C语言课程设计

源代码清单

#include "stdio.h"

#include "stdlib.h"

typedef struct teacher /*定义结构体类型*/

{ long num;

char name[9];

char sex[3];

float salary;

float allowance;

float bonus;

float deduction;

float netpay;

}TEA;

void input() /*输入函数,完成将键盘输入的教师数据写入磁盘*/ {

int i,n;

TEA a; /*结构体变量a 用来存放一个教师的数据*/ FILE *fp;

system("cls"); /*清屏*/

if((fp=fopen("e:\\file1.txt","wb"))==NULL)

{ printf("error!\n");exit(0); }

printf("\n\t请输入教师人数:");

scanf("%d",&n); /*输入教师人数*/

for(i=0;i<n;i++) /*以循环的方式输入每个教师的数据*/ { printf("请输入第%d名教师信息:\n",i+1);

printf("\t编号:");

scanf("%ld",&a.num);

printf("\t姓名:");

scanf("%s",a.name);

printf("\t性别:");

scanf("%s",a.sex);

printf("\t基本工资:");

scanf("%f",&a.salary);

printf("\t补贴:");

scanf("%f",&a.allowance);

printf("\t奖金:");

scanf("%f",&a.bonus);

printf("\t扣除金额:");

scanf("%f",&a.deduction);

- 6 -

C语言课程设计

a.netpay=a.salary+a.allowance+a.bonus-a.deduction;

printf("\t实际工资:%.2f\n",a.netpay);

fwrite(&a,sizeof(TEA),1,fp);

} fclose(fp);

}

void list() /*显示函数,完成将文件中的教师数据显示在屏幕上*/

{ TEA a; /*结构体变量a 用来存放一个教师的数据*/

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","rb"))==NULL)

{ printf("error!\n");exit(0); }

printf("\n\t编号\t姓名\t性别\t基本工资 补贴 \t奖金\t扣除金额 实际工资\n\n");

while(fread(&a,sizeof(TEA),1,fp)!=0)

printf("\t %ld\t %s\t %s\t%.2f %.2f

\t%.2f\t%.2f\t %.2f\n\n",a.num,a.name,a.sex,a.salary,a.allowance,a.bonus,a.deduction,a.

netpay);

fclose(fp);

printf("\n\tpress any key to continue...");

system("pause");

}

void append() /*追加函数,完成将键盘上输入的教师数据追加到文件中*/

{

int i,n;

TEA a;

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","ab"))==NULL)

{ printf("error!\n");exit(0); }

printf("\n\n\t请输入追加教师人数:");

scanf("%d",&n);

printf("\n\t请按下面的提示信息输入学生数据\n");

for(i=0;i<n;i++)

{printf("\n\t请输入第%d名追加教师编号:",i+1);

scanf("%d",&a.num);

printf("\t姓名:");

scanf("%s",a.name);

printf("\t性别:");

scanf("%s",a.sex);

printf("\t基本工资:");

scanf("%f",&a.salary);

printf("\t补贴:");

scanf("%f",&a.allowance);

- 7 -

C语言课程设计

printf("\t奖金:");

scanf("%f",&a.bonus);

printf("\t扣除金额:");

scanf("%f",&a.deduction);

a.netpay=a.salary+a.allowance+a.bonus-a.deduction;

printf("\t实际工资:%.2f\n",a.netpay);

fwrite(&a,sizeof(TEA),1,fp);

}

fclose(fp);

}

void sort() /*排序函数,完成对文件中的教师数据按学号排序并显示在屏幕上*/ { int i,j,n=0;

TEA a[50],t; /*结构体数组a 可存放50个教师的数据*/

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","rb"))==NULL)

{ printf("error!\n");exit(0); }

while(fread(&a[n],sizeof(TEA),1,fp)!=0)

n++; /*变量n累计文件中教师人数*/

for(i=0;i<n-1;i++)

for(j=n-1;j>i;j--)

if(a[j].num<a[j-1].num)

{ t=a[j];a[j]=a[j-1];a[j-1]=t; }

printf("\n\n\n\tsorted on num :\n");

printf("\n\t编号\t姓名\t性别\t基本工资\t补贴\t奖金\t扣除金额\t实际工资\n\n"); for(i=0;i<n;i++)

printf("\t%ld\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",a[i].num,a[i].name,a[i].sex,a[i].salary,a[i].allowance,a[i].bonus,a[i].deduction,a[i].netpay);

fclose(fp);

printf("\n\tpress any key to continue...");

system("pause"); /*程序暂停*/

}

void del() /*删除函数,完成将键盘上输入的教师数据从文件中删除*/

{long num;int i,n=0,t;

TEA a[100];

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","rb"))==NULL)

{ printf("error!\n");exit(0); }

printf("\n\n\t请输入要删除的编号:");

scanf("%ld",&num);

while(fread(&a[n],sizeof(TEA),1,fp)!=0)

n++;

- 8 -

C语言课程设计

for(i=0;i<n;i++)

if(a[i].num==num)

t=i;

fclose(fp);

if((fp=fopen("e:\\file1.txt","wb"))==NULL)

{printf("error!\n");exit(0);}

for(i=0;i<n;i++)

{ if(i!=t)

{ fwrite(&a[i],sizeof(TEA),1,fp);

printf("\t%ld\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",a[i].num,a[i].name,a[i].sex,a[i].salary,a[i].allowance,a[i].bonus,a[i].deduction,a[i].netpay);

}

}

fclose(fp);

printf("\n\tpress any key to continue...");

system("pause");

}

void ins() /*插入函数,完成将键盘上输入的教师数据插入到文件中*/

{long num;int i,n=0,k;

TEA a[50];

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","rb"))==NULL)

{ printf("error!\n");exit(0); }

printf("\n\n\t请输入要插入的编号:");

scanf("%d",&num);

while(fread(&a[n],sizeof(TEA),1,fp)!=0)

n++;

for(i=n;i>num;i--)

a[i]=a[i-1];

fclose(fp);

if((fp=fopen("e:\\file1.txt","wb"))==NULL)

{printf("error!\n");exit(0);}

printf("\t编号:");

scanf("%ld",&a[i].num);

printf("\t姓名:");

scanf("%s",a[i].name);

printf("\t性别:");

scanf("%s",a[i].sex);

printf("\t基本工资:");

scanf("%f",&a[i].salary);

printf("\t补贴:");

scanf("%f",&a[i].allowance);

- 9 -

C语言课程设计

printf("\t奖金:");

scanf("%f",&a[i].bonus);

printf("\t扣除金额:");

scanf("%f",&a[i].deduction);

a[i].netpay=a[i].salary+a[i].allowance+a[i].bonus-a[i].deduction;

printf("\t实际工资:%.2f\n",a[i].netpay);

for(i=0;i<=n;i++)

{ fwrite(&a[i],sizeof(TEA),1,fp);

printf("\t%ld\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",a[i].num,a[i].name,a[i].sex,a[i].salary,a[i].allowance,a[i].bonus,a[i].deduction,a[i].netpay);

}

fclose(fp);

printf("\n\tpress any key to continue...");

system("pause");

}

void modify() /*修改函数,完成将键盘上输入的教师数据修改到文件中*/ {int i,n=0,t;

long num;

TEA a[100];

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","rb"))==NULL)

{ printf("error!\n");exit(0); }

while(fread(&a[n],sizeof(TEA),1,fp)!=0)

n++;

printf("\t编号:");

scanf("%d",&num);

for(i=0;i<n;i++)

if(a[i].num==num)

t=i;

fclose(fp);

if((fp=fopen("e:\\file1.txt","wb"))==NULL)

{ printf("error!\n");exit(0); }

printf("\n请按以下提示输入正确数据:\n");

printf("\t编号:");

scanf("%ld",&a[t].num);

printf("\t姓名:");

scanf("%s",a[t].name);

printf("\t性别:");

scanf("%s",a[t].sex);

printf("\t基本工资:");

scanf("%f",&a[t].salary);

printf("\t补贴:");

- 10 -

C语言课程设计

scanf("%f",&a[t].allowance);

printf("\t奖金:");

scanf("%f",&a[t].bonus);

printf("\t扣除金额:");

scanf("%f",&a[t].deduction);

a[t].netpay=a[t].salary+a[t].allowance+a[t].bonus-a[t].deduction;

printf("\t实际工资:%.2f\n",a[t].netpay);

for(i=0;i<n;i++)

{ fwrite(&a[i],sizeof(TEA),1,fp);}

fclose(fp);

printf("\n修改完成!\n\n");

printf("\n\tpress any key to continue...");

system("pause");

}

void search_num() /*按编号查询函数,将查询教师数据修改到文件中*/

{long n;int i,t=0;

TEA a[50];

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","rb"))==NULL)

{printf("error!\n");exit(0); }

printf("\n\t请输入教师编号:");

scanf("%ld",&n);

while(fread(&a[t],sizeof(TEA),1,fp)!=0)

t++;

for(i=0;i<t;i++)

if(a[i].num==n)

break;

if(i<t)

{printf("\n\t该教师数据已查到,详情如下:\n");

printf("\n\t编号\t姓名\t性别\t基本工资\t补贴\t奖金\t扣除金额\t实际工资");

printf("\t%ld\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",a[i].num,a[i].name,a[i].sex,a[i].salary,a[i].allowance,a[i].bonus,a[i].deduction,a[i].netpay);

}

else printf("\t无此信息!\n");

fclose(fp);

printf("\n\tpress any key to continue...");

system("pause");

}

void search_name() /*按姓名查询函数,将查询教师数据修改到文件中*/

{char n[9];int i,j=0;

TEA a[50];

- 11 -

C语言课程设计

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","rb"))==NULL)

{printf("error!\n");exit(0); }

printf("\n\t请输入教师姓名:");

scanf("%s",n);

while(fread(&a[j],sizeof(TEA),1,fp)!=0)

j++;

for(i=0;i<j;i++)

if(strcmp(a[i].name,n)==0)

break;

if(i<j)

{printf("\n\t该教师数据已查到,详情如下:\n");

printf("\n\t编号\t姓名\t性别\t基本工资\t补贴\t奖金\t扣除金额\t实际工资");

printf("\t%ld\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",a[i].num,a[i].name,a[i].sex,a[i].salary,a[i].allowance,a[i].bonus,a[i].deduction,a[i].netpay);

}

else printf("\t无此信息!\t");

fclose(fp);

printf("\n\tpress any key to continue...");

system("pause");

}

void search_sex() /*按性别查询函数,将查询教师数据修改到文件中*/

{char s[3];int i,j=0;

TEA a[50];

FILE *fp;

system("cls");

if((fp=fopen("e:\\file1.txt","rb"))==NULL)

{ printf("error!\n");exit(0); }

printf("\n\t请输入教师性别:");

scanf("%s",s);

while(fread(&a[j],sizeof(TEA),1,fp)!=0)

j++;

for(i=0;i<j;i++)

if(strcmp(a[i].sex,s)==0)

break;

if(i<j)

{printf("\n\t该教师数据已查到,详情如下:\n");

printf("\n\t编号\t姓名\t性别\t基本工资\t补贴\t奖金\t扣除金额\t实际工资");

printf("\t%ld\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",a[i].num,a[i].name,a[i].sex,a[i].salary,a[i].allowance,a[i].bonus,a[i].deduction,a[i].netpay);

}

else printf("\t无此信息!\t");

fclose(fp);

- 12 -

C语言课程设计

printf("\n\tpress any key to continue...");

system("pause");

}

void search()

{int a;

do

{ system("cls"); /*清屏*/

printf("\n\n\n\n\n\t\tstudent score management system\n"); /*显示查询子菜单*/ printf("\t\t*******************************\n");

printf("\t\t\t1----按编号查询\n");

printf("\t\t\t2----按姓名查询\n");

printf("\t\t\t3----按性别查询\n");

printf("\t\t\t0----退出查询子系统\n");

printf("\t\t*******************************\n");

printf("\t\tplease choose:");

scanf("%d",&a);

switch(a)

{ case 1:search_num();break; /*调用按编号查询函数*/

case 2:search_name();break; /*调用按姓名查询函数*/

case 3:search_sex();break; /*调用按性别查询函数*/

case 0:exit(0); /*返回主菜单*/

}

}while(a!=0);

}

main() /*主函数,完成程序菜单的显示并调用以上各函数*/

{ int a;

do

{ system("cls"); /*清屏*/

printf("\n\n\n\n\n\t\tstudent score management system\n"); /*显示程序菜单*/ printf("\t\t*******************************\n");

printf("\t\t\t1----输入\n");

printf("\t\t\t2----显示\n");

printf("\t\t\t3----追加\n");

printf("\t\t\t4----排序\n");

printf("\t\t\t5----删除\n");

printf("\t\t\t6----插入\n");

printf("\t\t\t7----修改\n");

printf("\t\t\t8----查询\n");

printf("\t\t\t0----退出\n");

printf("\t\t*******************************\n");

printf("\t\tplease choose:");

scanf("%d",&a);

switch(a)

{ case 1:input();break; /*调用输入函数*/

- 13 -

C语言课程设计

case 2:list();break; /*调用显示函数*/ case 3:append();break; /*调用追加函数*/

case 4:sort();break; /*调用排序函数*/ case 5:del();break; /*调用删除函数*/ case 6:ins();break; /*调用插入函数*/ case 7:modify();break; /*调用修改函数*/ case 8:search();break; /*调用查询函数*/

case 0:exit(0); /*结束程序的运行*/ }

}while(a!=0);

}

- 14 -

C语言课程设计

课程设计总结

白驹过隙,转眼一周的对工资管理系统的程序设计已经结束了,虽然短暂,却感触颇多。

刚开始编写程序时,感觉找不到方向,毕竟机器运行不能和我们的思维习惯相一致。特别是在设计修改函数时,怎样才能正确找出所要修改函数的下标呢?毕竟所输入的数据是随机的,询问老师后,才知道可以把文件中的元素存放到数组中,利用for循环将数组中的元素从第一个开始与所输入的编号进行对比,这样就可以找到所要修改的编号。这才发现自己对C语言知识了解的有多么肤浅,等到把修改函数编写完成运行成功后,心里顿时一阵雀跃很有成就感。

此外,编写程序过程中需要细心和耐心,其实对做任何事而言都是如此。我还深刻记得编写程序之初,运行程序时错误高达60个,这是多么令人震惊的事实!当时真有心思要放弃了,感觉这么多错误是不能够改完的,而在同学的鼓励下我开始硬着头皮开始寻找错误,这才发现自己竟然连如此简单的错误都会犯,看来以后还是得努力学习C语言知识,温故而知新,以使自己能够更加熟练地掌握程序设计。而且在老师和同学的帮助下,把程序的错误全部改完,我在心里暗暗对自己说:以后一定不能被困难表象所吓倒,只要继续坚持,拥有足够的细心和耐心,一定会“柳暗花明又一村”的!

说实话,很感谢能有机会来程序设计,能让我在编写过程中一步步发现自己的不足,来完善自己的知识;一点点探索C语言的奥妙,来培养对程序设计的兴趣。

最后,还要感谢我的老师,如果不是她细细地给我讲解每个函数编写过程中所需要注意的,我也不能完美地把程序设计出来,总之千言万语汇成一句感谢:老师,您辛苦了,谢谢您!

- 15 -

更多相关推荐:
《C语言程序设计》课程设计报告(小组)

东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:##组长:##同组成员:##目录一、目的....................…

c语言课程设计报告

C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体设计四详细设计五运行结果六课程设计体会一实验目的1通过课程设计加深对结构化程序设...

C语言课程设计报告

河南理工大学计算机科学与技术学院课程设计报告20XX20XX学年第一学期课程名称C语言课程设计设计题目《小学算术运算测试》学生姓名学号专业班级计算机07-2班指导教师20XX年9月12日目录1.设计任务书21.…

C语言课程设计报告范例

C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的难点及解决办法四小结五附录原程序2一课程设计题目及所涉及知识点一课程设计题目1基...

厦门理工学院11级C语言C语言程序设计课程设计报告

C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录一课程设计的目的与要求1二方案实现与调试221掷骰子游戏222射击游戏323汽车...

C语言程序设计课程设计报告

C语言程序设计课程设计报告20xx20xx学年第1学期专业计算机科学与技术班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录一课程设计的目的与要求3二方案实现与调试321掷骰子游戏322汽车加...

c语言程序贪吃蛇课程设计报告

山东工商学院信电学院自动111班第一组贪吃蛇课程设计报告高级语言程序设计课程设计报告ExperimentDesigningreporter课程名称高级语言程序设计英文名称CProgramExperimentDe...

C语言程序设计基础课程设计报告

程序设计基础课程设计报告课程名称课程设计题目程序设计基础课程设计学生信息管理系统姓名系专业年级学号指导教师职称计算机科学技术系计算机网络技术讲师20xx年1月1日一设计题目及要求1题目学生信息管理系统2要求1建...

《C语言程序设计》课程设计报告格式 (2)

C语言程序设计课程设计报告20xx20xx学年第1学期专业软件工程软件测试服务班级1班姓名学号陈家汀指导教师谢小竹成绩计算机与信息工程学院20xx年1月12日目录一课程设计的目的与要求页码二方案实现与调试页码2...

C语言课程设计报告---学籍信息管理系统

中国地质大学本科生课程论文封面1课程设计评语注1无评阅人签名成绩无效2必须用钢笔或圆珠笔批阅用铅笔阅卷无效3如有平时成绩必须在上面评分表中标出并计算入总成绩2目录课程设计评语2目录31课程论文题目42程序设计思...

C语言课程设计报告_运动会分数统计系统

C语言课程设计报告_运动会分数统计系统一.需求分析1问题描述运动会分数统计系统参加运动会有n个系,系编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前…

C语言课程设计报告-图书管理系统

课程设计报告图书馆管理系统目录1题目与要求22系统总体设计要给出必要的文字说明及必要的图示321功能需求分析明确选题的功能需求322系统功能模块划分要给出系统功能模块图43详细设计431重要数据的数据结构设计即...

c语言程序设计课程设计报告(34篇)