c语言工资管理系统

c语言工资管理系统
c语言工资管理系统

沈阳航空工业学院

课程设计任务书

一、课程设计题目:工资治理系统

二、课程设计工作自

三、课程设计内容

用C语言编写软件完成以下任务:

1输入工资数(职工数据要有职工号.姓名.所属部门.工龄和工资)储存在paid.dat文件中.

2对现有的职工数据按照所属部门排序,并显示出企业的平均工资.

3 职工涨工资(按照工龄按比例进行工资调整).

4 查询职工的有关数据.

四、课程设计要求:

程序质量:

1贯彻结构化程序设计思想.

2用户界面友好,功能明确,操作方便.能够加以其他功能和修饰.

3用户界面的菜单中包含"职工信息录入","排序及显示"."工资调整","信息查询"."退出"5项.所有职工数据的改变都应该在paid.dat文件中体现出来.

4代码应适当缩进,并给出必要的注释,以增强程序的可读行.

课程设计讲明书:

课程终止后,上交课程设计讲明书(打印稿和电子稿),其内容如下:

1封面

2课程设计任务书

3名目

4需求分析(分析题目的要求)

5程序流程图(总体流程图和要紧功能模块流程图)

6核心技术的实现讲明及相应程序段

7个人总结

8参考资料

9源程序及适当的注释

指导教师:_____ 学生签名:_____

名目

一、需求分析 (1)

二、程序流程图 (2)

三、核心技术的实现讲明及相应程序段 (5)

四、个人总结 (16)

五、参考文献 (17)

六、源程序 (18)

一、需求分析

通过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:输入职工数据函数(shuru),职工排序函数(sort_part),增加职工工资函数(add_paid),职工信息的查询函数(search_wor ker),以及主函数main().

1、输入职工数据函数实现的功能是按照工号对职工的数据输入并储存在paid.dat;

2、职工排序函数按照题目的具体要求实现的是按职工部门排序并算出平均工资。

3、增加职工工资函数承诺职工按照按照工龄按比例进行工资调整。

4、职工信息的查询函数输出paid.dat文件中的职工的有关数据。

除上面介绍的功能之外,程序还具有退出功能,能够在程序的一次运行当中循环执行所有的功能,并按照需要终止程序的执行。

每一个职工记录都包含职工号.姓名.所属部门.工龄和工资,在程序当中,将职工记录类型定义为结构体类型,添加以及追加的职工信息直截了当写入D盘的paid.dat文件中,其他函数每次对职工记录的访咨询,其数据来源差不多上paid.dat 文件,如此做不但能够保证职工数据的一致性,而且能够对职工数据进行永久储存,保证每次运行程序都能够采纳原先的数据。

二、程序流程图

1 主函数

3涨工资函数

5 查询函数

本程序要紧由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,输入数据函数、查询函数、涨工资函数和排序函数是程序中较为核心的部分,下面分别进行讲明:

1 录入职工信息,职工信息包括职工编号,姓名,部门,工资和工作年龄,本函数的功能是把职工信息写入到文件中。在程序中建立一个文件paid.txt.定义一个结构体变量。输入职工的差不多信息把职工信息写入到文件中。之后再次输入下一个职工的编号,同时判定职工编号是否为0 当不为零时,连续输入职工其它信息,同时把信息写入到文件中。直到输入的职工编号为零退出此函数

void shuru()

{

// 定义文件类型指针

FILE *fp;

int i;

//定义结构体变量pp

struct Paid pp;

char numer[50];

//打开文件

if((fp=fopen("d:\\paid.txt","a+"))==NULL)

{

fp=fopen("d:\\paid.txt","w+");

}

while(strcmp(pp.work_num,"e")!=0)

{

printf("\n请输入职工编号:");

scanf("%s",pp.work_num );

printf("\n请输入职工姓名:");

scanf("%s",pp.work_name );

printf("\n请输入职工部门:");

scanf("%s",pp.work_part );

printf("\n请输入职工工资:");

scanf("%d",&pp.work_paid );

printf("\n请输入职工工龄:");

scanf("%d",&pp.work_age );

//把职员信息写入到文件中

fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",pp.work_num,pp.wor k_name,pp.work_part,pp.work_paid,pp.work_age);

printf("\n退出请输入e\n连续请按任意数字\n");

scanf("%s",pp.work_num);

}

fclose(fp);

}

2 排序函数的功能是对学生信息进行排序,打开文件paid. txt。定义结构体变量数组,把工人信息读取到结构体数组中,用冒泡法进行排序同时输出排序结果,此函数还有运算平均工资的功能。

void sort_part()

{

FILE *fp;

int i,all,temp_i,k,t,sum=0;

struct Paid pp[10];

char temp_ch[55];

if((fp=fopen("d:\\paid.txt","r+"))==NULL)

{

printf("\n不能打开文件paid.txt");

return;

}

i=0;

// 判定文件是否终止

while(!feof(fp))

{

fscanf(fp,"%s\t%s\t%s\t%d\t%d\n",pp[i].work_num ,pp [i].work_name,pp[i].work_part,&pp[i].work_paid,&pp[i].work_ag e);

sum+=pp[i].work_paid;

i++;

}

all=i;

printf("\n%d个职员的平均工资%lf",all, (float)sum/all); printf("\n");

fclose(fp);

for(t=0;t

for(k=0;k

if(strcmp(pp[k].work_part,pp[k+1].work_part)>0)

{

strcpy(temp_ch,pp[k].work_num );

strcpy(pp[k].work_num,pp[k+1].work_num);

strcpy(pp[k+1].work_num,temp_ch);

strcpy(temp_ch,pp[k].work_name);

strcpy(pp[k].work_name,pp[k+1].work_name);

strcpy(pp[k+1].work_name,temp_ch);

strcpy(temp_ch,pp[k].work_part );

strcpy(pp[k].work_part,pp[k+1].work_part);

strcpy(pp[k+1].work_part,temp_ch);

temp_i = pp[k].work_paid;

pp[k].work_paid = pp[k+1].work_paid;

pp[k+1].work_paid = temp_i;

temp_i = pp[k].work_age;

pp[k].work_age = pp[k+1].work_age;

pp[k+1].work_age = temp_i;

}

fp= fopen("d:\\paid.txt","w+");

for(i=0;i

{

fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",pp[i].work_num,pp[i]. work_name,pp[i].work_part,pp[i].work_paid,pp[i].work_age);

printf("%s\t%s\t%s\t%d\t%d\n",pp[i].work_num,pp[i].wor k_name,pp[i].work_part,pp[i].work_paid,pp[i].work_age);

}

fclose(fp);

}

3 增加职工工资,自己设置一个职工工资的增加法则可,读取职工信息同时把职工的工资进行按工龄增加。最后把职工信息全部写入到文件中。关闭文件

void add_paid()

{

FILE *fp;

int i,j,gongzi;

struct Paid pp[10];

char number[50];

printf("\n 请输入职工每年增加的工资:");

scanf("%d",&gongzi);

if((fp=fopen("d:\\paid.txt","r+"))==NULL)

{

printf("\n不能打开文件paid.txt");

return;

}

i=0;

j=0;

while(!feof(fp))

{

fscanf(fp,"%s\t%s\t%s\t%d\t%d\n",pp[j].work_num ,pp [j].work_name,pp[j].work_part,&pp[j].work_paid,&pp[j].work_ag e);

pp[j].work_paid = pp[j].work_paid + pp[j].work_age * gongzi;

j++;

}

fclose(fp);

if((fp=fopen("d:\\paid.txt","w+"))==NULL)

{

printf("\n不能打开文件paid.txt");

return;

}

for(i=0;i

{

fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",pp[i].work_num,pp [i].work_name,pp[i].work_part,pp[i].work_paid,pp[i].work_age);

printf("%s\t%s\t%s\t%d\t%d\n",pp[i].work_num,pp[i].w ork_name,pp[i].work_part,pp[i].work_paid,pp[i].work_age);

}

fclose(fp);

}

4 职工信息的查询是通过打开文件paid.txt同时读取文件中的职工信息,并输出职工信息到屏幕上。当文件终止,关闭文件,退出函数

void search_worker()

{

FILE *fp;

int j;

struct Paid pp[10];

char number[50];

if((fp=fopen("d:\\paid.txt","r+"))==NULL)

{

printf("\n不能打开文件paid.txt");

return;

}

j=0;

while(!feof(fp))

{

fscanf(fp,"%s\t%s\t%s\t%d\t%d\n",pp[j].work_num ,pp [j].work_name,pp[j].work_part,&pp[j].work_paid,&pp[j].work_ag e);

printf("%s\t%s\t%s\t%d\t%d\n",pp[j].work_num ,pp[j].work_ name,pp[j].work_part,pp[j].work_paid,pp[j].work_age);

j++;

}

if(0==j)

printf("\n数据库中没有职员信息");

fclose(fp);

四、个人总结

运算机的应用差不多越来越普及,进入一般百姓家庭。由于运算机的快速进展,运算机软件的进展也越来越快。在当前流行的运算机软件中,C 语言由于其功能强大,简单易懂,因

此我对用C语言编程充满了爱好。当做完程序时对自己的小小成绩感到无比的自豪和自豪。

通过一个学期的C语言学习,使我差不多把握了C语言的语法,把握了面向过程编程的步骤。这次课程设计在课堂学习C语言的基础上有了专门大的提升。使我更加熟练地把握了C语言的调试、编写方法。总之我觉得专门快乐能用所学解决实际咨询题。

五、参考文献

2 谭浩强.C程序设计.北京:清华大学出版社,2005

3 刘成等.C语言程序设计实验指导与习题集.北京:中国铁道出版社,2006

六、源程序

//宏定义

#include "string.h"

#include "stdio.h"

#include "stdlib.h"

// 定义结构体

struct Paid

{

char work_num[50];

char work_name[50];

char work_part[50];

int work_paid;

int work_age;

};

void shuru()

{

// 定义文件类型指针

FILE *fp;

int i;

//定义结构体变量pp

struct Paid pp;

char numer[50];

//打开文件

if((fp=fopen("d:\\paid.txt","a+"))==NULL) {

fp=fopen("d:\\paid.txt","w+");

}

while(strcmp(pp.work_num,"e")!=0)

{

printf("\n请输入职工编号:");

scanf("%s",pp.work_num );

printf("\n请输入职工姓名:");

scanf("%s",pp.work_name );

printf("\n请输入职工部门:");

scanf("%s",pp.work_part );

printf("\n请输入职工工资:");

scanf("%d",&pp.work_paid );

printf("\n请输入职工工龄:");

scanf("%d",&pp.work_age );

//把职员信息写入到文件中

fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",pp.work_num,pp.wor k_name,pp.work_part,pp.work_paid,pp.work_age);

printf("\n退出请输入e\n连续请按任意数字\n");

scanf("%s",pp.work_num);

}

fclose(fp);

}

void sort_part()

{

FILE *fp;

int i,all,temp_i,k,t,sum=0;

struct Paid pp[10];

char temp_ch[55];

if((fp=fopen("d:\\paid.txt","r+"))==NULL)

{

printf("\n不能打开文件paid.txt");

return;

}

i=0;

// 判定文件是否终止

while(!feof(fp))

{

fscanf(fp,"%s\t%s\t%s\t%d\t%d\n",pp[i].work_num ,pp [i].work_name,pp[i].work_part,&pp[i].work_paid,&pp[i].work_ag e);

sum+=pp[i].work_paid;

i++;

}

all=i;

printf("\n%d个职员的平均工资%lf",all, (float)sum/all);

printf("\n");

fclose(fp);

for(t=0;t

for(k=0;k

if(strcmp(pp[k].work_part,pp[k+1].work_part)>0)

{

strcpy(temp_ch,pp[k].work_num );

strcpy(pp[k].work_num,pp[k+1].work_num);

strcpy(pp[k+1].work_num,temp_ch);

strcpy(temp_ch,pp[k].work_name);

strcpy(pp[k].work_name,pp[k+1].work_name);

strcpy(pp[k+1].work_name,temp_ch);

strcpy(temp_ch,pp[k].work_part );

strcpy(pp[k].work_part,pp[k+1].work_part);

strcpy(pp[k+1].work_part,temp_ch);

temp_i = pp[k].work_paid;

pp[k].work_paid = pp[k+1].work_paid;

pp[k+1].work_paid = temp_i;

temp_i = pp[k].work_age;

pp[k].work_age = pp[k+1].work_age;

pp[k+1].work_age = temp_i;

}

fp= fopen("d:\\paid.txt","w+");

for(i=0;i

{

学生管理系统 C语言

C/C++程序设计 课程设计报告 专业: 班级: 学号: 姓名: 版本号: 时间:

目录 1 概述 (2) 1.1目的 (2) 1.2计划 (2) 2 课程设计过程及结果 (3) 2.1编程环境及工具 (3) 2.2排序与简单分析 (3) 2.3综合设计 (3) 2.3.1 功能实现 (3) 2.3.2 程序异常处理 (5) 2.3.3 特色功能 (5) 3 课程设计总结 (6) 3.1课程设计计划执行情况 (6) 3.2我理解的C++ (6) 3.3改进设想 (6) 附录关键代码 (6)

原创声明:本课程设计报告及相应的软件程序的全部内容均为本人独立完成,如有抄袭,愿承担相应后果。 声明人___________________ 学号:__________________

1概述 1.1 目的 1、熟悉c语言的编译环境 2、掌握c语言的基本操作 3、回顾并加深对C/C++程序设计相关知识的理解,能够用C/C++独立完成简单数据管 理软件的编写 4、锻炼同学思维强度与能力 5、培养同学认真态度和刻苦的精神 1.2 计划 用Microsoft Visual C++ 6.0进行编译,利用之前学过的课程知识和查询资料等方法完成题目的设计,用Debug进行调试。 1.回顾c语言编程基本内容,了解各种数据类型及掌握各种语句的结构类型。 2.完成一个简单任务:排序与简单分析把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序。出现次数相同的按照字母顺序排列,(a最前,z最后)。 输入:任意一个字符串(小写,长度小于255) 输出:重新排序后的结果 例如,输入:aassdfkjiowea回车 则输出为:defijkowssaaa 3.综合设计:设计实现学生成绩管理软件。 参考下面的数据,用C/C++设计一个简单的学生成绩管理软件,实现基本的功能。 学生信息文件(A.TXT)及其内容(示意): 学号姓名性别班级 200800800901 张三男电子0801 200800820902 李四女通信0801 200800800903 王五女电子0802 200800820904 赵六男通信0801 …… 课程信息(B.TXT)及其内容(示意): 课程编号课程名称学分 C01 大学英语 4 C02 高等数学 4 C03 C++程序设计 3 …… 学生成绩信息文件(C.TXT)及其内容(示意,成绩保存使用浮点数): 学号课程成绩 200800800901 C01 89 200800800902 C01 68.5 200800800901 C02 45.5 200800800903 C02 78 实现数据录入显示功能查询功能数据删除、整理功能排序功能。

最新学生信息管理系统C语言编程

学生信息管理系统C语言编程 【问题描述】 学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。【基本要求】 (1)学生信息包括: 学生基本信息文件(student.txt)(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下: (2)学生成绩基本信息文件(score.dat)及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求) 学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分(3)需要实现的功能 1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70% 。 实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。 2)查询功能:分为学生基本情况查询和成绩查询两种 (1)学生基本情况查询: ①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下: ②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。(格式如上所示) (2)成绩查询: ①、输入一个学号时,查询出此生的所有课程情况,格式如下: 学号:xx 姓名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx …………………… 共修:xx科,实得总学分为: xxx (3)删除功能: 提供待删除学生的学号,则在student.txt和score.dat中删除所有与该学生有关的信息。(4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。 【程序设计的具体说明】 (1)将与两个文件对应的信息分别定义两种结构体类型来表示,也可以用类来定义;(2)对score.dat文件的写入,从键盘上输入的是前七项,后两项数据项根据计算方法算出后,得到完整的结构体信息,作为一个整体写入(可调用write函数)。

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

通信工程C语言强化训练实验报告 评语: 教师签字: 东北大学秦皇岛分校

学生信息管理系统 强化训练目的 C语言基本知识的巩固和综合运用。基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体。 C语言高级编程。链表基本操作、文件的基本操作、图形和声音制作。 程序的结构化设计。 编辑、设置、编译、调试、执行。 C语言结合实际问题的综合设计。 设计题目功能 通过计算机对数据文件的存储和读取,对学生信息进行管理,能够完成学生信息的增、删、改、查找等功能。 设计题目要求 名片信息至少包括学号、姓名、性别、出生日期、宿舍号等基本信息。 具体要求包括: 1有主界面和主菜单

2以班级为单位用链表存放学生信息 3可以实现按学号、姓名、宿舍号查询和统计并在屏幕上输出查询结果 4友好的界面和操作提示 [A]信息录入 [D]信息删除 [F]信息查询 [Q]退出 4、程序流程图 总体设计 详细设计 【程序】主函数 void main() /*主函数即用户的操作界面*/ { system("color 1E"); /*设计文本颜色*/ int b,flag=0; /*声明局部变量*/ while(1) /*循环输出以下信息*/ { printf("\n\t\t\t欢迎来到学生成绩管理系统!\n"); printf("\n\t\t\t\t ###制作\n"); printf("\t\t\t-------------------------------\n");

printf("\t\t\t1.键入学生的信息\n\n"); /*键入学生的信息*/ printf("\t\t\t2.查看录入的学生信息\n\n"); /*查看录入的学生信息*/ printf("\t\t\t3.按姓名查看学生的信息\n\n"); /*按姓名查看学生的信息*/ printf("\t\t\t4.按学号查看学生的信息\n\n"); /*按学号查看学生的信息*/ printf("\t\t\t5.按宿舍号查看学生的信息\n\n"); /*按宿舍号查看学生的信息*/ printf("\t\t\t6.删除学生信息\n\n"); /*删除学生信息*/ printf("\t\t\t7.保存学生信息\n\n"); /*保存*/ printf("\t\t\t8.打开文件\n\n"); /*打开文件*/ printf("\t\t\t9.我的个人信息\n\n"); /*我的个人信息*/ printf("\t\t\t0.退出\n\n"); /*退出*/ printf("\t\t\t请输入你的选择:"); scanf("%d",&b); switch(b) { case 1:type();break; /*调用键入学生信息函数*/ case 2:look();break; /*调用查看函数*/ case 3:search_name();break; /*调用姓名查看函数*/ case 4:search_number();break; /*调用学号查看函数*/ case 5: search_dorm();break; /*调用宿舍号查看函数*/ case 6:del();break;/*调用删除函数*/ case 7:save();break;/*调用保存函数*/ case 8:see();break;/*调用打开文件函数*/ case 9:welcome();break;/*调用我的个人信息函数*/ case 0:flag=1;break;/*退出SWITCH语句*/ default :printf("错误!"); } if(flag) break; /*如果选择0就退出循环*/ } } 5、程序设计源代码 #include"stdio.h" #include"conio.h" #include"string.h" #include"stdlib.h" void look(); /*声明查看函数*/ void save(); /*声明保存函数*/ void search_name(); /*声明按姓名查看函数*/ void search_number(); /*声明按学号查看函数*/ void search_dorm(); /*声明按宿舍号查看函数*/ void del(); /*声明删除函数*/ int openl(); /*声明打开函数*/ void welcome(); /*声明我的个人信息函数*/ void type(); /*声明输入函数*/

C语言学生信息管理系统 (2)

C语言课程设计 题目名称:学生信息管理系统 姓名XXX 学号XXXXXXXX 专业网络工程 班级一班 指导教师XXX 编写日期2011/6/6 目 录 查询函数.............................................................................................................................

1、序言 随着学校的规模不断过大,学生数量急剧增加,有关学生的各种信息量也成倍增加。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范化管理、科学性统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。 2、需求分析 本系统主要需要解决的任务是实现学生信息关系的系统化、规范化和自动化,其主要目的是计算学生各种信息进行日常管理,如查询、修改、增加删除学生信息等。在实现程序功能的同时应该做到界面简单易懂,容易操作,方便使用的要求。并且程序需要有一定的纠错能力。 .具体目标 本系统主要应用于学生学籍管理、信息查询等部分,具有不同的操作功能。具体功能如下: 2.1.1 有关学生信息的录入,学生信息包括输入学生的学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等(学生信息用文件保存)。 2.1.2. 学生信息的浏览功能。 2.1. 3.学生信息的查询功能,其中实现按学号和姓名二种方式查询。 2.1.4.学生信息的修改功能,包括增加、删除等。 3、总体设计 .算法分析 首先,考虑信息的录入,一个学生包括这么多的属性,应该考虑定义一个结

学生信息管理系统c语言

学生信息管理系统 1 课程设计目的与要求 1.1课程设计目的 本课程设计是在学习C语言基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼: 1.能根据实际问题的具体情况,结合C语言的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。 1.2课程设计要求 通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用。具体如下: (1)数据组织方面尽量使用到:数组、链表、结构体、文件; (2)程序结构方面做到函数调用,尽量采用指针运算; (3)代码编写规范,形成良好的编程习惯; (4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。 (5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面: ●程序的总体设计和算法分析。 ●程序流程图、函数说明

●源程序代码清单 ●测试数据和测试过程记录 ●遇到的问题及解决方法分析 ●课程设计小结 1.3课程设计的评价 通过此次课程设计,我的知识面得到了扩展,发现课本上的东西是远远不够的,需要上网找资料寻找补充,而且小组合作的形式可以互相交流知识,弥补自己的不足。通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发能力。 1

C语言之学生管理系统

流程图: 运行结果:

程序源码: #include #include #include #include #include #define LEN sizeof(struct student)//求字节数运算符

struct student { char name[20]; long intnum; char sex[4]; int age; char address[30]; float score; struct student *next;//链表 };//定义一个结构题 int TOTAL_NUM = 0;//学生总数 struct student *head = NULL; void mainmenu ();//主界面 void record (); //记录数据 void insert(struct student *stu); //插入数据 void display(struct student *stu); //显示一个学生的信息void displayAll (); //显示所有学生的信息 void query(); //查询学生信息 void query_by_num(); //按学号查询学生信息 void query_by_name(); void readData (); //读取文件里学生的信息

void writeData (); //向文件写入学生信息 void freeAll (); //清空链表内容 void del (); //删除学生信息 void change (); //更改学生信息 void sort();//排序 void devise (struct student *p); //选择更改内容 int main (void) { mainmenu (); return 0; } //系统主菜单 void mainmenu () { int choice; choice = -1; readData (); printf ("\t\t\t----------------------------------------------------\n"); printf ("\t\t\t| 欢迎使用通信工程专业学生信息管理系统|\n"); printf ("\t\t\t----------------------------------------------------\n"); printf ("\t\t\t本程序需要在当前目录下建立student.txt才可正常运行\n"); do

c语言程序设计学生管理系统

c语言程序设计学生管理系统

————————————————————————————————作者:————————————————————————————————日期:

/*学生成绩管理系统 数据库的数据项主要数据包括:学号、姓名、年级、专业、成绩1、成绩2、成绩3、平均成绩、总成绩。 要求具有以下功能: (1)添加、删除任意个记录。 (2)修改任意个记录。 (3)显示、保存记录。 (4)排序功能:打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡法或选择排序法将平均成绩和总成绩排序后生成两个新文件(从大到小), 存盘并显示这两个文件的全部记录。 (5)查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。 要求: (1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。 (2)程序运行时,首先进行口令检查,再显示菜单。并能根据菜单调用相应的函数功能。 口令程序段的功能要求: 《1》提示用户输入一个口令。 《2》用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。 《3》可对用户的口令输入进行次数限制(如:重复输入3次都不对),则自动退出系统。*/ #include #include #include struct student { int num; char name[10]; int grade; char major[10]; float score_1,score_2,score_3,aver,total; struct student *next; }; struct student *creat(void); struct student *add(void); struct student *del(int num); struct student *alter(); void save(struct student *head); void read(); void totalsort(struct student *head); void aversort(struct student *head); void Bfindsort(); int all=0; void main() {

学生成绩管理系统c语言代码(供参考)

C程序学生管理系统 以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h" #include"stdlib.h" #include"string.h" typedef struct student//定义学生 { char name[10]; int number; char sex[2]; int math; int eglish; int clanguge; int average; }student; typedef struct unit//定义接点 { student date; struct unit *next; }unit; unit* build()//建立链表并返回指针 { unit *p; if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>初始化失败!"); return 0; } else {p->next=NULL; p->date.number=0;//头结点存放学生人数 printf("初始化成功!\n"); return p; } } void add(unit *head)//增加学生

{ unit *p,*q; int m,n=0; q=head->next; p=(unit*)malloc(sizeof(unit)); printf("=>请输入新生姓名!\n"); gets(p->https://www.360docs.net/doc/4315224755.html,);fflush(stdin); printf("=>请输入学号!\n"); while(n==0) { scanf("%d",&m);fflush(stdin); if(q==NULL) n=1; while(q) { if(q->date.number==m) { printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n"); q=head->next; break; } else { q=q->next; if(q==NULL) n=1; } } } p->date.number=m; printf("=>请输入性别!\n"); gets(p->date.sex);fflush(stdin); printf("=>请输入数学成绩\n"); scanf("%d",&m);fflush(stdin); p->date.math=m; printf("=>请输入英语成绩\n"); scanf("%d",&m);fflush(stdin); p->date.eglish=m; printf("=>请输入c语言成绩\n"); scanf("%d",&m);fflush(stdin); p->date.clanguge=m; p->date.average=(p->date.math+p->date.eglish+p->date.clanguge); q=head->next; head->next=p;

C语言 学生信息管理系统(完整版)

电子科技大学成都学院程序综合设计论文 论文题目学生信息管理系统 学生姓名魏国 学号1340840625 专业机械设计制造及其自动化 系(分院)电子工程系 授课教师杜娥 2015年12月制

摘要 随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。本系统主要对学生各种信息进行处理。 本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。 学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。 学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。 关键字:学生信息,管理系统,数据库,C语言编写

学生信息管理系统C语言编写资料整理

目录 1设计目的 (3) 2设计题目及要求 (3) 3设计算法分析 (3) 3.1模块调用层次图 (3) 3.2核心算法描述 (4) 3.3系统特点 (6) 4程序代码 (6) 5调试情况 (8) 6结论 (11)

学生信息管理 1.设计目的 本课程设计的目的就是要通过一次集中的强化训练,使学生能及时巩固已学的知识,补充未学的但又必要的内容。进行课程设计目的在于加深对程序设计基础中基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。具体目的如下: 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2.培养学生综合运用所学知识独立完成课题的能力。 3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。 5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 2.设计题目及要求 【1】设计题目 【2】要求 实现如下功能: (1)建立学生信息的结构体 (2)学生信息的初始化(可以从文件获取) (3)学生信息的添加、修改、删除、查找 (4)学生信息的输出 (5)对学生信息按学号、成绩排序 (6)计算一门课的平均分和总分 (7)将学生信息保存为文件 综合应用数组、指针、结构体、文件等,对该设计题目进行设计和实现。课 程设计完成后,提交课程设计报告。 3.设计算法分析 3.1 模块调用层次图 【1】变量描述

学生成绩管理系统代码(c语言编写)

C程序学生管理系统 /* Note:Your choice is C IDE */ #include"stdio.h" #include"stdlib.h" #include"string.h" typedef struct student//定义学生 { char name[10]; int number; char sex[2]; int math; int eglish; int clanguge; int average; }student; typedef struct unit//定义接点 { student date; struct unit *next; }unit; unit* build()//建立链表并返回指针 { unit *p; if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>初始化失败!"); return 0; } else {p->next=NULL; p->date.number=0;//头结点存放学生人数 printf("初始化成功!\n"); return p; } } void add(unit *head)//增加学生

{ unit *p,*q; int m,n=0; q=head->next; p=(unit*)malloc(sizeof(unit)); printf("=>请输入新生姓名!\n"); gets(p->https://www.360docs.net/doc/4315224755.html,);fflush(stdin); printf("=>请输入学号!\n"); while(n==0) { scanf("%d",&m);fflush(stdin); if(q==NULL) n=1; while(q) { if(q->date.number==m) { printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n"); q=head->next; break; } else { q=q->next; if(q==NULL) n=1; } } } p->date.number=m; printf("=>请输入性别!\n"); gets(p->date.sex);fflush(stdin); printf("=>请输入数学成绩\n"); scanf("%d",&m);fflush(stdin); p->date.math=m; printf("=>请输入英语成绩\n"); scanf("%d",&m);fflush(stdin); p->date.eglish=m; printf("=>请输入c语言成绩\n"); scanf("%d",&m);fflush(stdin); p->date.clanguge=m; p->date.average=(p->date.math+p->date.eglish+p->date.clanguge); q=head->next; head->next=p;

学生信息管理系统 C语言

#include "stdio.h" #include "string.h" #include "stdlib.h" #define M 10 int num; //计数 struct student { char xuehao[10]; //学号 char name[10]; //姓名 char sex[8]; //性别 char birth[20]; //出生年月 char jiguan[30]; //籍贯 char tel[30]; //电话 int score; //成绩 }student[M]; char headline[80]; //全局变量 void read1() { FILE *fp; //文件指针 int i=0; fp=fopen("jz0112.txt","r"); //打开文件 if(fp==NULL) { printf("不能找到文件,请检查!\n"); return; } fgets(headline,80,fp); //读第一行的函数 puts(headline); while(!feof(fp)) //判断文件是否结束 //for(i=0;i

i++; //fscanf读两个空白字符之间的字符 } num=i; fclose(fp); //关闭文件 for(i=0;i

c语言程序设计学生管理系统

/*学生成绩管理系统 数据库的数据项主要数据包括:学号、姓名、年级、专业、成绩1、成绩2、成绩3、平均成绩、总成绩。 要求具有以下功能: (1)添加、删除任意个记录。 (2)修改任意个记录。 (3)显示、保存记录。 (4)排序功能:打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡法或选择排序法将平均成绩和总成绩排序后生成两个新文件(从大到小), 存盘并显示这两个文件的全部记录。 (5)查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。 要求: (1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。 (2)程序运行时,首先进行口令检查,再显示菜单。并能根据菜单调用相应的函数功能。 口令程序段的功能要求: 《1》提示用户输入一个口令。 《2》用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。 《3》可对用户的口令输入进行次数限制(如:重复输入3次都不对),则自动退出系统。*/ #include #include #include struct student { int num; char name[10]; int grade; char major[10]; float score_1,score_2,score_3,aver,total; struct student *next; }; struct student *creat(void); struct student *add(void); struct student *del(int num); struct student *alter(); void save(struct student *head); void read(); void totalsort(struct student *head); void aversort(struct student *head); void Bfindsort(); int all=0; void main() {

C语言编写的完整学生管理系统

#include"stdio.h" #include"stdlib.h"/*标准库函数*/ #include"string.h"/*字符串操作函数*/ #define MAX 5 #define PAGE 2 #define PRINT1 printf("--------------------------------------------------------------\n"); #define PRINT2 printf("number--name--class--sex--birth(yyyy-mm-dd)--age\n"); #define PRINT3 printf("%4d%5s% 6d%6d% 8d-%2d-%2d%12d\n",students[i].num,students[i].name,\ students[i].classes,students[i].sex,students[i].birthday.year,\ students[i].birthday.month,students[i].birthday.day,students[i].age); int sum; /*用来记录学生数目*/ /*清屏函数*/ void clrscr() { getchar(); system("cls"); } /*出生日期结构体类型*/ struct date { int year; int month; int day; }; /*学生结构体类型*/ struct students_type { int num; char name[20]; int classes; int sex; struct date birthday; int age; }students[MAX],t; /*存放N个学生纪录的结构体数组*/ /*保存信息*/ int save_message(int sum) {

简单的学生信息管理系统(C语言)

#include #include //输入函数getch的头文件,不能用getchar,具体请查看两者的 区别 #include //申请空间的函数malloc的头文件 typedef struct { //定义结构体类型,包含四项内容,可以自由添加int num; char name[10]; int age; char sex[5]; }st; typedef struct node //构造结点(也是结构体变量) { st data; //数据域 struct node *next; //指针域(指向结构体,也就是自身) }list; list *create() //建立一个单链表 { list *p,*r,*head; //定义结构体指针变量 int i,n; head = (list *)malloc(sizeof(list)); //申请头结点 r = head; head->next = NULL; //头结点的指针域先定义为空 printf("请输入学生人数:\n"); scanf("%d",&n); printf("请输入学生个人信息:\n\n学号,姓名,年龄,性别\n"); for(i=1;i<=n;i++) { p = (list *)malloc(sizeof(list)); //申请一个结点 scanf("%d%s%d%s",&p->data.num,&p->https://www.360docs.net/doc/4315224755.html,,&p->data.age,&p->data.sex); //向结点的数据域输入学生信息 p->next = NULL; r->next = p; //将头结点指向第一个结点,以此类推。 r = r->next; } return (head); //返回头结点的地址 } void output(list *h) // 输出链表中的学生信息 { list *p; p = h->next; //使p指向第一个结点 if(p == NULL)

学生信息管理系统C语言 源代码

#include #include #include #include struct stuType { char name[9]; //姓名 char gender[3]; //性别 int age; //年龄 char phone[11]; //手机号 int stature; //身高 }stud[100]; //;不可少 /**********************************************/ void GotoXY(int x, int y); void shuru(); void zhuye(); void chaxun(); void chaxunsx(); void chaxun_name(); void chaxunlb(); void chaxunxm1(); void chaxunxm2(); void displist(); void change(); void sort(); void sort_age(); void sort_stature(); void statistics(); /************************************************/ void main()//主函数 { zhuye();//系统首页 } /************************************************/ void GotoXY(int x, int y)//坐标定位函数 { COORD c; c.X = x - 1;

用C语言编写学生信息管理系统

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计目的 通过对高级语言程序设计课程设计的学习,来验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单的C语言程序设计。希望通过项目实践,熟悉巩固所学知识,以使自己熟练掌握高级语言程序设计,为日后学习计算机科学技术的专业知识能有进一步深入了解,奠定基础。 二、设计内容 1、问题描述: 设计一个学生信息管理系统设计。学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。 2、功能要求: 1、系统以菜单方式工作 2、学生信息录入功能(学生信息用文件保存)--输入 3、学生信息浏览功能--输出 4、学生信息查询功能--算法 按学号查询 按姓名查询 5、学生信息的删除与修改(可选项) 三、详细设计 1、菜单: void menu() { } 2、建立信息: void readfile() { } 3、查找: void seek() { } 4、修改信息: void modify() { } 5、插入函数: void insert() { } 6、删除信息: void del() { } 7、浏览信息:

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ void display() { } 8、保存: void save() { } 四、调试与测试 1、系统功能菜单 2、选择菜单“0”,进入系统帮助及说明功能

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊ 线┊┊┊┊┊┊┊┊┊┊┊┊┊3、选择菜单“4”,添加学生信息 (1)输入增加人数 (2)依次输入学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail

学生管理系统(C语言)

学生管理系统(C语言) 部分代码: typedef struct student{ char name[20]; //学生姓名 StudentDate one; //学生其他信息 int rank; //成绩排名 struct student *next; }Student, *List; Student *startCheck(void); //开始检查 Student *createListHead(void); //创建链表的头 void menu(void); //主菜单 void sortList(Student *pHead); //排序链表 void readListWithFile(Student *pHead, char *file_name); //从文件中读取数据,并保存在链表中 void sorttList(Student *pHead); //排序链表 int userChioce(Student *pHead); //用户选择 int sortMenu(void); //打印选择菜单 void passwordCheck(void); //密码检测 void correctWord(void); //修改密码 void addStudentInfo(Student *pHead); //向链表的末尾添加数据 int scanMenu(void); //浏览菜单

void findStudentInfo(Student *pHead); //查找学生信息 void delStudentInfo(Student *pHead); //删除某一个学生信息 void alterStudentInfo(Student *pHead); //修改学生信息 void saveList(Student *pHead); //将链表保存在文件里 void printList(Student *pHead); //打印链表 void statisStudentInfo(Student *pHead); //查看学生信息 int statisMenu(void); //查看菜单 void gotoxy(int x, int y); //改变光标位置函数 void inputData(Student *pHead, Student *node); //输入信息,并检测是否合法 int main(void){ Student *pHead;

相关文档
最新文档